用汇编语言实现交通灯管理器的设计
补充:要求:用7段数码管显示剩余时间
允许设计个方向的通行时间
配备完整的红绿灯控制
具备夜间停用方式
谢谢啦
补充:要求:用7段数码管显示剩余时间
允许设计个方向的通行时间
配备完整的红绿灯控制
具备夜间停用方式
谢谢啦
其他:一、设计要求利用PC机键盘和屏幕实现交通灯模拟器。二、设计内容与要求基本汇编做到这个不容易,要不你用语言编一个吧,然后反编译成汇编。 设计要求利用PC机键盘和屏幕实现交通灯模拟器。二、设计内容与要求基本汇编做到这个不容易,要不你用语言编一个吧,然后反编译成汇编。 不懂的+我 Q 25352800048 ORG 0000H
LJMP STAR1
A_BIT EQU 20H ;数码管个位数存放内存位置
B_BIT EQU 21H ;数码管十位数存放内存位置
TEMP EQU 22H ;计数器数值存放内存位置
STAR1: MOV TEMP,#20 ;初始化计数器,从60开始
CLR P1.0 ;南北方向红灯亮
CLR P1.5 ;东易做图向绿灯亮
STLOP1: ACALL DISPLAY1 ;调用显示子程序
DEC TEMP ;对计数器减1
MOV A,TEMP ;
CJNE A,#0,STLOP1 ;判断计数器是否满0?
SETB P1.0 ;南北方向红灯灭
SETB P1.5 ;东易做图向绿灯
ACALL SHAN ;调用黄灯闪烁程
STAR2: MOV TEMP,#20 ;重新开始开始60秒倒数
CLR P1.2 ;南北方向绿灯亮
CLR P1.3 ;东易做图向红灯亮
STLOP2: ACALL DISPLAY2 ;调用数码管显示子程序
DEC TEMP ;计数器减一
MOV A,TEMP ;
CJNE A,#0,STLOP2 ;判断计数器是否为0?
SETB P1.2
SETB P1.3
ACALL SHAN ;调用黄灯闪烁子程?
SJMP STAR1 ;
DISPLAY1:MOV A,TEMP
MOV B,#10
DIV AB
MOV B_BIT,B ;个位在B
MOV A_BIT,A ;十位在A
MOV DPTR,#NUMTAB ;指定查表启始地址
MOV R0,#12 ;
DPL1: MOV R1,#250 ;
DPLOP1: MOV A,A_BIT ;取个位数
MOVC A,@A+DPTR ;查个位数的7段代码
MOV P0,A ;送出个位的7段代码
CLR P2.3 ;开个位显示
ACALL D1MS ;显示162微秒
SETB P2.3 ;关闭个位显示,防止鬼影
MOV A,B_BIT ;取十位数
MOVC A,@A+DPTR ;查十位数的7段代码
MOV P0,A ;送出十位的7段代码
CLR P2.2 ;开十位显?
CLR P2.0
CLR P2.1
ACALL D1MS ;显示162微秒
SETB P2.2 ;关闭十位显示,防止鬼影
DJNZ R1,DPLOP1 ;循环执行250次
DJNZ R0,DPL1 ;循环执行250X4=1000次
RET
DISPLAY2:MOV A,TEMP ;将TEMP中的十六进制数转换成10进制
MOV B,#10 ;10进制/10=10进制
DIV AB ;
MOV A_BIT,B ;个位在B
MOV B_BIT,A ;十位在A
MOV DPTR,#NUMTAB ;指定查表启始地址
MOV R0,#12 ;
DPL2: MOV R1,#250 ;
DPLOP2: MOV A,A_BIT ;取个位数
MOVC A,@A+DPTR ;查个位数的7段代码
MOV P0,A ;送出个位的7段代码
CLR P2.0 ;开个位显示
ACALL D1MS ;显示162微秒
SETB P2.0 ;关闭个位显示,防止鬼影
MOV A,B_BIT ;取十位数
MOVC A,@A+DPTR ;查十位数的7段代码
MOV P0,A ;送出十位的7段代码
CLR P2.1 ;开十位显
CLR P2.2
CLR P2.3
ACALL D1MS ;显示162微秒
SETB P2.1 ;关闭十位显示,防止鬼影
DJNZ R1,DPLOP2 ;循环执行250次
DJNZ R0,DPL2 ;循环执行250X4=1000次
RET
SHAN: MOV R3,#5 ;
ROUND: CLR P1.1 ;
CLR P1.4 ;
ACALL DELAY ;黄灯闪烁五次
SETB P1.1 ;每次间隔一秒
SETB P1.4 ;
ACALL DELAY
DJNZ R3,ROUND ;
RET ;
D1MS: MOV R7,#80 ;2+2X80=162微秒,延时按12MHZ计算
DJNZ R7,$ ;
RET ;
DELAY: MOV R6,#10 ;
YL3: MOV R4,#100 ;
XL2: MOV R5,#71 ;
DL1: NOP ;一秒延时子程序
NOP
NOP
NOP
NOP
DJNZ R5,DL1 ;
DJNZ R4,XL2 ;
DJNZ R6,YL3 ;
RET ;
;共阴数码管显示代码
NUMTAB: DB 03FH ;0
DB 006H ;1
DB 05BH ;2
DB 04FH ;3
DB 066H ;4
DB 06DH ;5
DB 07DH ;6
DB 007H ;7
DB 07FH ;8
DB 06FH ;9
END
上一个:汇编语言翻译,求B机子程序: BST: MOV TMOD,#20H MOV TH1,#0E8H MOV TL1
下一个:单片机汇编语言解析.下面的程序不怎么懂,希望高手帮忙解析一下.谢谢.