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

QQ登錄

只需一步,快速開始

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

8086CPU仿真+程序設(shè)計(jì)-汽車尾燈控制,可控時(shí)間間隔流水燈,電子琴,電子時(shí)鐘

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:429971 發(fā)表于 2018-11-20 18:58 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
這是我上微機(jī)原理課時(shí)寫過的一些8086 Proteus仿真設(shè)計(jì),分享給大家。

汽車車燈系統(tǒng)設(shè)計(jì):
用四個(gè)發(fā)光二極管分別模擬車頭左右燈和車尾左右燈。用五個(gè)按鍵控制五個(gè)狀態(tài):左轉(zhuǎn)、右轉(zhuǎn)、剎車、雙閃、夜車。
左轉(zhuǎn):(判斷狀態(tài):日間、夜間)
(1)左燈閃爍(0.5s)(日間)
(2)左燈雙閃(0.5s)后閃爍(0.5s)(夜間)
左轉(zhuǎn):(判斷狀態(tài):日間、夜間)
1)右燈閃爍(0.5s)(日間)
2)右燈雙閃(0.5s)后閃爍(0.5s)(夜間)
剎車:(判斷狀態(tài):日間、夜間)
(1)所有燈常亮(0.5s)(日間)
(2)所有燈雙閃(0.5s)后閃爍(0.5s)(夜間)
雙閃:所有燈閃爍兩次(0.5s
夜車:所有燈常亮

程序:
  1. ;;;===汽車尾燈設(shè)計(jì)===;;;
  2. ;定義8255的地址
  3. PA8255 EQU 0200H
  4. PB8255 EQU 0202H
  5. PC8255 EQU 0204H
  6. CON8255 EQU 0206H
  7. ;定義8253的部分地址
  8. P8253T0 EQU 0400H
  9. P8253CON EQU 0406H  

  10. STACK SEGMENT
  11.     STK DB 200 DUP(0)
  12.     TOP DW $-STACK
  13.     STACK ENDS

  14. CODE SEGMENT
  15.     ASSUME CS:CODE,SS:STACK
  16. START:      
  17.   
  18.     MOV DX,STACK
  19.     MOV SS,DX
  20.     MOV SP,TOP
  21.     ;8255初始化
  22.     MOV AL,82H      ;1000 0010   
  23.     MOV DX,CON8255
  24.     OUT DX,AL  
  25.     MOV DX,PA8255
  26.     MOV AL,0FFH
  27.     OUT DX,AL  
  28. ;;;===每種狀態(tài)輸出對(duì)應(yīng)的數(shù)據(jù)===
  29. ;;;===例如(0200H)=1111 0101 左轉(zhuǎn)時(shí),先是前后左燈亮0.5s
  30. ;;;===然后燈全滅0.5s。高四位保存全滅狀態(tài),低四位保存前后左燈亮狀態(tài)
  31. ;;;===所以左轉(zhuǎn)時(shí),只要把 (0200H)=1111 0101左移四位即可。   
  32.     MOV SI,0200H
  33.     MOV AL,0FAH
  34.     MOV [SI],AL
  35.     MOV [SI+1],0F5H
  36.     MOV [SI+2],0F0H
  37.     MOV [SI+3],00H
  38.     MOV [SI+4],50H
  39.     MOV [SI+5],0A0H
  40. BEGIN:
  41.     MOV DX,PB8255
  42.     IN AL,DX
  43.     AND AL,1FH
  44.     CMP AL,1EH
  45.     JZ NEXT1             ;左轉(zhuǎn)
  46.     CMP AL,1DH
  47.     JZ NEXT2             ;右轉(zhuǎn)
  48.     CMP AL,1BH
  49.     JZ NEXT3             ;雙閃
  50.     CMP AL,17H
  51.     JZ NEXT4             ;剎車
  52.     CMP AL,0FH
  53.     JZ NEXT5             ;夜間
  54.     CMP AL,0EH
  55.     JZ NEXT6             ;夜間+左轉(zhuǎn)
  56.     CMP AL,0DH
  57.     JZ NEXT7             ;夜間+右轉(zhuǎn)
  58.    
  59. INIT:
  60.     MOV DX,PA8255
  61.     MOV AL,0FFH
  62.     OUT DX,AL
  63.     JMP BEGIN
  64. NEXT1:
  65.     CALL LEFT
  66.     JMP BEGIN
  67. NEXT2:
  68.     CALL RIGHT
  69.     JMP BEGIN
  70. NEXT3:
  71.     CALL SHUAN_SHAN
  72.     JMP BEGIN
  73. NEXT4:
  74.     CALL SHA_CHE
  75.     JMP BEGIN
  76. NEXT5:
  77.     CALL NIGHT
  78.     JMP BEGIN
  79. NEXT6:
  80.     CALL NIGHT_LEFT
  81.     JMP BEGIN
  82. NEXT7:
  83.     CALL NIGHT_RIGHT
  84.     JMP BEGIN  

  85. ;;;===左轉(zhuǎn)右轉(zhuǎn)等子程序      
  86. LEFT PROC
  87.     MOV DX,PA8255
  88.     MOV AL,[SI]
  89.     OUT DX,AL
  90.     CALL DELAY
  91.     ROL AL,4
  92.     MOV [SI],AL
  93.     RET
  94. LEFT ENDP

  95. RIGHT PROC
  96.     MOV DX,PA8255
  97.     MOV AL,[SI+1]
  98.     OUT DX,AL
  99.     CALL DELAY
  100.     ROL AL,4
  101.     MOV [SI+1],AL
  102.     RET
  103. RIGHT ENDP  

  104. SHUAN_SHAN PROC
  105.     MOV DX,PA8255
  106.     MOV AL,[SI+2]
  107.     OUT DX,AL
  108.     CALL DELAY
  109.     ROL AL,4
  110.     MOV [SI+2],AL
  111.     RET
  112. SHUAN_SHAN ENDP

  113. SHA_CHE PROC
  114.     MOV DX,PA8255
  115.     MOV AL,[SI+3]
  116.     OUT DX,AL
  117.     CALL DELAY
  118.     ROL AL,4
  119.     MOV [SI+3],AL
  120.     RET
  121. SHA_CHE ENDP

  122. NIGHT PROC
  123.     MOV DX,PA8255
  124.     MOV AL,[SI+3]
  125.     OUT DX,AL
  126.     CALL DELAY
  127.     ROL AL,4
  128.     MOV [SI+3],AL  
  129.     RET
  130. NIGHT ENDP

  131. NIGHT_LEFT PROC
  132.     MOV DX,PA8255
  133.     MOV AL,[SI+4]
  134.     OUT DX,AL
  135.     CALL DELAY
  136.     ROL AL,4
  137.     MOV [SI+4],AL  
  138.     RET
  139. NIGHT_LEFT ENDP

  140. NIGHT_RIGHT PROC
  141.     MOV DX,PA8255
  142.     MOV AL,[SI+5]
  143.     OUT DX,AL
  144.     CALL DELAY
  145.     ROL AL,4
  146.     MOV [SI+5],AL  
  147.     RET
  148. NIGHT_RIGHT ENDP
  149. ;;;===延時(shí)程序
  150. DELAY PROC
  151.         PUSH AX        
  152.         MOV AL,10H      ;0001 0000,8位計(jì)數(shù)器,方式0,BCD碼計(jì)數(shù)
  153.         MOV DX,P8253CON ;寫入工作方式控制字
  154.         OUT DX,AL  
  155.         MOV AL,5H    ;給T0賦初值
  156.         MOV DX,P8253T0
  157.         OUT DX,AL
  158.         
  159. L2:
  160.         MOV DX,PB8255
  161.         IN AL,DX
  162.         AND AL,20H
  163.         CMP AL,00H     
  164.         JZ L2      
  165.         POP AX         
  166.         RET
  167. DELAY ENDP   
  168. CODE ENDS
  169. END START
復(fù)制代碼


可控時(shí)間間隔流水燈仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


單片機(jī)源程序如下:
  1. ;;;=== Create By XuHe 2018 1.18 ===;;;
  2. ;;;===可加速、減速流水燈===;;;
  3. ;;;===初始時(shí),時(shí)間間隔為一秒,按加速鍵加速
  4. ;;;===按減速鍵減速
  5. ;定義8255的地址
  6. PA8255 EQU 0200H
  7. PB8255 EQU 0202H
  8. PC8255 EQU 0204H
  9. CON8255 EQU 0206H
  10. ;定義8253的部分地址
  11. P8253T2 EQU 0404H
  12. P8253CON EQU 0406H  

  13. STACK SEGMENT
  14.     STK DB 200 DUP(0)
  15.     TOP DW $-STACK
  16.     STACK ENDS
  17. CODE SEGMENT
  18.     ASSUME CS:CODE,SS:STACK
  19. START:      
  20.   
  21.     MOV DX,STACK
  22.     MOV SS,DX
  23.     MOV SP,TOP
  24.     ;8255初始化
  25.     MOV AL,82H         
  26.     MOV DX,CON8255
  27.     OUT DX,AL
  28.      
  29.     MOV SI,0200H
  30.     MOV AL,0AH
  31.     MOV [SI],AL
  32.     MOV AL,7FH

  33. BEGIN:
  34.         CALL DISPLAY
  35.         PUSH AX
  36.         MOV DX,PB8255
  37.         IN AL,DX
  38.         AND AL,02H
  39.         CMP AL,00H
  40.         JNZ NEXT
  41.         MOV AL,[SI]
  42.         DEC AL
  43.         
  44.         CMP AL,0
  45.         JZ NEXT
  46.         MOV [SI],AL
  47.         NEXT:
  48.         MOV DX,PB8255
  49.         IN AL,DX
  50.         AND AL,04H
  51.         CMP AL,00H
  52.         JNZ NEXT1
  53.         MOV AL,[SI]
  54.         INC AL
  55.          
  56.         CMP AL,14H
  57.         JZ NEXT1
  58.         MOV [SI],AL
  59.         NEXT1:  
  60.         POP AX
  61.         JMP BEGIN   

  62. DISPLAY PROC
  63.     L1:   
  64.      
  65.     MOV DX,PA8255
  66.     OUT DX,AL
  67.     CALL DELAY
  68.     ROL AL,1
  69.    
  70.     RET
  71. DISPLAY ENDP   
  72.    
  73. DELAY PROC
  74.         PUSH AX
  75.         
  76.         MOV AL,90H      ;1001 0000,8位計(jì)數(shù)器,方式0,BCD碼計(jì)數(shù)
  77.         MOV DX,P8253CON ;寫入工作方式控制字
  78.         OUT DX,AL  
  79.         MOV SI,0200H
  80.         MOV AL,[SI]    ;給T0賦初值
  81.         MOV DX,P8253T2
  82.         OUT DX,AL
  83.         
  84. L2:
  85.         MOV DX,PB8255
  86.         IN AL,DX
  87.         CMP AL,0FEH     
  88.         JZ L2
  89.               
  90.         POP AX
  91.         
  92.         RET
  93. DELAY ENDP
  94.     CODE ENDS
  95. END START
復(fù)制代碼

所有資料51hei提供下載:

8086設(shè)計(jì)-汽車車燈系統(tǒng).zip

42.62 KB, 下載次數(shù): 226

8086設(shè)計(jì)--電子時(shí)鐘.zip

68.55 KB, 下載次數(shù): 239

8086設(shè)計(jì)--電子琴.zip

71.08 KB, 下載次數(shù): 196

8086設(shè)計(jì)-小黃車密碼鎖.zip

500.09 KB, 下載次數(shù): 340

8086設(shè)計(jì)--可控時(shí)間間隔流水燈.zip

32.02 KB, 下載次數(shù): 163

評(píng)分

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

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏3 分享淘帖 頂4 踩

相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:435280 發(fā)表于 2018-11-28 22:28 | 只看該作者
哥哥 你的汽車燈不能用啊,大家不要下載了
----
win10交通燈的搞定了:把Protues ISIS這個(gè)應(yīng)用程序(ISIS.EXE)的屬性更改兼容性,改為兼容XP(sp2)就行.

還有用戶名是中文也不行,解決方法:http://www.torrancerestoration.com/bbs/dpj-28682-1.html
回復(fù)

使用道具 舉報(bào)

板凳
ID:437959 發(fā)表于 2018-12-6 20:17 | 只看該作者
鬧鐘怎么調(diào)點(diǎn)啊,你這只是個(gè)時(shí)鐘而已
回復(fù)

使用道具 舉報(bào)

地板
ID:169933 發(fā)表于 2018-12-24 21:21 | 只看該作者
挺不錯(cuò)的
回復(fù)

使用道具 舉報(bào)

5#
ID:364944 發(fā)表于 2018-12-26 17:38 | 只看該作者
火速下載觀賞學(xué)習(xí)
回復(fù)

使用道具 舉報(bào)

6#
ID:458202 發(fā)表于 2018-12-29 17:26 | 只看該作者
瞅瞅看。。
回復(fù)

使用道具 舉報(bào)

7#
ID:462244 發(fā)表于 2019-1-5 02:59 | 只看該作者
nice!!!!
回復(fù)

使用道具 舉報(bào)

8#
ID:664311 發(fā)表于 2019-12-17 10:02 | 只看該作者
謝謝大佬分享!感謝
回復(fù)

使用道具 舉報(bào)

9#
ID:664311 發(fā)表于 2019-12-17 10:20 | 只看該作者
謝謝大佬分享!
回復(fù)

使用道具 舉報(bào)

10#
ID:665741 發(fā)表于 2019-12-17 11:45 | 只看該作者
謝謝大佬分享
回復(fù)

使用道具 舉報(bào)

11#
ID:567008 發(fā)表于 2019-12-17 16:58 | 只看該作者
密碼鎖仿真和文檔不一樣
回復(fù)

使用道具 舉報(bào)

12#
ID:666819 發(fā)表于 2019-12-17 22:45 來自手機(jī) | 只看該作者
運(yùn)行不了
回復(fù)

使用道具 舉報(bào)

13#
ID:672981 發(fā)表于 2019-12-26 17:31 | 只看該作者
這個(gè)電子琴能錄音嗎
回復(fù)

使用道具 舉報(bào)

14#
ID:1027670 發(fā)表于 2022-6-10 18:41 | 只看該作者
密碼鎖有效果圖嗎
回復(fù)

使用道具 舉報(bào)

15#
ID:120219 發(fā)表于 2023-12-20 00:56 | 只看該作者
8086都停產(chǎn)了,找到難找
回復(fù)

使用道具 舉報(bào)

16#
ID:1105226 發(fā)表于 2023-12-21 14:46 | 只看該作者
請(qǐng)問汽車尾燈控制的項(xiàng)目有接線圖嘛
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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