国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

基于Proteus仿真的交通信號燈設計——利用匯編語言實現(xiàn)

這篇具有很好參考價值的文章主要介紹了基于Proteus仿真的交通信號燈設計——利用匯編語言實現(xiàn)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

基于Proteus仿真的交通信號燈設計——利用匯編語言實現(xiàn)

設計要求

基本信息

  1. 采用AT89C51單片機
  2. 晶振頻率:12MHZ
  3. 紅綠燈:發(fā)光二極管
  4. 數(shù)字顯示:LED數(shù)碼管
  5. 東西南北四個方向,一次循環(huán)共有六個狀態(tài),且每個狀態(tài)的倒計時時間一樣

交通狀態(tài)

  1. 東西紅燈22s,南北綠燈22s(數(shù)碼管從0到21);
  2. 東西紅燈5s,南北綠燈5s且沒0.5s閃爍一次(數(shù)碼管從0到4);
  3. 東西紅燈4s,南北綠燈4s且沒0.5s閃爍一次(數(shù)碼管從0到3);
  4. 東西綠燈22s,南北紅燈22s(數(shù)碼管從0到21);
  5. 東西綠燈5s且沒0.5s閃爍一次,南北紅燈5s(數(shù)碼管從0到4);
  6. 東西綠燈4s沒0.5s閃爍一次,南北紅燈4s(數(shù)碼管從0到3);

電路仿真原理圖

電路總體布局

基于Proteus仿真的交通信號燈設計——利用匯編語言實現(xiàn)

復位電路

基于Proteus仿真的交通信號燈設計——利用匯編語言實現(xiàn)

晶振電路

基于Proteus仿真的交通信號燈設計——利用匯編語言實現(xiàn)

LED指示燈電路

基于Proteus仿真的交通信號燈設計——利用匯編語言實現(xiàn)

P1口控制LED燈的亮滅,高電平點亮,低電平熄滅

數(shù)碼管顯示電路

基于Proteus仿真的交通信號燈設計——利用匯編語言實現(xiàn)

P0與P2口控制數(shù)碼管的顯示,低電平點亮,高電平熄滅;由于P0口不能輸出高電平,故接一個上拉電阻RP1(此處解釋來自網絡——上拉電阻RP1的目的是使P0口可輸出高電平)

匯編語言代碼(注釋很詳細)

;分配內存和IO口
DATE_EW EQU 30H;定義兩個計數(shù)變量
DATE_NS EQU 31H
R_EW BIT P1.0;定義信號燈變量
Y_EW BIT P1.1
G_EW BIT P1.2
G_NS BIT P1.3
Y_NS BIT P1.4
R_NS BIT P1.5

ORG 0000H

;初始化程序
START:MOV P1,#0;控制9個紅綠燈,高電平,高電平點亮,此處清零
      MOV P2,#0FFH;控制數(shù)碼管十位,低電平點亮,此處全滅
      MOV P0,#0FFH;控制數(shù)碼管個位,低電平點亮,此處全滅
;***************狀態(tài)1**************東西紅燈22s,南北綠燈22s
STATE1:MOV P1,#0;清除上一狀態(tài)的燈況
       SETB R_EW;點亮東西紅燈
       SETB G_NS;點亮南北綠燈
       MOV DATE_EW,#21;賦值
       MOV DATE_NS,#21
       MOV R6,DATE_EW
       MOV R7,DATE_NS
LOOP1:LCALL DISPLAY1;調用數(shù)碼管顯示子程序
      DEC R7;數(shù)碼管數(shù)字減一,東西南北倒計時一樣
      DEC R6
      MOV A,R7
      CJNE A,#0,LOOP1;A不等于0,則繼續(xù)循環(huán)
      LCALL DISPLAY1;再執(zhí)行一遍,0也要顯示
      LJMP STATE2;執(zhí)行狀態(tài)2
;***************狀態(tài)2**************東西紅燈5s,南北綠燈5s且?guī)чW爍    
STATE2:MOV P1,#0;清除上一狀態(tài)的燈況
       MOV DATE_EW,#4;賦值
       MOV DATE_NS,#4
       MOV R6,DATE_EW
       MOV R7,DATE_NS
LOOP2:LCALL DISPLAY2;調用數(shù)碼管顯示子程序
      SETB R_EW;點亮東西紅燈
      SETB G_NS;點亮南北綠燈
      LCALL DELAY1
      CLR G_NS;熄滅南北綠燈
      DEC R7;數(shù)碼管數(shù)字減一,東西南北倒計時一樣
      DEC R6
      MOV A,R7
      CJNE A,#0,LOOP2;A不等于0,則繼續(xù)循環(huán)
      LCALL DISPLAY2;再執(zhí)行一遍,0也要顯示
      LJMP STATE3;執(zhí)行狀態(tài)3
;***************狀態(tài)3**************東西紅燈5s,南北綠燈5s且?guī)чW爍    
STATE3:MOV P1,#0;清除上一狀態(tài)的燈況
        MOV DATE_EW,#3;賦值
        MOV DATE_NS,#3
        MOV R6,DATE_EW
        MOV R7,DATE_NS
LOOP3:LCALL DISPLAY2;調用數(shù)碼管顯示子程序
        SETB R_EW;點亮東西紅燈
        SETB Y_NS;點亮南北黃燈
        LCALL DELAY1
        CLR Y_NS;熄滅南北黃燈
        DEC R7;數(shù)碼管數(shù)字減一,東西南北倒計時一樣
        DEC R6
        MOV A,R7
        CJNE A,#0,LOOP3;A不等于0,則繼續(xù)循環(huán)
        LCALL DISPLAY2;再執(zhí)行一遍,0也要顯示
        LJMP STATE4;執(zhí)行狀態(tài)4
;***************狀態(tài)4**************東西綠燈22s,南北紅燈22s
STATE4:MOV P1,#0;清除上一狀態(tài)的燈況
        SETB G_EW;點亮東西綠燈
        SETB R_NS;點亮南北紅燈
        MOV DATE_EW,#21;賦值
        MOV DATE_NS,#21
        MOV R6,DATE_EW
        MOV R7,DATE_NS
LOOP4:LCALL DISPLAY1;調用數(shù)碼管顯示子程序
        DEC R7;數(shù)碼管數(shù)字減一,東西南北倒計時一樣
        DEC R6
        MOV A,R7
        CJNE A,#0,LOOP4;A不等于0,則繼續(xù)循環(huán)
        LCALL DISPLAY1;再執(zhí)行一遍,0也要顯示
        LJMP STATE5;執(zhí)行狀態(tài)5
;***************狀態(tài)5**************東西綠燈5s且?guī)чW爍 ,南北紅燈5s   
STATE5:MOV P1,#0;清除上一狀態(tài)的燈況
        MOV DATE_EW,#4;賦值
        MOV DATE_NS,#4
        MOV R6,DATE_EW
        MOV R7,DATE_NS
LOOP5:LCALL DISPLAY2;調用數(shù)碼管顯示子程序
        SETB G_EW;點亮東西綠燈
        SETB R_NS;點亮南北紅燈
        LCALL DELAY1
        CLR G_EW;熄滅東西綠燈
        DEC R7;數(shù)碼管數(shù)字減一,東西南北倒計時一樣
        DEC R6
        MOV A,R7
        CJNE A,#0,LOOP5;A不等于0,則繼續(xù)循環(huán)
        LCALL DISPLAY2;再執(zhí)行一遍,0也要顯示
        LJMP STATE6;執(zhí)行狀態(tài)6
;***************狀態(tài)6**************東西黃燈4s且?guī)чW爍 ,南北紅燈4s   
STATE6:MOV P1,#0;清除上一狀態(tài)的燈況
        MOV DATE_EW,#3;賦值
        MOV DATE_NS,#3
        MOV R6,DATE_EW
        MOV R7,DATE_NS
LOOP6:LCALL DISPLAY2;調用數(shù)碼管顯示子程序
        SETB Y_EW;點亮東西黃燈
        SETB R_NS;點亮南北紅燈
        LCALL DELAY1
        CLR Y_EW;熄滅東西黃燈
        DEC R7;數(shù)碼管數(shù)字減一,東西南北倒計時一樣
        DEC R6
        MOV A,R7
        CJNE A,#0,LOOP6;A不等于0,則繼續(xù)循環(huán)
        LCALL DISPLAY2;再執(zhí)行一遍,0也要顯示
LJMP STATE1

;不閃爍狀態(tài)調用
DISPLAY1:PUSH ACC;保護現(xiàn)場
        MOV A,R6;東西方向數(shù)值進累加器A
        MOV B,#10;為寄存器B賦值10
        DIV AB;進制轉換,十位給A,個位給B
        MOV DPTR,#TABLE;查表指令三劍客,配合TABLE使用
        MOVC A,@A+DPTR
        MOV P2,A;十位數(shù)碼管點亮
        MOV A,B
        MOV DPTR,#TABLE
        MOVC A,@A+DPTR
        MOV P0,A;個位數(shù)碼管點亮

        MOV A,R7;南北方向數(shù)值進累加器A
        MOV B,#10;為寄存器B賦值10
        DIV AB;進制轉換,十位給A,個位給B
        MOV DPTR,#TABLE;查表指令三劍客,配合TABLE使用
        MOVC A,@A+DPTR
        MOV P2,A;十位數(shù)碼管點亮
        MOV A,B
        MOV DPTR,#TABLE
        MOVC A,@A+DPTR
        MOV P0,A;個位數(shù)碼管點亮
        LCALL DELAY1;調用延時程序,調用兩次0.5,不用寫1s的延時程序了hhh
        LCALL DELAY1
        POP ACC;恢復現(xiàn)場
        RET
;閃爍的狀態(tài)調用
DISPLAY2:PUSH ACC;保護現(xiàn)場
        MOV A,R6;東西方向數(shù)值進累加器A
        MOV B,#10;為寄存器B賦值10
        DIV AB;進制轉換,十位給A,個位給B
        MOV DPTR,#TABLE;查表指令三劍客,配合TABLE使用
        MOVC A,@A+DPTR
        MOV P2,A;十位數(shù)碼管點亮
        MOV A,B
        MOV DPTR,#TABLE
        MOVC A,@A+DPTR
        MOV P0,A;個位數(shù)碼管點亮

        MOV A,R7;南北方向數(shù)值進累加器A
        MOV B,#10;為寄存器B賦值10
        DIV AB;進制轉換,十位給A,個位給B
        MOV DPTR,#TABLE;查表指令三劍客,配合TABLE使用
        MOVC A,@A+DPTR
        MOV P2,A;十位數(shù)碼管點亮
        MOV A,B
        MOV DPTR,#TABLE
        MOVC A,@A+DPTR
        MOV P0,A;個位數(shù)碼管點亮
        LCALL DELAY1;調用延時程序
        POP ACC;恢復現(xiàn)場
        RET
;********閃爍程序,間隔0.5s************這里不用了,直接寫到主程序內部
SPARKLE:SETB R_EW;點亮東西紅燈
        SETB G_NS;點亮南北綠燈
        LCALL DELAY1
        CLR G_NS;熄滅南北綠燈
        LCALL DELAY1
        RET      
;********延時程序,延時0.5s************
DELAY1:MOV R0,#15
       D1:MOV R1,#202
       D2:MOV R2,#81
       D3:DJNZ R2,$;  R2一直減1,直到減為0,執(zhí)行下面語句
       DJNZ R1,D2
       DJNZ R0,D1
       RET
;***********數(shù)碼管共陽極字符表(低電平點亮)*********
TABLE:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H;配合查表指令使用        
END 

資源鏈接

鏈接:https://pan.baidu.com/s/1FOfYZcAPmIF6ZxGwyE21LQ?pwd=0000
提取碼:0000
–來自百度網盤超級會員V4的分享文章來源地址http://www.zghlxwxcb.cn/news/detail-490551.html

到了這里,關于基于Proteus仿真的交通信號燈設計——利用匯編語言實現(xiàn)的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 基于AT89C52單片機的交通信號燈設計

    基于AT89C52單片機的交通信號燈設計

    點擊鏈接獲取Keil源碼與Project Backups仿真圖: https://download.csdn.net/download/qq_64505944/87772657 源碼獲取 主要內容: 本次設計所提出的一種基于單片機技術的簡易計算器的方案,能更好的解決計算機計算的問題,隨著數(shù)字生活的到來,單片機在生活中越來越重要,它能將大量的邏輯功

    2024年02月10日
    瀏覽(99)
  • Verilog設計交通信號燈

    Verilog設計交通信號燈

    目錄 一、設計要求 二、模塊總和 三、模塊設計 1.頂層模塊 2.分頻模塊 3.計數(shù)模塊 4.狀態(tài)機模塊 5.倒計時模塊 6.數(shù)碼顯示模塊 7.約束代碼 四、引腳分配 五、板上測試 總結 1.利用 NEXYS4 DDR 開發(fā)板設計一款交通燈控制系統(tǒng),能夠顯示紅、黃、綠燈; 2.交通燈控制系統(tǒng)具有秒表倒

    2024年02月12日
    瀏覽(28)
  • 【論文筆記】IntelliLight智能交通燈:一種基于強化學習的智能交通信號燈控制方法

    【論文筆記】IntelliLight智能交通燈:一種基于強化學習的智能交通信號燈控制方法

    博客聲明:本文僅為個人論文閱讀筆記,大部分原文對照的中文為翻譯而來,只對其中錯誤明顯的部分作了修改。其他一些個人理解不到位或有誤的地方也盡請見諒。 標題原文: IntelliLight:A Reinforcement Learning Approach for Intelligent Traffic Light Control 論文來源: Proceedings of the 24

    2024年04月12日
    瀏覽(94)
  • 交通信號燈課程設計(紅綠燈)

    交通信號燈課程設計(紅綠燈)

    一、設計指標 1.1對設計課題進行簡要闡述 ?????? 由一條主干道和一條支干道的匯合點形成十字交叉路口,為確保車輛安全、迅速地通行,在交叉路口的每個人口處設置了紅、綠、黃三色信號燈。 ?????? (1)用紅、綠、黃三色發(fā)光二極管作信號燈,用傳感器或邏輯開關

    2024年02月09日
    瀏覽(34)
  • Verilog設計實例(二):交通信號燈設計實例

    Verilog設計實例(二):交通信號燈設計實例

    本文為Verilog實例開發(fā)的第二彈,缺少Verilog代碼練手或者有些生疏的可以在這里參考一些設計實例進行練習。 本系列導航: Verilog設計實例(一):自動售貨機設計實例 設計一個交通燈控制電路,紅燈30s后轉為綠燈。共x,y方向兩組交通燈,每組紅綠燈各一個,紅燈亮30s,綠

    2024年02月03日
    瀏覽(26)
  • 數(shù)電課程設計——課設二:交通信號燈

    數(shù)電課程設計——課設二:交通信號燈

    ?一、實驗內容 (1)十字路口有 x、y 方向兩組交通信號燈,每組有紅、黃、綠燈各一個; (2)設計一個交通燈控制電路,模擬十字路口交通燈工作情況,紅燈亮 35s,黃燈亮 5s,綠 燈亮 30s; (3)設系統(tǒng)時鐘頻率為 50MHz,要求用數(shù)碼管顯示計時結果; (4)掌握 Verilog HDL 的

    2024年02月09日
    瀏覽(26)
  • 基于單片機的交通信號燈控制

    基于單片機的交通信號燈控制

    目錄 一、方案流程及技術規(guī)格書設計 二、系統(tǒng)硬件電路設計 三、系統(tǒng)軟件設計 四、系統(tǒng)調試測試與分析 前言 ? ? ? ?伴隨著越來越多的家用小轎車的出現(xiàn),道路安全問題也越來越被人們重視,當今,紅綠燈也被安裝在各個路口,來規(guī)范人們的駕駛習慣,紅燈停,綠燈行的

    2024年02月03日
    瀏覽(20)
  • 基于51單片機的交通信號燈

    基于51單片機的交通信號燈

    本設計學校的一次單片機實訓。 利用51單片機控制各個路口紅綠燈及時間顯示。 1、題目要求 1、各個路口紅綠燈亮滅的規(guī)則,暫不考慮左轉方向; 2、倒計時的實現(xiàn),利用單片機的定時器進行計數(shù)得到秒信號; 3、時間顯示:東西南北四個方向的時間一致,當東西方向為60秒綠

    2024年01月24日
    瀏覽(22)
  • AI:05- - 基于深度學習的道路交通信號燈的檢測與識別

    AI:05- - 基于深度學習的道路交通信號燈的檢測與識別

    ?? 本文選自專欄:AI領域專欄 從基礎到實踐,深入了解算法、案例和最新趨勢。無論你是初學者還是經驗豐富的數(shù)據(jù)科學家,通過案例和項目實踐,掌握核心概念和實用技能。每篇案例都包含代碼實例,詳細講解供大家學習。 ??????本專欄包含以下學習方向: 機器學習、

    2024年02月03日
    瀏覽(24)
  • 基于FPGA的倒計時交通信號燈系統(tǒng)(使用quartusII)

    基于FPGA的倒計時交通信號燈系統(tǒng)(使用quartusII)

    好久沒更新,轉眼大二下了,去年我的城市經歷新冠疫情,我自己也沉迷于某csgo游戲開擺500小時,終于在上個月醒悟,正式開始fpga的學習,是跟這實驗室的一位帶工程師學習的,話不多說開始。 主要看著B站開源騷客和小梅哥的視頻,開源騷客的視頻我看完了,最近在看小梅

    2024年02月11日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包