;利用中断的99秒计时器 ,动态扫描两位数码管
;P0口接J3,数据端口
;P2.2接 J2 B端子,表示段码锁存
;P2.3接 J2 A端子,标志位码锁存
LATCH1 BIT P2.2
LATCH2 BIT P2.3
ORG 00H
JMP START
ORG 0BH
JMP TIM0
START:MOV R3,#00 ;中断循环次数
MOV R4,#0 ;时间初值
MOV DPTR,#TABLE
MOV SP,#40H
MOV TMOD,#01H ;定时器工作方式
MOV TH0,#HIGH(65536-3800)
MOV TL0,#LOW(65536-3800) ;初值4MS
SETB TR0
MOV IE,#82H ;开中断
TIM0:
MOV TH0,#HIGH(65536-3800)
MOV TL0,#LOW(65536-3800)
INC R3
CJNE R3,#250,X1 ;1S
MOV R3,#0
MOV A,R4 ;十进制转换
MOV B,#10
DIV AB
MOV 20H,B ; 个位
MOV 21H,A ; 十位
INC R4
CJNE R4,#100,LEDSCAN ;到100则清零
MOV R4,#0
LEDSCAN: CALL SCAN ;调用数码管扫描
X1: PUSH ACC
PUSH PSW
CALL SCAN
POP PSW
POP ACC
RETI
SCAN:
MOV A,21H
MOVC A,@A+DPTR
MOV P0,A
SETB LATCH1
CLR LATCH1
MOV P0,#11111110B ;扫描子程序
SETB LATCH2
CLR LATCH2
CALL DELAY1
MOV A,20H
MOVC A,@A+DPTR
MOV P0,A
SETB LATCH1
CLR LATCH1
MOV P0,#11111101B ;0代表选通该位数码管
SETB LATCH2
CLR LATCH2
CALL DELAY1
RET
DELAY:MOV R5,#50 ;典型延时程序
D1: MOV R6,#40
D2: MOV R7,#248
CALL SCAN
DJNZ R7,$
DJNZ R6,D2
DJNZ R5,D1
RET
DELAY1:MOV R6,#4 ;扫描延时
D3: MOV R7,#248
DJNZ R7,$
DJNZ R6,D3
RET
TABLE:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ;共阴字码表
END
是用动态扫描的方法显示的,用了2个锁存器,8个数码管的。
附上电路图
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP T0ISR
ORG 0030H
MAIN:
MOV TMOD,#01H
MOV TH0,#HIGH(65536-10000)
MOV TL0,#LOW(65536-10000)
SETB ET0
SETB TR0
SETB EA
SETB 00H
LOOP:
SJMP LOOP
T0ISR:
CLR TR0
MOV TH0,#HIGH(65536-10000)
MOV TL0,#LOW(65536-10000)
SETB TR0
MOV DPTR,#TABLE
T0C:
CPL 00H
JB 00H,T001
MOV P3,#0FDH
MOV A,R1
MOVC A,@A+DPTR
MOV P2,A
SJMP T002
T001:
MOV P3,#0FEH
MOV A,R0
MOVC A,@A+DPTR
MOV P2,A
T002:
INC R2
MOV A,R2
CJNE A,#100,T0E
MOV R2,#0
INC R0
CJNE R0,#9,T0E
MOV R0,#0
INC R1
CJNE R1,#9,T0E
MOV R1,#0
T0E:
RETI
TABLE: ; 共阴极数码管显示代码表
DB 3FH,06H,5BH,4FH,66H ;01234
DB 6DH,7DH,07H,7FH,6FH ;56789
END
本回答被网友采纳...秒的汇编程序,要求有循环和暂停,用两个独立数码管显示
CLR LATCH1 MOV P0,#11111101B ;0代表选通该位数码管 SETB LATCH2 CLR LATCH2 CALL DELAY1 RET DELAY:MOV R5,#50 ;典型延时程序 D1: MOV R6,#40 D2: MOV R7,#248 CALL SCAN DJNZ R7,DJNZ R6,D2 DJNZ R5,D1 RET DELAY1:MOV R6,#4 ;扫描延时 D3: MOV R7,#2...
AT89C51单片机用C语言编写一个99秒倒计时的程序,要求复位或上电2位数码...
首先呢,定义两个全局变量,以作十与个并赋值为0,然后编写一个独立键盘函数,分别用于判断SB1~4,若 SB1==0,TR0=1,若SB2==0,TR0=0,若SB3==0,SHI ,若SB4==0,FEN 。主要功能就这样,当然这个并不完美,需要你自己去添加一些功能,然后再编写中断函数。希望我的回答能帮助到你。
求大神写个程序,at89c51单片机实现两个7SEG-COM-ANODE灯循环显示00...
P2=0xc0;while(1);} \/\/T0中断程序 void T0_int() interrupt 1 { TH0 =0x3C;TL0 =0xB0;t0n++;if(t0n>=10)\/\/0.5秒到 { t0n=0;num++;\/\/加1 if(num>99)num=0;P0=tab[num\/10];P2=tab[num%10];} } 仿真结果
用单片机AT89C51驱动两位数码管显示00--99依次循环程序代码
以下是用单片机AT89C51驱动两位数码管显示00--99循环的程序代码片段:程序开始于0000h地址,通过计数器temp(22h)控制数码管从00到99的循环显示。计数器初始化为0,然后调用子程序display进行显示。每当计数器加1并判断是否达到100后,若未满则返回stlop继续循环,满100则清零重新开始。display子程序中,先...
AT89C51中断程序设计两位数码管0到99,工作方式1,定时计数,1s,不用C语 ...
SECOND EQU 30H; 定义 TCOUNT EQU 31H ;定义 ORG 00H ; 起始 LJMP START; 跳转 ORG 1BH ; 中断矢量地址 LJMP INT0X ; 跳转 START:MOV SECOND,#00H ; 设置计数0送入SECOND MOV TCOUNT,#00H ; 设置计数0送入TCOUNT MOV TMOD,#10H ; 设置计数器1 MOV TH1,#(65536-50000) \/ 256 ...
单片机用汇编写两个数码管显示0到99循环的程序
2、数码管段选表。3、延时函数。4、uchar i; 变量i;wk = 1;打开位选,P0 = 0xf7;1111 0111第4位数码管显示,wk = 0;关闭位选。5、while(1) \/\/死循环效果{} 。6、dk = 1;\/\/打开段选,P0 = leddata[i];,dk = 0;\/\/关闭段选,delay(100);\/\/延时效果。7、选择效果,限制i值...
AT89c51单片机程序控制两个数码管显示00-59秒表的程序要怎么编啊?
display(second)子函数与两个数码管的连接方式有关 void main(void )\/\/主程序 { TMOD=0x01;\/\/ 定时器1工作方式一 ET0=1;EA=1;TH0=(65536-10000)\/256;\/\/定时10ms TL0=(65536-10000)%256;TR0=0;\/\/上电先不启动 while(1){ if(key1==0)\/\/判断按键是否按下 { Delay1ms(10);\/\/延时...
用AT89C51单片机编写一个C语言程序实现2个数码管秒计数器,用4个按键...
uchar num=0;sec,key;void delay(unsigned int a){ unsigned int i,j;for(i=0;i<a;i++)for(j=0;j<120;j++);} void display(){ LED1=sec\/10;LED2=sec%10;P2=0x01;P0=distab[LED1];delay(3);P2=0x02;P0=distab[LED2];delay(3);} void t0isr() interrupt 1 { TH0=(...
1、 基于AT89C51单片机,利用定时器设计一个两位数码管显示电路。 设计...
if(shu==99) shu=0; } } void time1(void) interrupt 3 { TH1=(65536-5000)\/256; TL1=(65536-5000)%256; display(); } void init() { TMOD=0x11; EA=1; ET0=1; ET1=1; TR1=1; TR0=1; } main() { init(); while(1) { conv(shu); } } 本回答由提问者推荐 举报| 答案纠错 |...
求篮球30秒倒计时器的设计和制作,数字电路课程设计,详细论文
30秒倒计时器的设计和制作有很多方法,本文介绍的30秒倒计时器以AT89C51单片机作为控制单元,采用两个数码管显示时间,用三个按键分别控制计时器的计时开始、复位和暂停。倒计时器初始状态显示“30”,当裁判员按下计时键,30秒倒计时开始,当计时器时间减到0时,计时器发出声光报警,提示裁判计时时间已到。 一、电路设计...