久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 3425|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)匯編語(yǔ)言的十字路口紅綠燈Proteus仿真設(shè)計(jì)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:992541 發(fā)表于 2021-12-19 09:04 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


單片機(jī)源程序如下:
ORG 0000H
A_BIT EQU 20H ;用于存放南北十位數(shù)
B_BIT EQU 21H ;用于存放南北十位數(shù)
C_BIT EQU 22H ;用于存放東西十位數(shù)
D_BIT EQU 23H ; 用于存放東西位數(shù)


TEMP1 EQU 24H  ;用于存放第一二南北狀態(tài)要顯示的時(shí)間
TEMP2 EQU 25H  ;用于存放第一二東西狀態(tài)要顯示的時(shí)間

TEMP3 EQU 26H ;用于存放第三第四南北狀態(tài)要顯示的時(shí)間
TEMP4 EQU 27H;用于存放第三第四南北狀態(tài)要顯示的時(shí)間
LJMP MAIN

ORG 0003H     ;外部中斷0入口
LJMP INTA     ;跳轉(zhuǎn)到外部0中斷
ORG 0013H     ;外部中斷1入口
LJMP INTB     ;跳轉(zhuǎn)到外部1中斷

INTA: MOV A,P1   ;外部0中斷
      PUSH ACC
      MOV A,P2  ;中斷保護(hù)
      PUSH ACC
MOV P1,#0FFH    ;清除先前狀態(tài)
MOV P2,#0FFH
CLR P1.0
CLR P1.4      ;南北通行,東西禁止通行
CLR P1.6
CLR P2.3
JNB P3.2 ,$  ;判斷是否還在中斷狀態(tài)
POP ACC
MOV P2,A     ;返回中斷前狀態(tài)
POP ACC
MOV P1,ACC
RETI          ;中斷返回



INTB:MOV A,P1  ;外部1中斷
     PUSH ACC   ;中斷保護(hù)
     MOV A,P2
     PUSH ACC
MOV P1,#0FFH  ;清除先前狀態(tài)
MOV P2,#0FFH
CLR P1.2
CLR P2.1
CLR P1.3    ;東西通行,南北禁止通行
CLR P1.5
JNB P3.3 ,$  ;判斷是否還在中斷狀態(tài)
POP ACC
MOV P2,A    ;返回中斷前狀態(tài)
POP ACC
MOV P1,A
RETI         ;中斷返回



MAIN:
ORG 0100H        ;初始情況
MOV P1,#0FFH
MOV P2,#0FFH   ;滅所有燈
MOV TMOD,#55H  ;計(jì)數(shù)方式方式1
MOV IE,#85H    ;開(kāi)中斷
MOV TEMP1,#20 ;
MOV TEMP2,#25
MOV TEMP3,#25
MOV TEMP4,#20

STAR:
MOV P1,#0FFH
MOV P2,#0FFH   ;滅所有燈
MOV A,24H    ;將顯示時(shí)間送A
CJNE A,#20,T40T  ;判斷時(shí)間,選初始值
T20T:       ;南北通行要顯示的時(shí)間為20的計(jì)數(shù)器初始值
CLR TF0   ;清TF0
CLR TF1 ;清TF1
MOV TH1 ,#0FFH ;送20秒時(shí)的初始值
MOV TL1 ,#0FCH ;在些設(shè)計(jì)20秒6輛為多車
MOV TH0 ,#0FFH
MOV TL0 ,#0FCH
LJMP TEMP20   ;跳到20秒
T40T:     ;南北通行要顯示的時(shí)間為40的計(jì)數(shù)器初始值
CLR TF0 ;清TF0
CLR TF1 ;清TF1
MOV TH1,#0FFH ;送40秒時(shí)的初始值
MOV TL1 ,#0F8H ;在些設(shè)計(jì)40秒8輛為多車
MOV TH0 ,#0FFH
MOV TL0 ,#0F8H
LJMP TEMP40  ;跳到40秒



TEMP20:     ;TEMP1=20情況
SETB TR0    ;開(kāi)始計(jì)數(shù)
SETB TR1
CLR P1.2
CLR P2.1    ;南北通行,東西禁止通行
CLR P1.3
CLR P1.5
MOV TEMP1,#20  ;南北要顯示的時(shí)間,
MOV TEMP2,#25 ;東西要顯示的時(shí)間
STLOP:
ACALL DISPLAY1   ;調(diào)用顯示
DEC TEMP1      ;時(shí)間夠一秒顯示時(shí)間減1
DEC TEMP2
MOV A,TEMP1
CJNE A,#0,NEXT ;若顯示時(shí)間不為0保持現(xiàn)在狀態(tài)
LJMP STAR2     ;若顯示時(shí)間為 0跳到第二狀態(tài)
NEXT: LJMP STLOP


STAR2:     ;狀態(tài)1
SETB P1.2
CLR P1.1    ;南北黃燈,東西禁止通行
SETB P1.3
CLR P1.4
MOV TEMP1,#05  ;南北要顯示的時(shí)間,
MOV TEMP2,#05 ;東西要顯示的時(shí)間,

STLOP2:
ACALL DISPLAY1   ;調(diào)用顯示
DEC TEMP1      ;時(shí)間夠一秒顯示時(shí)間減1
DEC TEMP2
MOV A,TEMP1
CJNE A,#0,NEXT2   ;若顯示時(shí)間不為0保持現(xiàn)在狀態(tài)
JB TF1 ,T40      ;判斷南北是否多車
JB TF0 ,T40       ;判斷北南是否多車
MOV TEMP1,#20    ;少車下次顯示時(shí)間為20秒
LJMP STAR3       ;跳到狀態(tài)3
T40:
MOV TEMP1,#40    ; 多車下次顯示時(shí)間為40秒
LJMP STAR3        ;若顯示時(shí)間為 0跳到第三狀態(tài)
NEXT2:LJMP STLOP2


TEMP40:;TEM=40 程序
SETB TR0  ; 開(kāi)始計(jì)數(shù)
SETB TR1
CLR P1.2
CLR P2.1    ;南北通行,東西禁止通行
CLR P1.3
CLR P1.5
MOV TEMP1,#40  ;南北要顯示的時(shí)間,
MOV TEMP2,#45 ;東西要顯示的時(shí)間
STLOP11:
ACALL DISPLAY1   ;調(diào)用顯示
DEC TEMP1      ;時(shí)間夠一秒顯示時(shí)間減1
DEC TEMP2
MOV A,TEMP1
CJNE A,#0,NEXT11 ;若顯示時(shí)間不為0保持現(xiàn)在狀態(tài)
LJMP STAR22     ;若顯示時(shí)間為 0跳到第二狀態(tài)
NEXT11: LJMP STLOP11


STAR22:     ;狀態(tài)1
SETB P1.2
CLR P1.1    ;南北黃燈,東西禁止通行
SETB P1.3
CLR P1.4
MOV TEMP1,#05  ;南北要顯示的時(shí)間,
MOV TEMP2,#05 ;東西要顯示的時(shí)間,

STLOP22:
ACALL DISPLAY1   ;調(diào)用顯示
DEC TEMP1      ;時(shí)間夠一秒顯示時(shí)間減1
DEC TEMP2
MOV A,TEMP1
CJNE A,#0,NEXT22   ;若顯示時(shí)間不為0保持現(xiàn)在狀態(tài)
JB TF1 ,T401      ; 判斷是否多車
JB TF0 ,T401
MOV TEMP1,#20  ;少車下次顯示時(shí)間為20秒
LJMP STAR3
T401:MOV TEMP1,#40 ;多車下次顯示時(shí)間為40秒
LJMP STAR3        ;若顯示時(shí)間為 0跳到第三狀態(tài)
NEXT22:LJMP STLOP22


STAR3:
MOV A,26H
CJNE A,#25,T40T1  ;判斷時(shí)間,選初始值
T20T1:       ;南北通行要顯示的時(shí)間為20的計(jì)數(shù)器初始值
CLR TF0        ; 清溢出位
CLR TF1
MOV TH1 ,#0FFH  ; 給初值
MOV TL1 ,#0FCH
MOV TH0 ,#0FFH
MOV TL0 ,#0FCH
LJMP TEMP320
T40T1:     ;南北通行要顯示的時(shí)間為40的計(jì)數(shù)器初始值
CLR TF0  ;
CLR TF1
MOV TH1,#0FFH ;給初值
MOV TL1 ,#0F8H
MOV TH0 ,#0FFH
MOV TL0 ,#0F8H
LJMP TEMP340

TEMP320:;狀態(tài)三
SETB TR1      ;南北停止計(jì)數(shù)
SETB TR0     ;東西開(kāi)始計(jì)數(shù)
SETB P1.1    ;東西通行,南北禁止通行
CLR P1.0
SETB P1.1
CLR P1.0
SETB P1.5
CLR P1.6
SETB P2.1
CLR P2.3
MOV TEMP3,#25  ;南北要顯示的時(shí)間,
MOV TEMP4,#20 ;東西要顯示的時(shí)間,

STLOP33:
ACALL DISPLAY  ;調(diào)用顯示
DEC TEMP3       ;時(shí)間夠一秒顯示時(shí)間減1
DEC TEMP4
MOV A,TEMP4
CJNE A,#0,NEXT33  ;若顯示時(shí)間不為0保持現(xiàn)在狀態(tài)
LJMP STAR34       ;若顯示時(shí)間為 0跳到第四狀態(tài)
NEXT33:LJMP STLOP33


STAR34:           ;狀態(tài)四
SETB P2.3
CLR P2.2
SETB P1.6      ;東西黃燈,南北禁止通行
CLR P1.5




MOV TEMP3,#05   ;南北要顯示的時(shí)間,
MOV TEMP4,#05   ;東西要顯示的時(shí)間,
STLOP34:
ACALL DISPLAY  ;調(diào)用顯示
DEC TEMP3       ;時(shí)間夠一秒顯示時(shí)間減1
DEC TEMP4
MOV A,TEMP4
CJNE A,#0,NEXT34  ;若顯示時(shí)間不為0保持現(xiàn)在狀態(tài)
JB TF1 ,T402
JB TF0 ,T402
MOV TEMP3,#25
LJMP STAR
T402:
MOV TEMP3,#45
LJMP STAR
NEXT34:   LJMP STLOP34


TEMP340 :
SETB TR1      ;南北停止計(jì)數(shù)
SETB TR0     ;東西開(kāi)始計(jì)數(shù)
SETB P1.1    ;東西通行,南北禁止通行
CLR P1.0
SETB P1.1
CLR P1.0
SETB P1.5
CLR P1.6
SETB P2.1
CLR P2.3
MOV TEMP3,#45  ;南北要顯示的時(shí)間,
MOV TEMP4,#40 ;東西要顯示的時(shí)間,

STLOP43:
ACALL DISPLAY  ;調(diào)用顯示
DEC TEMP3       ;時(shí)間夠一秒顯示時(shí)間減1
DEC TEMP4
MOV A,TEMP4
CJNE A,#0,NEXT43  ;若顯示時(shí)間不為0保持現(xiàn)在狀態(tài)
LJMP STAR44       ;若顯示時(shí)間為 0跳到第四狀態(tài)
NEXT43:LJMP STLOP43


STAR44:           ;狀態(tài)四
SETB P2.3
CLR P2.2
SETB P1.6      ;東西黃燈,南北禁止通行
CLR P1.5




MOV TEMP3,#05   ;南北要顯示的時(shí)間,
MOV TEMP4,#05   ;東西要顯示的時(shí)間,
STLOP44:
ACALL DISPLAY  ;調(diào)用顯示
DEC TEMP3       ;時(shí)間夠一秒顯示時(shí)間減1
DEC TEMP4
MOV A,TEMP3
CJNE A,#0,NEXT44  ;若顯示時(shí)間不為0保持現(xiàn)在狀態(tài)
JB TF1 ,T403
JB TF0 ,T403
MOV TEMP3,#25
LJMP STAR
T403:
MOV TEMP3,#45
LJMP STAR
NEXT44:   LJMP STLOP44


;顯示
DISPLAY1:
MOV A,TEMP1  ;將南北要顯示的數(shù)存放到A
MOV B,#10  ;B=10
DIV AB     ;A除以B商存A,余數(shù)B
MOV B_BIT,A ; 將A放到20H
MOV A_BIT,B  ;將B放到21H

MOV A,TEMP2 ;將東西要顯示的數(shù)存放到A
MOV B,#10   ;B=10
DIV AB       ;A除以B商存A,余數(shù)B
MOV C_BIT,A   ;將A放到22H
MOV D_BIT,B   ;將B放到23H

MOV DPTR ,#NUMT ;
MOV R0,#2    ;R0=2
DPL11: MOV R1,#250 ;R1=250
DPLOP1:
MOV A,A_BIT ;將南北要顯示的10位數(shù)送A
MOVC A,@A+DPTR ;查表
MOV P0,A    ;顯示南北10位數(shù)
CLR P2.7
ACALL D1MS;延時(shí)1MS
SETB P2.7 ;滅南北10位數(shù)
MOV A,B_BIT  ;將南北要顯示的個(gè)位數(shù)送A
MOVC A,@A+DPTR   ;查表
MOV P0,A    ;顯示南北個(gè)位數(shù)
CLR P2.6
ACALL D1MS ;延時(shí)1MS
SETB P2.6  ;滅南北個(gè)位數(shù)

MOV A,C_BIT  ;將東西要顯示的10位數(shù)送A
MOVC A,@A+DPTR  ;查表
MOV P0,A    ;顯示東西10位數(shù)
CLR P2.5
ACALL D1MS ;延時(shí)1MS
SETB P2.5   ;滅東西10位數(shù)

MOV A,D_BIT  ;將東西要顯示的個(gè)位數(shù)送A
MOVC A,@A+DPTR ;查表
MOV P0,A    ;顯示東西東西位數(shù)
CLR P2.4
ACALL D1MS ;延時(shí)1MS
SETB P2.4  ;滅東西個(gè)位數(shù)

DJNZ R1,DPLOP ;循環(huán)掃描
DJNZ R0,DPL1
RET     ;等待1秒返回

;顯示
DISPLAY:
MOV A,TEMP3  ;將南北要顯示的數(shù)存放到A
MOV B,#10  ;B=10
DIV AB     ;A除以B商存A,余數(shù)B
MOV B_BIT,A ; 將A放到20H
MOV A_BIT,B  ;將B放到21H

MOV A,TEMP4 ;將東西要顯示的數(shù)存放到A
MOV B,#10   ;B=10
DIV AB       ;A除以B商存A,余數(shù)B
MOV C_BIT,A   ;將A放到22H
MOV D_BIT,B   ;將B放到23H

MOV DPTR ,#NUMT ;
MOV R0,#2    ;R0=2
DPL1: MOV R1,#250 ;R1=250
DPLOP:
MOV A,A_BIT ;將南北要顯示的10位數(shù)送A
MOVC A,@A+DPTR ;查表
MOV P0,A    ;顯示南北10位數(shù)
CLR P2.7
ACALL D1MS;延時(shí)1MS
SETB P2.7 ;滅南北10位數(shù)
MOV A,B_BIT  ;將南北要顯示的個(gè)位數(shù)送A
MOVC A,@A+DPTR   ;查表
MOV P0,A    ;顯示南北個(gè)位數(shù)
CLR P2.6
ACALL D1MS ;延時(shí)1MS
SETB P2.6  ;滅南北個(gè)位數(shù)

MOV A,C_BIT  ;將東西要顯示的10位數(shù)送A
MOVC A,@A+DPTR  ;查表
MOV P0,A    ;顯示東西10位數(shù)
CLR P2.5
ACALL D1MS ;延時(shí)1MS
SETB P2.5   ;滅東西10位數(shù)

MOV A,D_BIT  ;將東西要顯示的個(gè)位數(shù)送A
MOVC A,@A+DPTR ;查表
MOV P0,A    ;顯示東西東西位數(shù)
CLR P2.4
ACALL D1MS ;延時(shí)1MS
SETB P2.4  ;滅東西個(gè)位數(shù)

DJNZ R1,DPLOP ;循環(huán)掃描
DJNZ R0,DPL1
RET     ;等待1秒返回



D1MS: MOV R7,#250  ;1MS延時(shí)程序
DJNZ R7,$
RET
;1到10對(duì)應(yīng)電路圖數(shù)碼管表
NUMT: DB    7EH,48H,67H,6BH,59H
      DB    3BH,3FH,68H,7FH,7BH
END



Keil代碼與Proteus仿真7.5下載: 交通燈.rar (51.15 KB, 下載次數(shù): 33)

評(píng)分

參與人數(shù) 1黑幣 +30 收起 理由
admin + 30 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 全免一级毛片 | 国产精品18hdxxxⅹ在线 | 久久成人午夜 | 国内精品视频一区二区三区 | 在线国产一区 | 欧美性生活免费 | 国产精品一区二区视频 | 美女拍拍拍网站 | 日韩成人免费视频 | 欧美中文字幕一区二区三区 | 中文字幕第一页在线 | 亚洲aⅴ | 免费h在线 | 欧洲一级黄 | 91av在线视频观看 | 精品久久九九 | 国产精品激情小视频 | 日日干夜夜操 | 激情欧美一区二区三区中文字幕 | www.成人.com| 99精品视频免费在线观看 | 亚洲一区二区三区在线 | www.伊人.com | 一本一道久久a久久精品蜜桃 | 7777在线视频| 中文一区二区 | 97国产超碰 | 欧美h视频| 久久久免费观看视频 | 欧美国产亚洲一区二区 | 久久久免费电影 | 一区二区在线 | 福利视频网站 | 亚洲精品免费在线 | 网站一区二区三区 | 午夜一区二区三区视频 | 欧美一区2区三区3区公司 | 日韩精品极品视频在线观看免费 | 国产在线视频网 | 夜夜爽99久久国产综合精品女不卡 | 国产区精品在线观看 |