Proteus基础教程7.ppt_第1页
Proteus基础教程7.ppt_第2页
Proteus基础教程7.ppt_第3页
Proteus基础教程7.ppt_第4页
Proteus基础教程7.ppt_第5页
免费预览已结束,剩余113页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

6 1汇编源程序的建立与编译6 1 1Proteus中的源程序设计与编译6 1 2Keil Vision中的源程序设计与编译6 2Proteus与单片机电路的交互式仿真与调试6 2 1加载目标代码6 2 2单片机系统的Proteus交互仿真6 2 3调试菜单与调试窗口6 2 4观察窗口6 3I O口输入输出应用6 3 1Proteus电路设计6 3 2源程序设计6 3 3Proteus调试与仿真6 3 4总结与提示6 44 4矩阵式键盘识别技术6 4 1Proteus电路设计6 4 2源程序设计6 4 3Proteus调试与仿真6 4 4总结与提示6 5动态扫描显示 6 5 1Proteus电路设计6 5 2源程序设计6 5 3Proteus调试与仿真6 5 4总结与提示6 68 8点阵LED显示6 6 1Proteus电路设计6 6 2源程序设计6 6 3Proteus设计与仿真6 6 4总结与提示6 7I O口的扩展6 7 1Proteus电路设计6 7 2源程序设计6 7 3Proteus调试与仿真6 7 4总结与提示6 8定时器 计数器实验6 8 1Proteus电路设计6 8 2源程序设计6 8 3Proteus设计与仿真 6 8 4总结与提示6 9外部数据存储器扩展6 9 1Proteus电路设计6 9 2源程序设计6 9 3Proteus调试与仿真6 9 4总结与提示6 10外部中断实验6 10 1Proteus电路设计6 10 2源程序设计6 10 3Proteus调试与仿真6 10 4总结与提示6 11单片机与PC机间的串行通信6 11 1Proteus电路设计6 11 2源程序设计6 11 3Proteus调试与仿真6 11 4总结与提示6 12单片机与步进电机的接口技术 6 12 1Proteus电路设计6 12 2源程序设计6 12 3Proteus调试与仿真6 12 4总结与提示6 13单片机与直流电动机的接口技术6 13 1Proteus电路设计6 13 2源程序设计6 13 3Proteus调试与仿真6 13 4总结与提示6 14基于DAC0832数模转换器的数控电源6 14 1Proteus电路设计6 14 2源程序设计6 14 3Proteus调试与仿真6 14 4总结与提示6 15基于ADC0808模数转换器的数字电压表6 15 1Proteus电路设计6 15 2源程序设计6 15 3Proteus调试与仿真6 15 4总结与提示 第6章MCS 51单片机接口基础 MCS 51系列单片机在很多产品中得到了广泛的应用 在具体的工程实践中 单片机应用技术所涉及的实践环节较多 且硬件投入较大 如果因为控制方案有误而进行相应的开发设计 会浪费较多的时间和经费 Proteus仿真软件很好地解决了这些问题 它可以像Protel一样绘制硬件原理图并实现硬件调试 再与Keil编程软件进行联调 实现对控制方案的验证 尤其对于初学单片机的用户提供了极大的方便 6 1汇编源程序的建立与编译 Keil是德国Keil公司开发的单片机编译器 是目前最好的51单片机开发工具之一 可以用来编译C源代码和汇编源程序 连接和重定位目标文件和库文件 创建HEX文件 调试目标程序等 是一种集成化的文件管理编译环境 在Proteus中 可以直接与Keil编程软件进行联调 进而实现对所设计电路的验证 6 1 1Proteus中的源程序设计与编译 ProteusVSM提供了简单的文本编辑器 用它作为源程序的编辑环境 对于不同系列的单片机 VSM均提供了相应的编译器 使用时可根据单片机的型号和语言要求来选取 编译器有以下几种 ASEM51 51系列单片机编译器 ASM11 Motorola单片机编译器 AVRASM AtmelAVR系列单片机编译器 AVRASM32 AtmelAVR系列单片机编译器 MPASM PIC单片机编译器 MPASMSWIN PIC单片机编译器 1 建立源程序文件在ProteusISIS界面中单击菜单Soure 源程序 在弹出的下拉菜单中单击 Add RemoveSourceFiles 添加 移开源程序 选项 弹出如图6 1所示对话框 单击 CodeGenerationTool 目标代码生成工具 下方框中按钮 弹出下拉菜单 根据需要选择相应的编译器 例如 ASEM51 51系列单片机编译器 图6 1Add RemoveSourceCodeFiles对话框 在图6 1中单击 New 按钮 弹出如图6 2所示的对话框 在文件名框中输入新建源程序文件名 mydesign 单击 打开 按钮 弹出图6 2中所示的小对话框 选择 是 按钮 新建的源程序文件就添加到图6 1中的 SourceCodeFilename 方框中 如图6 3所示 同时在ISIS界面的 Source 菜单中也加入了源程序文件名 mydesign asm 如图6 4所示 图6 2新建源程序文件对话框 图6 3源程序添加结果 图6 4菜单Source中加载的源程序文件 2 编写源程序代码单击菜单 Source mydesign asm 出现图6 5所示的源程序编辑窗口 编写源程序后存盘退出 图6 5源程序编辑窗口 3 源程序编译 1 编译器设置 第一次使用编译器时需进行相关的设置 单击菜单 Source DefineCodeGenerationTools 出现图6 6所示界面 本例中实际设置结果如图6 6所示 2 编译源程序 生成目标代码文件 单击 Source BuildAll 编译结果在弹出的编译日志对话框中 如果没有错误便成功生成目标代码 hex 文件 本例中生成的目标代码文件为 MYDESIGN HEX 图6 6编译器设置界面 6 1 2Keil Vision中的源程序设计与编译 在Keil集成开发环境下使用工程的方法来管理文件 而不是单一文件的模式 所有的文件包括源程序 如C程序 汇编程序 头文件等都可以放在工程项目文件里统一管理 对于刚刚使用Keil的用户 一般可以按照下面的步骤来创建一个自己的应用程序 1 一个工程项目文件 2 选择目标器件 例如 选择ATMEL公司的AT89C51 3 为工程项目设置软硬件调试环境 4 创建源程序文件并输入程序代码 5 保存创建的源程序项目文件 6 把源程序文件添加到项目中 具体如何建立应用程序并进行仿真调试 我们将通过实验来详细说明 1 建立一个项目双击桌面快捷图标即可进入如图6 7所示的集成开发环境编辑操作界面 主要包括三个窗口 工程项目窗口 编辑窗口和输出窗口 单击Project菜单 在弹出的下拉菜单中选中 NewProject 选项 新建一个项目 如图6 8所示 图6 7 Vision2编辑操作界面 图6 8Project界面 然后选择要保存的路径 输入工程文件的名字 比如保存到uv目录里 工程文件的名字为 shiyan1 如图6 9所示 然后单击 保存 按钮 这时会弹出一个对话框 要求选择单片机的型号 这里可以根据所使用的单片机来选择 Keil几乎支持所有51核的单片机 这里以Atmel的89C51来说明 如图6 10所示 图6 9Project保存设置界面 图6 10选择器件 首先选择Atmel公司 然后单击左边的 号选择AT89C51之后 右边栏是对这个单片机的基本说明 然后单击 确定 在随后弹出的对话框单击 否 完成以上步骤后 屏幕如图6 11所示 首先进行选项设置 将鼠标指针指向 Target1 并单击右键 再从弹出的右键菜单中单击 OptionsforTarget 选项 如图6 12所示 图6 11初始化编辑界面 从弹出的 Options 对话框中选择 Output 标签栏 并按如图6 13所示设置其中各项 图6 12选择 OptionsforTarget 选项 图6 13 Output 标签栏 2 建立一个新的ASM汇编语言程序并编译 下面开始编写源程序 1 在菜单栏中 单击 File 菜单 再在下拉菜单中单击 New 选项 或直接单击工具栏的快捷图标来建立了一个新的编辑窗口 此时光标在编辑窗口里闪烁 这时可以输入用户的应用程序了 建议首先保存该空白文件 单击菜单上的 File 在下拉菜单中选中 SaveAs 选项 在弹出对话框的 文件名 栏右侧编辑框中 输入欲使用的文件名 同时 必须输入正确的扩展名 如 Text1 asm 然后 单击 保存 按钮 如图6 14所示 注意 如果用 语言编写程序 则扩展名为 c 如果用汇编语言编写程序 则扩展名为 asm 且必须添加扩展文件名 2 回到编辑界面后 单击 Target1 前面的 号 然后在 SourceGroup1 上单击右键 弹出如图6 15所示的快捷菜单 图6 14保存源程序 然后单击 AddFiletoGroup SourceGroup1 打开如图6 16所示对话框 在 文件类型 处默认为 CSourcefile c 因为前面我们保存的是汇编语言的文件 故需要选择 AsmSourcefile s src a 这样在上面就可以看到刚才保存的汇编语言文件 Text1 asm 双击该文件则自动添加至项目 单击 Close 关闭对话框 对比图6 17和图6 15 可以看出二者的不同点 在添加了汇编语言文件后 在 SourceGroup1 文件夹前面出现了一个 号 单击 号展开就看到了刚才添加的 Text1 asm 文件 图6 15弹出右键菜单 3 然后就可以在右侧的编辑区输入汇编源程序了 在输入指令时 读者可以看到事先保存待编辑文件的好处 Keil会自动识别关键字 并以不同的颜色提示用户加以注意 这样会使用户少犯错误 有利于提高编程效率 程序输入完毕后别忘了再次保存 如图6 18所示 图6 16添加文件对话框 图6 17添加文件后工程栏的变化 4 程序文件编辑完毕后 单击 Project 菜单 选中 Builttarget 选项 或者使用快捷键F7 或者单击工具栏的快捷图标来进行编译 如图6 19所示 图6 18程序输入完毕后状态 图6 19编译菜单 5 如果有错误 则在最后的输出窗口中会出现所有错误所在的位置和错误的原因 并有 Targetnotcreated 的提示 双击该处的错误提示 在编辑区对应错误指令处左面出现蓝色箭头提示 然后对当前的错误指令进行修改 如图6 20所示 图6 20错误提示 6 将所有提示过的错误进行修改 然后再次重复 4 的操作进行编译 直至出现 shiyan1 0Error s 0Warning s 说明编译完全通过 如图6 21所示 图6 21编译通过提示 3 调试并仿真 编译成功后 就可以进行调试并仿真了 单击 Project 菜单 在下拉菜单中单击 Start StopDebugSession 或者使用快捷键Ctrl F5 或者单击工具栏的快捷图标就可以进入调试界面 如图6 22所示 图6 22调试界面 左面的工程项目窗口给出了常用的寄存器r0 r7以及a b sp dptr pc psw等特殊功能寄存器的值 在执行程序的过程中可以看到 这些值会随着程序的执行发生相应的变化 在存储器窗口的地址栏处输入C 0000H后回车 则可以观看所有单片机片内程序存储器的内容 如图6 23所示 下面用横线画出来的部分就是已经编辑的源程序转化成的机器语言的十六进制数 或者说是对应的机器码 如果在存储器窗口的地址栏处输入D 00H后回车 则可以观看所有单片机片内数据存储器的内容 图6 23存储器窗口 在联机调试状态下可以启动程序全速运行 单步运行 设置断点等 单击菜单 Debug Go 选项 启动用户程序全速运行 下面介绍几种常用的调试命令及方法 1 复位CPU用 Debug 菜单或工具栏的 ResetCPU 命令可以复位CPU 在不改变程序的情况下 若想使程序重新开始运行 执行此命令即可 执行此命令后程序指针返回到000H地址单元 另外 一些内部特殊功能寄存器在复位期间也将重新赋值 例如 A将变为00H DPTR变为0000H SP变为07H I O口变为0FFH 2 全速运行 F5 用 Debug 工具栏的 Go 或快捷命令 Run 命令按钮 即可实现全速运行程序 当然若程序中已经设置断点 程序将执行到断点处 并等待调试指令 3 单步跟踪 F11 用 Debug 工具栏的 Step 或快捷命令 StepInto 命令按钮 可以单步跟踪程序 每执行一次此命令 程序将运行一条指令 以指令为基本执行单元 当前的指令用黄色箭头标出 每执行一步箭头都会移动 已执行过的语言呈绿色 在汇编语言调试下 可以跟踪到每一个汇编指令的执行 Vision2处于全速运行期间 Vision2不允许对任何资源的查看 也不接受其他命令 4 单步运行 F10 用 Debug 工具栏的 StepOver 或快捷命令 StepOver 按钮 即可实现单步运行程序 此时单步运行命令将把函数和函数调用当作一个实体来看待 因此单步运行是以语句 该语句不管是单一命令行还是函数调用 为基本执行单元 5 执行返回 Ctrl F11 在用单步跟踪命令跟踪到子函数或子程序内部时 使用 Debug 菜单栏中的 StepOutofCurrentFunction 或快捷命令按钮 StepOut 即可将程序的PC指针返回到调用此子程序或函数的下一条语句 6 停止调试 Ctrl F5 由于 Led Light 程序使用了系统资源P1口 为了更好地观察这些资源的变化 用户可以打开它们的观察窗口 选择 PeripheralsI O PortsPort1 命令 即可打开并行I O口P1的观察窗口 6 2Proteus与单片机电路的交互式仿真与调试 6 2 1加载目标代码 双击单片机AT89C51 打开其属性编辑框 在 ProgramFile 栏中 单击打开按钮 选取目标代码文件 这里是 MYDESIGN HEX 在 ClockFrequency 栏中设置时钟频率为12MHz 如图6 25所示 因为仿真运行 在ProteusISIS界面中编辑电路原理图实例 如图6 24所示 图6 24实例电路原理图 时的时钟频率是以单片机属性中设置的频率值为准 所以在ProteusISIS界面中设计电路原理图时 可以略去单片机的时钟电路 另外 复位电路也可略去 对于MCS 51系列单片机而言 在不进行电路电气检测时 EA引脚也可悬空 图6 25加载目标代码文件和时钟设置 6 2 2单片机系统的Proteus交互仿真 在Proteus仿真界面中单击按钮 全速启动仿真 此时电路中的LED不亮 用鼠标单击电路图中的按钮 进行交互仿真 单击一次按钮 LED灯亮 再单击一次 LED灯灭 如此循环交替 本实例仿真片段如图6 26所示 单击仿真按钮 可停止仿真 图6 26实例仿真片段 6 2 3调试菜单与调试窗口 系统在全速仿真运行时不显示调试窗口 可单击暂停按钮 然后单击ProteusISIS界面的 Debug 菜单 弹出如图6 27所示的下拉菜单 从图中可以看出 调试菜单包含有3个存储器窗口 调试过程中可分别打开这3个存储器窗口进行观察 1 单片机寄存器窗口通过菜单 Debug 8051CPURegisters U1 打开单片机寄存器窗口 如图6 28所示 里面有常用的SFR 如SP PC PSW R0 R7 ACC及将要执行的指令等 在本窗口内右击 可以设置窗口的字体和颜色 2 单片机SFR窗口通过菜单 Debug 8051CPUSFRMemory U1 打开单片机的SFR窗口 如图6 29所示 图6 27 Debug 下拉菜单 3 单片机IDATA窗口通过菜单 Debug 8051CPUInternal IDATA Memory U1 打开单片机的IDATA窗口 如图6 30所示 对于单片机的SFR寄存器 既可以从单片机的寄存器窗口中查看 也可以在SFR寄存器窗口中查看 在SFR IDATA窗口中右击 可弹出该窗口的设置菜单 如图6 31所示 可使用 Goto 命令快速运动到指定的显示单元 还可复制数据或改变显示方式等 图6 28单片机寄存器窗口 图6 29单片机SFR窗口 图6 30单片机IDATA窗口 图6 31单片机IDATA窗口的快捷菜单 6 2 4观察窗口 虽然通过以上方法可以观察单片机各个存储器的内容 但因显示内容比较分散 观察起来不方便 对此 Proteus又同时提供了一个观察窗口 WatchWindow 它可以将所关心的各项寄存器的内容集中于一个窗口中 观察起来十分方便 克服了上述缺点 1 观察项添加通过菜单 Debug WatchWindow 打开空白的观察窗口 在观察窗口内右击 弹出快捷菜单 如图6 32所示 由该菜单可添加 删除观察项 设置观察项的数据类型 显示格式以及设置窗口的字体 颜色等 若单击 AddItems ByName 项 便会弹出如图6 33所示的对话框 双击相应的SFR寄存器名称 即可以观察项名称方式将观察项添加到观察窗口中 也可选择以观察项的地址来添加观察项的方式 添加了观察项的观察窗口如图6 34所示 图6 32观察窗口及快捷菜单 2 观察项删除要删除已添加的观察项 有两种方法 在观察窗口单击选中相应的观察项 按键盘上的 Del 键即可 在观察窗口右击相应的观察项 在弹出的快捷菜单中单击 DeleteItem 选项 图6 33 AddMemoryItem 对话框 图6 34添加了观察项的观察窗口 3 观察点条件设置在仿真运行的过程中 还可以通过设置 观察点条件 的手段来触发中断 以满足某些特殊条件断点的要求 具体方法 在观察窗口内右击 在弹出的快捷菜单中单击 WatchpointCondition 项 弹出观察点条件设置框 如图6 35所示 图6 35观察点条件设置框 观察点条件设置分为两级 包括 全局断点条件设置 GlobalBreakCondition 如图6 35中的上半部分所示 和 观察项的断点表达式 ItemBreakExpression 如图6 35的下半部分所示 下半部分中 Item 项的内容为观察窗口中添加的观察项 可单击按钮 在下拉列表中选择要设置断点的观察项 Condition 项为观察项的条件 Mask 项为观察项的约束条件 它们具体包含的内容如图6 35的右边所示 内容利用单片机AT89C51制作一个0 99计数器手动计数器 用其P2 0 P2 7接一个共阴极数码管 输出显示0 99计数值的个位 用P0 0 P0 7接数码管输出显示计数值的十位数 P3 3引脚外接一轻触开关 要求每按下一次按键 计数值加1 当计数值超出99后自动返回0重新开始循环计数 训练目的掌握AT89C51单片机I O口输入输出的应用方法 掌握单片机驱动7段数码管显示数字的编程方法 6 3I O口输入输出应用 6 3 1Proteus电路设计 1 元件清单列表打开ProteusISIS编辑环境 按表6 1所列的清单添加元件 表6 1元件清单 2 电路原理图元件全部添加后 在ProteusISIS的编辑区域中按图6 36所示的原理图 晶振和复位电路略 连接硬件电路 图6 36电路原理图 6 3 3Proteus调试与仿真 1 建立程序文件 1 打开Keil Vision3 新建Keil项目 选择AT89C51单片机作为CPU 2 新建汇编源文件 编写程序并将其导入到 SourceGroup1 中 3 在 OptionsforTarget 对话框中 选中 Output 选项卡中的 CreateHEXFile 选项和 Debug 选项卡中的 Use ProteusVSMSimulator 选项 4 编译源程序 修改程序中的错误直至通过 2 加载目标代码文件 1 在ProteusISIS中 左键双击AT89C51元件打开 EditComponent 对话框 设置单片机的频率为12MHz 2 在该窗口的 ProgramFile 栏中 选择先前在Keil中编译产生的 HEX 文件 3 在ProteusISIS菜单栏中选择 File SaveDesign 选项 保存设计 4 在ProteusISIS菜单栏中 打开 Debug 下拉菜单 在菜单中选择 UseRemoteDebugMonitor 选项 以支持与Keil的联调 3 进行调试与仿真 1 在Keil的菜单栏中选择 Debug Start Stop DebugSession 选项 或者在工具栏中直接单击图标 进入调试环境 3 进行调试与仿真 1 在Keil的菜单栏中选择 Debug Start StopDebugSession 选项 或者在工具栏中直接单击图标 进入调试环境 2 按 F5 键或图标 顺序执行程序 3 在ProteusISIS界面中 按动开关 可看到数码管的显示值随之加1 如图6 37所示 6 3 4总结与提示 图6 37程序运行结果 AT89C51单片机的P0口在作为普通I O使用时必须 6 44 4矩阵式键盘识别技术 内容键盘是一组按键的集合 它是最常用的单片机输入设备 操作人员可以通过键盘输入数据或命令 实现简单的人 机通信 键盘分编码键盘和非编码键盘 靠软件识别的为非编码键盘 从结构上来分又可以分为独立连接式和行列式 矩阵式 两类 加上拉电阻 否则不能准确输入或输出高低电平 仿真时可通过观察P0口的电平状态来体会这一点 在Proteus与Keil的联调过程中 可以综合运用Keil中的多种调试功能来详细观察电路的工作情况 6 4 1Proteus电路设计 为了减少键盘占用单片机的I O线数目 通常都将键盘排列成矩阵式 训练目的掌握软件键盘去抖的方法 掌握键盘识别编程的方法 1 元件清单列表打开ProteusISIS编辑环境 按表6 2所列的清单添加元件 表6 2元件表清单 2 电路原理图元件全部添加后 在ProteusISIS的编辑区域中按图6 38所示的原理图 晶振和复位电路略 连接硬件电路 图6 38电路原理图 6 4 3Proteus调试与仿真 参照6 3 3节建立程序文件 加载目标代码文件 进入调试环境 执行程序 在ProteusISIS界面中 按下各个按键 观察数码管上的显示和所标的键号是否对应 6 4源程序设计 略 6 4 4总结与提示 在Proteus与Keil的联调过程中 可以综合运用Keil中的多种调试功能来详细观察电路的工作情况 在Proteus中仿真时可以降低单片机的工作频率 观察电路中各接点的电平变化情况 看是否和所编程序符合 以增强对程序的理解 6 5动态扫描显示 内容单片机应用系统中使用的显示器件主要有发光二极管 简称LED LightEmittingDiode 液晶显示 简称LCD LiquidCrystalDisplay LED有静态显示和动态显示两种方式 在多位LED显示时 为了简化电路 降低成本 将所有位的段线并联在一起 由一个8位I O控制 而共阴 或共阳 极公共端分别由相应的I O线控制 实现各位的分时选通 训练目的掌握LED动态扫描的显示方法 掌握单片机驱动7段数码管显示数字的编程方法 掌握串入并出集成芯片74LS595的使用方法 6 5 1Proteus电路设计 1 元件清单列表打开ProteusISIS编辑环境 按表6 3所列的清单添加元件 表6 3元件清单 2 电路原理图元件全部添加后 在ProteusISIS的编辑区域中按图6 39所示的原理图 晶振和复位电路略 连接硬件电路 图6 39电路原理图 6 5 2源程序设计 略 6 5 3Proteus调试与仿真 参照6 3 3节建立程序文件 加载目标代码文件 进入调试环境后执行程序 降低单片机的工作频率 观察动态显示的过程 6 5 4总结与提示 AT89C51单片机的P0口在作为普通I O使用时必须加上拉电阻 否则不能准确输入或输出高低电平 仿真时可通过观察P0口的电平状态来体会这一点 在Proteus与Keil的联调过程中 可以综合运用Keil中的多种调试功能来详细观察电路的工作情况 6 68 8点阵LED显示 内容用单片机AT89C51驱动8 8点阵LED显示屏 轮流显示0 9的数字 显示方式采用自右向左拉幕式显示 训练目的掌握8 8点阵LED显示屏的使用方法 掌握单片机进行拉幕式显示的编程方法 6 6 1Proteus电路设计 1 元件清单列表打开ProteusISIS编辑环境 按表6 4所列的清单添加元件 表6 4元件清单 2 8 8点阵LED元件介绍ProteusISIS中的8 8点阵LED元件原理图如图6 40 a 所示 由于该元件引脚没有任何标注 因此在使用之前必须进行引脚测试 以确定行线和列线的顺序及极性 图6 40 b 给出了一种进行引脚测试的方法 根据测试结果便很容易确定该元件的电路接法 图6 408 8点阵LED元件原理图及引脚测试 3 电路原理图元件全部添加后 在ProteusISIS的编辑区域中按图6 41所示的原理图连接硬件电路 图6 41电路原理图 6 6 3Proteus设计与仿真 参照6 3 3节建立程序文件 加载目标代码文件 进入调试环境后执行程序 在ProteusISIS界面中的仿真片断如图6 42所示 图6 42仿真片段 6 6 4总结与提示 程序编写中 必须在TCOUNT数值是8的整数倍时再进行下面的移位操作 否则显示在衔接时会乱 6 7I O口的扩展 内容8255是微机并行可编程I O口扩展芯片 对8255输入不同的指令可改变I O口的工作方式 8255与单片机系统连接方式简单 工作方式由程序设定 背景知识已掌握Keil Vision3开发软件的使用方法 已掌握常用外部RAM的基本操作 训练目的掌握单片机与8125的接口原理 熟悉8255初始化编程 以及输入输出的设计方法 6 7 1Proteus电路设计 1 元件清单列表打开ProteusISIS编辑环境 按表6 5所列的清单添加元件 表6 5元件清单 2 电路原理图元件全部添加后 在ProteusISIS的编辑区域中按图6 43所示的原理图连接硬件电路 图6 43电路原理图 6 7 2源程序设计 1 流程图图6 44为程序流程图 图6 44流程图 6 7 3Proteus调试与仿真 参照6 3 3节建立程序文件 加载目标代码文件 进入调试环境 单击ProteusISIS下面的仿真运行键 即可看到如图6 45所示的运行结果 图6 45程序运行结果 6 7 4总结与提示 采用8255并口扩展芯片的PA0口 设计一个4 4键的矩阵键盘扫描程序 6 8定时器 计数器实验 内容利用单片机AT89C51 控制一发光二极管 亮1秒 关闭1秒 循环进行 要求使用定时器 计数器控制 训练目的掌握AT89C51单片机定时器 计数器混合编程的使用方法 6 8 1Proteus电路设计 1 元件清单列表打开ProteusISIS编辑环境 按表6 6所列的清单添加元件 表6 6元件清单 2 电路原理图元件全部添加后 在ProteusISIS的编辑区域中按图6 46所示的原理图连接硬件电路 图6 46电路原理图 6 8 3Proteus设计与仿真 参照6 3 3节建立程序文件 加载目标代码文件 进入调试环境执行程序 在ProteusISIS界面中 可以看到 LED灯亮一秒 关一秒 循环进行 如图6 47 图6 47运行结果 6 8 4总结与提示 尝试改变计数器的值 使延时的时间更长 6 9外部数据存储器扩展 内容用SRAM6264扩展单片机AT89C51的外部数据存储器 通过仿真窗口观察向6264写入数据的过程 训练目的掌握AT89C51扩展外部数据存储器时的接口电路设计方法 加深单片机对外部数据存储器进行读写过程的理解 6 9 1Proteus电路设计 1 元件清单列表打开ProteusISIS编辑环境 按表6 7所列的清单添加元件 表6 7元件清单 2 电路原理图元件全部添加后 在ProteusISIS的编辑区域中按图6 48所示的原理图 复位和振荡电路略 连接硬件电路 图6 48电路原理图 6 9 3Proteus调试与仿真 参照6 3 3节建立程序文件 加载目标代码文件 进入调试环境 然后执行下述操作 1 在ProteusISIS界面中 单击按钮启动仿真 2 通过菜单 Debug MemoryContents U1 打开6264存储器窗口 3 通过菜单 Debug Debug WatchWindow 在弹出的观察窗口右击 选择 以观察项的名称添加观察项 在弹出的对话框中添加累加器ACC和数据指针DPTR 4 单击按钮暂停仿真 可观察程序运行的中间结果 如图6 49所示 6 9 4总结与提示 受计算机性能的影响 以及Proteus软件运行仿真时需要处理大量的数据 会出现仿真结果的画面刷新率跟不上程序运行的速度 致使不能看到存储器内容随程序运行的动态变化 仿真时可手工刷新画面观察 图6 49程序运行结果 6 10外部中断实验 内容MCS 51是一个多中断源的单片机 以8051为例 有三类共五个中断源 分别是两个外部中断 两个定时器中断和一个串行中断 外部中断是由外部原因引起的 共有两个中断源 即外部中断0和外部中断1 它们的中断请求信号分别由引脚 P3 2 和 P3 3 引入 外部中断请求信号有两种 即低电平有效方式和脉冲后沿负跳有效方式 中断控制是提供给用户使用的中断控制手段 实际上就是控制一些寄存器 51系列用于此目的的控制寄存器有四个 TCON IE SCON及IP 表6 8IE寄存器 EA 中断允许总控制位 EA 0 中断总禁止 禁止所有中断 EA 1 中断总允许 EX0 EX1 外部中断允许控制位 EX0 EX1 0 禁止外中断 EX0 EX1 1 允许外中断 ET0 ET1 定时 计数中断允许控制位 ET0 ET1 0 禁止定时 计数中断 ET0 ET1 1 允许定时 计数中断 ES 串行中断允许控制位 ES 0 禁止串行中断 ES 1 允许串行中断 2 中断优先级控制寄存器 IP 地址为B8H 位地址为BFH B8H 各位定义如表6 9所示 表6 9IP寄存器 各位含义如下 PX0 外部中断0优先级设定位 PT0 定时中断0优先级设定位 PX1 外部中断1优先级设定位 PT1 定时中断1优先级设定位 PS 串行中断优先级设定位 为0的位优先级为低 为1的位优先级为高 中断优先级是为中断嵌套服务的 MCS 51中断优先级的控制原则如下 1 低优先级中断请求不能打断高优先级的中断服务 但高优先级中断请求可以打断低优先级的中断服务 从而实现中断嵌套 2 如果一个中断请求已被响应 则同级的其他中断响应将被禁止 3 如果同级的多个中断请求同时出现 则按CPU查询次序确定哪个中断请求被响应 其查询次序为 外部中断0 定时中断0 外部中断1 定时中断1 串行中断 训练目的熟悉理解MCS 51的中断系统组成 了解掌握单片机系统中断的原理及使用方法 6 10 1Proteus电路设计 1 元件清单列表打开ProteusISIS编辑环境 按表6 10所列的清单添加元件 表6 10元件清单 2 电路原理图元件全部添加后 在ProteusISIS的编辑区域中按图6 50所示的原理图 晶振和复位电路略 连接硬件电路 图6 50电路原理图 6 10 3Proteus调试与仿真 参照6 3 3节建立程序文件 加载目标代码文件 进入调试环境执行程序 在ProteusISIS界面中 按动开关 可看到数码管显示的变化 如图6 51所示 图6 51程序运行结果 6 10 4总结与提示 在有多个中断同时存在时注意中断优先级的设置以及中断中的触发方式 在Proteus与Keil的联调过程中 可以综合运用Keil中的多种调试功能来详细观察电路的工作情况 在某些情况下中断子程序中需要对各寄存器进行保护 6 11单片机与PC机间的串行通信 内容利用虚拟终端仿真单片机与PC机间的串行通信 PC机先发送从键盘输入的数据 单片机接收后回发给PC机 单片机同时将收到的30 39H间的数据转换成0 9的数字显示 其他字符的数据直接显示为其ASCII码 背景知识已掌握Keil Vision3开发软件的使用方法 了解RS 232总线技术 训练目的掌握电平转换器件RS 232的使用方法 掌握ProteusVSM虚拟终端 VITUALTERMINAL 的使用 掌握单片机与PC机间的串行通信软硬件设计方法 6 11 1Proteus电路设计 1 元件清单列表打开ProteusISIS编辑环境 按表6 11所列的清单添加元件 表6 11元件清单 2 串口模型介绍串口模型COMPIM及其引脚功能如图6 52中 a 所示 需要注意的是 在ProteusISIS元件库的 Connectors 类的 D Type 子类中 也有一个串口模型器件CONN D9F 如图6 52中 b 所示 因该器件在使用时没有仿真模型 将导致仿真失败 所以要避免选用 图6 52Proteus串口模型 3 电路原理图元件全部添加后 在ProteusISIS的编辑区域中按图6 53所示的原理图 晶振和复位电路略 连接硬件电路 图6 53电路原理图 4 串口模型属性设置串口模型属性设置为 波特率 4800 数据位 8 奇偶校验 无 停止位 1 如图6 54所示 图6 54串口模型属性设置 4 串口模型属性设置串口模型属性设置为 波特率 4800 数据位 8 奇偶校验 无 停止位 1 如图6 54所示 5 虚拟终端属性设置PCT代表计算机发送数据 PCR用来监视PC接收到的数据 它们的属性设置完全一样 如图6 55所示 SCMT和SCMR分别是单片机的数据发送和接收终端 用来监视单片机发送和接收的数据 它们的属性设置也完全一样 如图6 56所示 单片机和PC机双方的波特率 数据位 停止位和检验位等要确保和串口模型的设置一样 并且同单片机程序中串口的设置一致 要注意到PC机虚拟终端与单片机虚拟终端在RX TXPolarity属性的设置是相反的 因为信号在经过器件MAX232时要反相 图6 55PC机虚拟终端属性设置 图6 56单片机虚拟终端属性设置 6 11 3Proteus调试与仿真 参照6 3 3节建立程序文件 加载目标代码文件 进入调试环境执行程序 进行以下操作 1 在ProteusISIS界面中的PCT虚拟终端上单击右键 在弹出的快捷菜单中选择 EchoTypedCharacters 项 2 鼠标指针在PCT终端窗口单击 该窗口出现闪烁的光标 从键盘输入数字 8 在PCS终端窗口中就出现 8 表明PC机发送数据 8 按照设计好的程序 单片机将接收到 8 所以在单片机接收虚拟终端SCMR上会显示 8 同时又将数字 8 送显到数码管上 接下来 单片机又将该数回发给PC机 因此在单片机发送终端SCMT上也显示 8 PC机接收到数据后在接收终端PCR上同样显示 8 结果如图6 57所示 根据程序设计 当在键盘上输入0 9以外的字符时 单片机输出到数码管上显示的则是该字符的ASCII码 如图6 58所示 图6 57程序运行结果1 图6 58程序运行结果2 6 11 4总结与提示 在原理图中的电阻R1不能少 否则虚拟终端PCR将收不到信息 在Proteus与Keil的联调过程中 可以综合运用Keil中的多种调试功能来详细观察系统的工作过程 在Proteus仿真中 单片机和COMPIM之间也可以不用加MAX232器件 6 12单片机与步进电机的接口技术 内容利用AT89C51单片机控制步进电机的启 停 正转与反转 背景知识已掌握Keil Vision3开发软件的使用方法 了解步进电机的工作原理与控制方法 训练目的强化对步进电机工作原理的理解 掌握用单片机控制步进电机时的接口电路设计方法 掌握对步进电机进行控制的编程方法 6 12 1Proteus电路设计 1 元件清单列表打开ProteusISIS编辑环境 按表6 12所列的清单添加元件 表6 12元件清单 2 步进电机元件介绍Proteus软件中的单极性步进电机元件为6线制 其原理图及属性编辑框如图6 59所示 各属性值可根据需要修改 本例中所设置的属性值均如图6 59所示 图6 59单极性步进电机原理图及属性 3 电路原理图元件全部添加后 在ProteusISIS的编辑区域中按图6 60所示的原理图连接硬件电路 图6 60电路原理图 6 12 3Proteus调试与仿真 参照6 3 3节建立程序文件 加载目标代码文件 进入调试环境执行程序 进行如下操作 图6 61程序运行结果 1 在ProteusISIS界面中 按 正转 反转 按钮 观察步进电机的状态 如图6 61所示 2 观察步进电机的单拍转动角度 体会4相8拍的含义 图6 61程序运行结果 6 12 4总结与提示 在进行仿真时 可以在单片机的P1 0 P1 3口上接入逻辑分析仪来监测控制信号的工作状态 本例略 可修改步进电机属性中的步进角以观察不同的仿真结果 在Proteus与Keil的联调过程中 可以综合运用Keil中的多种调试功能来详细观察电路的工作情况 6 13单片机与直流电动机的接口技术 内容PWM是单片机常用的模拟量控制方式 本例通过外接的A D转换电路 对应外部不同的电压值 利用AT89C51单片机产生占空比不同的控制脉冲 驱动直流电动机以不同的转速转动 并通过外接的单刀双掷开关 控制电动机的正转与反转 背景知识已掌握Keil Vision3开发软件的使用方法 了解光电耦合器 A D转换器件ADC0808的使用方法 训练目的掌握用单片机控制直流电机时的接口电路设计方法 掌握对直流电动机控制的桥式驱动电路接法 6 13 1Proteus电路设计 1 元件清单列表打开ProteusISIS编辑环境 按表6 13所列的清单添加元件 表6 13元件清单 2 电路原理图元件全部添加后 在ProteusISIS的编辑区域中按图6 62所示的原理图连接硬件电路 图6 62电路原理图 6 13 3Proteus调试与仿真 参照6 3 3节建立程序文件 加载目标代码文件 进入调试环境执行程序 在ProteusISIS界面中 调节电位器RV1 可以看到电机转速

温馨提示

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

评论

0/150

提交评论