首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于51单片机设计的交通灯汇编原程序

基于51单片机设计的交通灯汇编原程序

用的是51系列的单片机
说一下,MARK标志位其关键作用,
需要的人自己想想,
  
下面是仿真图

LED0  EQU P1
LED2  EQU P2
LED1  EQU P0
MARK  BIT 00H
MARK1 BIT 01H
TIME  EQU 30H;时间缓冲区
        SHI   EQU 31H ;时长数据缓冲区!
KEY   EQU P3.2
KEY1  EQU P3.3
CTH EQU (65536-50000)/256
CTL EQU (65536-50000) MOD 256
ORG 0000H
JMP START
ORG 0003H
JMP INT_0
ORG 000BH
JMP TIME0
ORG 0030H
START:  MOV P1,#00H
        MOV P0,#0FFH
MOV P2,#0FFH
MOV DPTR,#ABC
MOV SP,#5FH
MOV SHI,#20
MOV R0,SHI
MOV R7,#20
CLR MARK
CLR MARK1
MOV TMOD,#01H
        MOV TH0,#CTH;初始指针
MOV TL0,#CTL
SETB EA
SETB IT0
SETB EX0
SETB ET0
SETB TR0
MOV TIME,R0
CALL DISPLAY
MAIN: MOV LED0,#21H;北,红灯亮
        CJNE R0,#3,MAIN
MOV SHI,#04
NEXT:   MOV R6,#3
A1:     MOV  LED0,#01H
CALL DELAY_500MS
        MOV LED0,#21H
CALL DELAY_500MS
DJNZ R6,A1
S1: JBC MARK,A2
SJMP S1  
A2: MOV LED0,#11H; BEI HUANG DENG LIANG
MOV SHI,#20
JBC MARK,MAIN1
SJMP A2
MAIN1:  MOV LED0,#0CH ;XI HONG DENG LIANG
CJNE R0,#3,MAIN1
MOV SHI,#04
NEXT1:  MOV R6,#3
A3:     MOV LED0,#08H
        CALL DELAY_500MS
MOV LED0,#0CH
CALL DELAY_500MS
DJNZ R6,A3
S2: JBC MARK,A4
SJMP S2
A4: MOV LED0,#0AH
MOV SHI,#20
        JBC MARK,MAIN
        SJMP A4
DELAY_500MS:
        MOV R5,#20
K1: MOV R4,#50
K2: MOV R3,#250
DJNZ R3,$
DJNZ R4,K2
DJNZ R5,K1
RET
DISPLAY:MOV A,TIME
        MOV B,#10
DIV AB
MOVC A,@A+DPTR
MOV LED2,A
        MOV A,B
MOVC A,@A+DPTR
MOV LED1,A
RET
ABC:    DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H  
INT_0:  PUSH ACC
PUSH PSW
SETB RS1
SETB RS0
MOV R5,#70
K4: MOV R4,#250
       DJNZ R4,$
DJNZ R5,K4
JB KEY,ITT_2
MOV TIME,#20
CALL DISPLAY
ITT_1:  MOV LED0,#00010010B
CALL DELAY_500MS
MOV LED0,#00H
JNB KEY,ITT_2
CALL DELAY_500MS
        JB KEY,ITT_1
ITT_2:  JNB KEY ,$
POP PSW
POP ACC
RETI              
TIME0: PUSH ACC
       PUSH PSW
       MOV TH0,#CTH;初始指针
       MOV TL0,#CTL
       DJNZ R7,TIME1
       MOV R7,#20
       DJNZ R0,TIME2
       SETB MARK
       MOV R0,SHI
TIME2: MOV TIME,R0
       CALL DISPLAY
TIME1: POP PSW
       POP ACC
       RETI
       END
汇编语言,可能课设时会用到
汇编语言,可能课设时会用到
返回列表