89C51单片机红绿灯程序是什么?

89C51单片机红绿灯程序是什么?,第1张

注p0口为东西红春简举灯

p1口为东西黄灯

p2口为东西绿灯

p3南北红灯

p4南北黄灯

p5南北绿灯

绿灯停留3s;黄灯闪烁5次,每次0.2s,红的停留4s

ORG 0000H

LJMP MAIN

ORG 0030H

MAIN:MOV DPTR,#B1

MOV R2,#4

MOV A,#0H

F3:MOV R1,A

MOVC A,@A+DPTR

JNB ACC.4,SS1 判断东西方向黄灯是否亮,若亮则转移到黄灯闪咐铅烁程序

JNB ACC.1,SS2 判断南北方向黄灯是否亮,若亮则转移到黄灯闪烁程扒碧序

MOV P1,A

LCALL DY1S

SS:MOV A,R1

INC A

DJNZ R2,F3

SJMP MAIN

SS1:MOV R0,#10

XH1:CPL ACC.4

MOV P1,A

LCALL DYS

DJNZ R0,XH1

SJMP SS

SS2:MOV R0,#10

XH2:CPL ACC.1

MOV P1,A

LCALL DYS

DJNZ R0,XH2

SJMP SS

DY1S:MOV R5,#30

DLP0:MOV R6,#100

DLP1:MOV R7,#250 F=6MHZ

DLP2:DJNZ R7,DLP2 2X250X2uS=1ms

DJNZ R6,DLP1 1x100=0.1S

DJNZ R5,DLP0 0.1X30=3s

RET

DYS:MOV R6,#200

DLP3:MOV R7,#250 F=6MHZ

DLP4:DJNZ R7,DLP4 2X250X1uS=500us=1ms

DJNZ R6,DLP3 1x200=0.2S

RET

B1: DB 11011110B,11101110B,11110011B,11110101B

END

Dim s As Integer

Dim n As Integer

'单击余森“红灯”按钮

Private Sub Command1_Click()

Shape6.Visible = True : Shape7.Visible = False : Shape8.Visible = False

End Sub

'单击“黄灯”按弊毁氏钮

Private Sub Command2_Click()

Shape6.Visible = False : Shape7.Visible = True : Shape8.Visible = False

End Sub

'单击“绿灯”按钮

Private Sub Command3_Click()

Shape6.Visible = False : Shape7.Visible = False : Shape8.Visible = True

End Sub

'单击“自动租散”按钮

Private Sub Command4_Click()

Timer1.Enabled = True

Command1.Enabled = False

Command2.Enabled = False

Command3.Enabled = False

n = 0 : s = 0

End Sub

'单击“手动”按钮

Private Sub Command5_Click()

Timer1.Enabled = False

Label1.Caption = ""

Shape6.Visible = False

Shape7.Visible = False

Shape8.Visible = False

Command1.Enabled = True

Command2.Enabled = True

Command3.Enabled = True

End Sub

'时钟控件启动

Private Sub Timer1_Timer()

Select Case n

Case 0

Shape6.Visible = True

Shape7.Visible = False

Shape8.Visible = False

Label1.Caption = 3 - s

s = s + 1

If s >3 Then

n = 1

s = 0

End If

Case 1

Shape6.Visible = False

Shape7.Visible = True

Shape8.Visible = False

n = 2

Case 2

Shape6.Visible = False

Shape7.Visible = False

Shape8.Visible = True

Label1.Caption = 3 - s

s = s + 1

If s >3 Then

n = 0 : s = 0

End If

End Select

End Sub


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8186287.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-14
下一篇2023-04-14

发表评论

登录后才能评论

评论列表(0条)

    保存