急求单片机数码管显示交通灯倒计时的汇编程序

在八位数码管上显示三个倒计时分别为40.10.20s,数码管亮两位灭一位。

NAME T3 ;I/O口扩展实验一
PORT EQU 0CFA0H ;片选地址CS0
CSEG AT 0000H
LJMP START
CSEG AT 4100H
START: MOV A,#11H ;两个红灯亮,黄灯、绿灯灭
ACALL DISP ;调用273显示单元(以下雷同)
ACALL DE3S ;延时3秒
LLL: MOV A,#12H ;东西路口绿灯亮;南北路口红灯亮
ACALL DISP
ACALL DE10S ;延时10秒
MOV A,#10H ;东西路口绿灯灭;南北路口红灯亮
ACALL DISP
MOV R2,#05H ;R2中的值为黄灯闪烁次数
TTT: MOV A,#14H ;东西路口黄灯亮;南北路口红灯亮
ACALL DISP
ACALL DE02S ;延时0.2秒
MOV A,#10H ;东西路口黄灯灭;南北路口红灯亮
ACALL DISP
ACALL DE02S ;延时0.2秒
DJNZ R2,TTT ;返回TTT,使东西路口;黄灯闪烁五次
MOV A,#11H ;两个红灯亮,黄灯、绿灯灭
ACALL DISP
ACALL DE02S ;延时0.2秒
MOV A,#21H ;东西路口红灯亮;南北路口绿灯亮
ACALL DISP
ACALL DE10S ;延时10秒
MOV A,#01H ;东西路口红灯亮;南北路口绿灯灭
ACALL DISP
MOV R2,#05H ;黄灯闪烁五次
GGG: MOV A,#41H ;东西路口红灯亮;南北路口黄灯亮
ACALL DISP
ACALL DE02S ;延时0.2秒
MOV A,#01H ;东西路口红灯亮;南北路口黄灯灭
ACALL DISP
ACALL DE02S ;延时0.2秒
DJNZ R2,GGG ;返回GGG,使南北路口;黄灯闪烁五次
MOV A,#03H ;两个红灯亮,黄灯、绿灯灭
ACALL DISP
ACALL DE02S ;延时0.2秒
JMP LLL ;转LLL循环
DE10S: MOV R5,#100 ;延时10秒
JMP DE1
DE3S: MOV R5,#30 ;延时3秒
JMP DE1
DE02S: MOV R5,#02 ;延时0.2秒
DE1: MOV R6,#200
DE2: MOV R7,#126
DE3: DJNZ R7,DE3
DJNZ R6,DE2
DJNZ R5,DE1
RET
DISP: MOV DPTR,#PORT ;273显示单元
CPL A
MOVX @DPTR,A
RET
END
你看看行不行 如果不行你自己再稍微改一下吧 反正大概就这些了
温馨提示:内容为网友见解,仅供参考
无其他回答

单片机C语言红绿灯程序,要求:数码管显示时间倒计时、16*16LED点阵显示...
sbit SCLR = P2^1; \/\/P2.1为移位寄存器清○端 void delay(uint); \/\/延时函数 uchar data display[32]; \/\/显示缓存 uchar code BMP[][32]={{16,0,16,0,37,248,36,64,120,64,8,64,16,64,32,64,124,64,0,64,0,64,12,64,112,64,3,252,0,0,0,0},{16,0,19,240...

求一个用汇编语言编写单片机简易交通灯程序。求高手帮下忙谢谢了...
;1.工作寄存器 ;R2设置为定时器定时中断次数,R6、R7用于延时程序中的寄存器 ;2.片内存储单元 ;30H、31H作为两组数码管显示数据存储单元;32H、33H作为交通灯初始状态存储单元;40H、41H作为交通灯显示数据存储单元 ;3.标志位 ;00H:南北通行标志位 ; 01H:东西通行标志位;02H:紧急事件标志位 ;--...

求单片机数码管倒计时程序
define uchar unsigned char define uint unsigned int sbit d1=P2^0; sbit key1=P0^4;sbit SDATA_595=P0^0; \/\/串行数据输入 ---接板卡上的SPI 数据信号输入端 sbit SCLK_595=P0^1; \/\/移位时钟脉冲(输入口) ---接板卡上的SPO---串行时钟线---SHcp移位时钟信号输入端 sbit...

单片机检测低电平持续的时间并用数码管显示此时间(交通灯学习式倒计时...
可以这样啊,从检测到第一个低电平开始,做一个标志位,将标志位置一,然后调用1s延时,每一次调用1S延时后标志位都要+1,3S后看电平,如果是高的就继续延时,每一秒都要检测,直到检测到低电平为止,判断标志位是多少,如果是3则是黄灯,如果是10则是红绿。记得判断完成后标志位要清零 ...

求单片机交通灯控制系统设计的程序(最后有中文解析)
--东西绿灯、南北红灯,两个方向的数字显示,都是60s倒计时。--东西红灯、南北绿灯,两个方向的数字显示,都是40s倒计时。--两路时间虽然不同,数码管显示应该是相同的,完全可以用一组数码管显示。2.紧急通行控制,如某一方向现为红灯,通过按键强行切换为绿灯,而另一路改为红灯,延时若干秒(...

keil写程序 单片机二位数码管显示倒计时
sbit wei2=P2^5;sbit wei3=P2^6;sbit wei4=P2^7;uchar code num[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};\/\/共阴数码管0~9的十六进制码 void delay(uchar xms) \/\/软件延时 { int i,j;for(i=xms;i>0;i--)for(j=125;j>0;j--);} void display...

单片机交通灯的汇编程序
START: MOV A,#11H ;两个红灯亮,黄灯、绿灯灭 ACALL DISP ;调用273显示单元(以下雷同)ACALL DE3S ;延时3秒 LLL: MOV A,#12H ;东西路口绿灯亮;南北路口红灯亮 ACALL DISP ACALL DE10S ;延时10秒 MOV A,#10H ;东西路口绿灯灭;南北路口红灯亮 A...

编程实现倒计时的秒表,2位LED数码管显示,延时采用硬件延时的方法
程序如下 include<reg51.h> unsigned char code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};\/\/共阳数码管段码表 unsigned char second;\/\/秒倒计时变量 unsigned char t0n;\/\/T0中断次数计数 sbit k1=P3^2;\/\/定义按键 void delay(){ unsigned int j;for(j=400;j>...

求C51单片机汇编语言控制两位数码管倒计时程序,最好能说明下思路_百度...
MOV R4,#60 ;60S开始倒计时 SETBEA SETBET0 SETB TR0 MOV DPTR,#TABLE MAIN1:ACALLDISP AJMPMAIN1 DISP:MOV A,R4 MOV B,#10 DIV AB ;当前值除以10 MOV 20H,A ;得出的商送给十位 MOV 21H,B ;得出的余数送给个位 MOV A,20H ;十位显示 MOVC A,@A+DPTR ...

单片机交通灯程序
南北道 红\/红\/红\/绿和行人\/左转\/黄 行人灯亮的时候有声音提示盲人能通过。突发交通事故的时候能够紧急全红灯。在有重要人物通过的时候能手动改为绿灯。ORG 0000H ;主程序的入口地址 LJMP MAIN ;跳转到主程序的开始处 ORG 0003H ;外部中断0的中断程序入口地址 ORG 000BH ;定时器0的中断程序入口...

相似回答