单片机实训指导书1.doc_第1页
单片机实训指导书1.doc_第2页
单片机实训指导书1.doc_第3页
单片机实训指导书1.doc_第4页
单片机实训指导书1.doc_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

单片机实训指导书适用专业:通信技术专业山东水利职业学院信息工程系自动化教研室2011年12月35目 录学习情境一:快速掌握PROTEUS的用法24学习情境二:用发光二极管实现流水灯乒乓球效果4学习情境三:数码管动态扫描4学习情境四:定时/计数器的使用方波发生器4学习情境五:单片机外部中断仿真4学习情境六:直流电机正反转4学习情景一:快速掌握PROTEUS的用法为了更快掌握PROTEUS设计与仿真操作,我们先从一简单实例入手。让我们首先来熟悉一下仿真软件的主界面:图51 仿真软件的主界面运行protues的ISIS模块,进入仿真软件的主界面,如图51所示,区域为菜单及工具栏,区域为元器件预览区,区域为对象选择器窗口,区域为编辑窗口,区域为绘图工具栏,区域为元器件调整工具栏,区域为运行工具条。Proteus是一种集单片机仿真和SPICE分析于一身的仿真软件。其功能非常强大,不仅能仿真模拟电路、数字电路以及模拟数字混合电路,更重要的是可以仿真51系列、AVR、PIC等常用主流单片机。Protues提供了丰富的资源:(1)Proteus拥有的元器件资源:Proteus可提供30多种元件库,超过8000种模拟、数字元器件。(2)Proteus可提供的仿真仪表资源 :仿真仪器仪表的数量、类型和质量是衡量仿真实验室是否合格的一个关键因素。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 电容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 三引线可变电阻器POWER 电源RES 电阻RESISTOR 电阻器SWITCH 按钮 手动按一下一个状态VOLTMETER 伏特计VOLTMETER-MILLI mV伏特计VTERM 串行口终端Electromechanical 电机Inductors 变压器Laplace Primitives 拉普拉斯变换Miscellaneous 各种器件 AERIAL-天线;ATAHDD;ATMEGA64;BATTERY;CELL;CRYSTAL-晶振;FUSE;METER-仪表;Optoelectronics 各种发光器件 发光二极管,LED,液晶等等Resistors 各种电阻Simulator Primitives 常用的器件Speakers & Sounders扬声器Switches & Relays 开关,继电器,键盘Transistors 晶体管(三极管,场效应管)TTL 74 seriesTTL 74ALS series TTL 74AS seriesTTL 74F seriesTTL 74HC series TTL 74HCT seriesTTL 74LS seriesTTL 74S series此 模拟电路集成芯片Capacitors 电容集合Connectors 排座,排插Data Converters ADC,DACDebugging Tools 调试工具下面开始我们的第一个任务:11 子情境内容:让单片机动起来,用单片机控制一个LED灯闪烁发光。用P1口的第一个引脚控制一个LED灯, 1秒钟闪烁一次。12 子情境目标:通过此子情境的练习,快速掌握PROTEUS的基本用法13 子情境步骤131步骤一: PROTEUS电路设计整个设计都是在ISIS编辑区中完成的。(1)单击工具栏上的“新建”按钮,新建一个设计文档。单击“保存”按钮,弹出如图52所示的“Save ISIS Designe File”对话框,在文件名框中输入“LED”(简单实例的文件名),再单击“保存”按钮,完成新建设计文件操作,其后缀名自动为.DSN。图52保存ISIS设计文件(2)选取元器件此简单实例需要如下元器件:单片机:AT89C51发光二极管:LED-RED瓷片电容:CAP*电阻:RES*晶振:CRYSTAL按钮:BUTTON单击图53中的“P”按钮,弹出如图54所示的选取元器件对话框,在此对话框左上角“keywords(关键词)”一栏中输入元器件名称,如“AT89C52”,系统在对象库中进行搜索查找,并将与关键词匹配的元器件显示在“Results”中。在“Results”栏中的列表项中,双击“AT89C51”,则可将“AT89C52”添加至对象选择器窗口。按照此方法完成其它元器件的选取,如果忘记关键词的完整写法,可以用“*”代替,如“CRY*”可以找到晶振。被选取的元器件都加入到ISIS对象选择器中。如图55所示。图53单击“P”按钮选取元器件图54选取元器件窗口图55选取元器件均加入到ISIS对象选择器中(3)放置元器件至图形编辑窗口在对象选择器窗口中,选中AT89C51,将鼠标置于图形编辑窗口该对象的欲放置的位置、单击鼠标左键,该对象被完成放置。同理,将BUTTON、RES等放置到图形编辑窗口中。如图5-6所示。若元器件方向需要调整,先在ISIS对象选择器窗口中单击选中该元器件,再单击工具栏上相应的转向按钮,把元器件旋转到合适的方向后再将其放置于图形编辑窗口。若对象位置需要移动,将鼠标移到该对象上,单击鼠标右键,此时我们已经注意到,该对象的颜色已变至红色,表明该对象已被选中,按下鼠标左键,拖动鼠标,将对象移至新位置后,松开鼠标,完成移动操作。通过一系列的移动、旋转、放置等操作,将元器件放在ISIS编辑窗口中合适的位置。如图56所示。(4)放置终端(电源、地)放置电源操作:单击工具栏中的终端按钮,在对象选择器窗口中选择“POWER”如图57所示,再在编辑区中要放电源的位置单击完成。放置地(GROUND)的操作与此类似。图56各元器件放在ISIS编辑窗口中合适的位置图57放置终端符号(5)元器件之间的连线Proteus的智能化可以在你想要画线的时候进行自动检测。下面,我们来操作将电阻R1的右端连接到LED显示器的左端,如图56所示。当鼠标的指针靠近R1右端的连接点时,跟着鼠标的指针就会出现一个“”号,表明找到了R1的连接点,单击鼠标左键,移动鼠标(不用拖动鼠标),将鼠标的指针靠近LED的左端的连接点时,跟着鼠标的指针就会出现一个“”号,表明找到了LED显示器的连接点,单击鼠标左键完成电阻R1和LED的连线。Proteus具有线路自动路径功能(简称WAR),当选中两个连接点后,WAR将选择一个合适的路径连线。WAR可通过使用标准工具栏里的“WAR”命令按钮来关闭或打开,也可以在菜单栏的“Tools”下找到这个图标。同理,我们可以完成其它连线。在此过程的任何时刻,都可以按ESC键或者单击鼠标的右键来放弃画线。(6)修改、设置元器件的属性PROTEUS库中的元器件都有相应的属性,要设置修改元器件的属性,只需要双击ISIS编辑区中的该元器件。例如,发光二极管的限流电阻R1,双击它弹出如图57所示的属性窗口,在窗口中已经将电阻的阻值修改为330欧姆。图59是编辑完成的“简单实例”的电路。图58设置限流电阻阻值为330欧姆图59编辑完成的简单实例的电路图132步骤二:源程序设计与生成目标代码文件(1)程序流程图开始声明变量点亮发光二极管延时500毫秒关闭发光二极管延时500毫秒主程序图510 发光二极管闪烁的流程图(2)源程序设计(略)133 步骤三:PROTEUS仿真(1)加载目标代码文件双击编辑窗口的AT89C52器件,在弹出如图511所示属性编辑对话框Program File一栏中单击打开按钮,出现文件浏览对话框,找到FLASH_LED.HEX文件,单击“打开”按钮,完成添加文件。在Clock frequency栏中把频率设置为12MHZ,仿真系统则以12MHZ的时钟频率运行。因为单片机运行的时钟频率以属性设置中的“Clock frequency”为准,所以在编辑区设计MCS-51系列单片机系统电路时,可以略去单片机振荡电路,并且复位电路也可以略去。所以从子情境三开始就将振荡电路和复位电路省略。图511加载目标代码文件窗口(2)仿真。单击按钮,启动仿真,发光二极管间隔500毫秒闪烁。图512仿真运行片段红色方块代表低电平,蓝色方块代表高电平,灰色方块代表不确定电平学习情景二:用发光二极管实现流水灯乒乓球效果21 子情境目标:(1)通过AT89C52单片机控制8个发光二极管,实现亮点由低位到高位再由高位到低位来回流动的乒乓球效果(2)用PROTEUS设计、仿真以AT89C52为核心的放光二极管流水灯电路。(3)掌握发光二极管的控制方法22 子情境步骤221 步骤一: PROTEUS电路设计(1)选取元器件:按快捷键“P”按钮,打开元器件选择窗口。在关键词栏中输入元器件的关键词,选取需要的元器件。单片机:AT89C52 电阻、8排阻:RES*红色发光二极管:LED-RED瓷片电容:CAP*晶振:CRYSTAL(2)放置元器件:在对象选择器中单击选中AT89C52,在编辑区中合适的位置单击,器件AT89C52就被放置到编辑区中。如果要改变元器件的放置方向,先在ISIS对象选择器中单击选中该元器件,再单击工具栏上相应的转向按钮,把元器件旋转到合适的方向后再将其放置于图形编辑窗口。(3)放置终端(电源、地)放置电源操作:单击工具栏中的终端按钮,在对象选择器窗口中选择“POWER”,再在编辑区中要放电源的位置单击完成。放置地(GROUND)的操作与此类似。(4)元器件之间的连线 因为ISIS的智能化程度很高,只要单击所要连线的起点和终点。例如元器件的引脚、终端等,在这两点间会自动生成一条线。若要画折线,只要在转折点单击;若中途想取消连线,右击即可。(5)元器件属性设置PROTEUS库中的元器件都有相应的属性,要设置修改元器件的属性,只需要双击ISIS编辑区中的该元器件。设置好的原理图如图513所示。图513流水灯乒乓效果原理图222步骤二:源程序设计与目标代码文件生成 (1)程序流程图开始声明变量赋初值,点亮第一个发光二极管左移一位,延时500ms图514 程序流程图7次?noyes右移一位,延时500ms7次?noyes(2)源程序设计223 步骤三:PROTEUS仿真加载目标代码文件,双击编辑窗口的AT89C51器件,在弹出属性编辑对话框Program File一栏中单击打开按钮,出现文件浏览对话框,找到pingpang.hex文件,单击“打开”按钮,完成添加文件。单击按钮,启动仿真,仿真运行片段如图515所示。通过AT89C52单片机控制8个发光二极管,实现亮点由低位到高位再由高位到低位来回流动的乒乓球效果。图515流水灯乒乓效果运行片段学习情景三:数码管动态扫描31子情境内容:利用动态扫描让四位数码管稳定的显示1234。32 子情境目标:(1)掌握单片机控制四位数码管的动态扫描技术,包括程序设计和电路设计,本任务的效果是让四位数码管稳定的显示1234。(2)用PROTEUS进行电路设计和实时仿真33 知识点链接(1)数码管动态扫描 (动态扫描的定义以及与静态显示的区别)动态显示的特点是将所有位数码管的段选线s一位数码管有效。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。 (2)总线的应用 元器件与总线的连线P0口的接线采用总线方式,详细如图517所示。 选择总线按钮 绘制总线:与普通电线的绘制方法一样,选择合适的起点、终点单击。如果终点在空白处,左键双击结束连线。画总线的时候为了和一般的导线区分,我们一般喜欢画斜线来表示分支线。此时我们需要自己决定走线路径,只需在想要拐点处单击鼠标左键即可。在画斜线时,需要关闭线路自动路径功能才好绘制。Proteus的线路自动路径功能简称WAR,当选中两个连接点后,WAR将选择一个合适的路径连线。WAR可通过使用标准工具栏里的“WAR”命令按钮来关闭或打开,也可以在菜单栏的“Tools”下找到这个图标。 给与总线连接的导线贴标签PART LABELS与P0口相连的线标签名依次为P00P06,本电路中的P0口的上拉电阻通过总线与P0口相连,数码管也是通过总线与P0口相连,这些都需要标注,以表明正确的电气连接。单击绘图工具栏中的导线标签按钮,使之处于选中状态。将鼠标置于图形编辑窗口的欲标标签的导线上,跟着鼠标的指针就会出现一个“”号,表明找到了可以标注的导线,单击鼠标左键,弹出编辑导线标签窗口,如图516所示。 在“string”栏中,输入标签名称(如p00),单击“OK”按钮,结束对该导线的标签标定。同理,可以标注其它导线的标签,如图516所示。注意,在标定导线标签的过程中,相互接通的导线必须标注相同的标签名。图516编辑导线标签窗口34 任务步骤341 步骤一:PROTEUS电路设计,单片机控制四位共阴极数码管动态扫描显示的原理图如图517所示。图517 四位共阴极数码管动态扫描显示的原理图1、选取元器件单片机:AT89C52带公共端的排阻:RESPACK-8四位共阴极数码管:7SEG-MPX4-CC2、放置元器件、放置电源和地、连线、元器件属性设置数码管动态扫描显示的原理图如图517所示,整个电路设计操作都在ISIS平台中进行。(1)带公共端的排阻(RESPACK-8)如图518所示,在本电路中作为P0的上拉电阻,在如图519所示Component Value一栏中可更改阻值,例如本例中将阻值更改为200欧姆。 图518排阻 图519排阻属性框至此,我们便完成了整个电路图的绘制。342 步骤二:源程序设计与目标代码文件生成(1)程序流程图开始声明变量, 数码管编码数组声明子程序数码管显示子程序主程序依此给数码管送a,b,c,d延时1毫秒数码管显示子程序图520 数码管动态扫描的流程图(2)源程序设计343 步骤三:PROTEUS仿真加载目标代码文件,双击编辑窗口的AT89C51器件,在弹出属性编辑对话框Program File一栏中单击打开按钮,出现文件浏览对话框,找到dongtai.hex文件,单击“打开”按钮,完成添加文件。单击按钮,启动仿真,仿真运行片段如图521所示。通过AT89C52单片机控制四位数码管,实现让四位数码管稳定的显示“1234”的效果。图521数码管动态扫描显示“1234”学习情景四:定时/计数器的使用方波发生器41子情境内容:用AT89C51单片机定时/计数器0的定时功能可构成一简单的方波发生器,实现周期为2s的方波,并能在虚拟示波器上直观地显示波形。42 子情境目标: (1)通过用AT89C52单片机定时/计数器0的定时功能构成一简单的方波发生器,掌握定时器的基本用法。(2)用PROTEUS进行电路设计和实时仿真(3)学会使用虚拟示波器观察波形43 知识点链接虚拟示波器的基本操作:单击工具栏中的按钮(虚拟仪器),在对象选择器列表中选择OSCILLOSCOPE(示波器),在ISIS编辑窗口中合适位置单击就可以将示波器放置好了。最后将单片机的P1.0口与示波器的A通道相连,如图522所示。44 任务步骤441 步骤一:PROTEUS电路设计,实现周期为2s的方波的原理图如图522所示。图522 方波发生器原理图1、选取元器件单片机:AT89C52电阻:RESLED发光二极管:LED-RED2、放置元器件、放置电源和地、连线、元器件属性设置方波发生器的原理图如图522所示,整个电路设计操作都在ISIS平台中进行。与子情景3相似,故不详述。(1)程序流程图中断服务程序主程序开始声明变量设置定时器等待定时时间到后中断产生Timer0声明变量重新设置定时量20次?改变引脚P1.0的输出状态yes返回no 图523 方波发生器的流程图(2)源程序设计443 步骤三:PROTEUS仿真加载目标代码文件,双击编辑窗口的AT89C51器件,在弹出属性编辑对话框Program File一栏中单击打开按钮,出现文件浏览对话框,找到fangbo.hex文件,单击“打开”按钮,完成添加文件。单击按钮,启动仿真,仿真运行片段如图524所示。用AT89C51单片机定时/计数器0的定时功能可构成一简单的方波发生器,实现周期为2s的方波,并能在虚拟示波器上直观地显示波形。我们可以适当调整示波器面板上的按钮来使波形最有利于我们观察。调整好以后,系统产生的波形效果如图525所示。转动如图526所示的A通道的转盘旋钮,可调整A通道的电压显示幅值,范围为2ms20v/格,如图电压幅值为2v/格,从波形可以看出P1.0口输出电压近似为5V。转动如图527所示的转盘旋钮,可调整时基。如图时基为0.5s/格。从图中我们能够看出,波形的周期为2s,这与我们设定的目标相一致。 图524方波发生器仿真运行图图525示波器上显示的方波图 图526 调节电压幅值 图527 调节时基45 扩展练习将子情境中方波的周期更改为1秒,并能在虚拟示波器上直观地显示波形。学习情景五:单片机外部中断51子情境内容:外部中断是单片机的重要内容,本子情境用外部中断功能改变流水灯和数码管的显示状态。没有发生中断时,数码管从0至F顺序显示,不断循环。当有外部中断0发生时(在单片机P3.2引脚上有低电平),立即产生中断,数码管从0至F顺序显示的工作停下来,转去执行中断服务程序。中断服务程序为:流水灯上下来回流动3次。完成中断服务程序后,返回主程序原断点处继续执行,数码管接着原来的数字继续顺序显示。程序流程图如529所示。52 子情境目标:(1)理解单片机的中断原理及中断过程(2)用PROTEUS设计、仿真单片机的外部中断。53 知识点链接54 任务步骤541 步骤一:PROTEUS电路设计,实现外部中断功能改变流水灯和数码管的显示状态的原理图如图528所示。1、选取元器件单片机:AT89C51电阻、排阻:RES*LED发光二极管:LED-RED按钮:BUTTON带公共端共阳七段蓝色数码管:7SEG-COM-AN-BLUE2、放置元器件、放置电源和地、连线、元器件属性设置外部中断实验的原理图如图528所示,整个电路设计操作都在ISIS平台中进行。与子情景3相似,故不详述。与LED串联的排阻阻值为1K欧姆,与数码管串联的电阻的阻值为330欧姆左右。图528外部中断子情境原理图542 步骤二:源程序设计与目标代码文件生成(1)程序流程图开始声明变量中断设定数码管顺序显示流水灯左移7, 右移7次主程序中断子程序3次?noyes继续执行主程序中断子程序图529 外部中断流程图(2)源程序设计543 步骤三:PROTEUS仿真加载目标代码文件,双击编辑窗口的AT89C51器件,在弹出属性编辑对话框Program File一栏中单击打开按钮,出现文件浏览对话框,找到zhongduan.hex文件,单击“打开”按钮,完成添加文件。单击按钮,启动仿真,仿真运行片段如图530、531、532所示。图530中是主程序的运行片段,主程序中数码管从0至F顺序显示图531中,按下按钮后,在单片机P3.2引脚上有低电平,立即产生中断,数码管从0至F顺序显示的工作停下来,流水灯上下循环移动三次。图532中,完成中断服务程序后,返回主程序原断点处继续执行,数码管接着原来的数字继续顺序显示。图530主程序中数码管从0至F顺序显示图531按下按钮后数码管停下来,流水灯上下循环移动三次图532完成中断服务程序后,返回主程序原断点处继续执行,数码管接着原来的数字继续顺序显示。55 扩展练习 主程序中数码管从0至9顺序显示数字,中断发生后(在单片机P3.2引脚上有低电平),数码管从9至0反序显示。学习情景六:直流电机正反转61子情境内容:用单片机AT89C51控制直流电机正反转。在此将由89C51的P2.0,P2.1通过晶体管控制继电器,当P2.0输出低电平,P2.1输出高电平时,三极管Q1导通,而三极管Q2截止,从而导致与Q1相连的继电器吸合,电机因两端产生电压而转动。由P3.0,P3.1,P3.2控制电机的正传、反转和停止。62 子情境目标:(1)掌握趋动电机正反转的电路(2)用PROTEUS实现电机正反转电路的设计,并进行实时交互仿真63 知识点链接二极管保护电路:在图533中,在两个继电器的两端都反相接了一个二极管,这个二极管非常重要,当使用电磁继电器时必须接。原因如下:线圈通电正常工作时,二极管对电路不起作用。当继电器

温馨提示

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

评论

0/150

提交评论