版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、学习教程 protues子情境1:简单实例助你快速掌握PROTEUS的用法1211 子情境内容:让单片机动起来,用单片机控制一个LED灯闪烁发光。1512 子情境目标:1513 子情境步骤15131步骤一: PROTEUS电路设计15132步骤二:源程序设计与生成目标代码文件20(1)程序流程图20(2)源程序设计21133 步骤三:PROTEUS仿真2214 扩展练习24子情境二:用发光二极管实现流水灯乒乓球效果2521 子情境目标:2522 子情境步骤25221 步骤一: PROTEUS电路设计25222步骤二:源程序设计与目标代码文件生成26(1)程序流程图26(2)源程序设计27223
2、 步骤三:PROTEUS仿真2924 扩展练习29子情境三:数码管动态扫描3031子情境内容:利用动态扫描让四位数码管稳定的显示1234。3032 子情境目标:30(1)掌握单片机控制四位数码管的动态扫描技术,包括程序设计和电3033 知识点链接3034 任务步骤31341 步骤一:PROTEUS电路设计,单片机控制四位共阴极数码管动态扫描显示的原理图如图517所示。31342 步骤二:源程序设计与目标代码文件生成33(1)程序流程图33(2)源程序设计33343 步骤三:PROTEUS仿真3535 扩展练习36子情境四:定时/计数器的使用方波发生器3741子情境内容:用AT89C51单片机定
3、时/计数器0的定时功能可构成一简单的方波发生器,实现周期为2s的方波,并能在虚拟示波器上直观地显示波形。3742 子情境目标:3743 知识点链接37441 步骤一:PROTEUS电路设计,实现周期为2s的方波的原理图如图522所示。37(1)程序流程图38(2)源程序设计38443 步骤三:PROTEUS仿真3945 扩展练习41子情境五:单片机外部中断仿真4251子情境内容:外部中断是单片机的重要内容,本子情境用外部中断功能改变流水灯和数码管的显示状态。4252 子情境目标:42(1)理解单片机的中断原理及中断过程42(2)用PROTEUS设计、仿真单片机的外部中断。4253 知识点链接4
4、254 任务步骤42541 步骤一:PROTEUS电路设计,实现外部中断功能改变流水灯和数码管的显示状态的原理图42542 步骤二:源程序设计与目标代码文件生成43(1)程序流程图43(2)源程序设计43543 步骤三:PROTEUS仿真4555 扩展练习47主程序中数码管从0至9顺序显示数字,中断发生后(在单片机P3.2引脚上有低电平),数码管从9至0反序显示。47子情境六:直流电机正反转4861子情境内容:用单片机AT89C51控制直流电机正反转。4862 子情境目标:48(1)掌握趋动电机正反转的电路48(2)用PROTEUS实现电机正反转电路的设计,并进行实时交互仿真4863 知识点链
5、接4864 任务步骤48641 步骤一:PROTEUS电路设计,实现用单片机AT89C51控制直流电机正反转原理图48642 步骤二:源程序设计与目标代码文件生成50(1)程序流程图50(2)源程序设计51643 步骤三:PROTEUS仿真5265 扩展练习53子情境七:用ADC0809实现电压表5571子情境内容:利用单片机AT89C52和ADC0809设计一个数字电压表,能够测量05V之间的电压值,用四位数码管显示。5572 子情境目标:55(1)掌握PROTEUS中电压探针和电压表的使用方法55(2)通过制作简易电压表,学会AD转换芯片在单片机应用系统中的硬件接口技术和编程方法。5573
6、 知识点链接55了解ADC0809芯片的功能以及使用方法55(1)功能:ADC0809芯片为8通道模/数转换器,可以和单片机直接接口,将IN0IN7任何一通道输入的模拟电压转换成八位二进制数,在时钟为500KHZ时,一次变换时间约为100us。55(2)使用方法:28脚双列直插式封装如图539所示,各引脚功能如下:5574 任务步骤56741 步骤一:PROTEUS电路设计,利用单片机AT89C52和ADC0809设计一个数字电压表的原理图如图540所示。56742 步骤二:源程序设计与目标代码文件生成58(1)程序流程图58(2)源程序设计59743 步骤三:PROTEUS仿真6275 扩展
7、练习66子情境八:1602液晶显示器6781子情境内容:利用单片机AT89C52控制液晶显示器(Liquid Crystal Display,简称为LCD)实时显示。在1602液晶的第一行显示“I LOVE MY FAMILY”,在第二行显示“”。6782 子情境目标:67(1)掌握1602液晶与单片机的接口电路67(2)通过控制LCD,学会LCD液晶模块在单片机应用系统中的编程方法。6783 知识点链接67了解LCD1602芯片的功能以及使用方法67(1)功能:本情境中所使用的液晶显示器型号为1602,意思是每行显示16个字符,一共可以显示两行。此液晶只能显ASCII字符,如数字、大小写字母
8、、各种符号等。67(2)使用方法:1602液晶的引脚图6784 任务步骤68841 步骤一:PROTEUS电路设计,利用单片机AT89C52控制液晶显示器实时显示的原理图如图546所示。68842 步骤二:源程序设计与目标代码文件生成69(1)程序流程图69(2)源程序设计69843 步骤三:PROTEUS仿真7185 扩展练习72子情境九:简易秒表制作7391子情境内容:制作简易秒表,利用按键构成键盘实现秒表的启动、停止与复位,利用LED数码管显示时间。7392 子情境目标:73(1)通过简易秒表的制作,进一步熟悉LED数码管与单片机的接口电路73(2)学习定时/计数器、中断技术的综合运用并
9、会使用简易键盘7393 知识点链接7394 任务步骤73941 步骤一:PROTEUS电路设计,简易秒表的原理图如图551所示。73942 步骤二:源程序设计与目标代码文件生成74(1)程序流程图74(2)源程序设计76943 步骤三:PROTEUS仿真7995 扩展练习81此子情境设计的秒表只能显示两位整数,如果要记录110跨栏12:88秒的成绩,则必须再增加两位数码管来显示小数位。想想硬件和软件应该做如何改动。81子情境十:点阵LED简单图形显示技术82101子情境内容:利用单片机AT89C52在8×8点阵上逐次显示心形、圆形和菱形图。82102 子情境目标:82(1)通过学习点
10、阵LED显示技术,掌握单片机与点阵的接口电路。82(2)进一步熟悉单片机I/O口的运用方法,了解动态显示的编程方法82103 知识点链接82104 任务步骤831041 步骤一:PROTEUS电路设计,LED点阵的原理图如图556所示。831042 步骤二:源程序设计与目标代码文件生成84(1)程序流程图84(2)源程序设计851043 步骤三:PROTEUS仿真87105 扩展练习88子情境1:简单实例助你快速掌握PROTEUS的用法为了更快掌握PROTEUS设计与仿真操作,我们先从一简单实例入手带你入门。让我们首先来熟悉一下仿真软件的主界面:图51 仿真软件的主界面运行protues的IS
11、IS模块,进入仿真软件的主界面,如图51所示,区域为菜单及工具栏,区域为元器件预览区,区域为对象选择器窗口,区域为编辑窗口,区域为绘图工具栏,区域为元器件调整工具栏,区域为运行工具条。Proteus是一种集单片机仿真和SPICE分析于一身的仿真软件。其功能非常强大,不仅能仿真模拟电路、数字电路以及模拟数字混合电路,更重要的是可以仿真51系列、AVR、PIC等常用主流单片机。Protues提供了丰富的资源:(1)Proteus拥有的元器件资源:Proteus可提供30多种元件库,超过8000种模拟、数字元器件。(2)Proteus可提供的仿真仪表资源 :仿真仪器仪表的数量、类型和质量是衡量仿真实
12、验室是否合格的一个关键因素。Proteus可提供常用的示波器(本文的实例中示波器被用来观察产生的波形)、逻辑分析仪、虚拟终端、SPI调试器、I2C调试器、信号发生器、模式发生器、交直流电压表、交直流电流表。以下简要罗列了proteus中常用元器件和仿真仪表中英文对照表:7407 驱动门 1N914 二极管 74Ls00 与非门 74LS04 非门74LS08 与门 74LS390 TTL 双十进制计数器 7SEG 4针BCD-LED 输出从0-9 对应于4根线的BCD码7SEG 3-8译码器电路BCD-7SE
13、G转换电路 AND 与门 BATTERY 电池/电池组 BUS 总线 CAP 电容 CAPACITOR 电容器 CLOCK 时钟信号源 CRYSTAL 晶振 FUSE 保险丝 GROUND 地 LAMP 灯 LED-RED 红色发光二极管 LM016L 2行16列液晶可显示2行16列英文字符,有8位数据总线D0
14、-D7,RS,R/W,EN三个控制端口(共14线),工作电压为5V。LOGIC ANALYSER 逻辑分析器 LOGICPROBE 逻辑探针 LOGICPROBEBIG 逻辑探针 用来显示连接位置的逻辑状态LOGICSTATE 逻辑状态 用鼠标点击,可改变该方框连接位置的逻辑状态LOGICTOGGLE 逻辑触发 MOTOR 马达 OR 或门 POT-LIN 三引线可变电阻器POWER 电源RES 电阻 RESISTOR 电阻器 SWITCH 按钮 手动按一下一个状态
15、VOLTMETER 伏特计 VOLTMETER-MILLI mV伏特计VTERM 串行口终端 Electromechanical 电机 Inductors 变压器 Laplace Primitives 拉普拉斯变换Miscellaneous 各种器件 AERIAL-天线;ATAHDD;ATMEGA64;BATTERY;CELL;CRYSTAL-晶振;FUSE;METER-仪表;Optoelectronics 各种发光器件 发光二极管,LED,液晶等等Resistors 各种电阻 Simulator Primi
16、tives 常用的器件 Speakers & Sounders 扬声器Switches & Relays 开关,继电器,键盘Transistors 晶体管(三极管,场效应管)TTL 74 series TTL 74ALS series TTL 74AS series TTL 74F series TTL 74HC series TTL 74HCT series TTL 74LS series TTL 74S series 此 模拟电路集成芯片
17、;Capacitors 电容集合 Connectors 排座,排插 Data Converters ADC,DACDebugging Tools 调试工具 下面开始我们的第一个任务:11 子情境内容:让单片机动起来,用单片机控制一个LED灯闪烁发光。用P1口的第一个引脚控制一个LED灯, 1秒钟闪烁一次。12 子情境目标:通过此子情境的练习,快速掌握PROTEUS的基本用法13 子情境步骤131步骤一: PROTEUS电路设计整个设计都是在ISIS编辑区中完成的。(1)单击工具栏上的“新建”按钮,新建一个设计文档。单击“保存”按钮,弹出如图52所示的“
18、Save ISIS Designe File”对话框,在文件名框中输入“LED”(简单实例的文件名),再单击“保存”按钮,完成新建设计文件操作,其后缀名自动为.DSN。图52保存ISIS设计文件(2)选取元器件此简单实例需要如下元器件:单片机:AT89C51发光二极管:LED-RED瓷片电容:CAP*电阻:RES*晶振:CRYSTAL按钮:BUTTON单击图53中的“P”按钮,弹出如图54所示的选取元器件对话框,在此对话框左上角“keywords(关键词)”一栏中输入元器件名称,如“AT89C52”,系统在对象库中进行搜索查找,并将与关键词匹配的元器件显示在“Results”中。在“Resul
19、ts”栏中的列表项中,双击“AT89C51”,则可将“AT89C52”添加至对象选择器窗口。按照此方法完成其它元器件的选取,如果忘记关键词的完整写法,可以用“*”代替,如“CRY*”可以找到晶振。被选取的元器件都加入到ISIS对象选择器中。如图55所示。图53单击“P”按钮选取元器件图54选取元器件窗口图55选取元器件均加入到ISIS对象选择器中(3)放置元器件至图形编辑窗口在对象选择器窗口中,选中AT89C51,将鼠标置于图形编辑窗口该对象的欲放置的位置、单击鼠标左键,该对象被完成放置。同理,将BUTTON、RES等放置到图形编辑窗口中。如图5-6所示。若元器件方向需要调整,先在ISIS对象
20、选择器窗口中单击选中该元器件,再单击工具栏上相应的转向按钮,把元器件旋转到合适的方向后再将其放置于图形编辑窗口。若对象位置需要移动,将鼠标移到该对象上,单击鼠标右键,此时我们已经注意到,该对象的颜色已变至红色,表明该对象已被选中,按下鼠标左键,拖动鼠标,将对象移至新位置后,松开鼠标,完成移动操作。通过一系列的移动、旋转、放置等操作,将元器件放在ISIS编辑窗口中合适的位置。如图56所示。(4)放置终端(电源、地)放置电源操作:单击工具栏中的终端按钮,在对象选择器窗口中选择“POWER”如图57所示,再在编辑区中要放电源的位置单击完成。放置地(GROUND)的操作与此类似。图56各元器件放在IS
21、IS编辑窗口中合适的位置图57放置终端符号(5)元器件之间的连线Proteus的智能化可以在你想要画线的时候进行自动检测。下面,我们来操作将电阻R1的右端连接到LED显示器的左端,如图56所示。当鼠标的指针靠近R1右端的连接点时,跟着鼠标的指针就会出现一个“”号,表明找到了R1的连接点,单击鼠标左键,移动鼠标(不用拖动鼠标),将鼠标的指针靠近LED的左端的连接点时,跟着鼠标的指针就会出现一个“”号,表明找到了LED显示器的连接点,单击鼠标左键完成电阻R1和LED的连线。Proteus具有线路自动路径功能(简称WAR),当选中两个连接点后,WAR将选择一个合适的路径连线。WAR可通过使用标准工具
22、栏里的“WAR”命令按钮来关闭或打开,也可以在菜单栏的“Tools”下找到这个图标。同理,我们可以完成其它连线。在此过程的任何时刻,都可以按ESC键或者单击鼠标的右键来放弃画线。(6)修改、设置元器件的属性PROTEUS库中的元器件都有相应的属性,要设置修改元器件的属性,只需要双击ISIS编辑区中的该元器件。例如,发光二极管的限流电阻R1,双击它弹出如图57所示的属性窗口,在窗口中已经将电阻的阻值修改为330欧姆。图59是编辑完成的“简单实例”的电路。图58设置限流电阻阻值为330欧姆图59编辑完成的简单实例的电路图132步骤二:源程序设计与生成目标代码文件(1)程序流程图图510 发光二极管
23、闪烁的流程图(2)源程序设计将放光二极管闪烁的程序保存在文件FLASH_LED.C中,在keil中编译生成目标代码文件,本例为FLASH_LED.HEX。#include<reg52.h> /头文件#define uint unsigned int /宏定义sbit D1=P10; /声明单片机P1口的第一位void delay(uint z); /声明子函数void main()while(1) /大循环D1=0; /点亮第一个发光二极管delay(500); /延时500毫秒D1=1; /关闭第一个发光二极管delay(500); /延时500毫秒void delay(uint
24、 z) /延时子程序延时约z毫秒uint x,y;for(x=z;x>0;x-)for(y=110;y>0;y-);133 步骤三:PROTEUS仿真(1)加载目标代码文件双击编辑窗口的AT89C52器件,在弹出如图511所示属性编辑对话框Program File一栏中单击打开按钮,出现文件浏览对话框,找到FLASH_LED.HEX文件,单击“打开”按钮,完成添加文件。在Clock frequency栏中把频率设置为12MHZ,仿真系统则以12MHZ的时钟频率运行。因为单片机运行的时钟频率以属性设置中的“Clock frequency”为准,所以在编辑区设计MCS-51系列单片机系
25、统电路时,可以略去单片机振荡电路,并且复位电路也可以略去。所以从子情境三开始就将振荡电路和复位电路省略。图511加载目标代码文件窗口(2)仿真单击按钮,启动仿真,仿真运行片段如图512所示。发光二极管间隔500毫秒闪烁。图512仿真运行片段红色方块代表低电平,蓝色方块代表高电平,灰色方块代表不确定电平14 扩展练习改成让P1.1口控制LED灯1秒钟闪烁一次。子情境二:用发光二极管实现流水灯乒乓球效果21 子情境目标:(1)通过AT89C52单片机控制8个发光二极管,实现亮点由低位到高位再由高位到低位来回流动的乒乓球效果(2)用PROTEUS设计、仿真以AT89C52为核心的放光二极管流水灯电路
26、。(3)掌握发光二极管的控制方法22 子情境步骤221 步骤一: PROTEUS电路设计(1)选取元器件:按快捷键“P”按钮,打开元器件选择窗口。在关键词栏中输入元器件的关键词,选取需要的元器件。单片机:AT89C52 电阻、8排阻:RES*红色发光二极管:LED-RED瓷片电容:CAP*晶振:CRYSTAL(2)放置元器件:在对象选择器中单击选中AT89C52,在编辑区中合适的位置单击,器件AT89C52就被放置到编辑区中。如果要改变元器件的放置方向,先在ISIS对象选择器中单击选中该元器件,再单击工具栏上相应的转向按钮,把元器件旋转到合适的方向后再将其放置于图形编辑窗口。(3)放置终端(电
27、源、地)放置电源操作:单击工具栏中的终端按钮,在对象选择器窗口中选择“POWER”,再在编辑区中要放电源的位置单击完成。放置地(GROUND)的操作与此类似。(4)元器件之间的连线 因为ISIS的智能化程度很高,只要单击所要连线的起点和终点。例如元器件的引脚、终端等,在这两点间会自动生成一条线。若要画折线,只要在转折点单击;若中途想取消连线,右击即可。(5)元器件属性设置PROTEUS库中的元器件都有相应的属性,要设置修改元器件的属性,只需要双击ISIS编辑区中的该元器件。设置好的原理图如图513所示。图513流水灯乒乓效果原理图222步骤二:源程序设计与目标代码文件生成 (1)程序流程图(2
28、)源程序设计#include<reg52.h> /52系列单片机头文件#include <intrins.h> /包含_crol_(循环左移)函数所在的头文件void delay(int z); /声明子函数unsigned char temp; /定义一个变量,用来给P1口赋值int i,j;void main()temp=0xfe; /赋初值11111110P1=temp; /先点亮第一个发光二极管while(1) /大循环for(i=7;i>0;i-) /控制亮点从低位往高位移动7次delay(500); /延时500毫秒temp=_crol_(temp,1
29、); /将temp循环左移一位后再赋给tempP1=temp; /将移位后的值赋给P1口,从低位到高位逐个点亮发光二极管for(j=7;j>0;j-) /控制亮点从高位往低位移动7次delay(500); /延时500毫秒temp=_cror_(temp,1); /将temp循环右移一位后再赋给tempP1=temp; /将移位后的值赋给P1口,从高位到地位逐个点亮发光二极管 void delay(int z)unsigned int x,y;for(x=z;x>0;x-) /延时z毫秒for(y=110;y>0;y-);(2)生成目标代码文件在KEIL软件中,编译C语言源程
30、序,生成目标代码文件,本例中为pingpang.hex。223 步骤三:PROTEUS仿真加载目标代码文件,双击编辑窗口的AT89C51器件,在弹出属性编辑对话框Program File一栏中单击打开按钮,出现文件浏览对话框,找到pingpang.hex文件,单击“打开”按钮,完成添加文件。单击按钮,启动仿真,仿真运行片段如图515所示。通过AT89C52单片机控制8个发光二极管,实现亮点由低位到高位再由高位到低位来回流动的乒乓球效果。图515流水灯乒乓效果运行片段24 扩展练习此子情境中流水灯在同一时刻只显示一盏灯,现在完成同时亮着两个灯流动的效果。子情境三:数码管动态扫描31子情境内容:利
31、用动态扫描让四位数码管稳定的显示1234。32 子情境目标:(1)掌握单片机控制四位数码管的动态扫描技术,包括程序设计和电路设计,本任务的效果是让四位数码管稳定的显示1234。(2)用PROTEUS进行电路设计和实时仿真33 知识点链接(1)数码管动态扫描 (动态扫描的定义以及与静态显示的区别)动态显示的特点是将所有位数码管的段选线s一位数码管有效。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。 (2)总线的应用 元器件与总线的连线P0口的接线采用总线方式,详细如图517所示。 选
32、择总线按钮 绘制总线:与普通电线的绘制方法一样,选择合适的起点、终点单击。如果终点在空白处,左键双击结束连线。画总线的时候为了和一般的导线区分,我们一般喜欢画斜线来表示分支线。此时我们需要自己决定走线路径,只需在想要拐点处单击鼠标左键即可。在画斜线时,需要关闭线路自动路径功能才好绘制。Proteus的线路自动路径功能简称WAR,当选中两个连接点后,WAR将选择一个合适的路径连线。WAR可通过使用标准工具栏里的“WAR”命令按钮来关闭或打开,也可以在菜单栏的“Tools”下找到这个图标。 给与总线连接的导线贴标签PART LABELS与P0口相连的线标签名依次为P00P06,本电路中的P0口的上
33、拉电阻通过总线与P0口相连,数码管也是通过总线与P0口相连,这些都需要标注,以表明正确的电气连接。单击绘图工具栏中的导线标签按钮,使之处于选中状态。将鼠标置于图形编辑窗口的欲标标签的导线上,跟着鼠标的指针就会出现一个“×”号,表明找到了可以标注的导线,单击鼠标左键,弹出编辑导线标签窗口,如图516所示。 在“string”栏中,输入标签名称(如p00),单击“OK”按钮,结束对该导线的标签标定。同理,可以标注其它导线的标签,如图516所示。注意,在标定导线标签的过程中,相互接通的导线必须标注相同的标签名。图516编辑导线标签窗口34 任务步骤341 步骤一:PROTEUS电路设计,单
34、片机控制四位共阴极数码管动态扫描显示的原理图如图517所示。图517 四位共阴极数码管动态扫描显示的原理图1、选取元器件单片机:AT89C52带公共端的排阻:RESPACK-8四位共阴极数码管:7SEG-MPX4-CC2、放置元器件、放置电源和地、连线、元器件属性设置数码管动态扫描显示的原理图如图517所示,整个电路设计操作都在ISIS平台中进行。(1)带公共端的排阻(RESPACK-8)如图518所示,在本电路中作为P0的上拉电阻,在如图519所示Component Value一栏中可更改阻值,例如本例中将阻值更改为200欧姆。 图518排阻 图519排阻属性框至此,我们便完成了整个电路图的
35、绘制。342 步骤二:源程序设计与目标代码文件生成(1)程序流程图依此给数码管送"a","b","c","d"延时1毫秒数码管显示子程序图520 数码管动态扫描的流程图(2)源程序设计#include<reg52.h> /52系列单片机头文件#define uchar unsigned char#define uint unsigned intuint x,y;uchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,
36、0x7c,0x39,0x5e,0x79,0x71; /共阴极数码管编码void display(uchar,uchar,uchar,uchar); /声明子函数void delay(int); /声明子函数void main()while(1)display(1,2,3,4); /主程序始终调用数码管显示子程序void display(uchar a,uchar b,uchar c,uchar d)P2=0xef; P0=tablea; /给第一个数码管送"a"delay(1); /延时1ms P2=0xdf;P0=tableb; /给第二个数码管送"b"
37、;delay(1); /延时1msP2=0xbf;P0=tablec; /给第三个数码管送"c"delay(1); /延时1msP2=0x7f; P0=tabled; /给第三个数码管送"d"delay(1); /延时1msvoid delay(uint z) /延时子函数uint x,y;for(x=z;x>0;x-)for(y=110;y>0;y-);(2)生成目标代码文件在KEIL软件中,编译C语言源程序,生成目标代码文件,本例中为dongtai.hex。343 步骤三:PROTEUS仿真加载目标代码文件,双击编辑窗口的AT89C51器
38、件,在弹出属性编辑对话框Program File一栏中单击打开按钮,出现文件浏览对话框,找到dongtai.hex文件,单击“打开”按钮,完成添加文件。单击按钮,启动仿真,仿真运行片段如图521所示。通过AT89C52单片机控制四位数码管,实现让四位数码管稳定的显示“1234”的效果。图521数码管动态扫描显示“1234”35 扩展练习本子情境中单片机趋动的是共阴极的数码管,请使用四位共阳极的数码管重新设计和仿真。子情境四:定时/计数器的使用方波发生器41子情境内容:用AT89C51单片机定时/计数器0的定时功能可构成一简单的方波发生器,实现周期为2s的方波,并能在虚拟示波器上直观地显示波形。
39、42 子情境目标: (1)通过用AT89C52单片机定时/计数器0的定时功能构成一简单的方波发生器,掌握定时器的基本用法。(2)用PROTEUS进行电路设计和实时仿真(3)学会使用虚拟示波器观察波形43 知识点链接虚拟示波器的基本操作:单击工具栏中的按钮(虚拟仪器),在对象选择器列表中选择OSCILLOSCOPE(示波器),在ISIS编辑窗口中合适位置单击就可以将示波器放置好了。最后将单片机的P1.0口与示波器的A通道相连,如图522所示。44 任务步骤441 步骤一:PROTEUS电路设计,实现周期为2s的方波的原理图如图522所示。图522 方波发生器原理图1、选取元器件单片机:AT89C
40、52电阻:RESLED发光二极管:LED-RED2、放置元器件、放置电源和地、连线、元器件属性设置方波发生器的原理图如图522所示,整个电路设计操作都在ISIS平台中进行。与子情景3相似,故不详述。(1)程序流程图中断服务程序主程序Timer0声明变量重新设置定时量20次?改变引脚P1.0的输出状态yes返回no 图523 方波发生器的流程图(2)源程序设计#include<reg52.h>#define uchar unsigned char#define uint unsigned intsbit D1=P10;uchar aa;void main()TMOD=0x01;TH0
41、=(65536-50000)/256;TL0=(65536-50000)%256; /定时50ms中断一次EA=1; /开总中断ET0=1; /允许定时器T0中断TR0=1; /起动定时器开始工作D1=1; /让LED灯初始时处在熄灭状态while(1); /等待中断产生void my_timer0() interrupt 1 /中断服务程序TH0=(65536-50000)/256; TL0=(65536-50000)%256; /重新赋初值aa+; /中断一次变量aa加1if(aa=20) /当aa=20时中断了20次,定时时间为20*50ms=1s,更改一次P1.0口的输出状态,这样得到
42、的方波周期为2saa=0; /将变量aa清零,以便于下次重新定时D1=D1; /改变引脚P1.0的输出状态443 步骤三:PROTEUS仿真加载目标代码文件,双击编辑窗口的AT89C51器件,在弹出属性编辑对话框Program File一栏中单击打开按钮,出现文件浏览对话框,找到fangbo.hex文件,单击“打开”按钮,完成添加文件。单击按钮,启动仿真,仿真运行片段如图524所示。用AT89C51单片机定时/计数器0的定时功能可构成一简单的方波发生器,实现周期为2s的方波,并能在虚拟示波器上直观地显示波形。我们可以适当调整示波器面板上的按钮来使波形最有利于我们观察。调整好以后,系统产生的波形
43、效果如图525所示。转动如图526所示的A通道的转盘旋钮,可调整A通道的电压显示幅值,范围为2ms20v/格,如图电压幅值为2v/格,从波形可以看出P1.0口输出电压近似为5V。转动如图527所示的转盘旋钮,可调整时基。如图时基为0.5s/格。从图中我们能够看出,波形的周期为2s,这与我们设定的目标相一致。 图524方波发生器仿真运行图图525示波器上显示的方波图 图526 调节电压幅值 图527 调节时基45 扩展练习将子情境中方波的周期更改为1秒,并能在虚拟示波器上直观地显示波形。子情境五:单片机外部中断仿真51子情境内容:外部中断是单片机的重要内容,本子情境用外部中断功能改变流水灯和数码
44、管的显示状态。没有发生中断时,数码管从0至F顺序显示,不断循环。当有外部中断0发生时(在单片机P3.2引脚上有低电平),立即产生中断,数码管从0至F顺序显示的工作停下来,转去执行中断服务程序。中断服务程序为:流水灯上下来回流动3次。完成中断服务程序后,返回主程序原断点处继续执行,数码管接着原来的数字继续顺序显示。程序流程图如529所示。52 子情境目标:(1)理解单片机的中断原理及中断过程(2)用PROTEUS设计、仿真单片机的外部中断。53 知识点链接54 任务步骤541 步骤一:PROTEUS电路设计,实现外部中断功能改变流水灯和数码管的显示状态的原理图如图528所示。1、选取元器件单片机
45、:AT89C51电阻、排阻:RES*LED发光二极管:LED-RED按钮:BUTTON带公共端共阳七段蓝色数码管:7SEG-COM-AN-BLUE2、放置元器件、放置电源和地、连线、元器件属性设置外部中断实验的原理图如图528所示,整个电路设计操作都在ISIS平台中进行。与子情景3相似,故不详述。与LED串联的排阻阻值为1K欧姆,与数码管串联的电阻的阻值为330欧姆左右。图528外部中断子情境原理图542 步骤二:源程序设计与目标代码文件生成(1)程序流程图图529 外部中断流程图(2)源程序设计#include<reg52.h>#include<intrins.h>
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度企业股权激励预付款项协议3篇
- 学院建校20周年庆典活动策划方案
- 门禁销售合同范例
- 庭院设计收费合同范例
- 检测维修合同范例
- 吉安市劳动合同范例
- 酒业订购合同范例
- 《世界史时间线索》课件
- 餐饮业招工合同范例
- 农庄闲置转让合同范例
- 部编版语文六年级上册词句段运用练习
- 会计专科职业生涯规划与管理
- 2023年电大行政组织学试卷期末考试试题及答案
- 2024年1月上海春季高考模拟英语试卷完整版二(含答案+听力MP3)
- 大学本科机械专业仿生类蜻蜓飞行器研究毕业论文
- 《金庸武侠经典》课件
- 内墙抹灰施工工艺课件
- 慢性心衰患者的治疗新选择-CRT
- MSA-GRR数据自动生成工具(已经解密)
- 外研版(三起)四上Module1-Module10思维导图
- 机器设备维护保养记录表
评论
0/150
提交评论