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

標題: 單片機匯編LED模擬交通燈 Proteus仿真代碼 [打印本頁]

作者: 陳潤源home    時間: 2020-6-26 19:51
標題: 單片機匯編LED模擬交通燈 Proteus仿真代碼
如題你們要的匯編版本

幾年沒碰過匯編了,有些生疏。寫了三種形式的,程序有不足的地方請見諒,話也不多說

直接 ~giao  啊!!!不對 直接上程序、仿真

仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


單片機源程序如下:
  1. /**************************第一種**************************************************
  2. RED_A   EQU P0.0
  3. YELLO_A EQU P0.1
  4. GREE_A  EQU P0.2

  5. RED_B   EQU P0.3
  6. YELLO_B EQU P0.4
  7. GREE_B  EQU P0.5

  8. ORG 0000H
  9. AJMP START
  10. ORG 0030H
  11. AJMP MAIN
  12. START:MOV P0,#0FFH                   
  13.       CLR  RED_A                           //東西 南北方向紅燈亮
  14.           CLR  RED_B
  15.           LCALL DELAY2S
  16.           MOV P0,#0F7H                    //消影
  17. MAIN:MOV R3,#3                           //閃爍次數設置為3
  18.      
  19. LOOP1:CLR GREE_A                   //東西方向綠燈亮
  20.       CLR RED_B                           //南北方向紅燈亮
  21.           LCALL DELAY10S          
  22.           MOV P0,#0F5H
  23. TOP1:CLR YELLO_A                   //東西方向黃燈亮
  24.       LCALL DELAY100MS           //調用100ms延時
  25.           SETB YELLO_A                   //東西方向黃燈滅
  26.           LCALL DELAY100MS
  27.           DJNZ R3,TOP1
  28.           MOV P0,#0DEH                   //南北綠燈亮 東西紅燈亮
  29. LOOP2:CLR GREE_B                  //南北方向綠燈亮
  30.           CLR RED_A                          //東西方向紅燈亮
  31.           LCALL DELAY10S
  32.           MOV R3,#3                          //賦值南北方向黃燈閃爍次數
  33.           MOV P0,#0FEH
  34. TOP2:CLR YELLO_B                   //南北方向黃燈亮
  35.       LCALL DELAY100MS           //調用延時
  36.           SETB YELLO_B                   //南北方向黃燈滅
  37.           LCALL DELAY100MS           //
  38.           DJNZ R3,TOP2                   //R3減1若不等于0跳轉至TOP2處執行,執行3次從而達到閃爍
  39.                                //R3減1等于0則順序執行
  40.           MOV P0,#0F7H                      //東西方向綠燈 南北方向紅燈
  41.           LJMP MAIN                           //跳轉至MAIN處循環執行

  42. DELAY100MS:MOV R5,#4          //定時100ms  @11.0592MHz
  43.                MOV R6,#93
  44.                MOV R7,#152
  45.       NEXT:DJNZ R7,NEXT
  46.                DJNZ R6,NEXT
  47.                DJNZ R5,NEXT
  48.                RET

  49. DELAY2S:MOV R7,#20       //延時2S子程序
  50.         MOV R6,#200
  51.         MOV R5,#248
  52.      B1:DJNZ R5,B1
  53.          DJNZ R6,B1
  54.              DJNZ R7,B1
  55.          RET

  56. DELAY10S:MOV R5,#81                     //延時10S
  57.              MOV R6,#47
  58.              MOV R7,#121
  59.       D1:DJNZ R7,D1
  60.              DJNZ R6,D1
  61.              DJNZ R5,D1
  62.              RET
  63. END
  64. ****************************************************************************************/
  65.                                                                                                                                  
  66. /*****************************第二種********************/
  67. ORG 0100H              //預留空間

  68. START:MOV A, #0F6H            //初始化
  69.       MOV P0, A                   //東西南北全紅(P0口地址)
  70.       LCALL DELAY           //鑒于空間的大小,這里選用LCALL作為調用函數

  71. LOOP:MOV P0,#0F3H      //東西綠燈亮 南北紅的亮
  72.      ACALL DTIME            //進入定時器中斷
  73.          MOV R0,#3         //閃爍次數 3

  74. LOOP1:MOV P0,#0F5H            //東西黃燈閃爍,南北紅燈  
  75.       ACALL DTIME1     //        ||
  76.       MOV P0,#0F7H     //        ||
  77.       ACALL DTIME1     //
  78.       DJNZ R0,LOOP1    //判斷是否閃爍了3次,滿足則執行下一條指令,反之回到LOOP1處繼續執行
  79.           MOV P0,#0DEH     //南北綠燈,東西紅燈
  80.       ACALL DTIME
  81.           
  82.       MOV R0,#3

  83. LOOP2:MOV P0,#0EEH      //南北黃燈閃,東西紅燈
  84.       ACALL DTIME1  
  85.       MOV P0,#0FEH  
  86.       ACALL DTIME1
  87.       DJNZ R0,LOOP2   
  88.       JMP LOOP  

  89. DTIME1:MOV TMOD,#01H          //定時器T0工作在方式1 @11.0592MHz
  90.        MOV TH0,#3CH         //定時器高四位
  91.        MOV TL0,#0B0H          //定時器低四位
  92.        MOV R6,#10                  //定時0.5S                R6賦值20表示1S 10*50ms=500ms=0.5s
  93.        SETB TR0                  //啟動定時0                                   20*50ms=1000ms=1s
  94. WM:JBC TF0,NEXT1                 //判斷中斷溢出位為1則清零,并跳轉到NEXT1
  95.    AJMP WM
  96. NEXT1:DJNZ R6,NEXT2          //定時0.5S,時間到則返回進入前位置繼續執行
  97.       RET
  98. NEXT2:MOV TH0,#3CH                //重裝定時器初值
  99.       MOV TL0,#0B0H  
  100.       AJMP WM  
  101.       RET

  102. DTIME:MOV TMOD,#01H         //定時器T0工作在方式1
  103.       MOV TH0,#3CH                 //定時初值
  104.       MOV TL0,#0B0H         //定時時間 50ms
  105.       MOV R6,#20                 //1s時間到
  106.       MOV R7,#2                 //為了方便調試 綠燈亮2S        35s定時則為MOV R7,#35
  107.       SETB TR0                         //20*500ms*2=2s
  108.    LM:JBC TF0,NEXT                 //判斷中斷溢出位為1則清零,并跳轉到NEXT
  109.       AJMP LM                          //檢測50ms是否到
  110. NEXT: DJNZ R6,NEXT4
  111.       DJNZ R7,NEXT3  
  112.       AJMP JS
  113. NEXT3:MOV R6,#20                //重裝定時器初值
  114. NEXT4:MOV TH0,#3CH
  115.       MOV TL0,#0B0H
  116.       AJMP LM                     //檢測50ms是否到
  117.    JS:RET

  118. DELAY: MOV R7,#50       //延時5S子程序
  119.   DL1:MOV R6,#200
  120.   DL2:MOV R5,#248
  121.     DJNZ R5,$
  122.     DJNZ R6,DL2
  123.         DJNZ R7,DL1
  124.     RET
  125. END

  126. /**************************第二種*****************************************************
  127. ORG 0000H
  128. LJMP START
  129. ORG 0030H                            
  130. START:
  131. MOV A, #0F6H             
  132. MOV P0, A                         ;東西南北全紅(P0口地址)
  133. LCALL DELAY                         ;鑒于空間的大小,這里選用LCALL作為調用函數
  134. MAIN:
  135. MOV A,#11110011B                  ;東西車道綠燈亮,通行;南北車道紅燈亮,禁止通行
  136. MOV P0, A                                 ;CPU中斷
  137. LCALL DELAY2                             ;調用延時子程序
  138. MOV R1,#3
  139. LOOP1:
  140.   MOV A,#11110101B                 ;東西車道黃燈閃爍,南北車道紅燈亮,禁止通行
  141.   MOV P0, A
  142.   LCALL DELAY1                         ;CPU中斷,調用函數
  143.   MOV A,#11110111B
  144.   MOV P0, A
  145.   LCALL DELAY1
  146.   DJNZ R1,LOOP1
  147.   MOV A,#11011110B                 ;東西車道紅燈亮,禁止通行,南北車道綠燈亮,通行
  148.   MOV P0, A
  149.   LCALL DELAY2
  150.   MOV R2,#3
  151. LOOP2:
  152.   MOV A,#11101110B                 ;東西車道紅燈亮,禁止通行,南北車道黃燈閃爍
  153.   MOV P0, A
  154.   LCALL DELAY1
  155.   MOV A,#11111110B
  156.   MOV P0, A
  157.   LCALL DELAY1
  158.   DJNZ R2,LOOP2
  159. LJMP MAIN                                  ;跳轉程序

  160. DELAY: MOV R7,#20       ;延時2S子程序
  161.   DL1:MOV R6,#200
  162.   DL2:MOV R5,#248
  163.     DJNZ R5,$
  164.     DJNZ R6,DL2
  165.         DJNZ R7,DL1
  166.     RET
  167. DELAY1: MOV R5, #3            ;黃燈閃爍3次程序
  168.      Y1: MOV R6, #200
  169.      Y2: MOV R7, #248
  170.      X1: DJNZ R7, X1
  171.          DJNZ R6, Y2
  172.          DJNZ R5, Y1
  173.          RET
  174. DELAY2: MOV R5, #50        ;綠燈通行延時程序
  175.     D1: MOV R6, #200
  176.     D2: MOV R7, #248
  177.     D3:
  178.         DJNZ R7, D3
  179.         DJNZ R6, D2
  180.         DJNZ R5, D1
  181.         RET
  182. END       
  183. */                                 
復制代碼

所有資料51hei提供下載:
交通燈.7z (132.36 KB, 下載次數: 46)







歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 午夜免费网站 | 久久久久久国模大尺度人体 | 日韩爱爱网 | av影音资源 | 成人免费观看男女羞羞视频 | 一区二区三区不卡视频 | 国产精品s色 | 亚洲一区成人 | 日本国产一区二区 | 日本不卡一区二区三区 | 久久性色 | 国产精品久久久久久中文字 | 欧美成人一区二免费视频软件 | 精品亚洲一区二区三区 | 欧美精品a∨在线观看不卡 欧美日韩中文字幕在线播放 | 欧美一级做性受免费大片免费 | 国产91中文| 日韩国产精品一区二区三区 | 色资源av| 成人三级影院 | 中文字幕成人在线 | 免费黄色的网站 | 99一级毛片 | 国产福利在线播放 | 欧美日韩国产欧美 | 国产精品视频一区二区三区 | 91动漫在线观看 | 成人午夜影院 | 国产在线一区二区 | 毛片免费观看视频 | 欧美日韩在线观看一区 | 久久久精品一区二区三区 | 日韩欧美国产精品 | 日韩精品1区2区3区 成人黄页在线观看 | 国色天香成人网 | 久久高清| 久久www免费人成看片高清 | 天天综合久久 | 国产在线永久免费 | 久久国产精品视频 | 蜜臀久久99精品久久久久久宅男 |