单片机接口基础

上传人:san****019 文档编号:20044904 上传时间:2021-01-30 格式:PPT 页数:124 大小:1.75MB
收藏 版权申诉 举报 下载
单片机接口基础_第1页
第1页 / 共124页
单片机接口基础_第2页
第2页 / 共124页
单片机接口基础_第3页
第3页 / 共124页
资源描述:

《单片机接口基础》由会员分享,可在线阅读,更多相关《单片机接口基础(124页珍藏版)》请在装配图网上搜索。

1、第 6章 MCS-51单片 机接口基础 6.1 汇编源程序的建立与编译 6.1.1 Proteus中的源程序设计与编译 6.1.2 Keil Vision中的源程序设计与编 译 6.2 Proteus与单片机电路的交互式仿真 与调试 6.2.1 加载目标代码 6.2.2 单片机系统的 Proteus交互仿真 6.2.3 调试菜单与调试窗口 6.2.4 观察窗口 6.3 I/O口输入输出应用 6.3.1 Proteus电路设计 6.3.2 源程序设计 6.3.3 Proteus调试与仿真 6.3.4 总结与提示 6.4 4 4矩阵式键盘识别技术 6.4.1 Proteus电路设计 6.4.2 源

2、程序设计 6.4.3 Proteus调试与仿真 6.4.4 总结与提示 6.5 动态扫描显示 6.5.1 Proteus电路设计 6.5.2 源程序设计 6.5.3 Proteus调试与仿真 6.5.4 总结与提示 6.6 8 8点阵 LED显示 6.6.1 Proteus电路设计 6.6.2 源程序设计 6.6.3 Proteus设计与仿真 6.6.4 总结与提示 6.7 I/O口的扩展 6.7.1 Proteus电路设计 6.7.2 源程序设计 6.7.3 Proteus调试与仿真 6.7.4 总结与提示 6.8 定时器 /计数器实验 6.8.1 Proteus电路设计 6.8.2 源程序

3、设计 6.8.3 Proteus设计与仿真 6.8.4 总结与提示 6.9 外部数据存储器扩展 6.9.1 Proteus电路设计 6.9.2 源程序设计 6.9.3 Proteus调试与仿真 6.9.4 总结与提示 6.10 外部中断实验 6.10.1 Proteus电路设计 6.10.2 源程序设计 6.10.3 Proteus调试与仿真 6.10.4 总结与提示 6.11 单片机与 PC机间的串行通信 6.11.1 Proteus电路设计 6.11.2 源程序设计 6.11.3 Proteus调试与仿真 6.11.4 总结与提示 6.12 单片机与步进电机的接口技术 6.12.1 Pro

4、teus电路设计 6.12.2 源程序设计 6.12.3 Proteus调试与仿真 6.12.4 总结与提示 6.13 单片机与直流电动机的接口技术 6.13.1 Proteus电路设计 6.13.2 源程序设计 6.13.3 Proteus调试与仿真 6.13.4 总结与提示 6.14 基于 DAC0832数模转换器的数控 电源 6.14.1 Proteus电路设计 6.14.2 源程序设计 6.14.3 Proteus调试与仿真 6.14.4 总结与提示 6.15 基于 ADC0808模数转换器的数字 电压表 6.15.1 Proteus电路设计 6.15.2 源程序设计 6.15.3 P

5、roteus调试与仿真 6.15.4 总结与提示 第 6章 MCS-51单片机接口基础 MCS-51系列单片机在很多产品中得到了广泛 的应用。在具体的工程实践中,单片机应用技术 所涉及的实践环节较多,且硬件投入较大,如果 因为控制方案有误而进行相应的开发设计,会浪 费较多的时间和经费。 Proteus仿真软件很好地解 决了这些问题,它可以像 Protel一样绘制硬件原理 图并实现硬件调试,再与 Keil编程软件进行联调, 实现对控制方案的验证。尤其对于初学单片机的 用户提供了极大的方便。 6.1 汇编源程序的建立与编译 Keil是德国 Keil公司开发的单片机编译 器,是目前最好的 51单片机

6、开发工具之一, 可以用来编译 C源代码和汇编源程序、连接 和重定位目标文件和库文件、创建 HEX文 件、调试目标程序等,是一种集成化的文 件管理编译环境。在 Proteus中,可以直接 与 Keil编程软件进行联调,进而实现对所设 计电路的验证。 6.1.1 Proteus中的源程序设计与编译 Proteus VSM提供了简单的文本编辑器,用它作为源程序的编辑环境。对于不同系列的单片机, VSM均提供了相应 的编译器,使用时可根据单片机的型号和语言要求来选取。 编译器有以下几种: ASEM51(51系列单片机编译器 ); ASM11(Motorola单片机编译器 ); AVRASM(Atmel

7、 AVR系列单片机编译器 ); AVRASM32(Atmel AVR系列单片机编译器 ); MPASM(PIC单片机编译器 ); MPASMSWIN(PIC单片机编译器 )。 1. 建立源程序文件 在 Proteus ISIS界面中单击菜单 Soure(源程序 ),在弹出 的下拉菜单中单击“ Add/Remove Source Files”( 添加 /移 开源程序 )选项,弹出如图 6-1所示对话框, 单击“ Code Generation Tool”(目标代码 生成工具 )下方框中按钮,弹出下拉菜单, 根据需要选择相应的编译器,例如 “ ASEM51”(51系列单片机编译器 )。 图 6-1

8、 Add/Remove Source Code Files对话框 在图 6-1中单击“ New”按钮,弹出如图 6-2 所示的对话框,在文件名框中输入新建源程 序文件名“ mydesign”,单击“打开”按钮, 弹出图 6-2中所示的小对话框,选择“是”按 钮,新建的源程序文件就添加到图 6-1中的 “ Source Code Filename”方框中,如图 6-3 所示。同时在 ISIS界面的“ Source”菜单中也 加入了源程序文件名“ mydesign.asm”,如 图 6-4所示。 图 6-2 新建源程序文件对话框 图 6-3 源程序添加结果 图 6-4 菜单 Source中加载的源

9、程序文件 2. 编写源程序代码 单击菜单 【 Source】 【 mydesign.asm】 ,出现图 6-5所示的源程序编 辑窗口。编写源程序后存盘退出。 图 6-5 源程序编辑窗口 3. 源程序编译 (1) 编译器设置。 第一次使用编译器时需进行相关的设置,单击菜单 【 Source】 【 Define Code Generation Tools】 ,出现图 6-6所示界面,本例中实际设 置结果如图 6-6所示 (2) 编译源程序,生成目标代码文件。 单击 【 Source】 【 Build All】 ,编译结果在弹出的编译日志对话框中。 如果没有错误便成功生成目标代码“ .hex”文件。

10、本例中生成的目标代码文 件为“ MYDESIGN.HEX”。 图 6-6 编译器设置界面 6.1.2 Keil Vision中的源程序设计与编译 在 Keil集成开发环境下使用工程的方法来管理文 件,而不是单一文件的模式,所有的文件包括源程 序 (如 C程序、汇编程序 )、头文件等都可以放在工程 项目文件里统一管理。对于刚刚使用 Keil的用户, 一般可以按照下面的步骤来创建一个自己的应用程 序: (1) 一个工程项目文件; (2) 选择目标器件 (例如,选择 ATMEL公司的 AT89C51); 设置软硬件调试环境; (4) 创建源程序文件并输入程序代码; (5) 保存创建的源程序项目文件;

11、 (6) 把源程序文件添加到项目中。 具体如何建立应用程序并进行仿真调试,我们将 通过实验来详细说明。 1. 建立一个项目 双击桌面快捷图标即可进入如图 6-7所示的集成开 发环境编辑操作界面,主要包括三个窗口:工程项 目窗口、编辑窗口和输出窗口。 单击 Project 菜单,在弹出的下拉菜单中选中 “ New Project”选项,新建一个项目,如图 6-8所示。 图 6-7 Vision2编辑操作界面 图 6-8 Project界面 然后选择要保存的路径,输入工程文件的名字 (比如保存到 uv目录里,工程文件的名字为 “ shiyan1”),如图 6-9所示,然后单击“保存”按 钮。 这时

12、会弹出一个对话框,要求选择单片机 的型号。这里可以根据所使用的单片机来选 择, Keil几乎支持所有 51核的单片机,这里 以 Atmel的 89C51来说明,如图 6-10所示。 图 6-9 Project保存设置界面 图 6-10 选择器件 首先选择 Atmel公司,然后单击左边的“ +”号选择 AT89C51 之后,右边栏 是对这个单片机的基本说明,然后单击“确定”,在随后弹出的对话框单击 “否”。 完成以上步骤后,屏幕如图 6-11所示 首先进行选项设置,将鼠标指针指向“ Target 1” 并单击右键,再从弹出的右键菜单中单击“ Options for Target”选项,如图 6-

13、12所示。 图 6-11 初始化编辑界面 从弹出的“ Options”对话框中选择 “ Output”标签栏,并按如图 6-13所示设置 其中各项。 图 6-12 选择“ Options for Target”选项 图 6-13 “Output”标签栏 2. 建立一个新的 ASM汇编语言程序并编译 下面开始编写源程序。 (1) 在菜单栏中,单击“ File”菜单,再在下拉菜单中单击 “ New”选项,或直接单击工具栏的快捷图标来建立了一 个新的编辑窗口。此时光标在编辑窗口里闪烁,这时可以 输入用户的应用程序了。建议首先保存该空白文件,单击 菜单上的“ File”,在下拉菜单中选中“ Save

14、As”选项,在 弹出对话框的“文件名”栏右侧编辑框中,输入欲使用的 文件名,同时,必须输入正确的扩展名,如“ Text1.asm”, 然后,单击“保存”按钮,如图 6-14所示 注意:如果用语言编写程序,则扩展名 为“ .c”;如果用汇编语言编写程序,则扩展 名为“ .asm”,且必须添加扩展文件名。 (2) 回到编辑界面后,单击“ Target 1”前面 的“”号,然后在“ Source Group 1”上单 击右键,弹出如图 6-15所示的快捷菜单。 图 6-14 保存源程序 然后单击“ Add File to GroupSource Group 1”,打开 如图 6-16所示对话框,在“

15、文件类型”处默认为“ C Source file(*.c)”,因为前面我们保存的是汇编语言的文件,故需要 选择“ Asm Source file(*.s*;*.src;*.a*)”,这样在上面就可以 看到刚才保存的汇编语言文件“ Text1.asm”,双击该文件则 自动添加至项目,单击“ Close”关闭对话框。 对比图 6-17和图 6-15,可以看出二者的不同点:在添加 了汇编语言文件后,在“ Source Group 1”文件夹前面出现 了一个“ +”号,单击“ +”号展开就看到了刚才添加的 “ Text1.asm”文件。 图 6-15 弹出右键菜单 (3) 然后就可以在右侧的编辑区输入

16、汇编源程序了。 在输入指令时,读者可以看到事先保存待编辑文件 的好处: Keil会自动识别关键字,并以不同的颜色 提示用户加以注意,这样会使用户少犯错误,有利 于提高编程效率。程序输入完毕后别忘了再次保存, 如图 6-18所示。 图 6-16 添加文件对话框 图 6-17 添加文件后工程栏的变化 (4) 程序文件编辑完毕后,单击“ Project”菜单, 选中“ Built target”选项 (或者使用快捷键 F7),或者 单击工具栏的快捷图标来进行编译,如图 6-19所示 图 6-18 程序输入完毕后状态 图 6-19 编译菜单 (5) 如果有错误,则在最后的输出窗口中会出现 所有错误所在

17、的位置和错误的原因,并有“ Target not created”的提示。双击该处的错误提示,在编辑 区对应错误指令处左面出现蓝色箭头提示,然后对 当前的错误指令进行修改,如图 6-20所示 图 6-20 错误提示 (6) 将所有提示过的错误进行修改,然后再 次重复 (4)的操作进行编译,直至出现 “ shiyan1 - 0 Error(s), 0 Warning(s)”,说 明编译完全通过,如图 6-21所示。 图 6-21 编译通过提示 3. 调试并仿真 编译成功后,就可以进行调试并仿真了。单击 “ Project”菜单,在下拉菜单中单击“ Start/Stop Debug Session

18、”(或者使用快捷键 Ctrl+F5),或者单 击工具栏的快捷图标就可以进入调试界面,如图 6- 22所示 图 6-22 调试界面 左面的工程项目窗口给出了常用的寄存器 r0-r7 以及 a、 b、 sp、 dptr、 pc、 psw等特殊功能寄存器 的值。在执行程序的过程中可以看到,这些值会随 着程序的执行发生相应的变化。 在存储器窗口的地址栏处输入 C: 0000H后回车, 则可以观看所有单片机片内程序存储器的内容,如 图 6-23所示,下面用横线画出来的部分就是已经编 辑的源程序转化成的机器语言的十六进制数 (或者说 是对应的机器码 )。如果在存储器窗口的地址栏处输 入 D: 00H后回车

19、,则可以观看所有单片机片内数 据存储器的内容 图 6-23 存储器窗口 在联机调试状态下可以启动程序全速运行、单步运 行、设置断点等,单击菜单“ Debug /Go”选项,启动用 户程序全速运行。 下面介绍几种常用的调试命令及方法。 (1) 复位 CPU 用“ Debug”菜单或工具栏的“ Reset CPU”命令可以 复位 CPU。在不改变程序的情况下,若想使程序重新开 始运行,执行此命令即可。执行此命令后程序指针返回 到 000H地址单元。另外,一些内部特殊功能寄存器在 复位期间也将重新赋值。例如, A将变为 00H, DPTR变 为 0000H, SP变为 07H, I/O口变为 0FF

20、H。 (2) 全速运行 (F5) 用“ Debug”工具栏的“ Go”或快捷命令“ Run” 命令按钮,即可实现全速运行程序。当然若程序中 已经设置断点,程序将执行到断点处,并等待调试 指令。 (3) 单步跟踪 (F11) 用“ Debug”工具栏的“ Step”或快捷命令 “ StepInto”命令按钮,可以单步跟踪程序。每执行 一次此命令,程序将运行一条指令 (以指令为基本执 行单元 )。当前的指令用黄色箭头标出,每执行一步 箭头都会移动,已执行过的语言呈绿色。在汇编语 言调试下,可以跟踪到每一个汇编指令的执行。 Vision2处于全速运行期间, Vision2不允许对任何 资源的查看,也

21、不接受其他命令。 (4) 单步运行 (F10) 用“ Debug”工具栏的“ Step Over”或快捷 命令“ Step Over”按钮,即可实现单步运行 程序,此时单步运行命令将把函数和函数调 用当作一个实体来看待,因此单步运行是以 语句 (该语句不管是单一命令行还是函数调用 ) 为基本执行单元。 (5) 执行返回 (Ctrl+F11) 在用单步跟踪命令跟踪到子函数或子程序内 部时,使用“ Debug”菜单栏中的“ Step Out of Current Function”或快捷命令按钮“ Step Out”, 即可将程序的 PC指针返回到调用此子程序或函数 的下一条语句。 (6) 停止调

22、试 (Ctrl+F5) 由于“ Led_Light”程序使用了系统资源 P1口, 为了更好地观察这些资源的变化,用户可以打开 它们的观察窗口。选择“ PeripheralsI/O- PortsPort1”命令,即可打开并行 I/O口 P1的观察 窗口。 6.2 Proteus与单片机 电路的交互式仿真与 调试 6.2.1 加载目标代码 双击单片机 AT89C51,打开其属性编辑框,在 “ Program File”栏中,单击打开按钮,选取目标代 码文件,这里是“ MYDESIGN.HEX”。在“ Clock Frequency”栏中设置时钟频率为 12MHz,如图 6-25 所示。因为仿真运行

23、 在 Proteus ISIS界面中编辑电路原理图实例,如图 6-24所示 图 6-24 实例电路原理图 时的时钟频率是以单片机属性中设置的频率值 为准,所以在 Proteus ISIS界面中设计电路原理图 时,可以略去单片机的时钟电路。另外,复位电 路也可略去。对于 MCS-51系列单片机而言,在不 进行电路电气检测时, EA引脚也可悬空。 图 6-25 加载目标代码文件和时钟设置 6.2.2 单片机系统的 Proteus交互仿真 在 Proteus仿真界面中单击按钮,全速启动仿真, 此时电路中的 LED不亮。用鼠标单击电路图中的按 钮,进行交互仿真。单击一次按钮, LED灯亮,再 单击一次

24、, LED灯灭,如此循环交替。本实例仿真 片段如图 6-26所示。单击仿真按钮,可停止仿真。 图 6-26 实例仿真片段 6.2.3 调试菜单与调试窗口 系统在全速仿真运行时不显示调试窗口,可单击暂停 按钮,然后单击 Proteus ISIS界面的“ Debug”菜单,弹出 如图 6-27所示的下拉菜单。从图中可以看出,调试菜单包 含有 3个存储器窗口,调试过程中可分别打开这 3个存储 器窗口进行观察。 1. 单片机寄存器窗口 通过菜单 【 Debug】 【 8051 CPU Registers-U1】 打开单片机寄存器窗口,如图 6- 28所示。里面有常用的 SFR,如 SP、 PC、 PS

25、W、 R0 R7、 ACC及将要执行的指令等。在本窗口 内右击,可以设置窗口的字体和颜色。 2. 单片机 SFR 窗口 通过菜单 【 Debug】 【 8051 CPU SFR Memory-U1】 打开单片机的 SFR窗口,如图 6-29 所示。 图 6-27 “Debug”下拉菜单 3. 单片机 IDATA窗口 通过菜单 【 Debug】 【 8051 CPU Internal(IDATA)Memory-U1】 打开单片机的 IDATA窗口,如 图 6-30所示。 对于单片机的 SFR寄存器,既可以从单片机的寄存器窗口 中查看,也可以在 SFR寄存器窗口中查看。 在 SFR、 IDATA窗

26、口中右击,可弹出该窗口的设置菜单, 如图 6-31所示。可使用“ Goto”命令快速运动到指定的显示 单元,还可复制数据或改变显示方式等。 图 6-28 单片机寄存器窗口 图 6-29 单片机 SFR窗口 图 6-30 单片机 IDATA窗口 图 6-31 单片机 IDATA窗口的快捷菜单 6.2.4 观察窗口 虽然通过以上方法可以观察单片机各个存储器的 内容,但因显示内容比较分散,观察起来不方便。 对此, Proteus又同时提供了一个观察窗口“ Watch Window”,它可以将所关心的各项寄存器的内容集 中于一个窗口中,观察起来十分方便,克服了上述 缺点。 1. 观察项添加 通过菜单

27、【 Debug】 【 Watch Window】 打开 空白的观察窗口,在观察窗口内右击,弹出快捷菜 单,如图 6-32所示。由该菜单可添加、删除观察项, 设置观察项的数据类型,显示格式以及设置窗口的 字体、颜色等。 若单击“ Add Items(By Name)”项,便会弹出如图 6-33所 示的对话框,双击相应的 SFR寄存器名称,即可以观察项名 称方式将观察项添加到观察窗口中。也可选择以观察项的地 址来添加观察项的方式。添加了观察项的观察窗口如图 6-34 所示。 图 6-32 观察窗口及快捷菜单 2. 观察项删除 要删除已添加的观察项,有两种方法: 在观察窗口单击选中相应的观察项,按键

28、盘上 的“ Del”键即可。 在观察窗口右击相应的观察项,在弹出的快捷 菜单中单击“ Delete Item”选项。 图 6-33 “Add Memory Item”对话框 图 6-34 添加了观察项的观察窗口 3. 观察点条件设置 在仿真运行的过程中,还可以通过设置“观察点 条件”的手段来触发中断,以满足某些特殊条件断 点的要求。具体方法:在观察窗口内右击,在弹出 的快捷菜单中单击“ Watchpoint Condition”项,弹 出观察点条件设置框,如图 6-35所示。 图 6-35 观察点条件设置框 观察点条件设置分为两级,包括“全局断点条件设 置 (Global Break Cond

29、ition)”,如图 6-35中的上半部分 所示,和“观察项的断点表达式 (Item Break Expression)”,如图 6-35的下半部分所示。下半部分 中“ Item”项的内容为观察窗口中添加的观察项,可单 击按钮,在下拉列表中选择要设置断点的观察项。 “ Condition”项为观察项的条件,“ Mask”项为观察项 的约束条件,它们具体包含的内容如图 6-35的右边所 示。 内容 利用单片机 AT89C51制作一个 0 99计数器 手动计数器,用其 P2.0 P2.7接一个共阴极数码 管,输出显示 0 99计数值的个位,用 P0.0 P0.7接数码管输出显示计数值的十位数。 P

30、3.3引 脚外接一轻触开关,要求每按下一次按键,计数 值加 1,当计数值超出 99后自动返回 0重新开始循 环计数。 训练目的 掌握 AT89C51单片机 I/O口输入输出的应用方 法; 掌握单片机驱动 7段数码管显示数字的编程方法。 6.3 I/O口输入输出应用 6.3.1 Proteus电路设计 1. 元件清单列表 打开 Proteus ISIS编辑环境,按表 6-1所列的清单添加元件。 元 件 名 称 所 属 类 所 属 子 类 AT89C51 Microprocessor ICs 8051 Family CAP Capacitors Generic CAP-ELEC Capacitor

31、s Generic CRYSTAL Miscellaneous RES Resistors Generic 7SEG-COM-CAT-GRN Optoelectronics 7-Segment Displays BUTTON Switches&Relays Switches 表 6-1 元件清单 2. 电路原理图 元件全部添加后,在 Proteus ISIS的编辑区域中 按图 6-36所示的原理图 (晶振和复位电路略 )连接硬 件电路。 图 6-36 电路原理图 6.3.3 Proteus调试与仿真 1. 建立程序文件 (1) 打开 Keil Vision3,新建 Keil项目,选择 AT89

32、C51单片机作为 CPU; (2) 新建汇编源文件,编写程序并将其导入到 “ Source Group 1”中; (3) 在“ Options for Target”对话框中,选中 “ Output”选项卡中的“ Create HEX File”选项和 “ Debug”选项卡中的“ Use: Proteus VSM Simulator”选项; (4) 编译源程序,修改程序中的错误直至通过。 2. 加载目标代码文件 (1) 在 Proteus ISIS中,左键双击 AT89C51元件打开 “ Edit Component”对话框,设置单片机的频率为 12MHz; (2) 在该窗口的“ Progr

33、am File”栏中,选择先前在 Keil中编译产生的“ .HEX”文件; (3) 在 Proteus ISIS菜单栏中选择 【 File】 【 Save Design】 选项,保存设计; (4) 在 Proteus ISIS菜单栏中,打开“ Debug”下拉菜 单,在菜单中选择“ Use Remote Debug Monitor”选项, 以支持与 Keil的联调。 3. 进行调试与仿真 (1) 在 Keil的菜单栏中选择 【 Debug】 【 Start/Stop Debug Session】 选项,或者在工具栏中直接单击图 标,进入调试环境; 3. 进行调试与仿真 (1) 在 Keil的菜

34、单栏中选择 【 Debug】 【 Start/Stop Debug Session】 选项,或者在工 具栏中直接单击图标,进入调试环境; (2) 按“ F5”键或图标,顺序执行程序; (3) 在 Proteus ISIS界面中,按动开关,可看 到数码管的显示值随之加 1,如图 6-37所示。 6.3.4 总结与提示 图 6-37 程序运行结果 AT89C51单片机的 P0口在作为普通 I/O使用时必须 6.4 4 4矩阵式键盘识别技术 内容 键盘是一组按键的集合 ,它是最常用的单片机输 入设备。操作人员可以通过键盘输入数据或命令, 实现简单的人 机通信。键盘分编码键盘和非编码 键盘。靠软件识别

35、的为非编码键盘。从结构上来分 又可以分为独立连接式和行列式 (矩阵式 )两类。 加上拉电阻,否则不能准确输入或输出高低电平。 仿真时可通过观察 P0口的电平状态来体会这一点。 在 Proteus与 Keil的联调过程中,可以综合运用 Keil 中的多种调试功能来详细观察电路的工作情况。 6.4.1 Proteus电路设计 为了减少键盘占用单片机的 I/O线数目,通常都将 键盘排列成矩阵式。 训练目的 掌握软件键盘去抖的方法; 掌握键盘识别编程的方法。 1. 元件清单列表 打开 Proteus ISIS编辑环境,按表 6-2所列的清单添加 元件。 元 件 名 称 所 属 类 所 属 子 类 AT

36、89C51 Microprocessor ICs 8051 Family CAP Capacitors Generic CAP-ELEC Capacitors Generic CRYSTAL Miscellaneous RES Resistors Generic 7SEG-COM-CAT-GRN Optoelectronics 7-Segment Displays BUTTON Switches&Relays Switches 表 6-2 元件表清单 2. 电路原理图 元件全部添加后,在 Proteus ISIS的编辑区域中 按图 6-38所示的原理图 (晶振和复位电路略 )连接硬 件电路。

37、图 6-38 电路原理图 6.4.3 Proteus调试与仿真 参照 6.3.3节建立程序文件,加载目标代码文件, 进入调试环境,执行程序,在 Proteus ISIS界面中, 按下各个按键,观察数码管上的显示和所标的键号 是否对应。 6.4 源程序设计 略 6.4.4 总结与提示 在 Proteus与 Keil的联调过程中,可以综合运用 Keil中的多种调试功能来详细观察电路的工作情 况。 在 Proteus中仿真时可以降低单片机的工作频 率,观察电路中各接点的电平变化情况,看是否 和所编程序符合,以增强对程序的理解。 6.5 动态扫描显示 内容 单片机应用系统中使用的显示器件主要有发光二

38、极管,简称 LED(Light Emitting Diode);液晶显示, 简称 LCD(Liquid Crystal Display)。 LED有静态显示 和动态显示两种方式,在多位 LED显示时,为了简 化电路,降低成本,将所有位的段线并联在一起, 由一个 8位 I/O控制。而共阴 (或共阳 )极公共端分别 由相应的 I/O线控制,实现各位的分时选通。 训练目的 掌握 LED动态扫描的显示方法; 掌握单片机驱动 7段数码管显示数字的编程方法; 掌握串入并出集成芯片 74LS595的使用方法。 6.5.1 Proteus电路设计 1. 元件清单列表 打开 Proteus ISIS编辑环境,按

39、表 6-3所列的清单添加元件 元 件 名 称 所 属 类 所 属 子 类 AT89C51 Microprocessor ICs 8051 Family CAP Capacitors Generic CAP-ELEC Capacitors Generic CRYSTAL Miscellaneous RES Resistors Generic 7SEG-MPX8-CA-BLUE Optoelectronics 7-Segment Displays 74LS595 74LS Serial Registers 表 6-3 元 件 清 单 2. 电路原理图 元件全部添加后,在 Proteus ISIS的

40、编辑区域中 按图 6-39所示的原理图 (晶振和复位电路略 )连接硬 件电路。 图 6-39 电路原理图 6.5.2 源程序设计 略 6.5.3 Proteus 调试与仿真 参照 6.3.3节建立程序文件、加载目标代码文件,进入调试环境后执行程序,降低单片机的工作频率,观察动 态显示的过程。 6.5.4 总 结 与 提 示 AT89C51单片机的 P0口在作为普通 I/O使用时必须加上 拉电阻,否则不能准确输入或输出高低电平。仿真时可 通过观察 P0口的电平状态来体会这一点。 在 Proteus与 Keil的联调过程中,可以综合运用 Keil中的 多种调试功能来详细观察电路的工作情况。 6.6

41、 8 8点阵 LED显示 内容 用单片机 AT89C51驱动 8 8点阵 LED显示屏,轮流显 示 0 9的数字。显示方式采用自右向左拉幕式显示。 训练目的 掌握 8 8点阵 LED显示屏的使用方法; 掌握单片机进行拉幕式显示的编程方法。 6.6.1 Proteus电路设计 1. 元件清单列表 打开 Proteus ISIS编辑环境,按表 6-4所列的清 单添加元件。 元 件 名 称 所 属 类 所 属 子 类 AT89C51 Microprocessor ICs 8051 Family CAP Capacitors Generic CAP-ELEC Capacitors Generic CR

42、YSTAL Miscellaneous RES Resistors Generic 74LS245 TTL 74LS Series Tansceivers MATRIX-8 8-RED Optoelectronics Dot Matrix Displays RESPACK-8 Resistors Resistors Packs 表 6-4 元件清单 2. 8 8点阵 LED元件介绍 Proteus ISIS中的 8 8点阵 LED元件原理图如图 6- 40(a)所示。由于该元件引脚没有任何标注,因此在 使用之前必须进行引脚测试,以确定行线和列线的 顺序及极性。图 6-40(b)给出了一种进行引

43、脚测试的 方法,根据测试结果便很容易确定该元件的电路接 法。 图 6-40 8 8点阵 LED元件原理图及引脚测试 3. 电路原理图 元件全部添加后,在 Proteus ISIS的编辑区域中按图 6-41所示的原理图连接硬件电路。 图 6-41 电路原理图 6.6.3 Proteus设计与仿真 参照 6.3.3节建立程序文件、加载目标代码文件, 进入调试环境后执行程序,在 Proteus ISIS界面中 的仿真片断如图 6-42所示 图 6-42 仿真片段 6.6.4 总 结 与 提 示 程序编写中,必须在 TCOUNT数值是 8的整数倍时再进 行下面的移位操作,否则显示在衔接时会乱。 6.7

44、 I/O口的扩展 内容 8255是微机并行可编程 I O口扩展芯片。对 8255 输入不同的指令可改变 I O口的工作方式。 8255与 单片机系统连接方式简单,工作方式由程序设定。 背景知识 已掌握 Keil Vision3开发软件的使用方法; 已掌握常用外部 RAM的基本操作。 训练目的 掌握单片机与 8125的接口原理,熟悉 8255初始化 编程,以及输入输出的设计方法。 6.7.1 Proteus电路设计 1元件清单列表 打开 Proteus ISIS编辑环境,按表 6-5所列的清 单添加元件 元 件 名 称 所 属 类 所 属 子 类 AT89C51 Microprocessor I

45、Cs 8051 Family 74LS373 74LS Generic LED-BLUE Active Generic 8255A Micro RES Resistors Generic RESPACK-8 Switches&Relays Switches 74LS04 Device 表 6-5 元 件 清 单 2. 电路原理图 元件全部添加后,在 Proteus ISIS的编辑区域中按图 6-43所示的原理图连接硬件电路。 P 0 0 P 0 1 P 0 2 P 0 3 P 0 4 P 0 5 P 0 6 P 0 7 P 0 0 P 0 1 P 0 7 P 0 0 P 0 1 P 0 2 P

46、 0 3 P 0 4 P 0 5 P 0 6 P 0 7 X T A L 2 18 X T A L 1 19 A L E 30 EA 31 P S E N 29 RS T 9 P 0 .0 /A D 0 39 P 0 .1 /A D 1 38 P 0 .2 /A D 2 37 P 0 .3 /A D 3 36 P 0 .4 /A D 4 35 P 0 .5 /A D 5 34 P 0 .6 /A D 6 33 P 0 .7 /A D 7 32 P 1 . 0 1 P 1 . 1 2 P 1 . 2 3 P 1 . 3 4 P 1 . 4 5 P 1 . 5 6 P 1 . 6 7 P 1 .

47、7 8 P 3 .0 /R X D 10 P 3 .1 /T X D 11 P 3 .2 /I NT 0 12 P 3 .3 /I NT 1 13 P 3 .4 /T 0 14 P 3 .7 / R D 17 P 3 . 6 / W R 16 P 3 .5 /T 1 15 P 2 .7 /A 1 5 28 P 2 .0 / A 8 21 P 2 .1 / A 9 22 P 2 .2 /A 1 0 23 P 2 .3 /A 1 1 24 P 2 .4 /A 1 2 25 P 2 .5 /A 1 3 26 P 2 .6 /A 1 4 27 U1 A T 8 9 C5 1 D0 3 Q0 2 D1

48、4 Q1 5 D2 7 Q2 6 D3 8 Q3 9 D4 13 Q4 12 D5 14 Q5 15 D6 17 Q6 16 D7 18 Q7 19 OE 1 LE 11 U3 7 4 L S 3 7 3 2 3 4 5 6 7 8 9 1 V C C 1 2 3 4 5 6 13 12 11 10 9 8 1 2 3 4 D0 34 D1 33 D2 32 D3 31 D4 30 D5 29 D6 28 D7 27 RD 5 WR 36 A0 9 A1 8 RE S E T 35 CS 6 P A 0 4 P A 1 3 P A 2 2 P A 3 1 P A 4 40 P A 5 39 P

49、 A 6 38 P A 7 37 P B 0 18 P B 1 19 P B 2 20 P B 3 21 P B 4 22 P B 5 23 P B 6 24 P B 7 25 P C 0 14 P C 1 15 P C 2 16 P C 3 17 P C 4 13 P C 5 12 P C 6 11 P C 7 10 U2 8 2 5 5 A 图 6-43 电路原理图 6.7.2 源程序设计 1. 流程图 图 6-44为程序流程图。 图 6-44 流程图 6.7.3 Proteus调试与仿真 参照 6.3.3节建立程序文件、加载目标代码文 件,进入调试环境,单击 Proteus ISIS下面

50、的仿真 运行键,即可看到如图 6-45所示的运行结果。 P 0 0 P 0 1 P 0 2 P 0 3 P 0 4 P 0 5 P 0 6 P 0 7 P 0 0 P 0 1 P 0 7 P 0 0 P 0 1 P 0 2 P 0 3 P 0 4 P 0 5 P 0 6 P 0 7 X T A L 2 18 X T A L 1 19 A L E 30 EA 31 P S E N 29 RS T 9 P 0 .0 /A D 0 39 P 0 .1 /A D 1 38 P 0 .2 /A D 2 37 P 0 .3 /A D 3 36 P 0 .4 /A D 4 35 P 0 .5 /A D 5

51、34 P 0 .6 /A D 6 33 P 0 .7 /A D 7 32 P 1 . 0 1 P 1 . 1 2 P 1 . 2 3 P 1 . 3 4 P 1 . 4 5 P 1 . 5 6 P 1 . 6 7 P 1 . 7 8 P 3 .0 /R X D 10 P 3 .1 /T X D 11 P 3 .2 /I NT 0 12 P 3 .3 /I NT 1 13 P 3 .4 /T 0 14 P 3 .7 / R D 17 P 3 . 6 / W R 16 P 3 .5 /T 1 15 P 2 .7 /A 1 5 28 P 2 .0 / A 8 21 P 2 .1 / A 9 22 P

52、 2 .2 /A 1 0 23 P 2 .3 /A 1 1 24 P 2 .4 /A 1 2 25 P 2 .5 /A 1 3 26 P 2 .6 /A 1 4 27 U1 A T 8 9 C5 1 D0 3 Q0 2 D1 4 Q1 5 D2 7 Q2 6 D3 8 Q3 9 D4 13 Q4 12 D5 14 Q5 15 D6 17 Q6 16 D7 18 Q7 19 OE 1 LE 11 U3 7 4 L S 3 7 3 2 3 4 5 6 7 8 9 1 V C C 1 2 3 4 5 6 13 12 11 10 9 8 1 2 3 4 D0 34 D1 33 D2 32 D3 31

53、D4 30 D5 29 D6 28 D7 27 RD 5 WR 36 A0 9 A1 8 RE S E T 35 CS 6 P A 0 4 P A 1 3 P A 2 2 P A 3 1 P A 4 40 P A 5 39 P A 6 38 P A 7 37 P B 0 18 P B 1 19 P B 2 20 P B 3 21 P B 4 22 P B 5 23 P B 6 24 P B 7 25 P C 0 14 P C 1 15 P C 2 16 P C 3 17 P C 4 13 P C 5 12 P C 6 11 P C 7 10 U2 8 2 5 5 A 图 6-45 程序运行结果

54、 6.7.4 总结与提示 采用 8255并口扩展芯片的 PA0口,设计一个 4 4键的矩阵键盘扫描程序。 6.8 定时器 /计数器实验 内容 利用单片机 AT89C51,控制一发光二极管,亮 1 秒,关闭 1秒,循环进行;要求使用定时器 /计数器 控制。 训练目的 掌握 AT89C51单片机定时器 /计数器混合编程的使 用方法 6.8.1 Proteus电路设计 1. 元件清单列表 打开 Proteus ISIS编辑环境,按表 6-6所列的清单 添加元件 元 件 名 称 所 属 类 所 属 子 类 AT89C51 Microprocessor ICs 8051 Family CAP Capac

55、itors Generic CAP-ELEC Capacitors Generic CRYSTAL Miscellaneous RES Resistors Generic LED-BLUE Active SWITCH Active 表 6-6 元件清单 2. 电路原理图 元件全部添加后,在 Proteus ISIS的编辑区域中按图 6-46所示的原理图连接硬件电路。 P 1 0 P 1 0 X T A L 2 18 X T A L 1 19 A L E 30 EA 31 P S E N 29 RS T 9 P 0 .0 /A D 0 39 P 0 .1 /A D 1 38 P 0 .2 /A

56、D 2 37 P 0 .3 /A D 3 36 P 0 .4 /A D 4 35 P 0 .5 /A D 5 34 P 0 .6 /A D 6 33 P 0 .7 /A D 7 32 P 1 .0 /T 2 1 P 1 .1 /T 2 E X 2 P 1 . 2 3 P 1 . 3 4 P 1 . 4 5 P 1 . 5 6 P 1 . 6 7 P 1 . 7 8 P 3 .0 /R X D 10 P 3 .1 /T X D 11 P 3 .2 /I NT 0 12 P 3 .3 /I NT 1 13 P 3 .4 /T 0 14 P 3 .7 / R D 17 P 3 . 6 / W R 1

57、6 P 3 .5 /T 1 15 P 2 .7 /A 1 5 28 P 2 .0 / A 8 21 P 2 .1 / A 9 22 P 2 .2 /A 1 0 23 P 2 .3 /A 1 1 24 P 2 .4 /A 1 2 25 P 2 .5 /A 1 3 26 P 2 .6 /A 1 4 27 U1 A T 8 9 C5 2 X1 CR Y S T A L C1 1nF C2 1nF R1 2 0 0 C3 2 2 u F R2 1k D1 L E D- B L U E 图 6-46 电路原理图 6.8.3 Proteus设计与仿真 6.3.3节建立程序文件、加载目标代码文件,进入 调试

58、环境执行程序,在 Proteus ISIS界面中,可以 看到, LED灯亮一秒,关一秒,循环进行,如图 6- 47 X T A L 218 X T A L 119 A L E30 EA31 P S E N29 R S T9 P 0.0 /A D 0 39 P 0.1 /A D 1 38 P 0.2 /A D 2 37 P 0.3 /A D 3 36 P 0.4 /A D 4 35 P 0.5 /A D 5 34 P 0.6 /A D 6 33 P 0.7 /A D 7 32 P 1.0 /T 21 P 1.1 /T 2 E X2 P 1. 23 P 1. 34 P 1. 45 P 1. 56

59、P 1. 67 P 1. 78 P 3.0 /R X D 10 P 3.1 /T X D 11 P 3.2 /I N T 0 12 P 3.3 /I N T 1 13 P 3.4 /T 0 14 P 3.7 / R D 17 P 3. 6 / W R 16 P 3.5 /T 1 15 P 2.7 /A 1 5 28 P 2.0 / A 8 21 P 2.1 / A 9 22 P 2.2 /A 1 0 23 P 2.3 /A 1 1 24 P 2.4 /A 1 2 25 P 2.5 /A 1 3 26 P 2.6 /A 1 4 27 U1 A T 89 C 5 2 D1 LE D - B L U

60、 E R3 10 图 6-47 运行结果 6.8.4 总结与提示 尝试改变计数器的值,使延时的时间更长。 6.9 外部数据存储器扩展 内容 用 SRAM6264扩展单片机 AT89C51的外部数 据存储器,通过仿真窗口观察向 6264写入数据的 过程。 训练目的 掌握 AT89C51扩展外部数据存储器时的接口电 路设计方法; 加深单片机对外部数据存储器进行读写过程的 理解。 6.9.1 Proteus电路设计 1. 元件清单列表 打开 Proteus ISIS编辑环境,按表 6-7所列的清 单添加元件 元 件 名 称 所 属 类 所 属 子 类 AT89C51 Microprocessor I

61、Cs 8051 Family CAP Capacitors Generic CAP-ELEC Capacitors Generic CRYSTAL Miscellaneous RES Resistors Generic 74LS373 TTL 74HC Series Flip Flops&Latches 6264 Memory Ics Static RAM 表 6-7 元件清单 2. 电路原理图 元件全部添加后,在 Proteus ISIS的编辑区域中按图 6-48所示的原理图 (复位和振荡电路略 )连接硬件电 路。 图 6-48 电路原理图 6.9.3 Proteus调试与仿真 参照 6.3

62、.3节建立程序文件、加载目标代码文件,进入调试 环境,然后执行下述操作: (1) 在 Proteus ISIS界面中,单击按钮启动仿真。 (2) 通过菜单 【 Debug】 【 Memory ContentsU1 】 ,打 开 6264存储器窗口; (3) 通过菜单 【 Debug】 【 DebugWatch Window 】 , 在弹出的观察窗口右击,选择“以观察项的名称添加观察 项”,在弹出的对话框中添加累加器 ACC和数据指针 DPTR。 (4) 单击按钮暂停仿真,可观察程序运行的中间结果,如图 6-49所示。 6.9.4 总结与提示 受计算机性能的影响,以及 Proteus软件 运行仿

63、真时需要处理大量的数据,会出现仿 真结果的画面刷新率跟不上程序运行的速度, 致使不能看到存储器内容随程序运行的动态 变化,仿真时可手工刷新画面观察。 图 6-49 程序运行结果 6.10 外部中断实验 内容 MCS-51是一个多中断源的单片机,以 8051为例, 有三类共五个中断源,分别是两个外部中断,两个 定时器中断和一个串行中断。外部中断是由外部原 因引起的,共有两个中断源,即外部中断 0和外部 中断 1。它们的中断请求信号分别由引脚 (P3.2)和 (P3.3)引入;外部中断请求信号有两种,即低电平 有效方式和脉冲后沿负跳有效方式。 中断控制是提供给用户使用的中断控制手段,实 际上就是控

64、制一些寄存器。 51系列用于此目的的控 制寄存器有四个: TCON、 IE、 SCON及 IP。 位地址 AF AE AD AC AB AA A9 A8 位符号 EA - - ES ET1 EX1 ET0 EX0 表 6-8 IE 寄 存 器 EA 中断允许总控制位; EA=0 中断总禁止,禁止所有中断; EA=1 中断总允许; EX0(EX1) 外部中断允许控制位; EX0(EX1)=0 禁止外中断; EX0(EX1)=1 允许外中断; ET0(ET1) 定时 /计数中断允许控制位; ET0(ET1)=0 禁止定时 /计数中断; ET0(ET1)=1 允许定时 /计数中断; ES 串行中断允

65、许控制位; ES=0 禁止串行中断; ES=1 允许串行中断。 (2) 中断优先级控制寄存器 (IP) 地址为 B8H,位地址为 BFH-B8H,各位定义如表 6- 9所示。 位地址 BF BE BD BC BB BA B9 B8 位符号 / / / PS PT1 PX1 PT0 PX0 表 6-9 IP 寄 存 器 各位含义如下: PX0 外部中断 0优先级设定位; PT0 定时中断 0优先级设定位; PX1 外部中断 1优先级设定位; PT1 定时中断 1优先级设定位; PS 串行中断优先级设定位。 为 0的位优先级为低;为 1的位优先级为高。 中断优先级是为中断嵌套服务的, MCS-51

66、 中断优先级的控制原则如下。 (1) 低优先级中断请求不能打断高优先级的中断 服务;但高优先级中断请求可以打断低优先级的中 断服务,从而实现中断嵌套。 (2) 如果一个中断请求已被响应,则同级的其他 中断响应将被禁止。 (3) 如果同级的多个中断请求同时出现,则按 CPU查询次序确定哪个中断请求被响应,其查询次 序为:外部中断 0定时中断 0外部中断 1定时 中断 1串行中断。 训练目的 熟悉理解 MCS-51的中断系统组成; 了解掌握单片机系统中断的原理及使用方法。 6.10.1 Proteus电路设计 1. 元件清单列表 打开 Proteus ISIS编辑环境,按表 6-10所列的清 单添加元件 元 件 名 称 所 属 类 所 属 子 类 AT89C51 Microprocessor ICs 8051 Family CAP Capacitors Generic CAP-ELEC Capacitors Generic CRYSTAL Miscellaneous RES Resistors Generic LED Optoelectronics LEDs BUTTON Switches

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!