版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、子情境 1:简单实例助你快速掌握 PROTEUS 的用法 51 1 子情境内容:让单片机动起来,用单片机控制一个 LED 灯闪烁发光。 81 2 子情境目标: 81 3 子情境步骤 8131 步骤一: PROTEUS 电路设计 8132 步骤二:源程序设计与生成目标代码文件 13(1)程序流程图 13(2)源程序设计 14133 步骤三: PROTEUS 仿真 151 4 扩展练习 17子情境二:用发光二极管实现流水灯乒乓球效果 182 1 子情境目标: 182 2 子情境步骤 18221 步骤一: PROTEUS 电路设计 18222 步骤二:源程序设计与目标代码文件生成 19(1)程序流程
2、图 19(2)源程序设计 20223 步骤三: PROTEUS 仿真 222 4 扩展练习 22子情境三:数码管动态扫描 233 1 子情境内容:利用动态扫描让四位数码管稳定的显示1234。 233 2 子情境目标: 23( 1)掌握单片机控制四位数码管的动态扫描技术,包括程序设计和电 233 3 知识点链接 233 4 任务步骤 243 41 步骤一: PROTEUS 电路设计,单片机控制四位共阴极数码管动态扫描显 示的原理图如图 517 所示。 24342 步骤二:源程序设计与目标代码文件生成 26(1)程序流程图 26(2)源程序设计 26343 步骤三: PROTEUS 仿真 283
3、5 扩展练习 29子情境四:定时 /计数器的使用方波发生器 3041 子情境内容: 用 AT89C51 单片机定时 /计数器 0 的定时功能可构成一简单的方波发生器, 实现周期为 2s 的方波,并能在虚拟示波器上直观地显示波形。 304 2 子情境目标: 304 3 知识点链接 304 41 步骤一: PROTEUS 电路设计,实现周期为 2s 的方波的原理图如图 5 22 所 示。 30(1)程序流程图 31(2)源程序设计 31443 步骤三: PROTEUS 仿真 324 5 扩展练习 34子情境五:单片机外部中断仿真 355 1 子情境内容:外部中断是单片机的重要内容,本子情境用外部中
4、断功能改变流水灯和 数码管的显示状态。 355 2 子情境目标: 35( 1)理解单片机的中断原理及中断过程 35(2)用 PROTEUS 设计、仿真单片机的外部中断。 355 3 知识点链接 355 4 任务步骤 35541 步骤一: PROTEUS 电路设计,实现外部中断功能改变流水灯和数码管的显示 状态的原理图 35542 步骤二:源程序设计与目标代码文件生成 36(1)程序流程图 36(2)源程序设计 36543 步骤三: PROTEUS 仿真 385 5 扩展练习 40主程序中数码管从 0至9顺序显示数字,中断发生后(在单片机P3.2引脚上有低电平), 数码管从 9 至 0 反序显示
5、。 40子情境六:直流电机正反转 4161子情境内容:用单片机 AT89C51 控制直流电机正反转。 4162 子情境目标: 41( 1)掌握趋动电机正反转的电路 41( 2)用 PROTEUS 实现电机正反转电路的设计,并进行实时交互仿真 4163 知识点链接 4164 任务步骤 41641 步骤一: PROTEUS 电路设计,实现用单片机 AT89C51 控制直流电机正反转 原理图 416 42 步骤二:源程序设计与目标代码文件生成 43(1)程序流程图 43(2)源程序设计 446 43 步骤三: PROTEUS 仿真 4565 扩展练习 46子情境七:用 ADC0809实现电压表 48
6、71子情境内容: 利用单片机 AT89C52 和 ADC0809设计一个数字电压表, 能够测量 05V之间的电压值,用四位数码管显示。 4872 子情境目标: 48(1)掌握 PROTEUS 中电压探针和电压表的使用方法 48(2)通过制作简易电压表,学会 AD 转换芯片在单片机应用系统中的硬件接口技术和编程方法。 4873 知识点链接 48了解 ADC0809 芯片的功能以及使用方法 48( 1)功能: ADC0809 芯片为 8 通道模 /数转换器, 可以和单片机直接接口, 将 IN0IN7 任何一通道输入的模拟电压转换成八位二进制数,在时钟为500KHZ 时,一次变换时间约为 100us
7、。 48( 2)使用方法: 28 脚双列直插式封装如图 539 所示,各引脚功能如下: 487 4 任务步骤 49741 步骤一: PROTEUS 电路设计,利用单片机 AT89C52 和 ADC0809 设计一个数 字电压表的原理图如图 5 40 所示。 49742 步骤二:源程序设计与目标代码文件生成 51(1)程序流程图 51(2)源程序设计 52743 步骤三: PROTEUS 仿真 557 5 扩展练习 59子情境八: 1602 液晶显示器 6081 子情境内容:利用单片机 AT89C52 控制液晶显示器( Liquid Crystal Display ,简称为 LCD )实时显示。
8、在1602液晶的第一行显示“I LOVE MY FAMILY”在第二行显示“WWW.YZCIT.CN ”。 608 2 子情境目标: 60(1)掌握 1602液晶与单片机的接口电路 60(2)通过控制 LCD ,学会 LCD 液晶模块在单片机应用系统中的编程方法。 608 3 知识点链接 60了解 LCD1602 芯片的功能以及使用方法 60(1) 功能:本情境中所使用的液晶显示器型号为1602,意思是每行显示 16 个字符,一共可以显示两行。此液晶只能显 ASCII 字符,如数字、大小写字母、各种符号等。 60(2)使用方法: 1602液晶的引脚图 608 4 任务步骤 61841 步骤一:
9、 PROTEUS 电路设计,利用单片机 AT89C52 控制液晶显示器实时显 示的原理图如图 546所示。 61842 步骤二:源程序设计与目标代码文件生成 62(1 )程序流程图 62(2)源程序设计 62843 步骤三: PROTEUS 仿真 648 5 扩展练习 65子情境九:简易秒表制作 6691 子情境内容:制作简易秒表,利用按键构成键盘实现秒表的启动、停止与复位,利用LED 数码管显示时间。 669 2 子情境目标: 66(1)通过简易秒表的制作,进一步熟悉 LED 数码管与单片机的接口电路 66(2)学习定时 /计数器、中断技术的综合运用并会使用简易键盘 6 69 3 知识点链接
10、 669 4 任务步骤 66941 步骤一: PROTEUS 电路设计,简易秒表的原理图如图 551 所示。 66942 步骤二:源程序设计与目标代码文件生成 67(1 )程序流程图 67(2)源程序设计 69943 步骤三: PROTEUS 仿真 729 5 扩展练习 74此子情境设计的秒表只能显示两位整数, 如果要记录 110跨栏 12:88 秒的成绩,则必须再增 加两位数码管来显示小数位。想想硬件和软件应该做如何改动。 74子情境十:点阵 LED简单图形显示技术 7510. 1子情境内容:利用单片机 AT89C52在8疋点阵上逐次显示心形、圆形和菱形图。75102 子情境目标: 75(
11、1 )通过学习点阵 LED 显示技术,掌握单片机与点阵的接口电路。 75(2)进一步熟悉单片机 I/O 口的运用方法,了解动态显示的编程方法 7 510.3 知识点链接 7510.4 任务步骤 7610.4. 1 步骤一: PROTEUS电路设计,LED点阵的原理图如图556 所示。 7 610. 4. 2 步骤二:源程序设计与目标代码文件生成 77(1 )程序流程图 77(2)源程序设计 7810. 4. 3 步骤三: PROTEUS 仿真 8010.5 扩展练习 81子情境1 :简单实例助你快速掌握PROTEUS的用法为了更快掌握PROTEUS设计与仿真操作,我们先从一简单实例入手带你入让
12、我们首先来熟悉一下仿真软件的主界面:LaUTITLCD - L3I5 FlFik 蚩m訂 gdlE L t rar lolc Ccign apit gdiroa Csbjq T:onpEitMlpD罚制甲空寻丨也誥中!FS国 1 曲:2 1 E ?1:;;.;:; d d L 4I a I.I 0标准二具輕.i对泉港搔按诩|対聖选埠器窗口sb竝感X.匸匸 mV AlE土一 2绘图工貝性型母垢辑命二 I i IIFc仃I1图5- 1仿真软件的主界面预旳按方位控制祖仿卓住程腔御按饪/ 駅 ar rnn th运行protues的ISIS模块,进入仿真软件的主界面,如图5 -1所示,区域 为菜单及工具
13、栏,区域为元器件预览区,区域为对象选择器窗口,区域 为编辑窗口,区域为绘图工具栏,区域为元器件调整工具栏,区域为运行 工具条。Proteus是一种集单片机仿真和 SPICE分析于一身的仿真软件。其功能非常强大,不仅能仿真模拟电路、数字电路以及模拟数字混合电路, 更重要的是可 以仿真 51 系列、 AVR、PIC 等常用主流单片机。Protues 提供了丰富的资源:( 1) Proteus 拥有的元器件资源: Proteus 可提供 30 多种元件库,超过 8000 种模拟、数字元器件。( 2)Proteus 可提供的仿真仪表资源 :仿真仪器仪表的数量、类型和质量是衡 量仿真实验室是否合格的一个
14、关键因素。 Proteus 可提供常用的示波器(本文的 实例中示波器被用来观察产生的波形) 、逻辑分析仪、虚拟终端、 SPI 调试器、 I2C 调试器、信号发生器、模式发生器、交直流电压表、交直流电流表。 以下简要罗列了 proteus 中常用元器件和仿真仪表中英文对照表:7407 驱动门1N914 二极管74Ls00 与非门74LS04 非门74LS08 与门74LS390 TTL 双十进制计数器7SEG 4 针 BCD-LED 输出从 0-9 对应于 4 根线的 BCD 码7SEG 3-8 译码器电路 BCD-7SEG 转换电路AND 与门BATTERY 电池 /电池组BUS 总线CAP
15、电容CAPACITOR 电容器CLOCK 时钟信号源CRYSTAL 晶振FUSE 保险丝GROUND 地LAMP 灯LED-RED 红色发光二极管LM016L 2 行 16 列液晶可显示 2 行 16 列英文字符,有 8 位数据总线 D0-D7 , RS,R/W,EN 三个控制端口(共 14 线),工作电压为 5V。LOGIC ANALYSER 逻辑分析器LOGICPROBE 逻辑探针LOGICPROBEBIG 逻辑探针 用来显示连接位置的逻辑状态LOGICSTATE 逻辑状态 用鼠标点击 ,可改变该方框连接位置的逻辑状态LOGICTOGGLE 逻辑触发MOTOR 马达OR 或门POT-LIN
16、 三引线可变电阻器POWER 电源RES 电阻RESISTOR 电阻器SWITCH 按钮 手动按一下一个状态VOLTMETER 伏特计VOLTMETER-MILLI mV 伏特计VTERM 串行口终端Electromechanical 电机Inductors 变压器Laplace Primitives 拉普拉斯变换Miscellaneous 各种器件 AERIAL-天线;ATAHDD ; ATMEGA64 ; BATTERY ;CELL ; CRYSTAL- 晶振; FUSE ; METER- 仪表;Optoelectronics 各种发光器件 发光二极管, LED ,液晶等等Resistor
17、s 各种电阻Simulator Primitives 常用的器件Speakers & Sounders 扬声器Switches & Relays 开关,继电器,键盘Transistors 晶体管(三极管,场效应管)TTL 74 seriesTTL 74ALS seriesTTL 74AS seriesTTL 74F seriesTTL 74HC seriesTTL 74HCT seriesTTL 74LS seriesTTL 74S series此模拟电路集成芯片Capacitors 电容集合Connectors排座,排插Data Co nverters ADC,DACDebuggi ng T
18、ools 调试工具下面开始我们的第一个任务:1. 1子情境内容:让单片机动起来,用单片机控制一个LED灯闪烁发光。用P1 口的第一个引脚控制一个LED灯,1秒钟闪烁一次。1. 2子情境目标:通过此子情境的练习,快速掌握 PROTEUS的基本用法1. 3子情境步骤1. 3. 1步骤一:PROTEUS电路设计整个设计都是在ISIS编辑区中完成的。(1) 单击工具栏上的“新建”按钮 ,新建一个设计文档。单击“保存” 按钮,弹出如图5 2所示的“ Save ISIS Designe File”对话框,在文件名框 中输入“ LED” (简单实例的文件名),再单击“保存”按钮,完成新建设计文件 操作,其后
19、缀名自动为.DSN。startlssor.l_l剜灯武融iUOJl芯处件名(5J反疗矣里心:D若孚l Tile保存隹仁:7? KB吗KbKD Sckjerrati. gnS ckerf-di 31 s i jgnSckefftiC jSi幔改阳2OO0-O-1T .12 :S2EM:吐r沙:5:Jd20( 0-4-1D 0 腔图5-2保存ISIS设计文件(2)选取元器件此简单实例需要如下元器件:单片机:AT89C51发光二极管:LED-RED瓷片电容:CAP*电阻:RES*晶振:CRYSTAL按钮:BUTTON单击图5-3中的“P”按钮,弹出如图5-4所示的选取元器件对话框, 在此对话框左上角
20、“keywords(关键词)”一栏中输入元器件名称,如“AT89C52”, 系统在对象库中进行搜索查找,并将与关键词匹配的元器件显示在 “ Results”中。 在“ Results栏中的列表项中,双击“ AT89C51”,则可将“ AT89C52”添加至 对象选择器窗口。按照此方法完成其它元器件的选取,如果忘记关键词的完整写 法,可以用“*”代替,如“CRY* ”可以找到晶振。被选取的元器件都加入到ISIS 对象选择器中。如图5 5所示。zl Pick Devjc&sEiQI图5-3单击“P”按钮选取元器件nz IPak irikEpTaitsiMatz h Vhcte Wcr ?Em尿 a
21、?Ltiaiy | DHiiptonMNVSM DLL MoM IMCSSIET DU1141IF i ii: i i.-. . i H ?0闻匾Ml J ir. wrpr MILRC MIJHI.*Ti.yiM-d b ATBaCIIRR?ATE9C5IRB2.0 J& Al .yiMHUJATIRC.SUB MICROATE9C5IRD2 MLROATtyC51RD2.B弓 MURLiBDE1 Mier oc on boil if 32kBuod 4BMH 乱 W# 讣 ldog Tlnuif. 3WI64* 8061 Microcviivler IG1kB code CMHz Wchda
22、a TiniiS. 31&to SSEGI 讪口dcekI可 |Ei4l- td 匚nd皀 4LMH2. War 匸hdhgi I im-s,. 3d &-I肿 AU睨UM-XX. 3 “ 盯呻SM*F. VJVire SiSFiF 1三PLB 删|l图5-4选取元器件窗口D0 B 00 :; +BUTTONCAP CRYSTAL LED-REDRES图5 -5选取元器件均加入到ISIS对象选择器中(3) 放置元器件至图形编辑窗口在对象选择器窗口中,选中 AT89C51,将鼠标置于图形编辑窗口该对象的欲放置的位置、单击鼠标左键,该对象被完成放置。同理,将BUTTON、RES等放置到图形编辑窗口
23、中。如图 5-6所示。若元器件方向需要调整,先在ISIS对象选择器窗口中单击选中该元器件,再单击工具栏上相应的转向按钮_,把元器件旋转到合适的方向后再将其放置于图形编辑窗口。若对象位置需要移动,将鼠标移到该对象上,单击鼠标右键,此时我们已经 注意到,该对象的颜色已变至红色,表明该对象已被选中,按下鼠标左键,拖动 鼠标,将对象移至新位置后,松开鼠标,完成移动操作。通过一系列的移动、旋转、放置等操作,将元器件放在ISIS编辑窗口中合适的位置。如图5- 6所示。(4) 放置终端(电源、地)放置电源操作:单击工具栏中的终端按钮二,在对象选择器窗口中选择“POWER”如图5- 7所示,再在编辑区中要放电
24、源的位置单击完成。放置地 (GROUND)的操作与此类似。.LED-HS.丄._L_vTECH-4 e I I f i 4站AUX1AL2巾3阻 HJ.WDil P訂PU加ZPDEWDS Fn.s&e FE.TjftDIpsnra1210PSENALE起.加伫审F2SR13PS.TJftlS阳wnP3IWXDP1.1/T2EX:ra.i/ncof12P32JNTUP1JP3INTI跖.1P3.UTBP3JT13jS(AJRA1.7P3J/ED13R3 .,1DQ -图5 6各元器件放在ISIS编辑窗口中合适的位置GROUNDBpDEFAULTINPUIOUTPUTBIDiIRPOWER图5-7
25、放置终端符号(5) 元器件之间的连线Proteus的智能化可以在你想要画线的时候进行自动检测。下面,我们来操 作将电阻R1的右端连接到LED显示器的左端,如图5 6所示。当鼠标的指针 靠近R1右端的连接点时,跟着鼠标的指针就会出现一个“”号,表明找到了 R1的连接点,单击鼠标左键,移动鼠标(不用拖动鼠标),将鼠标的指针靠近LED 的左端的连接点时,跟着鼠标的指针就会出现一个“”号,表明找到了LED显示器的连接点,单击鼠标左键完成电阻 R1和LED的连线。Proteus具有线路自动路径功能(简称WAR),当选中两个连接点后,WAR将 选择一个合适的路径连线。WAR可通过使用标准工具栏里的“ WA
26、R”命令按钮 来关闭或打开,也可以在菜单栏的“ Tools”下找到这个图标。同理,我们可以完成其它连线。在此过程的任何时刻,都可以按ESC键或者单击鼠标的右键来放弃画线。(6) 修改、设置元器件的属性PROTEUS库中的元器件都有相应的属性,要设置修改元器件的属性,只需 要双击ISIS编辑区中的该元器件。例如,发光二极管的限流电阻R1,双击它弹出如图5 7所示的属性窗口,在窗口中已经将电阻的阻值修改为330欧姆。图5 9是编辑完成的“简单实例”的电路。图5-8设置限流电阻阻值为330欧姆IfiLED-E 歯. 10&1R3 .-iIJ E唏丄;.pntitiPEIC 1JCTBL2PH前MPD
27、SMDSRSTPDJjftDTP7H3P2.1JM卩P23R11AlJg 申PZB12P2SR13PZiSfil*piimP2TW15P3MXDP1.1/T2EXP3.1/TXDPtsP1JPaiNiTP 阳 irfHTT卩”P3.L0TPISP1j6PITPF迥P3J&UHRpo.t/rF兰遥兰z圭主兰图5-9编辑完成的简单实例的电路图1. 3. 2步骤二:源程序设计与生成目标代码文件(1) 程序流程图主程序图510发光二极管闪烁的流程图(2) 源程序设计将放光二极管闪烁的程序保存在文件FLASH_LED.C中,在keil中编译生成目标代码文件,本例为 FLASH_LED.HEX。#i nc
28、lude头文件#defi ne uint un sig ned int宏定义sbit D仁P1A0;/声明单片机P1 口的第一位void delay(ui nt z);/ 声明子函数void mai n()while(1)/ 大循环D1=0;/点亮第一个发光二极管delay(500);延时 500 毫秒D仁1;/关闭第一个发光二极管delay(500);延时 500 毫秒void delay( uint z)/延时子程序延时约z毫秒uint x,y;for(x=z;x0;x_) for(y=110;y0;y-);1. 3. 3步骤三:PROTEUS仿真加载目标代码文件双击编辑窗口的 AT89C
29、52器件,在弹出如图511所示属性编辑对话框 Program File 一栏中单击打开按钮,出现文件浏览对话框,找到 FLASH_LED.HEX文件,单击“打开”按钮,完成添加文件。在 Clock frequency 栏中把频率设置为12MHZ,仿真系统则以12MHZ的时钟频率运行。因为单片 机运行的时钟频率以属性设置中的“ Clock freque ncy ”为准,所以在编辑区设计 MCS-51系列单片机系统电路时,可以略去单片机振荡电路,并且复位电路也可 以略去。所以从子情境三开始就将振荡电路和复位电路省略。HelpHidden PinsCancelEdit all prdpertieE
30、as lezt图5- 11加载目标代码文件窗口仿真单击按钮丨卜,启动仿真,仿真运行片段如图5-12所示。发光二极管间 隔500毫秒闪烁。LIT :EL1RST - 1- pnmon PD.IDI F 0202 P0WftD3 皿神叭PDJ&ftOePU.i- .u.L ?:AiUqs 1.u ?TEX1 上査二芜兰竺血竺皿?lgigi g工5釜乂 -cretal -TDCRLED-RB3TE(TJB_fiPStN iLEPZIfflSF2J2WID P23W11P2.mt2 P2O113P2J&W11IP2.7Jftt5F1OTZPt1/T2EiNTT 旧.5D P3WT1P3J6F3JXRD
31、图 5 12 仿真运行片段红色方块代表低电平,蓝色方块代表高电平,灰色方块代表不确定电平 14 扩展练习改成让P1.1 口控制LED灯1秒钟闪烁一次。子情境二:用发光二极管实现流水灯乒乓球效果2. 1子情境目标:(1) 通过AT89C52单片机控制8个发光二极管,实现亮点由低位到 高位再由高位到低位来回流动的乒乓球效果(2) 用PROTEUS设计、仿真以AT89C52为核心的放光二极管流水 灯电路。(3) 掌握发光二极管的控制方法2. 2子情境步骤2. 2. 1步骤一:PROTEUS电路设计(1) 选取元器件:按快捷键“ P”按钮目,打开元器件选择窗口。在 关键词栏中输入元器件的关键词,选取需
32、要的元器件。 单片机:AT89C52 电阻、8排阻:RES* 红色发光二极管:LED-RED 瓷片电容:CAP* 晶振:CRYSTAL(2) 放置元器件:在对象选择器中单击选中 AT89C52在编辑区中合适的位置单击,器件AT89C52就被放置到编辑区中。如果要改变元器件的 放置方向,先在ISIS对象选择器中单击选中该元器件,再单击工具栏上相 应的转向按钮上& ,把元器件旋转到合适的方向后再将其放置于图形编辑窗口。(3) 放置终端(电源、地)放置电源操作:单击工具栏中的终端按钮,在对象选择器窗口中选择“POWER”,再在编辑区中要放电源的位置单击完成。放置地(GROUND )的操作与此类似。(
33、4) 元器件之间的连线因为ISIS的智能化程度很高,只要单击所要连线的起点和终点。例如 元器件的引脚、终端等,在这两点间会自动生成一条线。若要画折线,只要在转折点单击;若中途想取消连线,右击即可(5) 元器件属性设置PROTEUS库中的元器件都有相应的属性,要设置修改元器件的属性,只需 要双击ISIS编辑区中的该元器件。设置好的原理图如图 5- 13所示。FC呼协 IX I 比塾17FCMfi FCXFD*n.iviiJIiM!M.1W 4匸 和和1 唱 彎.T v- b IlJlhTti?1OTI3 冗W smTE 町泊r图5- 13流水灯乒乓效果原理图2. 2. 2步骤二:源程序设计与目标
34、代码文件生成(1)程序流程图图5- 14程序流程图(2)源程序设计#include1152系列单片机头文件#inelude vintrins.h包含_crol_ (循环左移)函数所在的头文件void delay(i nt z);/ 声明子函数un sig ned char temp;/定义一个变量,用来给 P1 口赋值int i,j;void main()temp=0xfe;/赋初值 11111110P1=temp;/ 先点亮第一个发光二极管while(1)/大循环for(i=7;i0;i-)/控制亮点从低位往高位移动 7 次delay(500);/延时 500 毫秒temp=_crol_(t
35、emp,1); /将 temp 循环左移一位后再赋给 tempP1=temp;/将移位后的值赋给 P1 口,从低位到高位逐个点亮发光二极管for(j=7;j0;j-)/控制亮点从高位往低位移动 7 次delay(500);/延时 500 毫秒temp=_cror_(temp,1); /将 temp 循环右移一位后再赋给 tempP1=temp;/将移位后的值赋给 P1 口,从高位到地位逐个点亮发光二极管void delay(int z)unsigned int x,y;for(x=z;x0;x-)/延时 z 毫秒for(y=110;y0;y-); (2)生成目标代码文件 在 KEIL 软件中,
36、编译 C 语言源程序,生成目标代码文件,本例中为pingpang.hex。2. 2. 3步骤三:PROTEUS仿真加载目标代码文件,双击编辑窗口的AT89C51器件,在弹出属性编辑对话框Program File 一栏中单击打开按钮,出现文件浏览对话框,找到pingpang.hex 文件,单击“打开”按钮,完成添加文件。单击按钮厂门,启动仿真,仿真运 行片段如图5- 15所示。通过AT89C52单片机控制8个发光二极管,实现亮点 由低位到高位再由高位到低位来回流动的乒乓球效果。图5 - 15流水灯乒乓效果运行片段2. 4扩展练习此子情境中流水灯在同一时刻只显示一盏灯,现在完成同时亮着两个灯流动
37、的效果。子情境三:数码管动态扫描3. 1子情境内容:利用动态扫描让四位数码管稳定的显示1234。3. 2子情境目标:(1) 掌握单片机控制四位数码管的动态扫描技术,包括程序设计和电 路设计,本任务的效果是让四位数码管稳定的显示 1234。(2) 用PROTEUS进行电路设计和实时仿真3. 3知识点链接(1) 数码管动态扫描(动态扫描的定义以及与静态显示的区别)动态显示的特点是将所有位数码管的段选线 s一位数码管有效。选亮数码管 采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的 位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时 都在显示。(2) 总线的
38、应用元器件与总线的连线P0 口的接线采用总线方式,详细如图 5- 17所示。 选择总线按钮口 绘制总线:与普通电线的绘制方法一样,选择合适的起点、终点单击。 如果终点在空白处,左键双击结束连线。画总线的时候为了和一般的导线区分,我们一般喜欢画斜线来表示分支线。 此时我们需要自己决定走线路径,只需在想要拐点处单击鼠标左键即可。 在画斜 线时,需要关闭线路自动路径功能三才好绘制。Proteus的线路自动路径功能简称 WAR当选中两个连接点后, WAF将选择 一个合适的路径连线。 WAR可通过使用标准工具栏里的“ WAR命令按钮巨来关 闭或打开,也可以在菜单栏的“ Tools ”下找到这个图标。 给
39、与总线连接的导线贴标签PART LABELS与P0 口相连的线标签名依次为 PO0-P06,本电路中的P0 口的上拉电阻通 过总线与P0 口相连,数码管也是通过总线与P0 口相连,这些都需要标注,以表 明正确的电气连接。单击绘图工具栏中的导线标签按钮蠶,使之处于选中状态。将鼠标置于图形编辑窗口的欲标标签的导线上,跟着鼠标的指针就会出现一个“X”号,表明找到了可以标注的导线,单击鼠标左键,弹出编辑导线标签窗口, 如图5- 16所示。在“string ”栏中,输入标签名称(如pOO),单击“ OK按钮,结束对该导 线的标签标定。同理,可以标注其它导线的标签,如图5-16所示。注意,在标定导线标签的
40、过程中,相互接通的导线必须标注相同的标签名。图5- 16编辑导线标签窗口3. 4任务步骤3. 4. 1步骤一:PROTEUS电路设计,单片机控制四位共阴极数码管动态扫描显示的原理图如图5- 17所示。TA机IPD.WD1ndu pomoiPD.rnD# ipnsffinsPDJWD5加P2WP2QMDI卩SCNA.EP2.412F5J&M3 P2J14P 1ZT2iEffiTlPf *WTOPR3T1PTJ&VURIPlTfiD图517四位共阴极数码管动态扫描显示的原理图1、选取元器件 单片机:AT89C52 带公共端的排阻:RESPACK-8 四位共阴极数码管:7SEG-MPX4-CC2、放
41、置元器件、放置电源和地、连线、元器件属性设置数码管动态扫描显示的原理图如图 5 17所示,整个电路设计操作都在ISIS 平台中进行。(1) 带公共端的排阻(RESPACK-8如图5 18所示,在本电路中作为 P0的上拉电阻,在如图519所示ComponentValue 一栏中可更改阻值,例如本例中 将阻值更改为200欧姆。RP22 3 4 S 6 7 8- 9图5 19排阻属性框图518排阻至此,我们便完成了整个电路图的绘制。3. 4. 2步骤二:源程序设计与目标代码文件生成(1)程序流程图序数码管显示子程序图5 20数码管动态扫描的流程图(2) 源程序设计#include /52 系列单片机
42、头文件#define uchar unsigned char#define uint unsigned intuint x,y;uchar code table= 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71;/共阴极数码管编码void display(uchar,uchar,uchar,uchar); / 声明子函数void delay(int); /声明子函数 void main()while(1)display(1,2,3,4);/主程序始终调用数码管显示子程序void
43、 display(uchar a,uchar b,uchar c,uchar d) P2=0xef;P0=tablea;/给第一个数码管送 adelay(1);/延时 1msP2=0xdf;P0=tableb;/给第二个数码管送 bdelay(1);/ 延时 1msP2=0xbf;P0=tablec;/给第三个数码管送 cdelay(1);/延时1ms给第三个数码管送d/延时1ms/延时子函数P2=0x7f;PO=tabled;delay(1);void delay( uint z)uint x,y;for(x=z;x0;x_) for(y=110;y0;y-);C语言源程序,生成目标代码文件
44、,本例中为(2)生成目标代码文件 在KEIL软件中,编译dongtai.hex 。3. 4. 3步骤三:PROTEUS仿真加载目标代码文件,双击编辑窗口的 AT89C51器件,在弹出属性编辑对话 框Program File 一栏中单击打开按钮,出现文件浏览对话框,找到dongtai.hex 文件,单击“打开”按钮,完成添加文件。单击按钮厂,启动仿真,仿真运 行片段如图5-21所示。通过AT89C52单片机控制四位数码管,实现让四位数 码管稳定的显示“ 1234”的效果。:EPI.】K:-_AL12 fTAL2pn fP rnPQJW)53&rOl ApE 、任pen1 3Spen攻0FOd P
45、CUW3H FO.IfflJbl PUWZ P03az_au_PSENAllFZJMMt卍.1卿P2J1DirF1.1/T2EC 空的鼻F1J5F1j5;MTP3OTXD pj.vrxpW .-IN T-lP3 J1NTIF3.4JTDP3JOTL pgawK P37/RTE35图5- 21数码管动态扫描显示“ 1234”3. 5扩展练习本子情境中单片机趋动的是共阴极的数码管,请使用四位共阳极的数码管重新设计和仿真。子情境四:定时/计数器的使用一一方波发生器4.1子情境内容:用AT89C51单片机定时/计数器0的定时功能可构成一简 单的方波发生器,实现周期为2s的方波,并能在虚拟示波器上直观地
46、显示波形。4. 2子情境目标:(1)通过用AT89C52单片机定时/计数器0的定时功能构成一简单的方波 发生器,掌握定时器的基本用法。(2)用PROTEUS进行电路设计和实时仿真(3)学会使用虚拟示波器观察波形4. 3知识点链接虚拟示波器的基本操作:单击工具栏中的按钮亡(虚拟仪器),在对象选择器列表中选择 OSCILLOSCOPE(示波器),在ISIS编辑窗口中合适位置单击就可以将示波器放 置好了。最后将单片机的P1.0 口与示波器的A通道相连,如图5- 22所示。4. 4任务步骤4. 4. 1步骤一:PROTEUS电路设计,实现周期为2s的方波的原理图如图 5-22所示。图5-22方波发生器
47、原理图1、选取元器件 单片机:AT89C52 电阻:RES LED发光二极管:LED-RED2、放置元器件、放置电源和地、连线、元器件属性设置方波发生器的原理图如图5- 22所示,整个电路设计操作都在ISIS平台中 进行。与子情景3相似,故不详述。(1)程序流程图主程序中断服务程序图5-23方波发生器的流程图(2)源程序设计#in clude#defi ne uchar un sig ned char#define uint unsigned intsbit D仁 P1A0;uchar aa;void main()TMOD=0x01;TH0=(65536-50000)/256;TL0=(655
48、36-50000)%256; /定时50ms中断一次EA=1;/ET0=1;/TR0=1; /D1=1;/开总中断允许定时器 T0 中断起动定时器开始工作让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 口的输出状态,这样得到的方波周期为 2saa=0;/将变量 aa 清零
49、,以便于下次重新定时D1=D1;/改变引脚 P1.0 的输出状态443 步骤三: PROTEUS 仿真加载目标代码文件,双击编辑窗口的 AT89C51 器件,在弹出属性编辑对话框Program File 栏中单击打开按钮,出现文件浏览对话框,找到fangbo.hex文件,单击“打开”按钮,完成添加文件。单击按钮卜,启动仿真,仿真运行片段如图5-24所示。用AT89C51单片机定时/计数器0的定时功能可构成一 简单的方波发生器,实现周期为 2s的方波,并能在虚拟示波器上直观地显示波 形。我们可以适当调整示波器面板上的按钮来使波形最有利于我们观察。调整好以后,系统产生的波形效果如图 5-25所示。转动如图5-26所示的A通道的转盘旋钮,可调整A通道的电压显示幅值, 范围为2ms-20v/格,如图电压幅值为2v/格,从波形可以看出P1.0 口输出电压 近似为5V。转动如图5- 27所示的转盘旋钮,可调整时基。如图时基为0.5s格。从图中我们能够看出,波形的周期为 2s,这与我们设定的目标相一致。 * -
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年下半年吉林通化地区事业单位招聘笔试工作易考易错模拟试题(共500题)试卷后附参考答案
- 2025年下半年吉林省长春市南关区事业单位招考易考易错模拟试题(共500题)试卷后附参考答案
- 2025年下半年吉林省省直事业单位公开招聘工作人员(10号)易考易错模拟试题(共500题)试卷后附参考答案
- 2025年下半年吉林梅河口市事业单位招聘(含专项招聘高校毕业生)415人易考易错模拟试题(共500题)试卷后附参考答案
- 2025年下半年台州市玉环县食品药品检验检测中心招考编外用工易考易错模拟试题(共500题)试卷后附参考答案
- 2025年下半年南阳内乡县招考检察院机关服务中心工作人员易考易错模拟试题(共500题)试卷后附参考答案
- 2025年下半年南平市审计局招考事业单位紧缺急需专业人员易考易错模拟试题(共500题)试卷后附参考答案
- 2025年下半年南京市地方志编纂委员会办公室资料中心招考工作人员公易考易错模拟试题(共500题)试卷后附参考答案
- 2025年店员劳动合同模板
- 2025年下半年北京市昌平区事业单位招聘165人地址易考易错模拟试题(共500题)试卷后附参考答案
- 2024年山东省公务员考试申论(C卷)真题答案解析
- 2025广东惠州市政务服务和数据管理局编外人员招聘6人考试笔试参考题库附答案解析
- 抖音美食运营方案
- 国开2025年《资源与运营管理》形考任务1-4答案
- 氨水泄漏知识培训课件
- 纪念抗战胜利 坚定民族信念
- 2025云南省交通投资建设集团有限公司下属曲靖管理处收费员招聘(76人)考试参考试题及答案解析
- 人工智能工程技术人员
- 电子商务数据安全管理细则
- 2025年包钢(集团)公司新员工招聘考试真题及答案
- 应急预案中预案衔接
评论
0/150
提交评论