版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机控制的含启停按钮的流水灯项目七1(1)掌握缓冲器的功能和用法。234项目指南(2)学会编写流水灯控制程序。(3)掌握移位指令RL的功能和用法。(4)巩固延时程序编写方法。5(5)巩固位判断转移指令的应用方法。678项目指南(6)巩固无条件转移指令的应用方法。(7)巩固程序流程图的画法。(8)了解IC的数据手册。用Proteus软件仿真运行流水灯控制系统。(1)制作流水灯控制系统实物。(2)实践清单流水灯是一个单片机的典型控制任务,它的控制要求是,8个LED(分别称为1~8号灯)连接于单片机上,2个按钮作为启、停按钮连接于单片机上。单片机通电后8个LED不亮。按下启动按钮后1号灯亮,0.5s后1号灯灭、2号灯亮,0.5s后2号灯灭、3号灯亮,以此类推,8号灯亮0.5s后8号灯灭、1号灯亮,上述过程循环工作。如果不按下停止按钮,则8个LED按上述规律无限循环工作;当按下停止按钮时,流水灯工作停止,8个LED都不亮,重新按下启动按钮时流水灯再次按上述规律开始工作。知识链接从前面的学习我们知道,单片机引脚的输出电流是有限的,如果直接把LED接在单片机引脚,将会超出引脚输出电流的能力,因此前面的例子中使用三极管来解决这个问题。在本例中要使用8个LED,为简化电路,使用缓冲器与排阻来驱动LED。知识链接一、系统电路知识链接系统电路如图7-1所示,RN1为排阻,可以看作8个电阻,图中每个电阻的阻值均被设定为200Ω。8个LED通过排阻以灌电流方式连接在U2上,U2为三态缓冲器,其型号为74LS245。根据74LS245的数据手册,当CE=0时,若AB/BA=1,则数据从A→B,若AB/BA=0,则数据从B→A;当CE=1时,A与B均为高阻态。也就是说,CE=0且AB/BA=1时,B的电压状态跟随A的电压状态,从P2输出的电压状态从74LS245的A端输入,B端输出,从而控制LED。根据74LS245的输入/输出原理图(图7-2),输入端为晶体管基极,输出端为晶体管集电极,因此输入端所需要的电流很小,输出端可输出较大电流,单片机引脚只需要输出很小的电流就能控制74LS245的输出端输出较大电流,从而带动负载。知识链接图7-1系统电路知识链接图7-274LS245的输入/输出原理知识链接根据74LS245的数据手册,其输入电流的高电平和低电平水平与单片机引脚输出电平水平可以匹配,当74LS245输出低电压时,其引脚最大电流可达24mA,全部引脚总电流最大可达90mA,因此若图7-1中LED的工作电流为10mA,则8个LED全亮也不会超出74LS245的功率限制,且单片机引脚的输出电流远低于允许最大电流。知识链接图7-3无启/停按钮流水灯工作程序流程图先不考虑启/停按钮,画出流水灯工作程序流程图,如图7-3所示,请读者自行补全省略的部分。二、无启/停按钮的流水灯程序1.无启/停按钮流程图知识链接【程序7-1】D0:MOVP2,#11111110BLCALLYSMOVP2,#11111101B……MOVP2,#01111111BLCALLYSSJMPD0YS:MOVR0,#50……END知识链接2.用移位指令简化流水灯程序补全【程序7-1】的指令后会发现,P2的数值是有规律变化的,它从初始的11111110B变化为最后的01111111B,规律是每次0的位置向左移动一位。根据这个特点我们可以利用移位指令来优化这个程序。查看附录“指令系统”可以看到如下表述:RLA
;An+1←(An),A0←(A7)RLCA
;An+1←(An),A0←(CY),CY←(A7)在助记符中,第二个字母L代表左移,最后一个字母C代表CY有没有参与移位。例如,RLA表示左移无CY参与,RLCA表示左移有CY参与,RR
A表示右移。在注释中,An表示累加器A的n位,累加器A共有8位,从高到低记为A7~A0,如A=11111110B时,A0=0,其余位为1。知识链接An+1←(An)表示当执行RLA时,累加器A的低位数值会移动至高一位,而A0←(A7)表示在移位过程中最高位数值会移动至最低位。例如,当A=11111110B时,执行一次RLA,A0的数值0会移动到A1位置上,A1的数值1会移动到A2位置上…A7的数值1会移动到A0位置上,因此执行一次RLA后,A的数值会从原来的11111110B变为11111101B。而在执行RLCA时,最高位A7的数值移动到CY中,原CY中的数值移动到A0中,CY参与了移位过程,其余功能与RLA相同。右移指令与左移指令过程相同,移动方向相反。观察流水灯程序中的P2,可以发现它符合左移指令的数值变化规律,因此可以用左移指令RLA来编写流水灯程序。由于移位指令的操作数只能是A,而不能将P2进行移位操作,因此需要将A赋予初值,并将左移后A的数值赋予P2,这样LED才会按照流水灯的要求变化。用左移指令编写流水灯程序的程序流程图如图7-4所示,与图7-3比较,可以看到程序简单了许多。知识链接将图7-4中的每个步骤按顺序用指令实现,编程如下:【程序7-2】MOVA,#11111110BD0:MOVP2,AMOVR0,#50D2:MOVR1,#20D1:MOVR2,#248DJNZR2,$DJNZR1,D1DJNZR0,D2RLASJMPD0ENDP2的复位数值为11111111B,因此单片机通电后8个LED的初始状态是全部不亮的。不按下启动按钮时LED都不亮,按下启动按钮后开始执行【程序7-2】流水灯程序。不按下停止按钮时流水灯正常工作,即【程序7-2】所示程序正常执行,按下停止按钮则不能执行流水灯程序,而要使LED全灭,且再按下启动按钮时能重新执行流水灯程序。知识链接三、加入启/停按钮的流水灯程序知识链接图7-4左移指令流水灯程序流程图系统电路如图7-1所示,程序流程图如图7-5所示。图7-5带启/停按钮的流水灯程序流程图知识链接单片机编程时每行只能写一条指令,在程序流程图中是否按下停止按钮后分支的两个看似并列的步骤怎样编写呢?流程图中未按下停止按钮则执行左移。在程序中停止按钮判断的指令为“JNBP3.7,D3”,左移指令“RLA”位于它的下方。而按下停止按钮后要执行的灭灯指令“D3:MOVP2,#11111111B”则写在左移后转移到D0的“SJMPD0”指令的下方,并以“D3:”开头。可以将这个编写顺序总结为将未按下停止按钮的执行步骤都写完后,再写按下停止按钮的执行步骤,并且无条件转移指令和标号设置好,程序就能按照流程图的执行顺序各分支互不干扰地执行了。程序如下:知识链接【程序7-3】ST:JBP3.6,STMOVA,#11111110BD0:MOVP2,AMOVR0,#50D2:MOVR1,#20D1:MOVR2,#248DJNZR2,$DJNZR1,D1DJNZR0,D2JNBP3.7,D3RLASJMPD0D3:MOVP2,#11111111BSJMPSTEND项目训练(1)修改程序使流水灯点亮的顺序与图7-5相反。(2)编写程序使LED每次亮2个,按流水灯规律变化,变换的间隔时间为0.3s。仿真运行参照电路如图7-1所示。一、参照电路参照程序如【程序7-3】所示。二、参照程序仿真元件列表见表7-1。三、所用元件列表表7-1仿真元件列表点击图标可观看仿真运行:启/停按钮流水灯仿真运行按图7-1绘制系统电路,并将【程序7-3】载入单片机中,运行仿真。在仿真过程中会发现停止按钮的响应有时不及时,有时需要按住一会儿,LED才会全部熄灭,这是因为若按下停止按钮时程序正在执行延时程序以外的指令(如“RLA”)。需要经过延时0.5s后并加上执行其他指令的微小时间才能执行到“JNBP3.7,D3”指令,才能对按下停止按钮做出响应。要解决这个问题,可以将“JNBP3.7,D3”放在延时程序的某个位置,但这时延时时间会发生改变,有兴趣的读者可以自行修改程序并调整延时时间。74LS245双列直插型的引脚如图7-6所示。74LS245用来驱动LED或数码管等设备,它是8路同相三态双向总线收发器,可双向传输数据。74LS245还具有双向三态功能,既可以输出数据,又可以输入数据。拓展延伸8路即有8个输入引脚和8个输出引脚。图7-6中,A1~A8称为A总线端,B1~B8称为B总线端。同相即输出与输入的电压同相,电平逻辑值相同;双向即输入、输出可互换。缓冲器74LS245介绍拓展延伸图7-6中可用A做输入、B做输出,也可用B做输入、A做输出。三态即输入/输出有三个状态:输入/输出高阻态、A入B出、B入A出。图7-674LS245双列直插型的引脚拓展延伸表7-274LS245控制引脚功能表7-2为74LS245控制引脚功能,可以看到当OE为低电平,即OE=0时,若DIR为0,则数据从B入A出;若DIR为1,则数据从A入B出。DIR为方向控制端。若OE=1,则无论DIR为何状态,A和B均为高阻态。拓展延伸表7-374LS245的推荐工况表7-3为74LS245的推荐工况,可以看到,74LS245的正常工作电源电压为5V,最大为5.25V,最小为4.75V。当输出端为高电平时,最大输出电流为-15mA;当输出端为低电平时,最大输出电流为24mA。另外一项为芯片的推荐工作温度范围。图7-7为74LS245的电气特性。VIH为输入端高电平,可以看到输入端可被识别为高电平,即被识别为1的电压最小值为2V,即输入端能够被识别为1的电压不应低于2V;VIL为输入端低电平,可看到输入端可被识别为0的电压不应高于0.8V。根据数据手册可知,AT89C51单片机引脚输出的高电平不低于2.4V,输出的低电平不高于0.45V,因此单片机输出的电平没有超出74LS245输入电平的判定范围,两者电平可以匹配。拓展延伸拓展延伸图7-774LS245的电气特性从图7-7中可以看到其输出高电平时,VOH最小值为2V;输出低电平时,VOL最大值为0.5V。输入端高电平时,输入电流IIH最大值为20μA;输入端低电平时,输入电流IIL最大值为-0.2mA。拓展延伸结合前文所述,74LS245的输出电流最大可达24mA,可以知道单片机引脚只需要输出微小电流就能控制74LS245在输出端带动较大电流的负载。当输出端全为低电平时,电源电流最大值为90mA。74LS245的数据手册还有一些其他内容,如电平转换时间、开关特性等。这些内容与本项目无关,在此不做介绍,有兴趣的同学可以自行查阅了解。点击图标可观看实物制作:启/停按钮流水灯电路实物制作实物元件见表7-4。表7-4实物元件《荀子·劝学篇》中说
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026事业单位工勤技能-河北-河北农机驾驶维修工五级(初级工)历年参考题库含答案详解
- 2026事业单位工勤技能-江西-江西政务服务办事员二级(技师)历年参考题库含答案详解
- 2026事业单位工勤技能-江苏-江苏工程测量工四级(中级工)历年参考题库含答案详解
- 2026中医骨伤科(正副高)-正高考试历年参考题库含答案详解
- 2026第四季度糖尿病专科理论考试及答案
- 某铝业厂电解槽运行管理规范
- 石油企业设备维修办法
- 汽车厂冲压安全办法
- 某造船厂生产安全制度
- 某钢铁厂财务管理办法
- 2026年江苏省徐州市中考英语真题(含答案)
- 浙江省G12名校协作体2026-2027学年高三上学期开学考试生物+答案
- 《电机与电气控制技术》课件-1-4 继电器的认识与检测
- 2026第三季度广西一键游数智文旅产业集团有限公司社会招聘12人笔试题库带答案
- 防汛安全专项措施培训课件
- 第二单元.5 将相和 课件 2026-2027学年统编版小学语文 五年级上册
- 小学英语全套语法专项练习题(人教PEP全学段含解析)
- 2026年秋季六年级(劳动)上册教学计划
- 2026年新教材译林版九年级上册英语:全册单词+短语详解(知识清单)
- 2026秋西师大版小学数学五年级(新教材)上册教学计划附教学进度表
- 2026年中考物理(天津卷)真题详细解读及评析
评论
0/150
提交评论