⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jiaotongdeng.txt

📁 信号灯的程序源代码
💻 TXT
字号:
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

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -