proteus7.8破解版下载源程序调试窗口,为空?是什么原因?

亚马逊意外错误报歉,由于程序执行时,遇到意外错误,您刚刚操作没有执行成功,请稍后重试。或将此错误报告给我们的客服中心:推荐您,确认您的操作无误后,再继续其他操作。您可以通过亚马逊,获得更多的帮助。Proteus调试单片机串口的方法
本文是原创,转载请注明出处&
本文链接:
1.我用了四款软件(下面提供下载链接,以下都是破解版软件,无需序列号)
(电子仿真软件)
目前我会的有3种
1.单片机+虚拟终端(作为串口输入设备)+串口
2.单片机+虚拟终端(作为串口输入设备)+MAX232+串口
3.单片机+串口+虚拟串口程序(virtual serial port)+串口调试助手
4.单片机+MAX232+串口+虚拟串口程序(virtual serial
port)+串口调试助手(这个不会,主要是不知道该怎么在Proteus中连线,理论上方法4和3的连线方法是没有太大差别的,我也不知道哪里设置不对,一直没弄成功,问题出在加入了MAX232后)
方法1和2的区别不大,只是在和单片机中间多接个MAX232,因为是仿真软件,所以串口有和没有MAX232的仿真结果是一样的,就是细节上的设置不同
方法1连线如下:
方法2连线图如下:
方法1和方法2的区别在PCT(虚拟终端输入串口的PCT计算机发送端)的一个设置参数不同,(当波特率改变的时候虚拟终端里面的波特率设置也要改变)
方法1设置如下&&&&&&&&&&&&&&&&&&&&&&&&&&&&
方法2设置如下
不同的地方在PCT,串口这边的虚拟终端的RX/TX Polarity的设置不同,当在单片机和串口间
没接入MAX232,该项设置为normal,当在其间接入了MAX232该项设置为inverted。
综上所述:方法1和方法2其实是1类方法,共同点是单片机的发送端(TXD)与串口接收端(RXD)相连,单片机接收端(RXD)与串口发送端(TXD)相连。(这种连接是交叉连接)
方法3和方法4区别不大,只是在串口和单片机之间多加入了MAX232,其实实物连接时是要加入MAX232的,但是加入MAX232的方法4用Proteus仿真不出来,就仿真效果而言方法3和方法4是一样的。
方法3连线图如下:
方法4连线图如下:
Proteus串口设置如下图:
串口调试助手设置如下:
虚拟串口程序界面如下:
单片机虚拟终端的选项作用如下:
如果输入的是ASCII码,那么就不要勾选Hex Display mode
如果输入的是16进制,那么就要勾选Hex Display mode
clear screen 是清屏
echo typed characters 是当你在虚拟终端窗口输入字符时,输入的字符显示在虚拟中断窗口内。
综上所述:方法3和方法4是一类,串口接线是单片机的RXD接串口的RXD,单片机的TXD接串口的TXD。
是一一对应的接线方式。
注意:单片机晶振频率的设置,Proteus串口接COM2,调试程序接COM3
方法1和方法2这类与 方法3和方法4这类的区别在哪呢?
区别就在与串口的接线方式不同,方法1和方法2是单片机和串口是交叉接线
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&方法3和方法4是单片机和串口是非交叉接线(一一对应)
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。文档分类:
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,
下载前请先预览,预览内容跟原文是一样的,在线预览图片经过高度压缩,下载原文更清晰。
您的浏览器不支持进度条
下载文档到电脑,查找使用更方便
还剩?页未读,继续阅读
播放器加载中,请稍候...
该用户其他文档
下载所得到的文件列表PROTEUS入门教程.doc
文档介绍:
Proteus设计与仿真培训教程
第1章概述 1
1.1 进入Proteus ISIS 1
1.2 工作界面 2
1.3 Proteus电路设计与仿真入门 2
1.3.1 PROTEUS设计与仿真流程 2
1.3.2 PROTEUS电路设计 4
1.3.3 源程序设计 10
1.3.4生成目标代码文件 12
1.3.5加载目标代码文件、设置时钟频率 13
1.3.6单片机系统的PROTEUS交互仿真 14
1.4单片机系统的PROTEUS源代码调试仿真 15
1.4.1 调试菜单及调试窗口 15
1.4.2存储器窗口 17
1.4.3鼠标操作断点 18
1.4.4调试中各窗口个性化设置 19
第2章工程实例 21
2.1 模拟电路设计与仿真实例1 21
2.1.1 PROTEUS 电路设计 21
2.1.2 PROTEUS仿真 24
2.1.3 VSM虚拟示波器介绍 25
2.2 模拟电路设计与仿真实例2 26
2.2.1 PROTEUS电路设计 26
2.2.2 PROTEUS仿真 27
2.3 数字电路设计与仿真实例1 28
2.3.1 PROTEUS电路设计 28
2.3.2 PROTEUS电路仿真 29
2.4 数电电路设计与仿真实例2 30
2.4.1 PROTEUS电路设计 30
2.4.2 PROTEUS电路仿真 31
2.5 单片机电路设计与仿真实例1 31
2.5.1实验目的 32
2.5.2 PROTEUS电路设计 32
2.5.3源程序设计、生成目标代码文件 32
2.5.4 PROTEUS仿真 33
2.6 单片机电路设计与仿真实例2 36
2.6.1实验目的 36
2.6.2 PROTEUS电路设计 36
2.6.3源程序设计、生成目标代码文件 38
2.6.4 PROTEUS 仿真 39
2.7 PROTEUS与第三方软件KEIL的联合仿真 40
附录 …………………………………………………………………………………………………..46
常用元器件库 46
Proteus ISIS是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:
①实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。
②支持主流单片机系统的仿真。目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。
③提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如Keil C51 uVision2等软件。
④具有强大的原理图绘制功能。总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。本章将介绍Proteus ISIS软件的工作环境和基本入门操作。
1.1 进入Proteus ISIS
双击桌面上的ISIS 7.4SP3 Professional图标或者单击屏幕左下方的“开始”→“程序”→“Proteus 7 Professional”→“ISIS 7 Professional”,出现如图1-1所示屏幕,表明进入Proteus ISIS集成环境。
图1-1 启动时的屏幕
1.2 工作界面
Proteus ISIS的工作界面是一种标准的Windows界面,如图1-2所示。包括:标题栏、主菜单、标准工具栏、绘图工具栏、状态栏、对象选择按钮、预览对象方位控制按钮、仿真进程控制按钮、预览窗口、对象选择器窗口、图形编辑窗口。
图1-2 Proteus ISIS的工作界面
1.3 Proteus电路设计与仿真入门
1.3.1 PROTEUS设计与仿真流程
1.单片机系统的传统开发过程
在未出现计算机的单片机仿真技术之前,单片机系统的传统开发过程一般可分为三步:
①单片机系统原理图设计、选择元器件接插件、安装和电气检测等。(简称硬件设计)
②单片机系统程序设计、汇编编译、调试和编程等。(简称软件设计)
③单片机系统实际运行、检测、在线调试直至完成。(简称单片机系统综合调试)
2.单片机系统的PROTEUS设计与仿真的开发过程
PROTEUS强大的单片机系统设计与仿真功能,使它可成为单片机系统应用开发和改进手段之一。全部过程都是在计算机上通过PROTEUS来完成的。其过程一般也可分为三步:
①在ISIS平台上进行单片机系统电路设计、选择元器件、接插件、连接电路和电气检测等。(本书简称PROTEUS电路设计)
②在ISIS平台上进行单片机系统程序设计、编辑、汇编编译、代码级调试,最后生成目标代码文件(*.hex)。(本书简称PROTEUS源程序设计和生成目标代码文件)
③在ISIS平台上将目标代码文件加载到单片机系统中,并实现单片机系统的实时交互、协同仿真。它在相当程度上反映了实际单片机系统的运行情况。(本书简称PROTEUS仿真)
单片机系统的PROTEUS设计与仿真流程如图1-3所示,而其中的PROTEUS电路设计的流程如图1-4所示。
图1-3 PROTEUS设计与仿真流程图1-4 PROTEUS电路设计流程
3.AT89C51单片机简单系统的PROTEUS设计与仿真
为了更快掌握单片机PROTEUS设计与仿真操作,举一简单实例,用PROTEUS设计一个AT89C51单片机简单系统并实时交互仿真,该系统用按键通过单片机控制LED发光管发光。(简称简单实例)
设LED发光管的初始状态为亮,按一下按键,LED灭,再按,LED亮,……,亮灭交替。该“简单实例”的电路原理图如图1-5所示。
图1-5 “简单实例”的电路原理图
1.3.2 PROTEUS电路设计
本“简单实例”的PROTEUS电路设计流程图如图1-4所示。PROTEUS根据图1-5所示的原理图设计其电路,整个设计都是在ISIS编辑区中完成的。
1.鼠标操作特点
·放置对象:在空白处单击鼠标左键(简称单击),放置元器件、连线;
·选中对象:单击鼠标左键,选择元器件、连线和其他对象,此时选中的操作对象以高亮红色(默认色)显示;
·删除对象:鼠标右键要删除的对象,在弹出的下拉菜单中选择删除命令,删除元器件、连线等;
·块选择:按住鼠标左键拖出方框,选中方框中的多个元器件及其连线;
·编辑对象:双击鼠标左键(简称双击),编辑元器件属性:
·移动对象:先左击选中1
内容来自淘豆网转载请标明出处.当前位置: >>
Proteus基础教程7
?6.1 汇编源程序的建立与编译? 6.1.1 Proteus中的源程序设计与编译 ? 6.1.2 Keil ?Vision中的源程序设计与编译 ? 6.2 Proteus与单片机电路的交互式仿真与? ? ? ?调试 6.2.1 6.2.2 6.2.3 6.2.4 6.3.1 6.3.2 6.3.3 6.3.4 6.4.1 6.4.2 6.4.3 6.4.4? ? ? ?6.5.1 6.5.2 6.5.3 6.5.4Proteus电路设计 源程序设计 Proteus调试与仿真 总结与提示加载目标代码 单片机系统的Proteus交互仿真 调试菜单与调试窗口 观察窗口Proteus电路设计 源程序设计 Proteus调试与仿真 总结与提示 Proteus电路设计 源程序设计 Proteus调试与仿真 总结与提示?6.6 8×8点阵LED显示? ? ? ??6.3 I/O口输入输出应用? ? ? ?6.6.1 6.6.2 6.6.3 6.6.46.7.1 6.7.2 6.7.3 6.7.4Proteus电路设计 源程序设计 Proteus设计与仿真 总结与提示Proteus电路设计 源程序设计 Proteus调试与仿真 总结与提示?6.7 I/O口的扩展? ? ? ??6.4 4×4矩阵式键盘识别技术? ? ? ??6.8 定时器/计数器实验? 6.8.1 Proteus电路设计 ? 6.8.2 源程序设计 ? 6.8.3 Proteus设计与仿真?6.5 动态扫描显示 ? 6.8.4 总结与提示 ?6.9 外部数据存储器扩展? ? ? ?6.9.1 6.9.2 6.9.3 6.9.46.10.1 6.10.2 6.10.3 6.10.4 6.11.1 6.11.2 6.11.3 6.11.4Proteus电路设计 源程序设计 Proteus调试与仿真 总结与提示Proteus电路设计 源程序设计 Proteus调试与仿真 总结与提示 Proteus电路设计 源程序设计 Proteus调试与仿真 总结与提示? ? ? ? ?6.12.1 6.12.2 6.12.3 6.12.4Proteus电路设计 源程序设计 Proteus调试与仿真 总结与提示6.13 单片机与直流电动机的接口技 术? ? ? ??6.10 外部中断实验? ? ? ?6.13.1 6.13.2 6.13.3 6.13.4Proteus电路设计 源程序设计 Proteus调试与仿真 总结与提示??6.11 单片机与PC机间的串行通信? ? ? ?6.14 基于DAC0832数模转换器的数 控电源? ? ? ?6.14.1 6.14.2 6.14.3 6.14.4Proteus电路设计 源程序设计 Proteus调试与仿真 总结与提示?6.12 单片机与步进电机的接口技术?6.15 基于ADC0808模数转换器的数 字电压表? ? ? ?6.15.1 6.15.2 6.15.3 6.15.4Proteus电路设计 源程序设计 Proteus调试与仿真 总结与提示 第6章 MCS-51单片机接口基础?MCS-51系列单片机在很多产品中得到了广泛的应 用。在具体的工程实践中,单片机应用技术所涉及 的实践环节较多,且硬件投入较大,如果因为控制 方案有误而进行相应的开发设计,会浪费较多的时 间和经费。Proteus仿真软件很好地解决了这些问题, 它可以像Protel一样绘制硬件原理图并实现硬件调 试,再与Keil编程软件进行联调,实现对控制方案 的验证。尤其对于初学单片机的用户提供了极大的 方便。 6.1 汇编源程序的建立与编译? Keil是德国Keil公司开发的单片机编译器,是目前最好的51单片机开发工具之一,可以用 来编译C源代码和汇编源程序、连接和重定 位目标文件和库文件、创建HEX文件、调试 目标程序等,是一种集成化的文件管理编译 环境。在Proteus中,可以直接与Keil编程软 件进行联调,进而实现对所设计电路的验证。 6.1.1 Proteus中的源程序设计与编译?? ??? ? ??? ?Proteus VSM提供了简单的文本编辑器,用它作为源程序的编辑环境。 对于不同系列的单片机,VSM均提供了相应的编译器,使用时可根据单 片机的型号和语言要求来选取。 编译器有以下几种: ASEM51(51系列单片机编译器); ASM11(Motorola单片机编译器); AVRASM(Atmel AVR系列单片机编译器); AVRASM32(Atmel AVR系列单片机编译器); MPASM(PIC单片机编译器); MPASMSWIN(PIC单片机编译器)。 1. 建立源程序文件 在Proteus ISIS界面中单击菜单Soure(源程序),在弹出的下拉菜单中单 击“Add/Remove Source Files…”(添加/移开源程序)选项,弹出如图6-1 所示对话框, ? 单击“CodeGeneration Tool”(目标代码生成 工具)下方框中按钮,弹出下拉菜单,根据需 要选择相应的编译器,例如“ASEM51”(51系 列单片机编译器)。图6-1 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中加载的源程序文件2. 编写源程序代码 单击菜单【Source】→【mydesign.asm】,出现图6-5所示的源程序编 辑窗口。编写源程序后存盘退出。图6-5 源程序编辑窗口 3. 源程序编译 (1) 编译器设置。 第一次使用编译器时需进行相关的设置,单击菜单【Source】→ 【Define Code Generation Tools】,出现图6-6所示界面,本例中实际设 置结果如图6-6所示 (2) 编译源程序,生成目标代码文件。 单击【Source】→【Build All】,编译结果在弹出的编译日志对话框中。 如果没有错误便成功生成目标代码“.hex”文件。本例中生成的目标代码文 件为“MYDESIGN.HEX”。图6-6 编译器设置界面 6.1.2 Keil ?Vision中的源程序设计与编译在Keil集成开发环境下使用工程的方法来管理文件, 而不是单一文件的模式,所有的文件包括源程序(如 C程序、汇编程序)、头文件等都可以放在工程项目 文件里统一管理。对于刚刚使用Keil的用户,一般 可以按照下面的步骤来创建一个自己的应用程序: ? (1) 一个工程项目文件; ? (2) 选择目标器件(例如,选择ATMEL公司的 AT89C51);? (3) 为工程项目设置软硬件调试环境; ? (4) 创建源程序文件并输入程序代码; ? (5) 保存创建的源程序项目文件; ? (6) 把源程序文件添加到项目中。 ? 具体如何建立应用程序并进行仿真调试,我们将通 过实验来详细说明。 ? 1. 建立一个项目 ? 双击桌面快捷图标即可进入如图6-7所示的集成开发 环境编辑操作界面,主要包括三个窗口:工程项目 窗口、编辑窗口和输出窗口。 ? 单击 Project 菜单,在弹出的下拉菜单中选中 “New Project”选项,新建一个项目,如图6-8所示。? 图6-7 μVision2编辑操作界面图6-8 Project界面 ?然后选择要保存的路径,输入工程文件的名字(比如 保存到uv目录里,工程文件的名字为“shiyan1”), 如图6-9所示,然后单击“保存”按钮。? 这时会弹出一个对话框,要求选择单片机的型号。这里可以根据所使用的单片机来选择, Keil几乎支持所有51核的单片机,这里以 Atmel的89C51来说明,如图6-10所示。图6-9 Project保存设置界面 图6-10 选择器件 首先选择Atmel公司,然后单击左边的“+”号选择AT89C51 之后,右边 栏 是对这个单片机的基本说明,然后单击“确定”,在随后弹出的对话 框单击“否”。 完成以上步骤后,屏幕如图6-11所示 图6-11 初始化编辑界面?首先进行选项设置,将鼠标指针指向“Target 1”并 单击右键,再从弹出的右键菜单中单击“Options for Target”选项,如图6-12所示。 图6-12 选择“Options for Target”选项? 从弹出的“Options”对话框中选择“Output”标签栏,并按如图6-13所示设置其中各项。图6-13 “Output”标签栏 2. 建立一个新的ASM汇编语言程序并编译下面开始编写源程序。 ? (1) 在菜单栏中,单击“File”菜单,再在下拉菜单中 单击“New”选项,或直接单击工具栏的快捷图标来 建立了一个新的编辑窗口。此时光标在编辑窗口里 闪烁,这时可以输入用户的应用程序了。建议首先 保存该空白文件,单击菜单上的“File”,在下拉菜 单中选中“Save As”选项,在弹出对话框的“文件 名”栏右侧编辑框中,输入欲使用的文件名,同时, 必须输入正确的扩展名,如“Text1.asm”,然后, 单击“保存”按钮,如图6-14所示? 图6-14 保存源程序? 注意:如果用C语言编写程序,则扩展名为“.c”;如果用汇编语言编写程序,则扩展名 为“.asm”,且必须添加扩展文件名。 ? (2) 回到编辑界面后,单击“Target 1”前面的 “+”号,然后在“Source Group 1”上单击 右键,弹出如图6-15所示的快捷菜单。 图6-15 弹出右键菜单 ??然后单击“Add File to Group?Source Group 1?”,打开如图 6-16所示对话框,在“文件类型”处默认为“C Source file(*.c)”,因为前面我们保存的是汇编语言的文件,故需要 选择“Asm Source file(*.s*;*.*.a*)”,这样在上面就可以 看到刚才保存的汇编语言文件“Text1.asm”,双击该文件则 自动添加至项目,单击“Close”关闭对话框。 对比图6-17和图6-15,可以看出二者的不同点:在添加了汇 编语言文件后,在“Source Group 1”文件夹前面出现了一 个“+”号,单击“+”号展开就看到了刚才添加的 “Text1.asm”文件。 图6-16 添加文件对话框图6-17 添加文件后工程栏的变化?(3) 然后就可以在右侧的编辑区输入汇编源程序了。 在输入指令时,读者可以看到事先保存待编辑文件 的好处:Keil会自动识别关键字,并以不同的颜色 提示用户加以注意,这样会使用户少犯错误,有利 于提高编程效率。程序输入完毕后别忘了再次保存, 如图6-18所示。 图6-18 程序输入完毕后状态?(4) 程序文件编辑完毕后,单击“Project”菜单,选 中“Built target”选项(或者使用快捷键 F7),或者单 击工具栏的快捷图标来进行编译,如图6-19所示图6-19 编译菜单 ?(5) 如果有错误,则在最后的输出窗口中会出现所有 错误所在的位置和错误的原因,并有“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”(或者使用快捷键 Ctrl+F5),或者单 击工具栏的快捷图标就可以进入调试界面,如图622所示图6-22 调试界面 左面的工程项目窗口给出了常用的寄存器r0-r7以及 a、b、sp、dptr、pc、psw等特殊功能寄存器的值。 在执行程序的过程中可以看到,这些值会随着程序 的执行发生相应的变化。 ? 在存储器窗口的地址栏处输入C:0000H后回车, 则可以观看所有单片机片内程序存储器的内容,如 图6-23所示,下面用横线画出来的部分就是已经编 辑的源程序转化成的机器语言的十六进制数(或者说 是对应的机器码)。如果在存储器窗口的地址栏处输 入D:00H后回车,则可以观看所有单片机片内数 据存储器的内容?图6-23 存储器窗口 在联机调试状态下可以启动程序全速运行、单步运行、 设置断点等,单击菜单“Debug /Go”选项,启动用户程 序全速运行。 ? 下面介绍几种常用的调试命令及方法。 ? (1) 复位CPU ? 用“Debug”菜单或工具栏的“Reset CPU”命令可以复 位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”工具栏的“Step Over”或快捷命令“Step Over” 按钮,即可实现单步运行程序,此时单步运行命令将把函数 和函数调用当作一个实体来看待,因此单步运行是以语句 (该语句不管是单一命令行还是函数调用)为基本执行单元。 (5) 执行返回(Ctrl+F11) 在用单步跟踪命令跟踪到子函数或子程序内部时,使用 “Debug”菜单栏中的“Step Out of Current Function”或快 捷命令按钮“Step Out”,即可将程序的PC指针返回到调用 此子程序或函数的下一条语句。(6) 停止调试(Ctrl+F5) 由于“Led_Light”程序使用了系统资源P1口,为了更好地观 察这些资源的变化,用户可以打开它们的观察窗口。选择 “PeripheralsI/O-PortsPort1”命令,即可打开并行I/O口P1 的观察窗口。 6.2 Proteus与单片机电路的交互 式仿真与调试6.2.1 加载目标代码 在Proteus ISIS界面中编辑电路原理图实例,如图6-24所示图6-24 实例电路原理图?双击单片机AT89C51,打开其属性编辑框,在 “Program File”栏中,单击打开按钮,选取目标代 码文件,这里是“MYDESIGN.HEX”。在“Clock Frequency”栏中设置时钟频率为12MHz,如图6-25 所示。因为仿真运行 ?时的时钟频率是以单片机属性中设置的频率值为 准,所以在Proteus ISIS界面中设计电路原理图时, 可以略去单片机的时钟电路。另外,复位电路也 可略去。对于MCS-51系列单片机而言,在不进行 电路电气检测时,EA引脚也可悬空。图6-25 加载目标代码文件和时钟设置 6.2.2 单片机系统的Proteus交互仿真?在Proteus仿真界面中单击按钮,全速启动仿真, 此时电路中的LED不亮。用鼠标单击电路图中的按 钮,进行交互仿真。单击一次按钮,LED灯亮,再 单击一次,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、PSW、R0~R7、ACC及 将要执行的指令等。在本窗口内右击,可以设置窗 口的字体和颜色。? 图6-27 “Debug”下拉菜单2. 单片机SFR 窗口 ? 通过菜单【Debug】→【8051 CPU SFR MemoryU1】打开单片机的SFR窗口,如图6-29所示。? 3. 单片机IDATA窗口 ? 通过菜单【Debug】→【8051 CPU Internal(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又同时提供了一个观察窗口“Watch Window”,它可以将所关心的各项寄存器的内容集 中于一个窗口中,观察起来十分方便,克服了上述 缺点。 ? 1. 观察项添加 ? 通过菜单【Debug】→【Watch Window】打开空 白的观察窗口,在观察窗口内右击,弹出快捷菜单, 如图6-32所示。由该菜单可添加、删除观察项,设 置观察项的数据类型,显示格式以及设置窗口的字 体、颜色等。? 图6-32 观察窗口及快捷菜单 ?若单击“Add Items(By Name)”项,便会弹出如图6-33所示 的对话框,双击相应的SFR寄存器名称,即可以观察项名称 方式将观察项添加到观察窗口中。也可选择以观察项的地址 来添加观察项的方式。添加了观察项的观察窗口如图6-34所 示。 图6-33 “Add Memory Item”对话框图6-34 添加了观察项的观察窗口2. 观察项删除 ? 要删除已添加的观察项,有两种方法: ? 在观察窗口单击选中相应的观察项,按键盘上的 “Del”键即可。 ? 在观察窗口右击相应的观察项,在弹出的快捷菜单 中单击“Delete Item”选项。? 3. 观察点条件设置 ? 在仿真运行的过程中,还可以通过设置“观察点条 件”的手段来触发中断,以满足某些特殊条件断点 的要求。具体方法:在观察窗口内右击,在弹出的 快捷菜单中单击“Watchpoint Condition”项,弹出 观察点条件设置框,如图6-35所示。?图6-35 观察点条件设置框 ?观察点条件设置分为两级,包括“全局断点条件设置(Global Break Condition)”,如图6-35 中的上半部分所示,和“观察项的断点表达式 (Item Break Expression)”,如图6-35的下半部 分所示。下半部分中“Item”项的内容为观察窗 口中添加的观察项,可单击按钮,在下拉列表 中选择要设置断点的观察项。“Condition”项 为观察项的条件,“Mask”项为观察项的约束 条件,它们具体包含的内容如图6-35的右边所 示。 6.3 I/O口输入输出应用??内容 利用单片机AT89C51制作一个0~99计数器手动计数器,用 其P2.0~P2.7接一个共阴极数码管,输出显示0~99计数值的个位,用P0.0~P0.7接数码管输出显示计 数值的十位数。P3.3引脚外接一轻触开关,要求每 按下一次按键,计数值加1,当计数值超出99后自 动返回0重新开始循环计数。 ? 训练目的 ? 掌握AT89C51单片机I/O口输入输出的应用方法; ? 掌握单片机驱动7段数码管显示数字的编程方法。 6.3.1 Proteus电路设计1. 元件清单列表 打开Proteus ISIS编辑环境,按表6-1所列的清单添加元件。 表6-1 元件清单元件名称 所 属 类 所属子类AT89C51Microprocessor ICs8051 FamilyCAPCapacitorsGenericCAP-ELECCapacitorsGenericCRYSTALMiscellaneous-RESResistorsGeneric7SEG-COM-CAT-GRNOptoelectronics7-Segment DisplaysBUTTONSwitches&RelaysSwitches 2. 电路原理图 ? 元件全部添加后,在Proteus ISIS的编辑区域中按 图6-36所示的原理图(晶振和复位电路略)连接硬件 电路。?图6-36 电路原理图 6.3.3 Proteus调试与仿真1. 建立程序文件 ? (1) 打开Keil ?Vision3,新建Keil项目,选择AT89C51 单片机作为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) 在该窗口的“Program 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】选项,或者在工具栏中直接单击图 标,进入调试环境;进行调试与仿真 ? (1) 在Keil的菜单栏中选择【Debug】→ 【Start/Stop Debug Session】选项,或者在工 具栏中直接单击图标,进入调试环境; ? (2) 按“F5”键或图标,顺序执行程序; ? (3) 在Proteus ISIS界面中,按动开关,可看到 数码管的显示值随之加1,如图6-37所示。? 3. 图6-37 程序运行结果6.3.4 总结与提示AT89C51单片机的P0口在作为普通I/O使用时必须 加上拉电阻,否则不能准确输入或输出高低电平。 仿真时可通过观察P0口的电平状态来体会这一点。 在Proteus与Keil的联调过程中,可以综合运用Keil 中的多种调试功能来详细观察电路的工作情况。6.4 4×4矩阵式键盘识别技术内容 ? 键盘是一组按键的集合,它是最常用的单片机输入设 备。操作人员可以通过键盘输入数据或命令,实现 简单的人―机通信。键盘分编码键盘和非编码键盘。 靠软件识别的为非编码键盘。从结构上来分又可以 分为独立连接式和行列式(矩阵式)两类。? 为了减少键盘占用单片机的I/O线数目,通常都将键 盘排列成矩阵式。 ? 训练目的 ? 掌握软件键盘去抖的方法; ? 掌握键盘识别编程的方法。?6.4.1 Proteus电路设计1. 元件清单列表 打开Proteus ISIS编辑环境,按表6-2所列的清单添加 元件。 表6-2 元件表清单元件名称 所 属 类 所属子类AT89C51Microprocessor ICs8051 FamilyCAPCapacitorsGenericCAP-ELECCapacitorsGenericCRYSTALMiscellaneous-RESResistorsGeneric7SEG-COM-CAT-GRNOptoelectronics7-Segment DisplaysBUTTONSwitches&RelaysSwitches 2. 电路原理图 ? 元件全部添加后,在Proteus ISIS的编辑区域中按 图6-38所示的原理图(晶振和复位电路略)连接硬件 电路。?图 6-38 电路原理图 6.4? ?源程序设计略6.4.3 Proteus调试与仿真参照6.3.3节建立程序文件,加载目标代码文件,进 入调试环境,执行程序,在Proteus ISIS界面中, 按下各个按键,观察数码管上的显示和所标的键号 是否对应。6.4.4 总结与提示在Proteus与Keil的联调过程中,可以综合运用Keil 中的多种调试功能来详细观察电路的工作情况。 ? 在Proteus中仿真时可以降低单片机的工作频率,观 察电路中各接点的电平变化情况,看是否和所编程 序符合,以增强对程序的理解。? 6.5 动态扫描显示内容 ? 单片机应用系统中使用的显示器件主要有发光二极 管,简称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编辑环境,按表6-3所列的清单添加元件表6-3 元 件 清 单元件名称 所属类 所属子类 AT89C51 Microprocessor ICs 8051 FamilyCAPCapacitorsGenericCAP-ELECCapacitorsGenericCRYSTALMiscellaneous-RESResistorsGeneric7SEG-MPX8-CA-BLUEOptoelectronics7-Segment Displays74LS59574LS SerialRegisters ?2. 电路原理图 元件全部添加后,在Proteus ISIS的编辑区域中按图 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.6 8×8点阵LED显示内容 用单片机AT89C51驱动8×8点阵LED显示屏,轮流 显示0~9的数字。显示方式采用自右向左拉幕式显 示。 ? 训练目的 ? 掌握8×8点阵LED显示屏的使用方法; ? 掌握单片机进行拉幕式显示的编程方法。? 6.6.1 Proteus电路设计?1. 元件清单列表 打开Proteus ISIS编辑环境,按表6-4所列的清 单添加元件。 表6-4 元件清单元件名称 所 属 类 Microprocessor ICs Capacitors Capacitors Miscellaneous Resistors TTL 74LS Series Optoelectronics Resistors 8051 Family Generic Generic - Generic Tansceivers Dot Matrix Displays Resistors Packs 所属子类AT89C51 CAP CAP-ELEC CRYSTAL RES 74LS245 MATRIX-8×8-RED RESPACK-8 ?2. 8×8点阵LED元件介绍 Proteus ISIS中的8×8点阵LED元件原理图如图640(a)所示。由于该元件引脚没有任何标注,因此在 使用之前必须进行引脚测试,以确定行线和列线的 顺序及极性。图6-40(b)给出了一种进行引脚测试的 方法,根据测试结果便很容易确定该元件的电路接 法。图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 I/O口的扩展内容 ? 8255是微机并行可编程I/O口扩展芯片。对8255输 入不同的指令可改变I/O口的工作方式。8255与单 片机系统连接方式简单,工作方式由程序设定。 ? 背景知识 ? 已掌握Keil ?Vision3开发软件的使用方法; ? 已掌握常用外部RAM的基本操作。 ? 训练目的 ? 掌握单片机与8125的接口原理,熟悉8255初始化编 程,以及输入输出的设计方法。? 6.7.1 Proteus电路设计?1.元件清单列表 打开Proteus ISIS编辑环境,按表6-5所列的清 单添加元件 表6-5 元 件 清 单元件名称 AT89C51 74LS373 LED-BLUE 8255A RES RESPACK-8 74LS04 所属类 Microprocessor ICs 74LS Active Micro Resistors Switches&Relays Device 8051 Family Generic Generic - Generic Switches - 所属子类 ?2. 电路原理图 元件全部添加后,在Proteus ISIS的编辑区域中按图 6-43所示的原理图连接硬件电路。VCCU119 XTAL1 P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 P3.0/RXD P3.1/TXD P3.2/INT0 P3.3/INT1 P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD 39 38 37 36 35 34 33 32 21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17 P00 P01 P02 P03 P04 P05 P06 P07 P00 3 P01 4 7 8 13 14 17 P07 18 1 11U3D0 D1 D2 D3 D4 D5 D6 D7 OE LE 74LS373 Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 2 5 6 9 12 15 16 19 P00 P01 P02 P03 P04 P05 P06 P07 34 33 32 31 30 29 28 27 5 36 9 8 35 6U2D0 D1 D2 D3 D4 D5 D6 D7 RD WR A0 A1 RESET CS PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7 PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7
2 1 40 39 38 37 18 19 20 21 22 23 24 25 14 15 16 17 13 12 11 10 1 2 1 3 4 2 3 4 5 6 7 8 918XTAL2569RST131229 30 31PSEN ALE EA1110981 2 3 4 5 6 7 8P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 AT89C511234图6-43 电路原理图 6.7.2 源程序设计?1. 流程图 图6-44为程序流程图。图6-44 流程图 6.7.3 Proteus调试与仿真?参照6.3.3节建立程序文件、加载目标代码文件,进 入调试环境,单击Proteus ISIS下面的仿真运行键, 即可看到如图6-45所示的运行结果。VCCU119 XTAL1 P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 P3.0/RXD P3.1/TXD P3.2/INT0 P3.3/INT1 P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD 39 38 37 36 35 34 33 32 21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17 P00 P01 P02 P03 P04 P05 P06 P07 P00 3 P01 4 7 8 13 14 17 P07 18 1 11U3D0 D1 D2 D3 D4 D5 D6 D7 OE LE 74LS373 Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 2 5 6 9 12 15 16 19 P00 P01 P02 P03 P04 P05 P06 P07 34 33 32 31 30 29 28 27 5 36 9 8 35 6U2D0 D1 D2 D3 D4 D5 D6 D7 RD WR A0 A1 RESET CS PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7 PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7
2 1 40 39 38 37 18 19 20 21 22 23 24 25 14 15 16 17 13 12 11 10 1 2 1 3 4 2 3 4 5 6 7 8 918XTAL2569RST131229 30 31PSEN ALE EA1110981 2 3 4 5 6 7 8P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 AT89C511234图6-45 程序运行结果 6.7.4 总结与提示 ? 采用8255并口扩展芯片的PA0口,设计一个 4×4键的矩阵键盘扫描程序。6.8 定时器/计数器实验内容 ? 利用单片机AT89C51,控制一发光二极管,亮1秒, 关闭1秒,循环进行;要求使用定时器/计数器控制。 ? 训练目的 ? 掌握AT89C51单片机定时器/计数器混合编程的使用 方法? 6.8.1 Proteus电路设计?1. 元件清单列表 打开Proteus ISIS编辑环境,按表6-6所列的清单 添加元件 表6-6 元件清单元件名称 所 属 类 Microprocessor ICs 8051 Family 所属子类AT89C51CAPCAP-ELEC CRYSTAL RESCapacitorsCapacitors Miscellaneous ResistorsGenericGeneric - GenericLED-BLUESWITCHActiveActive-- ?2. 电路原理图 元件全部添加后,在Proteus ISIS的编辑区域中按图 6-46所示的原理图连接硬件电路。C11nFX1C21nF 19U1XTAL1 P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 P3.0/RXD P3.1/TXD P3.2/INT0 P3.3/INT1 P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD 39 38 37 36 35 34 33 32 21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17CRYSTAL18XTAL29R1200C322uF 29 30 31RSTR21k P10 1 2 3 4 5 6 7 8PSEN ALE EAD1LED-BLUEP1.0/T2 P1.1/T2EX P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 AT89C52P10图6-46 电路原理图 9RSTP0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A1535 34 33 32 21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 176.8.3 Proteus设计与仿真29 30 31 PSEN ALE EA?参照6.3.3节建立程序文件、加载目标代码文件,进 入调试环境执行程序,在Proteus ISIS界面中,可 以看到,LED灯亮一秒,关一秒,循环进行,如图 D1 6-47 R31 2 3 4 5 6 7 8 P1.0/T2 P1.1/T2EX P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 P3.0/RXD P3.1/TXD P3.2/INT0 P3.3/INT1 P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD 10 LED-BLUE AT89C52图6-47 运行结果6.8.4 总结与提示尝试改变计数器的值,使延时的时间更长。 6.9 外部数据存储器扩展内容 ? 用SRAM6264扩展单片机AT89C51的外部数据存储 器,通过仿真窗口观察向6264写入数据的过程。 ? 训练目的 ? 掌握AT89C51扩展外部数据存储器时的接口电路设 计方法; ? 加深单片机对外部数据存储器进行读写过程的理解。? 6.9.1 Proteus电路设计?1. 元件清单列表 打开Proteus ISIS编辑环境,按表6-7所列的清 单添加元件 表6-7 元件清单元件名称 所 属 类 Microprocessor ICs Capacitors Capacitors Miscellaneous Resistors TTL 74HC Series Memory Ics 8051 Family Generic Generic - Generic Flip Flops&Latches Static RAM 所属子类AT89C51 CAP CAP-ELEC CRYSTAL RES 74LS373 6264 ?2. 电路原理图 元件全部添加后,在Proteus ISIS的编辑区域中按图 6-48所示的原理图(复位和振荡电路略)连接硬件电 路。图6-48 电路原理图 6.9.3 Proteus调试与仿真? ????参照6.3.3节建立程序文件、加载目标代码文件,进入调试环 境,然后执行下述操作: (1) 在Proteus ISIS界面中,单击按钮启动仿真。 (2) 通过菜单【Debug】→【Memory Contents→U1】,打开 6264存储器窗口; (3) 通过菜单【Debug】→【Debug→Watch Window】,在 弹出的观察窗口右击,选择“以观察项的名称添加观察项”, 在弹出的对话框中添加累加器ACC和数据指针DPTR。 (4) 单击按钮暂停仿真,可观察程序运行的中间结果,如图 6-49所示。 图6-49 程序运行结果6.9.4 总结与提示? 受计算机性能的影响,以及Proteus软件运行仿真时需要处理大量的数据,会出现仿真结 果的画面刷新率跟不上程序运行的速度,致 使不能看到存储器内容随程序运行的动态变 化,仿真时可手工刷新画面观察。 6.10 外部中断实验内容 ? MCS-51是一个多中断源的单片机,以8051为例, 有三类共五个中断源,分别是两个外部中断,两个 定时器中断和一个串行中断。外部中断是由外部原 因引起的,共有两个中断源,即外部中断0和外部 中断1。它们的中断请求信号分别由引脚(P3.2)和 (P3.3)引入;外部中断请求信号有两种,即低电平 有效方式和脉冲后沿负跳有效方式。 ? 中断控制是提供给用户使用的中断控制手段,实际 上就是控制一些寄存器。51系列用于此目的的控制 寄存器有四个:TCON、IE、SCON及IP。? 表6-8 IE 寄 存 器位地址 AF AE AD AC AB AA A9 A8位符号EA--ESET1EX1ET0EX0EA―― 中断允许总控制位; ? 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,各位定义如表69所示。?表6-9 IP 寄 存 器位地址 BF BE BD BC BB BA B9 B8 位符号 / / / PS PT1 PX1 PT0 PX0 ? 各位含义如下:外部中断0优先级设定位; ? PT0―― 定时中断0优先级设定位; ? PX1―― 外部中断1优先级设定位; ? PT1―― 定时中断1优先级设定位; ? PS―― 串行中断优先级设定位。 ? 为0的位优先级为低;为1的位优先级为高。 ? 中断优先级是为中断嵌套服务的,MCS-51中 断优先级的控制原则如下。? PX0―― ?? ?? ? ?(1) 低优先级中断请求不能打断高优先级的中断服务;但高 优先级中断请求可以打断低优先级的中断服务,从而实现中 断嵌套。 (2) 如果一个中断请求已被响应,则同级的其他中断响应将 被禁止。 (3) 如果同级的多个中断请求同时出现,则按CPU查询次序 确定哪个中断请求被响应,其查询次序为:外部中断0―定 时中断0―外部中断1―定时中断1―串行中断。 训练目的 熟悉理解MCS-51的中断系统组成; 了解掌握单片机系统中断的原理及使用方法。 6.10.1 Proteus电路设计1. 元件清单列表 ? 打开Proteus ISIS编辑环境,按表6-10所列的清单 添加元件?表6-10 元 件 清 单元件名称 AT89C51 CAP CAP-ELEC Microprocessor ICs Capacitors Capacitors 所 属 类 8051 Family Generic Generic 所属子类CRYSTALRESMiscellaneousResistors-GenericLEDBUTTONOptoelectronicsSwitches&RelaysLEDsSwitches ?2. 电路原理图 元件全部添加后,在Proteus ISIS的编辑区域中按图 6-50所示的原理图(晶振和复位电路略)连接硬件电 路。图6-50 电路原理图 6.10.3 Proteus调试与仿真?参照6.3.3节建立程序文件,加载目标代码文件,进 入调试环境执行程序,在Proteus ISIS界面中,按 动开关,可看到数码管显示的变化,如图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的使用方法; 掌握Proteus VSM虚拟终端(VITUAL TERMINAL)的使用; 掌握单片机与PC机间的串行通信软硬件设计方法。 6.11.1 Proteus电路设计1. 元件清单列表 ? 打开Proteus ISIS编辑环境,按表6-11所列的清单 添加元件?表6-11 元 件 清 单元件名称 AT89C51 CAP CAP-POL CRYSTAL Microprocessor ICs Capacitors Capacitors Miscellaneous 所 属 类 8051 Family Generic Generic - 所属子类RES7SEG-BCD-GRN MAX232 COMPIMResistorsOptoelectronics Microprocessor ICs MiscellaneousGeneric7-Segment Displays Peripherals - 2. 串口模型介绍 ? 串口模型COMPIM及其引脚功能如图6-52中(a)所示。 需要注意的是,在Proteus ISIS元件库的 “Connectors”类的“D-Type”子类中,也有一个串 口模型器件CONN-D9F,如图6-52中(b)所示,因该 器件在使用时没有仿真模型,将导致仿真失败,所 以要避免选用。?图6-52 Proteus串口模型 3. 电路原理图 ? 元件全部添加后,在Proteus ISIS的编辑区域中按 图6-53所示的原理图(晶振和复位电路略)连接硬件 电路。?图6-53 电路原理图 ?4. 串口模型属性设置 串口模型属性设置为:波特率D4800;数据位D8; 奇偶校验D无;停止位-1,如图6-54所示。图6-54 串口模型属性设置 ? 4. 串口模型属性设置 串口模型属性设置为:波特率D4800;数据位D8; 奇偶校验D无;停止位-1,如图6-54所示。 5. 虚拟终端属性设置 ? PCT代表计算机发送数据,PCR用来监视PC接收到 的数据,它们的属性设置完全一样,如图6-55所示。 SCMT和SCMR分别是单片机的数据发送和接收终 端,用来监视单片机发送和接收的数据,它们的属 性设置也完全一样,如图6-56所示。单片机和PC机 双方的波特率、数据位、停止位和检验位等要确保 和串口模型的设置一样,并且同单片机程序中串口 的设置一致。 ? 要注意到PC机虚拟终端与单片机虚拟终端在RX/TX Polarity属性的设置是相反的,因为信号在经过器件 MAX232时要反相。?图6-55 PC机虚拟终端属性设置图6-56 单片机虚拟终端属性设置 6.11.3 Proteus调试与仿真? ? ?参照6.3.3节建立程序文件,加载目标代码文件,进入调试环 境执行程序,进行以下操作: (1) 在Proteus ISIS界面中的PCT虚拟终端上单击右键,在弹 出的快捷菜单中选择“Echo Typed Characters”项; (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.1 Proteus电路设计1. 元件清单列表 ? 打开Proteus ISIS编辑环境,按表6-12所列的清单 添加元件。?表6-12 元件清单元件名称 AT89C51 CAP CAP-ELEC CRYSTAL RES BUTTON MOTOR-STEPPER ULN2003A 所 属 类 Microprocessor ICs Capacitors Capacitors Miscellaneous Resistors Switches&Relays Electromechanical Analog ICs 8051 Family Generic Generic - Generic Switches - Miscellaneous 所属子类 2. 步进电机元件介绍 ? Proteus软件中的单极性步进电机元件为6线制,其 原理图及属性编辑框如图6-59所示,各属性值可根 据需要修改。本例中所设置的属性值均如图6-59所 示?图6-59 单极性步进电机原理图及属性 3. 电路原理图 ? 元件全部添加后,在Proteus ISIS的编辑区域中按 图6-60所示的原理图连接硬件电路。?图6-60 电路原理图 6.12.3 Proteus调试与仿真参照6.3.3节建立程序文件,加载目标代码文件,进 入调试环境执行程序,进行如下操作:图6-61 程 序运行结果 ? (1) 在Proteus ISIS界面中,按“正转”、“反转” 按钮,观察步进电机的状态,如图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.1 Proteus电路设计1. 元件清单列表 ? 打开Proteus ISIS编辑环境,按表6-13所列的清 单添加元件 表6-13 元件清单?元件名称 所 属 类 所属子类 AT89C51 CAP CAP-ELEC CRYSTAL RES SW-SPDT MOTOR ADC0808 POT-HG 2N5550 PNP OPTOCOUPLERS-NPN Microprocessor ICs Capacitors Capacitors Miscellaneous Resistors Switches&Relays Electromechanical Data Converters Resistors Transistors Transistors Optoelectronics 8051 Family Generic Generic - Generic Switches - A/D Converters Variable Bipolar Generic optocouplers 2. 电路原理图 ? 元件全部添加后,在Proteus ISIS的编辑区域中按 图6-62所示的原理图连接硬件电路。?图6-62 电路原理图 6.13.3 Proteus调试与仿真?参照6.3.3节建立程序文件,加载目标代码文件,进 入调试环境执行程序。在Proteus ISIS界面中,调 节电位器RV1,可以看到电机转速随着电位器的调 节相应发生变化,如图6-63所示。同时通过示波器 观察单片机输出的PWM控制脉冲信号,如图6-64所 示。切换开关SW1的状态可切换电机的正、反转。图6-63 程序运行结果 图6-64 单片机输出的PWM控制脉冲信号图6-65 直接加工作电压的直流电机6.13.4 总结与提示尝试直接给电动机加相同幅值的直流电压,并观察 其转速大小,如图6-65所示,与单片机控制下直流 电动机的最大转动速度做比较,观察差别并思考其 中的原因; ? 在Proteus ISIS界面中双击直流电机,可打开其属 性编辑框,并根据需要修改其属性值,包括标称电 压、转速等。? 6.14 基于DAC0832数模转换器的数控电源? ?? ? ??? ? ? ?内容 利用单片机AT89C51与D/A转换器件DAC0832设计一个数控 电源,按照预设的程序自动调节三端稳压电路LM317的输出 电压。 背景知识 已掌握Keil ?Vision3开发软件的使用方法; 了解DAC0832的工作原理与使用方法; 了解LM317可调三端稳压块的使用方法。 训练目的 掌握AT89C51与D /A转换器件DAC0832接口电路的设计方 法; 掌握单片机控制DAC0832器件的编程方法; 掌握数控电压源设计的基本原理和方法。 6.14.1 Proteus电路设计1. 元件清单列表 ? 打开Proteus ISIS编辑环境,按表6-14所列的清 单添加元件。 表6-14 元件清单?元件名称 AT89C51 CAP CAP-ELEC Microprocessor ICs Capacitors Capacitors 所 属 类 8051 Family Generic Generic 所属子类CRYSTALRESMiscellaneousResistors-Generic元件名称 LM317L DAC0832 LM358 Analog Ics Data Converters所 属 类 Regulators D /A Converters Dual所属子类Operational Amplifiers 电路原理图 ? 元件全部添加后,在Proteus ISIS的编辑区域 中按图6-66所示的原理图(复位与振荡电路略) 连接硬件电路。? 2.图6-66 电路原理图 6.14.3 Proteus调试与仿真?参照6.3.3节建立程序文件,加载目标代码文件,进 入调试环境执行程序,在Proteus ISIS界面中,观 察LM317输出端的数字电压表示值发生的变化,仿 真片段如图6-67所示。图6-67 程序运行结果 6.14.4 总结与提示对本例程序进行修改,可产生不同波形连续变化的 输出电压。 ? LM317可调输出电压的最低值为1.25V,通过本例 也能观察到这一点。 ? 由于LM358输出没有调零电路,不能校准,因此数 模转换输出结果存在一定的误差,导致可调电压源 的输出也存在误差,在本例中亦有所体现。? 6.15 基于ADC0808模数转换器的数字电压表内容 ? 利用单片机AT89C51与A/D转换器件ADC0808设计 一个数字电压表,能够测量0~5V之间的直流电压 值,并用4位数码管实时显示该电压值。 ? 背景知识 ? 已掌握Keil ?Vision3开发软件的使用方法; ? 了解ADC0808的工作原理与使用方法。 ? 训练目的 ? 掌握AT89C51与A/D转换器件ADC0808接口电路的 设计方法; ? 掌握在对测量数据处理过程中数值的量程转换方法; ? 体会A/D转换器的位数对测量精度的影响。? 6.15.1 Proteus电路设计1. 元件清单列表 ? 打开Proteus ISIS编辑环境,按表6-15所列的清 单添加元件。?表6-15 元件清单元件名称 AT89C51 CAP CAP-ELEC Microprocessor ICs Capacitors Capacitors 所 属 类 8051 Family Generic Generic 所属子类CRYSTALRESMiscellaneousResistors-Generic7SEG-MPX4-CC-BLUEADC0808 POT-LINOptoelectronicsData Converters Resistors7-Segment DisplaysA/D Converters Variable 2. 电路原理图 ? 元件全部添加后,在Proteus ISIS的编辑区域中按 图6-68所示的原理图连接硬件电路。?图6-68 电路原理图 6.15.2 源程序设计? ADC0808在进行A/D转换时需要有CLOCK信号,我们在硬件电路设计中将ADC0808的 CLOCK信号接在了AT89C51单片机的P1.4端 口上,即通过P1.4端口为ADC0808提供 CLOCK信号,因此在程序编写时要由软件产 生该时钟信号。 6.15.3 Proteus调试与仿真参照6.3.3节建立程序文件,加载目标代码文件,进 入调试环境执行程序。在Proteus ISIS界面中,调 节电位器POT-LIN,可以看到数码管显示的电压值 随着电位器的调节实时发生变化,如图6-69所示。 ? 图6-69 程序运行结果 ? 比较数码管显示的电压值同数字电压表数值间的误 差,分析误差产生的原因,并从中体会A/D转换器 的转换位数同转换精度之间的关系。? 图6-69 程序运行结果 6.15.4 总结与提示? ADC0809与ADC0808的工作原理基本一样,但是在Proteus仿真软件里,没有ADC0809 的仿真模型,所以熟悉ADC0809的读者也可 用ADC0808器件作替代来进行A/D转换实验。 ? 在Proteus与Keil的联调过程中,可以综合运 用Keil中的多种调试功能来详细观察电路的工 作情况
更多搜索:
All rights reserved Powered by
文档资料库内容来自网络,如有侵犯请联系客服。}

我要回帖

更多关于 vb串口调试助手源程序 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信