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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機匯編程序實現紅綠燈轉換

[復制鏈接]
跳轉到指定樓層
樓主
ID:428737 發表于 2018-11-18 16:23 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
通過masm軟件運行該程序

單片機源程序如下:
  1. STACK SEGMENT STACK 'STACK'
  2.       DW 128 DUP(?)
  3. STACK ENDS
  4. DATA SEGMENT;定義8255和8253各端口地址數據
  5. PA8255 EQU 3000H
  6. PB8255 EQU 3200H
  7. PC8255 EQU 3400H
  8. CON8255 EQU 3600H
  9. CLK08253 EQU 3800H
  10. CLK18253 EQU 3A00H
  11. CLK28253 EQU 3C00H
  12. CON8253 EQU 3E00H
  13. DATA ENDS
  14. CODE SEGMENT
  15.      ASSUME CS:CODE,DS:DATA,SS:STACK
  16. START:
  17.      PUSH DS
  18.      SUB AX,AX
  19.      PUSH AX
  20.      MOV AX,DATA
  21.      MOV DS,AX
  22.      MOV DX,CON8253;初始化8253通道0
  23.      MOV AL,36H;00110110
  24.      OUT DX,AL
  25.      MOV DX,CLK08253
  26.      MOV AX,2710H
  27.      OUT DX,AL
  28.      MOV AL,AH
  29.      OUT DX,AL;通道0初始化完成,工作方式3,初始計數值為10000,周期為0.01s
  30.      MOV DX,CON8253;通道2初始化完成,工作方式3,計數初值為100,由clk0輸入以后周期為1s
  31.      MOV AL,96H;10010110
  32.      OUT DX,AL
  33.      MOV DX,CLK28253
  34.      MOV AL,64H
  35.      OUT DX,AL
  36.      MOV DX,CON8255
  37.      MOV AL,80H
  38.      OUT DX,AL;8255初始化完成,A,B,C均工作在方式0,即基本的輸入輸出
  39.      MOV AL,10H;初始化各燈的狀態
  40.      MOV DX,PA8255
  41.      OUT DX,AL;紅燈全亮
  42.      MOV DX,PB8255
  43.      MOV AL,1FH
  44.      OUT DX,AL;黃燈全滅
  45.      MOV DX,PC8255
  46.      MOV AL,1FH
  47.      OUT DX,AL;綠燈全滅
  48.      CALL DELAY
  49. BEGIN:
  50.      MOV DX,CON8255
  51.      MOV AL,80H
  52.      OUT DX,AL
  53.      MOV AL,10H
  54.      MOV DX,PB8255
  55.      OUT DX,AL
  56.      MOV DX,PA8255
  57.      MOV AL,15H
  58.      OUT DX,AL;05H=00000101,2、4紅燈亮
  59.      MOV DX,PB8255
  60.      MOV AL,1FH
  61.      OUT DX,AL;0FH=00001111,黃燈全滅
  62.      MOV DX,PC8255
  63.      MOV AL,1AH
  64.      OUT DX,AL;OAH=00001010,1,3綠燈亮
  65.      CALL DELAY
  66.      MOV DX,CON8253
  67.      MOV AL,70H
  68.      OUT DX,AL;通道1初始化完成,工作方式0,01110000
  69.      MOV DX,CLK18253
  70.      MOV AX,0BB8H
  71.      OUT DX,AL
  72.      MOV AL,AH
  73.      OUT DX,AL;0BB8H=3000,即通道1的計數值為3000,也就是30S
  74. LOP30_1:
  75.      MOV AL,0;掃描PC4口是否有高電平輸入
  76.      MOV DX,CON8255
  77.      MOV AL,88H;88
  78.      OUT DX,AL;改PC口為輸入方式,準備讀入PC4的值
  79.      MOV DX,PC8255
  80.      IN AL,DX
  81.      AND AL,10H;取PC4的值
  82.      CMP AL,10H
  83.      JNZ LOP30_1;未檢測到高電平則繼續循環檢測
  84.      MOV DX,CON8255
  85.      MOV AL,80H
  86.      OUT DX,AX      
  87.      MOV DX,PA8255
  88.      MOV AL,15H;05H=00000101;2,4紅燈亮
  89.      OUT DX,AL
  90.      MOV DX,PC8255
  91.      MOV AL,1FH;0FH=00001111
  92.      OUT DX,AL;1、3綠燈滅
  93.      MOV DX,PB8255
  94.      MOV AL,1AH;0AH=00001010
  95.      OUT DX,AL;1、3黃燈開始閃
  96.      MOV CX,0
  97. LOP5_1:
  98.      MOV DX,CON8255;檢測PC7高電平
  99.      MOV AL,88H
  100.      OUT DX,AL;改PC口為輸入方式,準備讀入PC7
  101.      MOV DX,PC8255
  102.      IN AL,DX
  103.      AND AL,80H;取PC7
  104.      CMP AL,80H
  105.      JNZ LOP5_1;如果不是高電平則不需要進行延時
  106.      CALL DELAY
  107.      INC CX
  108.      CMP CX,05H
  109.      JNZ LOP5_1   
  110.      MOV DX,CON8255
  111.      MOV AL,80H
  112.      OUT DX,AL
  113.      MOV AL,10H
  114.      MOV DX,PB8255
  115.      OUT DX,AL
  116.      MOV DX,PA8255
  117.      MOV AL,1AH
  118.      OUT DX,AL;0AH=00001010,1、3紅燈亮
  119.      MOV DX,PB8255
  120.      MOV AL,1FH
  121.      OUT DX,AL;0FH=00001111,黃燈全滅
  122.      MOV DX,PC8255
  123.      MOV AL,15H
  124.      OUT DX,AL;05H=00000101,2、4綠燈亮
  125.      CALL DELAY
  126.      MOV DX,CON8253;重新寫入方式控制字,0方式
  127.      MOV AL,70H
  128.      OUT DX,AL
  129.      MOV DX,CLK18253
  130.      MOV AX,0BB8H
  131.      OUT DX,AL
  132.      MOV AL,AH
  133.      OUT DX,AL;0BB8H=3000,即通道1的計數值為3000,也就是30S
  134. LOP30_2:
  135.      MOV AL,0;掃描PC4口是否有高電平輸入
  136.      MOV DX,CON8255
  137.      MOV AL,88H
  138.      OUT DX,AL;改PC口為輸入方式,準備讀入PC4的值
  139.      MOV DX,PC8255
  140.      IN AL,DX
  141.      AND AL,10H;取PC4的值
  142.      CMP AL,10H
  143.      JNZ LOP30_2;未檢測到高電平則繼續循環檢測
  144.      MOV DX,CON8255
  145.      MOV AL,80H
  146.      OUT DX,AX
  147.      MOV DX,PA8255
  148.      MOV AL,1AH;OAH=00001010,1,3路口紅燈亮
  149.      OUT DX,AL
  150.      MOV DX,PC8255
  151.      MOV AL,1FH;0FH=00001111
  152.      OUT DX,AL;2、4綠燈滅
  153.      MOV DX,PB8255
  154.      MOV AL,15H;05H=00000101
  155.      OUT DX,AL;2、4黃燈開始閃爍
  156.      MOV CX,0
  157. LOP5_2:
  158.      MOV DX,CON8255;檢測PC7高電平
  159.      MOV AL,88H
  160.      OUT DX,AL;改PC口為輸入方式,準備讀入PC7
  161.      MOV DX,PC8255
  162.      IN AL,DX
  163.      AND AL,80H;取PC7
  164.      CMP AL,80H
  165.      JNZ LOP5_2
  166.      CALL DELAY
  167.      INC CX
  168.      CMP CX,05H
  169.      JNZ LOP5_2
  170.      JMP START;下一次循環
  171.      
  172. DELAY PROC NEAR
  173.      MOV DX,120;延時子程序
  174. DELAY1:
  175.      MOV BX,1000
  176. DELAY2:
  177.      DEC BX
  178.      CMP BX,0
  179.      JNZ DELAY2
  180.      DEC DX
  181.      CMP DX,0
  182.      JNZ DELAY1
  183.      RET
  184. DELAY ENDP
  185. CODE ENDS
  186.      END START
復制代碼

所有資料51hei提供下載:
123456.rar (1.15 KB, 下載次數: 7)


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

使用道具 舉報

沙發
ID:1 發表于 2018-11-18 17:28 | 只看該作者
補全原理圖或者詳細說明一下電路連接即可獲得100+黑幣
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美日韩在线一区二区 | 成人a视频| 欧美精品1区2区3区 精品国产欧美一区二区 | 国产电影一区 | 成人精品一区二区 | 色综合99 | 成人综合在线视频 | 国产成人av电影 | 免费午夜电影 | 91av在线免费播放 | 中文字幕 在线观看 | 亚洲麻豆 | 欧美电影免费观看 | 婷婷综合激情 | 亚洲欧洲色视频 | 日韩免费视频一区二区 | 成人精品鲁一区一区二区 | 色必久久 | 久久精品一区 | 欧美日韩一卡二卡 | 国产精品色 | 在线观看你懂的网站 | 日本精品裸体写真集在线观看 | 在线男人天堂 | 一区二区在线 | 日本中文字幕在线视频 | 免费成人在线网站 | 国产精品久久久久久久久久免费看 | 成人区一区二区三区 | 亚洲美女网站 | 久久91视频 | 欧美精品国产精品 | 欧美a级成人淫片免费看 | 古装人性做爰av网站 | 亚洲一区二区久久 | 精品一区久久 | 久久高清| 亚洲国产精品一区在线观看 | 免费看淫片 | 国产精品久久久久无码av | 香蕉超碰|