找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

[微機(jī)]建立在8086CPU 8253與8255芯片之上的交通燈控制系統(tǒng) Proteus仿真

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
這是我上個月做的單片機(jī)交通燈設(shè)計(jì),用了一個星期的時間,
附件里面包含交通燈的單片機(jī)源代碼,
和proteus(proteus)仿真工程文件以及設(shè)計(jì)的文檔都是自己原創(chuàng)的,
請大家多多指教
最終呈現(xiàn)的結(jié)果是:通行時間30s,間隔時間 3s,在間隔時間里黃燈閃爍3次每0.5s閃爍一次
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)

單片機(jī)源程序如下:
  1. ;8255的地址
  2. PA                EQU                08H        
  3. PB                EQU                0AH
  4. PC                EQU                0CH
  5. CONW                EQU                0EH

  6. ;8253的地址
  7. AD82530                EQU                10H
  8. AD82531                EQU                12H
  9. AD82532                EQU                14H
  10. AD8253CONW        EQU                16H
  11. ;============================
  12. STACK        SEGMENT        STACK      
  13.         DB        200        DUP(0)
  14. STACK ENDS
  15. ;============================

  16. DATA        SEGMENT
  17.         ;延時
  18.         ONE                DB  6                ;燈組1延時
  19.         TWO_1                DB  1                ;燈組2亮延時
  20.         TWO_2                DB  1                ;燈組2滅延時
  21.         THREE                DB  6                ;燈組3延時
  22.         FOUR_1                DB  1                ;燈組4亮延時
  23.         FOUR_2                DB  1                ;燈組4滅延時
  24.         ;閃爍次數(shù)
  25.         C2                DB  2                ;閃爍3次
  26.         C4                DB  2
  27.         ;燈組定義
  28.         TF1                BYTE                081h        ;第一組燈
  29.         TF2                BYTE                082h        ;第二組燈亮(黃燈亮)
  30.         TF3                BYTE                080h        ;第二組燈滅(黃燈滅)
  31.         TF4                BYTE                024h        ;第三組燈
  32.         TF5                BYTE                044h        ;第四組燈亮(黃燈亮)
  33.         TF6                BYTE                004h        ;第四組燈滅(黃燈滅)
  34. DATA        ENDS
  35. ;=============================
  36. CODE        SEGMENT
  37. ASSUME        CS:CODE, DS:DATA
  38. START:
  39.         PUSH        DS
  40.         MOV        AX, DATA
  41.         MOV        DS, AX
  42.         ;=================
  43.         ;設(shè)置中斷向量8253
  44.         CLI               
  45.         MOV        AX, 0
  46.         MOV        ES, AX            
  47.         MOV        SI, 08H              
  48.         MOV        AX, OFFSET TIME_INT           
  49.         MOV        ES:[SI], AX
  50.         MOV        AX, CS               
  51.         MOV        ES:[SI+2], AX
  52.         ;=================
  53.         ;初始化8255A
  54.         MOV        AL, 80H
  55.         OUT        CONW, AL
  56.         ;初始化8253
  57.         MOV        AL, 36H
  58.         OUT        AD8253CONW, AL
  59.         MOV        AX, 32500        ;計(jì)數(shù)初值,0.5s
  60.         OUT        AD82530, AL
  61.         MOV        AL, AH
  62.         OUT        AD82530, AL

  63.         ;===============
  64.         W:
  65.                JMP        W        ;循環(huán)等待中斷
  66. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;        
  67. ;第一組燈判斷
  68. DENG1:        MOV        AL, ONE
  69.         CMP        AL, 0                ;中斷判斷
  70.         JNE        DENG1ON                ;跳轉(zhuǎn)第一組燈
  71.         JE        DENG2                ;跳轉(zhuǎn)第二組燈判斷
  72. DENG1ON:
  73.         DEC ONE                        ;定時減1
  74.         MOV DX,PC
  75.         MOV AL,TF1                ;第一組燈亮
  76.         OUT DX,AL
  77.         RET
  78. ;第二組燈判斷
  79. DENG2:
  80.    ;第二組燈亮判斷
  81.    DENG2_1:
  82.            MOV        AL, TWO_1
  83.            CMP        AL, 0                ;中斷判斷
  84.            JNE        DENG2ON                ;跳轉(zhuǎn)第二組燈亮
  85.            JE        DENG2_2                ;跳轉(zhuǎn)第二組燈滅判斷
  86.            
  87.    DENG2ON:
  88.            DEC TWO_1                ;定時減1
  89.            MOV DX,PC
  90.            MOV AL,TF2                ;第二組燈亮
  91.            OUT DX,AL
  92.            RET
  93.            
  94.    ;第二組燈暗判斷
  95.    DENG2_2:        
  96.            MOV        AL, TWO_2
  97.            CMP        AL, 0                ;中斷判斷
  98.            JNE        DENG2OFF        ;跳轉(zhuǎn)第二組燈滅
  99.            CMP        C2,0                ;判斷閃爍次數(shù)
  100.            JE        DENG3                ;跳轉(zhuǎn)第三組燈判斷
  101.            
  102.    DENG2OFF:
  103.            DEC TWO_2
  104.            MOV DX,PC
  105.            MOV AL,TF3                ;第二組燈滅
  106.            OUT DX,AL
  107.            CMP C2,0                ;閃爍次數(shù)未到
  108.            JNE RE_DENG2                ;重置第二組燈
  109.            RET

  110. ;第二組燈重置
  111. RE_DENG2:
  112.    DEC C2
  113.    MOV AL,1
  114.    MOV TWO_1,AL
  115.    MOV TWO_2,AL
  116.    RET

  117. ;第三組燈判斷   
  118. DENG3:        MOV        AL, THREE
  119.         CMP        AL, 0                ;中斷判斷
  120.         JNE        DENG3ON                ;跳轉(zhuǎn)第三組燈
  121.         JE        DENG4                ;跳轉(zhuǎn)第四組燈
  122. DENG3ON:
  123.         DEC THREE
  124.         MOV DX,PC
  125.         MOV AL,TF4                ;第三組燈亮
  126.         OUT DX,AL
  127.         RET
  128. ;第四組燈判斷
  129. DENG4:
  130.    DENG4_1:
  131.            MOV        AL, FOUR_1
  132.            CMP        AL, 0                ;中斷判斷
  133.            JNE        DENG4ON                ;跳轉(zhuǎn)第四組燈亮
  134.            JE        DENG4_2                ;跳轉(zhuǎn)第四組燈滅判斷
  135.            
  136.    DENG4ON:
  137.            DEC FOUR_1
  138.            MOV DX,PC
  139.            MOV AL,TF5                ;第四組燈亮
  140.            OUT DX,AL
  141.            RET
  142.            
  143.    DENG4_2:        
  144.            MOV        AL, FOUR_2
  145.            CMP        AL, 0                ;中斷判斷
  146.            JNE        DENG4OFF        ;跳轉(zhuǎn)第四組燈滅
  147.            CMP        C4,0                ;判斷閃爍次數(shù)
  148.            JE        RE_ALL                ;重置所有燈組
  149.            
  150.    DENG4OFF:
  151.            DEC FOUR_2
  152.            MOV DX,PC
  153.            MOV AL,TF6                ;第四組燈滅
  154.            OUT DX,AL
  155.            CMP C4,0                ;閃爍次數(shù)未到
  156.            JNE RE_DENG4                ;重置第四組燈
  157.            RET

  158. ;重置第四組燈
  159. RE_DENG4:
  160.    DEC C4
  161.    MOV AL,1
  162.    MOV FOUR_1,AL
  163.    MOV FOUR_2,AL
  164.    RET

  165. ;重置所有燈組
  166. RE_ALL:        
  167.         MOV AL,6
  168.         MOV ONE,AL
  169.         MOV THREE,AL
  170.         MOV AL,2
  171.         MOV C2,AL
  172.         MOV C4,AL
  173.         MOV AL,1
  174.         MOV TWO_1,AL
  175.         MOV TWO_2,AL
  176.         MOV FOUR_1,AL
  177.         MOV FOUR_2,AL
  178.         RET               
  179. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  180. TIME_INT:                        ;定時器中斷處理函數(shù)
  181.         CALL        DENG1
  182.         IRET
  183. CODE        ENDS
  184.         END START
復(fù)制代碼
仿真工程: 交通燈控制系統(tǒng).rar (26.93 KB, 下載次數(shù): 0)

評分

參與人數(shù) 2黑幣 +80 收起 理由
wpppmlah + 30 共享資料的黑幣獎勵!
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表