AJMP START ORG 000BH AJMP INT_T1 ORG 0030H START:
MOV SP, #68H
MOV P2,#0FFH ;P2口置1,作为数据输入口 MOV A,#001H ;先点亮第一个LED MOV TMOD,#10H ;选择定时器1,方式1 MOV TH1,#3CH MOV TL1,#0B0H ;定时50ms MOV R7,#20 ;20次 SETB TR1 ; SETB EA ;开总中断 SETB ET1 ;中断允许 SJMP $ ;等待中断 INT_T1:
PUSH PSW MOV TH1,#3CH MOV TL1,#0B0H ;定时器重新赋初值 DJNZ R7,EXIT MOV R7,#20 MOV P1,A ;P1口输入数据 JNB P2.0, LOOP ;判断P2.0口按键是否被按下 RL A ;按键没有被按下时,流水灯循环左移 AJMP EXIT LOOP: ;有按键被按下时,流水灯循环右移 RR A EXIT: POP PSW RETI END
调试过程:
先使用软件仿真,通过按键P2.0的状态,再观察P1都是否按要求实行两种不同的点亮方式来判断程序的正误。然后进行硬件操作,通过拨动连接P2口的开关来控制八只发光二极管的点亮方式。延续上一个流水灯的程序,加一个按键,通过按键改变流水灯的流向。
实验三、单片机定时器及中断实验
一、实验目的
1、学习单片机的定时器的使用方法;
2、学习中断的使用及中断服务程序的编写;