您的位置 首页 主动

51单片机对交通灯的操控规划

51单片机对交通灯的控制设计-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

用的是51系列的单片机说一下,MARK标志位其关键作用。

下面是仿真图

51单片机对交通灯的操控规划

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

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ziliao/zhudong/345402.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部