该【实验流水灯程序 】是由【非学无以广才】上传分享,文档一共【5】页,该文档可以免费在线阅读,需要了解更多关于【实验流水灯程序 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。实验二“流水灯”
一、实验目的:
。
.
二、实验内容:
(跑马灯)
流水表
步骤
十六进制
1
0
1
1
1
1
1
1
1
7FH
2
1
0
1
1
1
1
1
1
0BFH
3
1
1
0
1
1
1
1
1
0DFH
4
1
1
1
0
1
1
1
1
0EFH
5
1
1
1
1
0
1
1
1
0F7H
6
1
1
1
1
1
0
1
1
0FBH
7
1
1
1
1
1
1
0
1
0FDH
8
1
1
1
1
1
1
1
0
0FFH
(1)
……
MOVP1,#7FH
ACALLDELAY
MOVP1,#0BFH
ACALLDELAY
MOVP1,#0DFH
ACALLDELAY
……
MOVP1,#0FDH
ACALLDELAY
MOVP1,#0FFH
ACALLDELAY
……
不科学
(2)
指令
指令类别
功能说明
ORG
伪指令
用于设计程序计数器PC的初始值,一般出现在程序开始处
MAIN
标号
程序中使用一个便于理解的字符串来指向程序存储器中的地址
MOVP0,#00H
数据装载
将立即数00H装载到P0寄存器,即从P0口输出
CALLDELAY
调用指令
调用程序存储器范围内的子程序
JMPSTART
跳转指令
控制程序的走向和实现循环执行特定程序段
RRC
逻辑操作指令
经过进位位的累加器循环右移
RLC
逻辑操作指令
经过进位位的累加器循环左移
DJNZR5,$
循环指令
将一段程序重复执行一定次数(R5的值决定了重复的次数)。寄存器减一,不为零则转移。
RET
返回指令
在子程序末尾,提示子程序结束,返回主程序
END
伪指令
告诉汇编器程序的结束点,END以后的程序被视为是无效的
ORG 00H ;起始地址
START: ;程序一开始,初始一些所需要变量,如进位C的清0等
MOVA,#0FFH ;累加器A的8位全置1(0FFH),发光二极管全熄灭
CLRC ;进位C被清0,C=0
MOVR1,#8 ;R1=8,循环8次(右移8次),用R1作计数器
RIGHT: ;这是发光二极管向右“流动”的循环体
RRC A ;把进位C在累加器A中从左向右轮换一位
MOV P1,A ;输出至P1口
ACALLDELAY ;调延时子程序,延时200ms
DJNZ R1,RIGHT ;R1减1,如果不为0跳回RIGHT循环执行
JMPSTART ;跳回一开始,重复执行该流水灯程序
DELAY: ;延时200ms的子程序
MOVR3,#20
D1:
MOVR4,#20
D2:
MOVR5,#248 ;2+248×2=498=498μs
DJNZR5,$ ;R5减1,如果不为0,就执行本行
DJNZR4,D2;2+20×(498+2)=10002μs≈10ms
DJNZR3,D1
RET ;子程序结束标志,返回主程序
END ;程序结束点
(3)取表法
要显示的数据之间不存在简单的运算关系,不能使用ADD和SUBB等指令根据上一状态计算出下一状态的显示值。但显示的数据存在依次取用的特点,这时一般就会用到取表的方法。
取表法是单片机程序中很常用的一种编程思想。在汇编程序末尾附加一个数据表,这个数据表可以是可以是字节型,也可是英文字母等数据。数据表与汇编程序一起可以被汇编,。通过下载之后,数据表和程序代码就固化在单片机的程序存储器中。
ORG 00H
START: ;装表,即DPTR指向表TABLE的表
MOV DPTR,#TABLE ;数据指针寄存器DPTR指向表TABLE头
LOADTABLE: ;取表程序段,表中的数据载入累加器ACC中,并判断是否已经完成
CLR A ;累加器ACC清零
MOVC A,***@A+DPTR ;基址加变址寻址,将表中数据载入ACC
CJNE A,#88H,DISPLAY ;CJNEA,#datarel比较立即数和A不相等则转移。
如果取到88H说明表已经取完,否则显示
JMP START ;如果取完,跳回START,重新开始
DISPLAY: ;显示程序段,累加器ACC的数据输出到P1
MOV P1,A ;将ACC的数据输出到P1口
ACALL DELAY ;调延时子程序
INC DPTR ;DPTR加1,准备取表中的下一个数据
JMP LOADTABLE ;跳回取表程序段
DELAY: ;延时200ms的子程序
MOVR3,#20
D1:
MOVR4,#20
D2:
MOVR5,#248
DJNZR5,$ ;R5减1,如果不为0,就执行本行
DJNZR4,D2
DJNZR3,D1
RET ;子程序结束标志,返回主程序
TABLE:
DB 07FH,0BFH,0DFH,0EFH ;右移
DB 0F7H,0FBH,0FDH,0FEH
DB 88H ;结束码
END ;程序结束点
取表法的优点是预先存放所需数据,在程序需要时调用,这样一来,程序简洁,易于调试.
三、实验报告
,并调试.
,再从右向左来回流动的程序,并调试.
,(相邻两个亮,其余灭)
实验流水灯程序 来自淘豆网m.daumloan.com转载请标明出处.