实验--流水灯--程序.docx

实验--流水灯--程序.docx

ID:62709449

大小:111.25 KB

页数:6页

时间:2021-05-17

实验--流水灯--程序.docx_第1页
实验--流水灯--程序.docx_第2页
实验--流水灯--程序.docx_第3页
实验--流水灯--程序.docx_第4页
实验--流水灯--程序.docx_第5页
资源描述:

《实验--流水灯--程序.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、精品文档图』-沔葡片贩*$i麦发龙二载・买班点加灯效京,实验二“流水灯”一、实验目的:1.初步了解汇编语言2.通过实验了解单片机最小系统3.了解单片机的I/O口通信。4.学习延时子程序的编写和使用二、实验内容:1.流水灯(跑马灯).单片机控制着8支发光二极管,每一时刻只有一支发光二极管点亮,如图示,延时200ms后熄灭而与之相邻的发光二极管点亮,直到点亮最后一个发光二极管后一,又以相反的方向依次点亮发光二极管,随意编辑精品文档随意编辑精品文档TCCWrvr»«AMImmtEg*RimF3KAI*)nrudJi从单片机最简系统出发.给I/O口添加8支发光二极管,得系统电

2、路如图示.当然,除了使用P2口外还可以使用PO、P1、P3完成这个实例口随意编辑精品文档流水表步骤P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7十六进制1011111117FH2101111110BFH3110111110DFH4111011110EFH5111101110F7H6111110110FBH7111111010FDH8111111100FFHMOVP1,#7FHACALLDELAYMOVP1,#0BFHACALLDELAYMOVP1,#0DFHACALLDELAYMOVACALLMOVACALLP2OP21P22P23P24P25P26

3、P27不科学⑵P1,#0FDHDELAYP1,#0FFHDELAY精品文档随意编辑精品文档指令指令类别功能说明ORG伪指令用于设计程序计数器PC的初始值,一般出现在程序开始处MAIN##程序中使用一个便于理解的字符串来指向程序存储器中的地址MOVP0,#00H数据装载将立即数00H装载到P0寄存器,即从P0口输出CALLDELAY调用指令调用程序存储器范围内的子程序JMPSTART跳转指令控制程序的走向和实现循环执行特定程序段RRC逻辑操作指令经过进位位的累加器循环右移RLC逻辑操作指令经过进位位的累加器循环左移DJNZR5,$循环指令将一段程序重复执行一定次数(R5

4、的值决定了重复的次数)。寄存器减一,不为零则转移。RET返回指令在子程序末尾,提示子程序结束,返回主程序END伪指令告诉汇编器程序的结束点,END以后的程序被视为是无效的LOCF:RRC;进位标志位C在累黑器A中从左向右轮换一次・□CX2;R1X二,如果R:£0则三垣LOCF*[但0-1■“A•不H;起始地址ORG00H随意编辑精品文档START:MOVA,#0FFHCLRCMOVR1,#8RIGHT:RRCAMOVP1,AACALLDELAYDJNZR1,RIGHT;程序一开始,初始一些所需要变量,如进位C的清0等;累加器A的8位全置1(0FFH),发光二极管全熄灭

5、...;进位..C.被清..0.,.C=0;R1=8,循环..8.次(右移....8.次)...,用.R.1.作计数器....;这是发光二极管向右“流动”的循环体......;把进位C在累加器A中从左向右....轮换一位;输出至P1口;调延时子程序,延时200msJMPSTART;跳回一开始,重复执行该流水灯程序;R1减1,如果不为0跳回RIGHT循环执行随意编辑精品文档随意编辑精品文档DELAY:D1:D2:;延时200ms的子程序MOVR3,#20MOVR4,#20MOVR5,#248;2+248X2=498=498gDJNZR5,$;R5减1,如果不为0,就执行

6、本行DJNZR4,D2;2+20X(498+2)=10002g^10msDJNZR3,D1RET;子程序结束标志,返回主程序END;程序结束点(3)取表法要显示的数据之间不存在简单的运算关系,不能使用ADD和SUBB等指令根据上一状态计算出下一状态的显示值。但显示的数据存在依次取用的特点,这时一般就会用到取表的方法。取表法是单片机程序中很常用的一种编程思想。在汇编程序末尾附加一个数据表,这个数据表可以是可以是字节型,也可是英文字母等数据。数据表与汇编程序一起可以被汇编,之后数据表就成为数据的一部分包含在生成的.HEX文件中。通过下载之后,数据表和程序代码就固化在单片机

7、的程序存储器中。ORG00HSTART:;装表,即DPTR指向表TABLE的表MOVDPTR,#TABLE;数据指针寄存器DPTR指向表TABLE头LOADTABLE:;取表程序段,表中的数据载入累加器ACC中,并判断是否已经完成随意编辑精品文档CLRA;累加器ACC清零MOVCA,@A+DPTR;基址加变址寻址,将表中数据载入ACC随意编辑精品文档随意编辑精品文档;CJNEA,#datarel比较立即数和A不相等则转移。如果取到88H说明表已经取完,否则显示;如果取完,跳回START,重新开始累加器ACC的数据输出到P1将ACC的数据输出到P1口;

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

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

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