自己动手写的第一个8051单片机中断练习程序今天终于实现了!!!好开心啊!!!希望这是个好的开始!!!
刚学了半个月的单片机,学得挺认真的感觉不错.前几天就和小辉开玩笑说自己可以写程序了,遭鄙视!!!其实自己也没想能看懂程序和能写懂程序之间还是有一段路要走的.不过正是他的不相信才让我硬是把程序写了出来.
刚学了半个月的单片机,学得挺认真的感觉不错.前几天就和小辉开玩笑说自己可以写程序了,遭鄙视!!!其实自己也没想能看懂程序和能写懂程序之间还是有一段路要走的.不过正是他的不相信才让我硬是把程序写了出来.
ORG 0000H
LJMP MAIN
ORG 0003H
LJMP ZD
ORG 0030H
MAIN:
MOV A , #0
MOV TCON , #01H
MOV IE , #81H
MOV P0 , #04H
MOV P1 ,#00H
LOOP:
PUSH ACC
MOV DPTR ,#TAB
LCALL SOQ
MOV P0 ,A
LCALL DELAY
POP ACC
INC A
CJNE A,#9 ,LOOP
LJMP MAIN
DELAY:
MOV R7,#0FFH ;延时子程序
LJMP MAIN
ORG 0003H
LJMP ZD
ORG 0030H
MAIN:
MOV A , #0
MOV TCON , #01H
MOV IE , #81H
MOV P0 , #04H
MOV P1 ,#00H
LOOP:
PUSH ACC
MOV DPTR ,#TAB
LCALL SOQ
MOV P0 ,A
LCALL DELAY
POP ACC
INC A
CJNE A,#9 ,LOOP
LJMP MAIN
DELAY:
MOV R7,#0FFH ;延时子程序
D1: MOV R6,#0FFH
D2: NOP
NOP
DJNZ R6,D2
DJNZ R7,D1
RET
SOQ:
MOVC A,@A+DPTR
RET
D2: NOP
NOP
DJNZ R6,D2
DJNZ R7,D1
RET
SOQ:
MOVC A,@A+DPTR
RET
TAB : DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H
ZD : ;中断程序
PUSH ACC
MOV A , #01H
MOV R2, #8
OUTPUT:
MOV P1 ,A
RL A
LCALL DELAY
DJNZ R2 , OUTPUT
POP ACC
RETI
ZD : ;中断程序
PUSH ACC
MOV A , #01H
MOV R2, #8
OUTPUT:
MOV P1 ,A
RL A
LCALL DELAY
DJNZ R2 , OUTPUT
POP ACC
RETI
没有评论:
发表评论