学号:2091224124
姓名:明磊
单片机仿真实验报告四:走马灯
仿真设计要求
用中断INTR0实现P0口的小灯全亮灭各三次,用中断INTR1实现P0口的小灯隔个亮,然后轮流亮1次。简言之,就是走马灯。
走马灯电路原理图
程序设计内容及源程序
ORG0000H
AJMPSTART //无条件跳转,是直接跳到START;
ORG0003H
AJMPLOOP1 //程序一执行到这里就跳转到loop1;
ORG0013H
AJMPLOOP2 //程序一执行到这里就跳转到loop2;
START:MOVP3,#0FFH
MAIN:SETBEA //CPU中断总允许;
SETBEX0//开中断SETBPX0//设置高优先级SETBEX1//开中断;
SETBPX1//设置低优先级;
MOVA,#0FEH
A2:MOVP0,A
ACALLDELAY
RLA
CJNEA,#0FEH,A2 //累加器与立即数不等转移到A2;
MOVA,#7FH
A1:MOVP0,A
ACALLDELAY
RRA
CJNEA,#7FH,A1 //累加器与立即数不等转移到A1;
AJMPMAIN
LOOP1:MOVR0,#3
A3:MOVP0,#0AAH
ACALLDELAY
MOVP0,#55H
ACALLDELAY //延时程序;
CJNER0,#0,A3 //寄存器RO与立即数0不等转移到A3;
RETI
LOOP2:MOVR1,#8
A4:MOVP0,#0AAH
ACALLDELAY
MOVP0,#55H
ACALLDELAY
CJNER1,#0,A4 //寄存器R1与立即数0不等转移到A4;
RETI
DELAY:MOVR7,#255
Y1:MOVR6,#255
DJNZR6,$ //R6减一,不为零跳转到本条指令(为零执行下一条指令)
DJNZR7,Y1 //寄存器R7减一不为0转移到Y1;
RET //程序返回;
END //所有程序执行完毕;
实验总结
通过走马灯这个实验,我学会了如何用外部中断对流水效果的实现,更加理解中断的含义。学会了使用跳转命令,也看到了可以用多种方法来延时。程序的结构化可以帮助我们更好的检查错误。也更加的美观得体。还要分辨同一个意思用不同的程序来表达的微妙区别。
|
|