毕业设计论文:基于proteus的单片机实验平台设计内容摘要:

总线 6. 用于放置子电路 7. 用于即时编辑元件参数(先单击该图标再单击要修改的元件) 配 件( Gadgets): 从左数到右: 1. 终端接口( terminals):有 VCC、地、输出、输入等接口 2. 器件引脚:用于绘制各种引脚 3. 仿真图表( graph):用于各种分析,如 Noise Analysis 4. 录音机 5. 信号发生器( generators) 6. 电压探针:使用仿真图表时要用到 7. 电流探针:使用仿真图表时要用到 8. 虚拟仪表:有示波器等 2D 图形( 2D Graphics): 从左数到 右: 7 ( The Object Selector): 用于挑选元件( Components)、终端接口( terminals)、信号发生器( generators)、 仿真图表( graph)等。 举例,当你选择 “ 元件( Components) ” ,单击 “ P” 按钮会打开挑选元件对话框,选择了一个元件后(单击了 “ OK” 后),该元件会在元件列表中显示,以后要用到该元件时,只 需在元件列表中选择即可。 5.方向工具栏( Orientation Toolbar): 旋转: 旋转角度只能是 90 的整数倍。 (例如 180 度, 360 度) 翻转: 完成水平翻转和垂直翻转。 使用方法:先右键单击元件,再点击(左击)相应的旋转图标。 6.仿真工具 控制按钮 从左数到右 1. 运行 2. 单步运行 3. 暂停 4. 停止 ISIS 智能原理图设计 ISIS 智能原理图 设计 流程 大致分为: 新建设计文档:用户需要设计的系统,自己建立一个设计的方向,记录下自己的设计思路,建立一个 文档。 8 设置编辑环境:用户可自定义 图形外观,包括线宽、填充类型、字符等。 放置元器件:用户把此次设计所需要的硬件,可以从元件库中拖出来,放置在原理图编辑窗口。 原理图连线:点击元件引脚或 者先前连好的线,就能实现连线;也可使用自动连线工具连线; 建立网络表:网络表是电路板 与电路原理图之间的纽带。 建立的网表用于 PCB制板。 报表输出:材料报表、 ERC 报 表等 [11]。 电气规则检查:对于硬件设计来说,除了线路错误外,最重要检查其是否符合电气规则,如果不符合的话需要调整,重新回到放置元器件那一步,选择适合的元器件进 行设计。 如果适合,存盘,进行报表的输出。 Proteus 与 Keil 联合开发 Keil 简介 Keil 软件是一个很好的单片机开发软件,他是由一家名叫 Keil 的德国的软件公司开发出来的。 它目前是用户最多的单片机开发平台。 有简洁的界面,以及很好的 C语言及汇编语言编译器, 弥补了 Proteus 自带仿真编译只限于汇编的不足。 现在很多优秀的单片机程序都是在此平台上开发的。 现在网上也有很多这方面的资料,有兴趣的,有 志于在单片机开发上发展的朋友可以多找找这方面的学习资料,如你有 C 语言或者汇编语言 的 编程 基础,相信很快就可以上手。 Keil 使用 首先双击 Keil 软件,一开始你可以看到这样一个界面 9 图 23 Keil 启 动 图 接着看到的是 Keil 的编译环境: 图 24 Keil 编辑窗口 图 uVison 3 集成开发环境界面由菜单栏、工具栏、编辑窗口、工程 显示 窗口和输出窗口五部分组成。 工具栏为一组快捷工具图标,主要包括基本文件工具栏、建造工具栏和调试工具栏。 基本 文件 工具栏包括新建、打开、拷贝、粘贴等基本操作工具。 建造工具栏主要包括文件编译、目标文件连接、所有目标文件编译连 接、目标选项和一个目标选择窗口。 调试工具栏位于最后,主要包括一些仿真调试源程序的基本操作,如单步、复位、全速运行等。 在工具栏下面,默认有三个窗口 :工程窗口、源文件编辑窗口和输出窗口。 左边的工程窗口包含一个工程的目标 (target)、组 (group)和项目文件。 右边为源文件编辑窗口,编虚拟仿真软件 Proteus 辑窗口是一个文件编辑器,可以在这里对源文件进行编辑、修改、粘贴等操作 [12]。 下边为输出窗口,源文件编译之后的结果显示在输出窗口中,会出现通过或错误 (包括错误类型及行号 )等提示信 10 息。 在点击 Option for target 后弹出的窗口中,选择 output 勾选 Create Hex File 后,Keil 软件 如果通过 编译 则会生成 HEX 格式的目标文件, 这些 16 进制文件 用于 后续的 仿真或烧录 在可编程的 芯片 中。 Keil C5l 的软件,都使用工程管理文件, 不管 是汇编语言 , 还是 C 语言文件,无论 是否仅仅 一个文件,还是有多个文件的程序都要有一个工程文件。 没有工程文件,将不能进行编译和仿真。 在一个项目开发中 ,要为这个项目选择 CPU(Keil 支持数百种 CPU),确定编译、连接的参数,指定调试的方式等。 下面就是一个简单的 Keil 工程开发的步骤 第一步,新建一个工程,在 Project 菜单下选择 New Project,对其命名一个 uv2(工程文件)点击保存后,出现选择 CPU的菜单, 选择对应的 CPU。 图 25 选择 CPU 型号 图 图 26 新建工程名图 11 便于描述,这里我选择的 CPU 是 ATMEL 公司的 AT89C51,也是我随后设计实例最主要的芯片。 点击确定后,会有一个提示窗口弹出,问是否需要加载 89C51 的初始代码,选择否。 第二步:新建一个 C 语言程序, .C 文件或者一个汇编程序 .ASM 文件。 并把它们加进工程里面。 Add files to Group source Group1,并选中其中的 C 或者 ASM 文件。 点击 add。 其次 在工程窗口,点击右键选择 Option for Target1,弹出的窗口中选择 选择 output ,并勾选 Create Hex file。 如下两图所示: 图 27 选择 C 文件 图 12 图 28 Target 选择 图 第 三 步 : 对 所 编 的 C 文件或者 ASM 文件进行编译,按 最左边进行编译,然后链接,最后汇编, (注意: 如果 忘记前面那部勾选生成 16进制的话, 会编译成功,但是不会生成 hex 文件)。 只有按照前面步骤一步步来,才能 成功生成 16 进制文件,正如下图所示: ( a)没勾选生成 16 进制文件 编译结果 ( b)勾选生成 16 进制文件编译结果 图 29 文件编译结果 到此,一个简单的 Keil 编译过程就结束了。 产生的 Hex 文件是后续仿真软件以 13 及一些单片机文件所需要的运行文件。 既然说到了 Keil 与 proteus 的联调 ,就不得不在这里浅谈一下, Keil 中生成的 Hex文件,正如硬件中是“烧”进单片机一样,在 Proteus 中也同样是放在仿真项目所用的单片机中。 首先双击单片机,会出现如下图所示的窗口,在下图中可以更改其单片机的时钟频率,在 Program File 这一栏中,点击像文件夹的图标,找到你所创建的Hex 文件的路径即可。 图 210 选择 hex 文件 设置好后,如前边介绍 ISIS 中所说的功能条点击 图标,就可以仿真运行项目 了。 按 是停止图标,可以停止仿真。 如果运行出来的效果不是预期的结果,首先检查是否是连线问题, Proteus 中如果运行过程中产生的高电平是红色的小方块,如果低电平是蓝色的小方块。 在此可以看到你的连线是否的导通。 看看每个芯片的启动电平是低 还是高电平。 通过上面的提示色,看看是否是所需的电平。 大致检查完毕,再回 Keil 去单步调试,看看运行途中参数传递是否正确。 通过 Keil 和 Proteus 的联调,可以很好的进行单片机的仿真,可以相互补,相串联。 利用 Proteus 强大的类库,可以进行 大多的课程所需实验平台设计。 14 第 3 章 仿真实例 主要 芯片简介 AT 89C51 说起 89C51 不得不说起它的前辈 80C51, Intel 公司在 1980 年推出的 80C51 系列单片机,但由于 80C51 单片机是早期产品,用户无法将自己编写的应用程序烧写到单片 机内的存储器,只能将程序交由芯片厂商代为烧写,并且是一次性的,非常不方便。 后来, 1989 年 Atmel 公司 推出了 一款 轰动业界的产品 AT89C51, Atmel 公司率先把 80C51 内核与 Flash 技术相结合。 与此同时 AT89C51 的单片机指令系统和管脚完全与 80C51 兼容。 换句话说,虽然制造工艺在不断地改进,但内核是没有什么变化,指令系统完全兼容的,所以我们常常把与 80C51 内核相同的单片机成为 51 系列单片机。 AT89C51 是一种带 4K 字节 FLASH 存储器 ( FPEROM— Flash Programmable and Erasable Read Only Memory)的低电压、高性能 CMOS 8 位微处理器,俗称 单片机。 AT89C51 是一种带 2K 字节闪存可编程可擦除 只读存储器 的单片机。 单片机的可擦除只读存储器可以反复擦除 1000 次 [13]。 该器件采用 ATMEL 高密度非易失存储器制造技术制造,与工业标准的 MCS51 指令集和输出管脚相兼容。 由于将多功能 8 位 CPU和闪烁存储器组合在单个芯片中, ATMEL的 AT89C51是一种高效微控制器。 AT89C51 单片机为很 多嵌入式系统 提供了一种灵活性高且价廉的方案。 ADC0808 ADC0808, ADC0809 的数据采集组件是一个 8 位模拟 数字转换器的单片CMOS 器件, 8 通道多路复用器和微处理器兼容控制逻辑。 8 位 A / D 转换器采用逐次逼近作为转换技术。 转换器的功能高阻抗斩波稳定比较器, 模拟开关树和连续 256R 分压器逼近寄存器。 8 通道多路复用直接访问的 8 路单端模拟信号。 设备不再需要外部零全规模的调整。 轻松连接微处理器 15 由锁存和解码的多路复用地址输入和锁存 TTL 三态输出。 ADC0808, ADC0809 的设计已优化通过结合几个 A/ D 转换的最可取的方面,转换技术。 ADC0808, ADC0809 的提供高速度快,精度高,最低温度的依赖,优秀。 长期的精度和可重复性,并消耗最小的功率。 这些特性使该器件理想适合的应用过程和机器控制消费电子和汽车应用。 对于 16 通道多路复用器与普通输出(采样 /保持 端 口) 跑马灯模块 俗话说得好 ,万丈高楼从地起,就像程序设计语言最喜欢的入门程序就是 Hello World 一样,学习单片机同样也应该循序渐进,而跑马灯就是一个单片机的入门实验,虽然简单,但是却很好的引领我们进入单片机的世界。 它很好的应用到了最简单的单片机系统设计和 I/O 口的知识。 下面就开始讲讲我的跑马灯设计吧。 实验目的:熟悉 I/O 口,对单片机有个初步认识 实验的功能: I/O 口的电平变动控制 LED 的亮与灭,使之人眼看出来仿佛就是LED 灯在往右移动,直到到达最后一个 LED 后又向左移动,如此反复循环。 实验运行环境: win 7 操作系统, Proteus 实验仿真硬件: AT89C51, CAP, CAPELEC, CRYSTAL, LEDRED, MINRES470k 跑马灯实验图: 图 31 跑马灯原理图 硬件连接思路: 首先 确定用哪个 I/O 端口,在这个实验里 面我选择 P2 端,其次选择 led 的连接方式,是共阴还是共阳。 在这里我选择的是共阳的连接方式,换句话 16 说, P2 端口输出低电平时, LED 被点亮。 详细连线如上图 31 所示。 软件设计流程图: N Y 图 32 跑马灯流程图 软件 设计思路: 在我这次的设计里面 设置一个输出初值 0FEH, 即 P2 端口设置初始值为 0xfe 在Keil 中定义为 P2=0xfe。 将其输出后,与 P2 端口相连的 LED 除去 点亮以外,其他的 LED 灯全部熄灭。 在延时 完成后, P2 的值向左移动一位,也就是 点亮其设置初始值,设定延时 值 开始 是否循环 7 次 向左移动 7次 延时时间到 向右循环移动 7 次 17 他的 LED 灯熄灭。 实现依次 ,„ 直到 点亮,同时其他灯熄灭,即循环七次后,又反过来依次从 , ... 这样循环点亮。 不断的循环 编码完成 ,进行编译,编译通过后会生成 HEX 文件,按照上面 Keil 和 Proteus 的联调中所说 的步骤,将 HEX 放入单片机中,也可以说“烧”进 AT89C51 中,结果如下: ( a) 跑马灯 D4 灯亮 ( b) 跑马灯 D5 灯亮 图 33 跑马灯效果图 由于在不断的运行 ,在这里我只截取了很小的一部分,不 过也可以说明一些问题,其中上一图中 D4 灯在点亮,其他灯都是熄灭,下一图为 D5 灯在点亮,其余的灯熄灭。 18 本节 小结: 这个实验,是单片机的入门 实验 ,看似简单,其实我们第一对单片机有了一个初步的认识,一个很简单的入门,其次我们用到了 P2 口,对于 P2 口的 I/O 输出功能有了一定的认识,其三,跑马灯在扩展一下对于有些简单的工程设计就能应用了,比如一下酒店外的循环点亮的广告灯组。 我们 不光只是为了做 实验 而 实验 ,更应该想想我们所做的 实验 以后能否应用到实际中来,如果不能,能不能在此基础上我们在加点什么功能,加点什么电路,可 以实现工程上的运用不。 除了程序设计外,对于Proteus 的使用,也是入门级别的,相信以后的 设计,会对 Proteus 越来越熟悉。 不足是,对于入门级别的 实验 ,我的延时采用的是软件延时,没有采用中断,可能定时时间不够精准,不过这也可以让同学们更能读懂程序,不至于一开始就对学习单片机没有信心。 不过,我以后的 实验 中会用到硬件延时(即定时器),毕竟定时器要更精确。 点阵显示模块 说完了跑马灯 实验 ,我们再来提高一点难度,说说点阵显示,说起点阵显示,我相信大家肯定都曾看见过,公交车的点阵显示屏,显示即将到达的站名。 大街上各种滚动显示字幕的广告,通告等等,应该说是一个应用得很广的设计。 在这里我讲讲点阵显示最基本的原理,在本次设计过程中,我显示的字幕不是汉字而是字母及数字。 实验目的:熟悉点阵的扫描方式,对点阵显示有个初步的认识 实验运行环境: win 7。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。