考试急用 用单片机8051编程序 要求在写内容

来源:百度知道 编辑:UC知道 时间:2024/06/17 17:02:44
要求接法:P2口接数码管或在前面加一个7447 P1口接电阻和发光二级管 INT0接按键(是那种按下后,如果手一放开就是不按下一样)
控制要求:当没按下T0时数码管显是0,按下时数码管变1,发光二级管左右循环,再按下时变2,全亮全灭 一直按到9,控制发光二级管可以自己设
程序要怎么编写?急用 应该用到中断很多吧!大家帮帮我!!谢谢

ORG 0000H
LJMP MAIN
ORG 0003H
LJMP KEYINT0
;共阳极数码管段码表0——9
TABLE:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
COUNT data 30H
;延迟程序,约0.5S
DELAY:
MOV R5,#50
DD1:MOV R6,#100
DD2:MOV R7,#100
DJNZ R7,$
DJNZ R6,DD2
DJNZE R5,DD1
RET
;LED灯显示
LEDCON:
CLR A
ADD A,COUNT
ADD A,COUNT
ADD A,COUNT
JMP @A+PC
LJMP NOOP
LJMP RRLL
LJMP OPEN_0N_OFF
LJMP RRLL
LJMP OPEN_0N_OFF
LJMP RRLL
LJMP LAMP_0N_OFF
LJMP RRLL
LJMP LAMP_0N_OFF
LJMP RRLL
RET
;LED灯显示的花样程序,这里就写了2个,LED灯为下拉方式点亮
;灯显示程序—左右循环
RRLL:
MOV R1,#8
MOV P1,#0FEH
LCALL DELAY
RRLL1:MOV A,P1
RR A
MOV P1,A
LCALL DELAY
DJNZ R1,RRLL1
MOV R1,#8
LLRR1:MOV A,P1
RR A
MOV P1,A
LCALL DELAY
DJNZ R1,LLRR1
RET
;灯显示程序2,灯亮0.5S,灭0.5S
LAMP_ON_OFF:
MOV P1,#0
LCALL DELAY
MOV P1,