任务10 用自制的跑马灯电路实现8只LED花样彩灯.ppt

任务10 用自制的跑马灯电路实现8只LED花样彩灯.ppt

ID:48725030

大小:150.00 KB

页数:9页

时间:2020-01-20

任务10  用自制的跑马灯电路实现8只LED花样彩灯.ppt_第1页
任务10  用自制的跑马灯电路实现8只LED花样彩灯.ppt_第2页
任务10  用自制的跑马灯电路实现8只LED花样彩灯.ppt_第3页
任务10  用自制的跑马灯电路实现8只LED花样彩灯.ppt_第4页
任务10  用自制的跑马灯电路实现8只LED花样彩灯.ppt_第5页
资源描述:

《任务10 用自制的跑马灯电路实现8只LED花样彩灯.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、10.1.1明确工作任务用任务3制作完成的跑马灯电路,通过编程实现8位LED灯的花样点亮,花样彩灯的亮灯模式是:首先从两边往中间点亮,当灯全亮后又从中间往两边熄灭,灯全部熄灭后,接着8个灯闪烁2次,然后又回到开始状态,并以此不断循环。每次灯点亮的时间为0.5秒。任务10用自制的跑马灯电路实现8只LED花样彩灯10.1.2跟我想LED花样彩灯就是LED灯按照一定的方式循环变化,循环点亮的方式可以通过编写程序来实现,而且相同的电路可以通过改变程序实现不同的花样。那么,能够实现工作任务要求的花样彩灯控制程序应

2、怎样编写呢?首先根据花样彩灯的亮灯方式设计一个数据表,每个数据对应一个亮灯的组态,用程序存储器访问指令MOVCA,@A+DPTR读取数据表中的数据,将读取的数据送P0口,通过调用延时程序控制灯的点亮时间,并通过修改累加器A的值改变访问数据表的位置,以达到改变亮灯组态。在编写程序之前,让我们学一学相关指令的功能和用法。任务10用自制的跑马灯电路实现8只LED花样彩灯10.1.3跟我学1)16位数据传送指令MOVDPTR,#data16这是51单片机唯一的一条16数据传送指令,其功能是将16位立即数送入16

3、位数据寄存器DPTR。例如:MOVDPTR,#02EBH;将16位立即数送DPTR任务10用自制的跑马灯电路实现8只LED花样彩灯2)定义字节指令DB(为指令)格式:标号:DBX1,X2,…Xn功能:从指定地址的单元开始定义若干个8位的数据值或ASCII码字符。常用于定义数据表,各数据之间用逗号分开,ASCII码字符用单引号。例如:ORG0100;指定数据表存储在ROM中的位置TAB:DB0EH,04H,‘B’0DFH;定义数据表任务10用自制的跑马灯电路实现8只LED花样彩灯3)加1指令INCA;A←

4、(A)+1INCRn;Rn←(Rn)+1INCdirect;direct←(direct)+1INC@Ri;(Ri)←((Ri))+1INCDPTR;DPTR←(DPTR)+1加1指令的功能是将指令中指定操作数的内容加1,结果不影响标志位。若原来的内容为0FFH,则加1后产生溢出,使操作数的内容变为00H,但不影响标志位。任务10用自制的跑马灯电路实现8只LED花样彩灯4)访问程序存储器指令MOVCA,@A+DPTR;A←((A+DPTR))这条指令是以DPTR为基址寄存器,累加器A的内容为偏移量,在执

5、行时先将DPTR和A中的内容相加,得到一个16位的ROM地址,并将该地址中的内容取出送给A。该指令的执行结果只与DPTR和A的内容有关,与该指令存放的地址无关。只需将数据表的首地址送DPTR中,将数据索引值送A即可。数据表存储在ROM的任何位置都行,使用很方便。例如:MOVDPTR,#0100HMOVA,#02HMOVCA,@A+DPTR该段程序中,执行完第1条指令后寄存器DPTR内容为0100H,执行完第2条指令后A的内容为02H,执行第3条指令时,首先将A和DPTR中的内容相加得0102H,接着将存

6、储在ROM地址为0102H单元中的数据送A。任务10用自制的跑马灯电路实现8只LED花样彩灯(MOVCA,@A+PC;PC←PC+1,A←((PC+A))这也是一条访问ROM的指令,不过他是以PC为基址寄存器,累加器A的内容为偏移量,在执行时将PC的当前值与A的内容相加,得到一个16为ROM地址,并将该地址中存储的数据取出送给A。该指令的基址寄存器PC的值用户不能随意改变,只能根据程序而定,只有根据A的内容取出表格中的数据,因A是8位寄存器,最大值为255,所以数据表的长度为256字节,数据表只能存放在

7、该指令之后的256字节范围内,因查表长度受限制,并且用时还必须计算出该指令下一地址与数据表首地址之间的差值,用起来很麻烦,所以少人用。任务10用自制的跑马灯电路实现8只LED花样彩灯ORG0000HAJMPSTARTORG0030HSTART:MOVDPTR,#TAB;表首地址送DPTRMOVR1,#0;查表指针送MOVP0,#00H;全部灯熄灭NEXT2:MOVA,R1;取查表指针MOVCA,@A+DPTR;查数据表CJNEA,#0DDH,NEXT1;表是否查完AJMPSTARTNEXT1:MOVP0

8、,A;查表所得数据送P0口INCR1;修改查表指针CALLDEL1S;显示延时AJMPNEXT2程序分析讲解及仿真;**********1秒钟延时子程序******************DEL1S:MOVR3,#5DEL:MOVR4,#100DEL1:MOVR5,#250DEL2:NOPNOPDJNZR5,DEL2DJNZR4,DEL1DJNZR3,DELRETTAB:81H,0C3H,0E7H,0FFH,0E7H,0C3H,81H,00

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。