
哪位大神帮忙写个单片机程序
七段共阴LED数码管的串行显示控制,用TXD控制一位LED数码管静态循环显示数字0~9,每个数显示持续3秒。规定主要器件:AT89S(C)5112MHz晶体共阴数码管用C...
七段共阴LED数码管的串行显示控制,用TXD控制一位LED数码管静态循环显示数字0~9,每个数显示持续3秒。
规定主要器件:AT89S(C)51 12MHz晶体 共阴数码管
用C语言写!! 展开
规定主要器件:AT89S(C)51 12MHz晶体 共阴数码管
用C语言写!! 展开
展开全部
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP T0ISR
ORG 0030H
MAIN:
MOV TMOD,#01H
MOV TH0,#HIGH(65536-50000)
MOV TL0,#LOW(65536-50000)
SETB TR0
SETB ET0
SETB EA
MOV SCON,#00H
CLR A
MOV R2,#60
SJMP $
T0ISR:
CLR TR0
MOV TH0,#HIGH(65536-50000)
MOV TL0,#LOW(65536-50000)
SETB TR0
DJNZ R2,T0E
MOV R2,#60
MOV DPTR,#TABLE
PUSH ACC
MOVC A,@A+DPTR
MOV SBUF,A
JNB TI,$
CLR TI
POP ACC
INC A
CJNE A,#10,T0E
CLR A
T0E:
RETI
TABLE: ; 共阴极数码管显示代码表 DB 3FH,06H,5BH,4FH,66H ;01234 DB 6DH,7DH,07H,7FH,6fh ;56789
LJMP MAIN
ORG 000BH
LJMP T0ISR
ORG 0030H
MAIN:
MOV TMOD,#01H
MOV TH0,#HIGH(65536-50000)
MOV TL0,#LOW(65536-50000)
SETB TR0
SETB ET0
SETB EA
MOV SCON,#00H
CLR A
MOV R2,#60
SJMP $
T0ISR:
CLR TR0
MOV TH0,#HIGH(65536-50000)
MOV TL0,#LOW(65536-50000)
SETB TR0
DJNZ R2,T0E
MOV R2,#60
MOV DPTR,#TABLE
PUSH ACC
MOVC A,@A+DPTR
MOV SBUF,A
JNB TI,$
CLR TI
POP ACC
INC A
CJNE A,#10,T0E
CLR A
T0E:
RETI
TABLE: ; 共阴极数码管显示代码表 DB 3FH,06H,5BH,4FH,66H ;01234 DB 6DH,7DH,07H,7FH,6fh ;56789
追问
用C语言写可以嘛
追答
#include
#define uchar unsigned char
uchar table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar times=0,nun=0;;
void t0isr() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
if(times>=60)
{
times=0;
SBUF=talbe[num];
while(!TI);
TI=0;
num++;
num%=10;
}
}
main()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TR0=1;
ET0=1;
EA=1;
SCON=0x00;
while(1);
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询