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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5246|回復: 3
打印 上一主題 下一主題
收起左側

單片機與protues控制交通燈 匯編語言程序和仿真

[復制鏈接]
跳轉到指定樓層
樓主
簡易的使用PROTUES軟件與單片機匯編語言控制交通燈的實驗


匯編語言單片機程序:
  1. ORG   0000H
  2. AJMP  MAIN
  3. ORG   000BH        //T0中斷入口地址
  4. LJMP  INT_T0
  5. ORG   0030H
  6. RRR   EQU  0F6H         ;紅紅都亮
  7. GR   EQU  0DEH   ;東西綠燈亮,南北紅燈亮
  8. YR   EQU  0EEH   ;東西黃燈亮,南北紅燈亮
  9. RG   EQU  0F3H   ;東西紅燈亮,南北綠燈亮
  10. RY   EQU  0F5H   ;東西紅燈亮,南北黃燈亮
  11. EW_TIME EQU R0         ;東西方向時間
  12. SN_TIME EQU R1         ;南北方向時間

  13. MAIN:        //I/0口,寄存器初始化
  14.     MOV P1,#RRR
  15.         MOV P3,#0FFH
  16.         LCALL DELAY_1S       
  17.         MOV R2,#20        //定時計數器T0定時50ms,循環20次獲得一秒定時
  18.         MOV 50H,#20          //紅燈時間
  19.         MOV 51H,#16          //綠燈時間
  20. /*************T0初始化**************/        
  21.         MOV        TMOD,#11H        //定時計數器T0,模式1,16位
  22.         MOV        TH0,#3CH        //50ms定時初值
  23.         MOV        TL0,#0B0H
  24.         SETB        EA        //開總中斷
  25.         SETB        ET0        //開T0中斷
  26.         SETB        TR0        //T0啟動
  27.    
  28.        
  29. /**********************************
  30. 狀態1:
  31. 東西綠燈亮16s
  32. 南北紅燈亮20s
  33. **********************************/
  34. START:        MOV P1 , #GR
  35.         MOV EW_TIME,50H                //東西方向倒計時初值15
  36.         MOV SN_TIME,51H                //南北方向倒計時初值12
  37. D0:        LCALL  DISPLAY            //調用顯示子程序
  38.         CJNE   SN_TIME,#00H,D0

  39. /**********************************
  40. 狀態2:
  41. 東西黃燈閃爍4S
  42. 南北還是紅燈
  43. **********************************/
  44. MOV A,50H
  45. SUBB A,51H
  46. MOV  SN_TIME,A        //黃燈倒計時初值4
  47. MOV P1 , #YR
  48. D1:LCALL        DISPLAY
  49. CJNE        SN_TIME,#03H,D1
  50. SETB P1.4                    //閃爍
  51. D2:LCALL        DISPLAY
  52. CJNE        SN_TIME,#02H,D2
  53. CLR P1.4
  54. D3:LCALL        DISPLAY
  55. CJNE        SN_TIME,#01H,D3
  56. SETB P1.4
  57. D4:LCALL        DISPLAY
  58. CJNE        SN_TIME,#00H,D4
  59. /**********************************
  60. 狀態3:
  61. 南北綠燈亮12s
  62. 東西紅燈亮15s
  63. **********************************/  
  64. MOV P1 , #RG            
  65. MOV  SN_TIME,50H
  66. MOV  EW_TIME,51H
  67. D5:LCALL   DISPLAY        
  68. CJNE  EW_TIME,#00H,D5
  69. /**********************************
  70. 狀態4:
  71. 東西持續紅燈
  72. 南北黃燈亮3s
  73. **********************************/  
  74. MOV P1 , #RY      
  75. MOV A,50H
  76. SUBB A,51H
  77. MOV  EW_TIME,A        //東西綠燈滅,黃燈倒計時初值3s
  78. MOV  P1,#RY
  79. D6:LCALL        DISPLAY
  80. CJNE        SN_TIME,#03H,D6
  81. SETB P1.1                    //閃爍
  82. D7:LCALL        DISPLAY
  83. CJNE        SN_TIME,#02H,D7
  84. CLR P1.1
  85. D8:LCALL        DISPLAY
  86. CJNE        SN_TIME,#01H,D8
  87. SETB P1.1
  88. D9:LCALL        DISPLAY
  89. CJNE        SN_TIME,#00H,D9
  90. /**********************************/
  91.      
  92. LJMP        START       //返回初始狀態


  93. //********顯示子程序*******//
  94. DISPLAY:MOV DPTR,#TABLE
  95.         MOV A,EW_TIME
  96.         MOV B,#10
  97.         DIV AB
  98.         MOVC A,@A+DPTR
  99.         MOV P3,#0FFH
  100.         MOV P2,A
  101.         MOV P3,#0FEH
  102.         LCALL        DELAY_5MS
  103.         MOV A,B
  104.         MOVC A,@A+DPTR
  105.         MOV P3,#0FFH
  106.         MOV P2,A
  107.         MOV P3,#0FDH
  108.         LCALL        DELAY_5MS
  109.         MOV A,SN_TIME
  110.         MOV B,#10
  111.         DIV AB
  112.         MOVC A,@A+DPTR
  113.         MOV P3,#0FFH
  114.         MOV P2,A
  115.         MOV P3,#0FBH
  116.         LCALL        DELAY_5MS
  117.         MOV A,B
  118.         MOVC A,@A+DPTR
  119.         MOV P3,#0FFH
  120.         MOV P2,A
  121.         MOV P3,#0F7H
  122.         LCALL        DELAY_5MS
  123.         RET


  124. //******T0中斷子程序*******//
  125. INT_T0: DJNZ  R2,NT0        //計數寄存器不為0則跳轉,T0重新賦初值
  126.         MOV   R2,#20       //計數器重新賦值
  127.         DEC   EW_TIME            //南北方向倒計時數值減1
  128.         DEC   SN_TIME           //東西方向倒計時數值減1
  129. NT0:    MOV  TH0,#3CH          //T0賦50ms初值
  130.         MOV  TL0,#0B0H
  131.         SETB TR0             //啟動T0
  132.         RETI        


  133. TABLE:DB 3FH ,06H, 5BH ,4FH ,66H ,6DH ,7DH ,07H ,7FH ,6FH  //段碼

  134. DELAY_5MS:MOV   TMOD,#11H        //定時計數器T1,模式1,16位
  135.         MOV   TH1,#0F8H;#0D8H;      //5ms定時初值
  136.         MOV   TL1,#2FH;#0F0H;
  137.         SETB  TR1        //T1啟動       
  138. DD1:        JBC TF1 ,TRE
  139.         AJMP DD1
  140. TRE:        RET

  141. DELAY_1S:MOV R3 , #250
  142. DD2:        LCALL DELAY_5MS
  143.         DJNZ R3 ,DD2
  144.         RET

  145. END        
復制代碼


新建文件夾.zip

55.64 KB, 下載次數: 53, 下載積分: 黑幣 -5

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發
ID:272704 發表于 2018-1-7 20:36 | 只看該作者
這里面能加一個緊急處理裝置嗎?加個按鍵全變紅燈
回復

使用道具 舉報

板凳
ID:288294 發表于 2018-3-7 09:57 | 只看該作者
計時太慢了 怎么改比較好
回復

使用道具 舉報

地板
ID:288294 發表于 2018-3-7 18:32 | 只看該作者
徐叨叨 發表于 2018-3-7 09:57
計時太慢了 怎么改比較好

我解決啦 改了計時初值和循環次數
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲美女网站 | 亚洲精品一区二区在线观看 | 男人av在线播放 | 久久久久久久久久毛片 | 伦理一区二区 | 天天澡天天狠天天天做 | 国产中文区二幕区2012 | 欧美日韩黄色一级片 | 亚洲性人人天天夜夜摸 | 看毛片的网站 | 日韩高清一区 | 特一级毛片 | 欧美日韩福利视频 | 精品国产成人 | 欧美一区二区三区在线观看视频 | 午夜精品久久久久久久星辰影院 | 日本一区二区三区视频在线 | 午夜精品视频在线观看 | 成人在线免费视频 | 国产免费一区二区三区免费视频 | 国产成人免费视频网站高清观看视频 | 99久久精品国产一区二区三区 | 精品成人佐山爱一区二区 | 亚洲精品视频一区 | 国产精品99| 亚洲精品在线视频 | 亚洲一区网站 | 欧美日韩在线免费观看 | 五月婷婷导航 | 日韩中出 | 中文字幕一区二区三区四区五区 | 日美女逼逼 | 日韩激情视频一区 | 日韩亚洲视频 | 中文字幕高清 | 精品日韩一区二区 | 91在线看| 亚洲欧美在线免费观看 | 91资源在线 | 涩爱av一区二区三区 | 国产乱码精品一品二品 |