配色: 字号:
2091224124明磊——中断——第四次
2012-05-19 | 阅:  转:  |  分享 
  
学号: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 //所有程序执行完毕;

实验总结

通过走马灯这个实验,我学会了如何用外部中断对流水效果的实现,更加理解中断的含义。学会了使用跳转命令,也看到了可以用多种方法来延时。程序的结构化可以帮助我们更好的检查错误。也更加的美观得体。还要分辨同一个意思用不同的程序来表达的微妙区别。















































献花(0)
+1
(本文系明磊的图书...首藏)