版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
任务1跑马灯任务2花样灯
任务3
键控彩灯
任务4数显抢答器任务5简易数字秒表任务1跑马灯
1.了解跑马灯的工作过程及控制原理。2.掌握单片机I/O口控制外部负载的合理设计方法。3.掌握移位和延时程序的设计方法。4.能够设计并制作跑马灯控制系统。本任务选用单片机P0口控制8只发光二极管(D1~D8),使D1~D8由低位到高位依次点亮,时间间隔为1s,如此往复循环,完成跑马灯控制系统的设计与制作。一、延时程序软件延时程序的主要设计思想是利用循环体为空操作或无循环体的循环程序,只占用CPU的时间,而不进行任何实质性操作,来实现延时功能。在51系列单片机中通常用寄存器Rn减1不为0则转移指令(DJNZRn,rel)来实现循环变量改变及循环结束控制。1.单重循环程序MOVR1,#250;K1:NOP;NOP;DJNZR1,K1;2.两重循环程序要实现较长时间的延时,需要多重循环3.三重循环程序延时1s的延时程序二、延时时间计算计算延时时间有两种方法:精确计算法和估算法。以1s延时程序的延时时间为例:1.精确计算法第一重循环一次的机器周期数:1+1+2=4第一重循环总的机器周期数:4×250=1000第二重循环一次的机器周期数:1+1000+2=1003第二重循环总的机器周期数:1003×250=250750第三重循环一次的机器周期数:1+250750+2=250753第三重循环总的机器周期数:250753×4=1003012总的机器周期数:1+1003012=1003013延时时间:1003013×1μs=1003013μs=1.003013s
2.估算法估算延时时间=估算机器周期数×机器周期估算机器周期数=第一重循环一次的机器周期×第一重循环次数×第二重循环次数×第三重循环次数即估算延时时间=4×250×250×4×1μs=1000000μs=1s
本延时程序的延时时间只是近似1s,而非标准的1s时间,因此只能用于对延时时间要求不是很准确的场合,若要实现标准的1s延时,可采用定时器定时法来完成。三、子程序的调用使用子程序的过程称为子程序的调用,由子程序调用指令实现,如ACALL或LCALL。子程序执行完后返回到原来程序的过程称为子程序返回,由子程序返回指令实现,如RET或RETI。能供调用的子程序必须具有以下两个特点:1.子程序的第一条指令地址称为子程序首地址或入口地址,必须用标号标明,以便调用指令正确调用。2.子程序末尾用RET返回指令结束,以便正确返回主程序或调用子程序继续执行。[例]……DELAY:MOVR6,#4K3:MOVR4,#250K2:MOVR5,#250K1:NOPNOPDJNZR5,K1DJNZR4,K2DJNZR6,K3RET……一、电路设计单片机对LED控制的连接电路有两种方式,如下图所示。相应地,硬件上的不同连接方式也决定了软件上的不同控制逻辑,见下表:端口控制逻辑电平端口LED状态逻辑电平P0.0亮0灭1P2.0亮1灭0在Proteus中根据上述分析绘制跑马灯电路原理图:AT89S51的I/O口在外接负载时,要注意其负载能力。P0每位可驱动8个TTL负载,每一位最大的吸收电流为26mA,P1~P3口每位可驱动4个TTL负载,每一位最大的吸收电流为15mA。输出端口说明P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0D8D7D6D5D4D3D2D111111110D1亮11111101D2亮11111011D3亮11110111D4亮11101111D5亮11011111D6亮10111111D7亮01111111D8亮二、程序设计亮灯情况示意图:跑马灯的程序设计流程图:2.程序编译与仿真1.根据上述设计思路编写程序并输入WAVE软件。跑马灯.ASM三、制作硬件电路并调试步骤说明示范图片1.焊接前材料准备参照元器件清单表步骤说明示范图片2.硬件焊接电路板正面电路板背面步骤说明示范图片3.程序烧入、调试并运行跑马灯运行图单击此处返回目录任务2花样灯
1.了解花样灯的工作过程。2.掌握查表程序的设计方法。3.能够设计并制作花样灯控制系统。花样灯是按时间依次让灯呈现出规定的花样,相对跑马灯来说,控制的显示数据之间没有规律,显示上具有多变性和复杂性,如下图所示。本任务使用单片机的P2口控制8只LED循环显示,实现下图所示四种花样的显示。花样D8D7D6D5D4D3D2D1数据编码一☆☆☆☆☆☆☆☆0FFH★☆☆☆☆☆☆★7EH★★☆☆☆☆★★3CH★★★☆☆★★★18H★★★★★★★★00H★★★☆☆★★★18H★★☆☆☆☆★★3CH★☆☆☆☆☆☆★7EH注:★灯亮☆灯灭花样D8D7D6D5D4D3D2D1数据编码二☆☆☆☆☆☆☆☆0FFH★☆☆☆☆☆☆☆7FH★★☆☆☆☆☆☆3FH★★★☆☆☆☆☆1FH★★★★☆☆☆☆0FH★★★★★☆☆☆07H★★★★★★☆☆03H★★★★★★★☆01H★★★★★★★★00H花样D8D7D6D5D4D3D2D1数据编码三☆☆☆☆☆☆☆☆0FFH☆★☆★☆★☆★0AAH★☆★☆★☆★☆55H☆★☆★☆★☆★0AAH★☆★☆★☆★☆55H四☆☆☆☆☆☆☆☆0FFH☆☆☆☆★★★★0F0H★★★★☆☆☆☆0FH☆☆☆☆★★★★0F0H★★★★☆☆☆☆0FH☆☆☆☆☆☆☆☆0FFH一、相关指令指令格式如下:标号:DB字节常数或ASCII码字符功能:从指定的地址单元开始定义若干个字节的数值或ASCII码字符,各数据之间用逗号分隔,常用于定义数据常数表。在表示ASCII码字符时需要在字符上加单引号,标号表示数据表的首地址。
1.定义字节伪指令DB[例]
从0100H单元开始定义一个10个字节的数据表:ORG0100HTAB:DB3FH,06H,5BH,4FH,66HDB6DH,7DH,07H,7FH,6FHDB定义的数据表一行可以写多个数据,当一行写不完要分行时,在下一行也必须用DB伪指令开头。2.以寄存器间接地址为目的操作数的数据传送指令MOV @Ri,A;(Ri)
AMOV @Ri,#data;(Ri)
dataMOV @Ri,direct;(Ri)(direct)功能:将源操作数所指定的内容送入以R0或R1为地址指针的内部数据存储器的存储单元中。源操作数有A、立即寻址和直接寻址3种寻址方式。注意:没有MOV@Ri,Rn和MOV@Ri1,@Ri2指令。3.16位数据传送指令MOV DPTR,#data16
;DPTR
data16功能:将16位立即数送入数据指针DPTR。4.程序存储器传送指令MOVCA,@A+PC
;PC
PC+1,A
(A+PC)MOVCA,@A+DPTR;A
(A+DPTR)功能:主要用于查表,其数据表格放在程序存储器中。第1条指令以PC作为基址寄存器,第2条指令以DPTR作为基址寄存器。两条指令中A均作为变址寄存器,通常A的值为要取得数据的索引值(即要取得数据在数据表中的序号)。将索引值送入累加器A一般有以下3种情况:(1)当要查数据的值等于索引值时,直接将要查数据送入A中。(2)当要查数据的值与其索引值不相等时,应将要查数据变换为索引值再送入A中。(3)当仅仅是为了取出存于数据表中的数据时,直接将其索引值送入A中即可。在MOVCA,@A+PC指令中,数据表只能存放在该指令之后的256字节范围内。而MOVCA,@A+DPTR指令中,数据表可以存放在64K程序存储器的任何位置,并且数据表的长度可超过256个字节。5.比较转移指令CJNEA,#data,rel
;若A
data,则转移;若A=data,顺序执行下一条指令
;若A≥data,C清0
;若A<data,C置1CJNEA,direct,rel
;若A(direct),则转移;若A=(direct),顺序执行下一条指令;若A≥(direct),C清0;若A<(direct),C置1CJNERn,#data,rel;若Rndata,则转移 ;若Rn=data,顺序执行下一条指令 ;若Rn≥data,C清0;若Rn<data,C置1CJNE@Ri,#data,rel;若(Ri)data,则转移 ;若(Ri)=data,顺序执行下一条指令 ;若(Ri)≥data,C清0;若(Ri)<data,C置1功能:比较两个操作数的大小,如果它们的值不相等,则转移到目标地址。如果第一个操作数小于第二个操作数,则进位标志CY置“1”,否则清“0”。指令执行不影响任何一个操作数。
二、查表法[例]下面查表程序中有一BCD码对应的七段码数据表,一个BCD码存于R0中,运行查表程序,取出其对应的七段码并存于R1中,试分析程序的执行过程。地址源程序
ORG0000H0000H:MOVA,R00001H:MOVDPTR,#TAB0004H:MOVCA,@A+DPTR0005H:MOVR1,A0006H:SJMP$0008H:TAB:DB3FH,06H,5BH,4FH,66HDB6DH,7DH,07H,7FH,6FHEND分析:用MOVCA,@A+DPTR指令查表的3个步骤为:③执行查表指令取得所需数据。②将数据表首地址送入DPTR中,该数据表首地址为0008H。①将要查数据变换为其对应的索引值送入A中。在C51程序设计中,DPTR和PC均为基址寄存器,指示表格首地址。但两者的区别是:选用DPTR作表首地址指针,表域可设置在程序存储器64KB范围内的任何区域;采用PC作表首地址指针,表域必须紧跟在该查表指令之后,这使表域设置受到限制。因此,一般只用于单表格,且编程较难,但可节省存储空间。一、电路设计
注意:在实际应用电路中,若接节日彩灯或广告霓虹灯,一般还需外加隔离电路(光电耦合器)和驱动电路(如晶闸管或继电器等)。花样灯电路原理图二、程序设计花样灯程序设计流程图2.程序编译与仿真1.根据上述设计思路编写程序并输入WAVE软件。花样灯.ASM三、制作硬件电路并调试步骤说明示范图片1.焊接前材料准备参照元器件清单表步骤说明示范图片2.硬件焊接电路板正面电路板背面步骤说明示范图片3.程序烧入、调试并运行花样灯运行图单击此处返回目录任务3键控彩灯
1.了解按键的特性及其与单片机端口的连接方法。2.掌握独立式按键扫描及软件消抖的编程原理。3.能够设计并制作键控彩灯控制系统。本任务在单片机P0口连接8只彩色LED,按照绿、黄、红顺序依次排开。使用三个按键,分别连接在单片机的P2.0、P2.1和P2.2口,实现下表所述的功能。按键编号连接端口按键功能说明K1P2.0启动按键,发光二极管D1点亮K2P2.1左移按键,彩灯右移一位点亮K3P2.2右移按键,彩灯左移一位点亮一、键盘及其接口矩阵式键盘独立式键盘独立式键盘的各个按键之间相互独立,每个按键独立地与一根数据输入线(单片机并行I/O口或其他接口芯片的并行接口)相连。常见的接口电路如下图所示。独立式键盘配置灵活,软件结构简单,但每个按键必须占用一根接口线,在按键数量较多时,将占用较多接口线,因此,独立式按键常用于按键数量不多的场合。二、按键的机械特性为了保证每按下一次按键,单片机仅作一次键输入处理,就需要消除因按键抖动现象而引起的错误动作,常用的去除抖动的方法有硬件消抖和软件消抖两种。在实际应用中,当所接按键较多时,为了减少外围电路,通常利用软件延时的方法来消除抖动。三、硬件消抖电路一、电路设计键控彩灯电路原理图二、程序设计键控彩灯程序设计流程图软件消抖流程图2.程序编译与仿真1.根据上述设计思路编写程序并输入WAVE软件。键控彩灯.ASM步骤说明示范图片1.焊接前材料准备参照元器件清单表三、制作硬件电路并调试步骤说明示范图片2.硬件焊接电路板正面电路板背面步骤说明示范图片3.程序烧入、调试并运行键控彩灯左移运行图单击此处返回目录任务4数显抢答器1.了解数码管的结构及显示原理。2.掌握对独立式键盘扫描、处理的编程方法。3.掌握单片机控制LED数码管静态显示方法。4.能够设计并制作数显抢答器控制系统。抢答器是一种广泛应用于各种竞赛活动、抢答现场中的重要设备,如下图所示,它能迅速、准确、公正、客观地分辨出最先获得发言权的选手,保证比赛的顺利有效进行,同时增加比赛的刺激性和娱乐性。
1.每个参赛选手控制一个按钮,按动按键发出抢答信号。2.竞赛主持人控制两个功能按钮,一个为抢答开始按钮,另一个为抢答结束后的复位按钮。3.竞赛开始后,先由主持人按下抢答开始按钮,8位参赛选手通过按下各自的抢答按钮进行抢答。哪位选手最先按下抢答按钮,数码管就显示其对应的号码,表示该名选手抢答成功并且锁定,其他参赛选手再抢答无效。4.竞赛结束时,再由主持人按下复位按钮,本轮抢答结束,为下一轮抢答做准备。本任务主要完成一个简易的8路抢答器,通过独立键盘输入抢答信号,一位数码管显示出抢答者的号码,具体控制要求:一、LED数码管的结构
数码管是由几个发光二极管组合在一起而形成的显示装置,组成数码管的每一个发光二极管称为数码管的“段”。以一位8段LED数码管为例,共有7段组成一个“日”字形,分别定义为数码管的a、b、c、d、e、f、g段,另外再加上一个用于小数显示的小数点dp(或h)段。数码管根据不同码段之间的组合,来显示数字0~9或简单的字符信息。由于组成数码管的发光二极管自身具有极性,所以组成的数码管也有共阴极和共阳极之分。共阳极共阴极二、单片机与数码管之间的连接共阳数码管共阴数码管当使用单片机的I/O口控制一位显示输出时,最好选择共阳极数码管,这样电路采用灌电流方式,数码管直接受控于I/O端口,否则,当连接的是共阴极数码管时,需在I/O口上添加上拉电阻来驱动数码管。三、数码管字符显示原理a)共阴数码管显示以单片机I/O口输出显示“5”的字形数据为例:b)共阳数码管显示四、数码管静态显示方式静态显示即当数码管显示某一字符时,相应码段的发光二极管恒定的导通或截止,只要通过改变数码管各码段引脚的高低电平,就能达到显示不同字符的目的。优点:数码管显示稳定无闪烁,亮度高,软件控制比较容易;缺点:占用单片机较多的I/O口资源,且硬件接线复杂。五、一位数码管循环显示“0~9”1.电路原理图2.“0~9循环显示”程序0~9循环显示.ASM一、电路设计8路数显抢答器电路原理图二、程序设计8路数显抢答器程序设计流程图2.程序编译与仿真1.根据上述设计思路编写程序并输入WAVE软件。8路数显抢答器.ASM三、制作硬件电路并调试步骤说明示范图片1.焊接前材料准备参照元器件清单表步骤说明示范图片2.硬件焊接电路板元件布局图电路板背面DIP底座步骤说明示范图片3.程序烧入、调试并运行2号抢答成功运行图单击此处返回目录任务5简易数字秒表1.了解秒表的工作过程。2.掌握单片机控制LED数码管动态显示字符方法。3.能够设计并制作简易数字秒表。本任务利用软件延时计数法,通过四位一体数码管输出显示,实现简易秒表的计时功能,具体控制要求如下:1.单片机的P0口控制四位一体LED共阴数码管的各码段端;2.单片机的P2.0~P2.3引脚外接驱动电路控制数码管的四个位选端;3.四位数码管分别用来显示一位分计时和两位秒计时,中间用“—”隔开。动态显示是将所有数码管的8个段码端的同名端并联在一起,由一个8位的输出口控制,每位数码管的公共端(称位线)由各自独立的输出口线控制,如图所示。它解决了数码管静态显示时占用较多的I/O口资源的问题。
一、动态显示工作原理在轮流显示过程中,每位数码管的点亮时间一般要控制在1~2ms,这样由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,显示的效果和静态显示一样。但由于CPU需要不断扫描刷新数据,因此会占用CPU较多的时间。采用动态显示方式时,为了保证数码管的亮度,一般需在数码管的段输出或位输出端加驱动电路。如使用三极管9012、74HC573或74LS
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025江苏南京市城市环卫集团有限公司招聘4人笔试历年参考题库附带答案详解
- 2025广西贺州市明威科技发展有限公司招聘2人笔试历年参考题库附带答案详解
- 2025广西凭祥市友谊关旅游开发有限公司文旅人才专场招聘13人笔试历年参考题库附带答案详解
- 2025广东汕头市潮阳区潮邑供水有限公司招聘专业技术人员笔试笔试历年参考题库附带答案详解
- 2025广东广州电缆高校合作招聘笔试历年参考题库附带答案详解
- 2025安徽和县经济开发区管理委员会招聘12人笔试历年参考题库附带答案详解
- 2026年中学教师招聘考试仿真题
- 2026年云南省事业单位考试仿真题及答案
- 2026年安全隐患排查竞赛活动
- 2026年眼保健健康知识讲座
- 2026湖北交投宜昌高速公路运营管理有限公司一线工作人员招聘考试备考试题及答案解析
- 雨课堂学堂在线学堂云《自然辩证法概论( 武汉科技大)》单元测试考核答案
- 神经重症患者镇痛镇静治疗中国专家共识(2023)解读
- (正式版)HGT 6313-2024 化工园区智慧化评价导则
- 锐角三角函数(第二课时)(导学案)-九年级数学下册同步备课系列(人教版)
- 瓦斯超限分析报告
- 肉鸭营养需要量 编制说明
- 2020全国新高考语文I卷《大师(节选)》试题及答案
- 2023年05月南方医科大学校本部公开招聘8名专业技术人员笔试题库含答案解析
- 人教版三年级数学上册《数字编码》
- 物理中考150个易错点
评论
0/150
提交评论