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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機按鍵消抖動和防干擾的例子-匯編程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:70976 發表于 2014-12-27 17:26 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
  1. ;===============================================================
  2. ;程序編寫人:蘭建文
  3. ;編寫地點:51hei培訓機構
  4. ;時間:2009年6月9日上午  星期二
  5. ;功能:本程序實現P0口的對2個數碼管顯示0到99,一個按鍵實現一次
  6. ;按鍵只遞加1次,到99回到0,按著不動不影響數碼管動態顯示;任何時
  7. ;刻,任何一個按鍵,若按鍵時間超過3秒,循環顯示0到9回到0,時間
  8. ;間隔1秒。若時間小于1秒,顯示加1,低電平亮
  9. ;P2口實現對數碼管的片選功能
  10. ;===============================================================
  11. ;=========================開始初始化============================
  12.            SHUCHU   EQU   P0           ;定義P0口為輸出口
  13.      PIANXUAN EQU   P2           ;定義P2口為片選口
  14.         SHUZI    EQU   30H          ;設置處理數據存放地址
  15.      ANJIAN1  BIT   20H.0     ;設置按鍵標志位
  16.      ANJIAN2  BIT   20H.1     ;設置按鍵標志位        
  17.      BIT0     BIT   20H.2     ;設置中斷定時器0標志位
  18.      CHANGAN BIT   20H.3     ;設置長按標志位
  19.      LIANAN   BIT   20H.4     ;設置連按標志位
  20.      XIAN1 BIT   20H.5
  21.      XIAN2    BIT   20H.6
  22.      BIT4     BIT   20H.7
  23.      MODE     EQU   01H
  24. ;========================程序開始==============================
  25.                     ORG   00H          ;程序開始
  26.                     LJMP  START        ;跳到START
  27.      ORG   0BH     ;中斷定時器0入口地址
  28.      JMP   T0_1     ;跳到定時器0服務程序
  29.                     ORG   0030H        ;入口地址
  30. ;=========================主程序===============================        
  31.               START:MOV   SP,#70H  ;移開指針        
  32.         MOV   SHUZI,#00  ;數據初始化
  33.         MOV   DPTR,#TAB     ;查表初始化
  34.      CALL  INIT   ;開中斷
  35.      CLR   ANJIAN1  ;按鍵標志位清0
  36.      CLR   ANJIAN2  ;按鍵標志位清0
  37.      CLR   CHANGAN  ;長按標志位清0
  38.      CLR   LIANAN
  39.      CLR   XIAN1
  40.      CLR   XIAN2
  41.      CLR   BIT4
  42.      SETB  BIT0   ;中斷標志位置1
  43.      MOV   R0,#0
  44.      MOV   R1,#0
  45.      MOV   R2,#0
  46.      MOV   R3,#0
  47.         
  48.       MAIN:JNB   BIT0,MAIN    ;等待中斷
  49.            CLR   BIT0     ;中斷標志位清0
  50.    
  51.      JB    BIT4,VV
  52.      INC   R3
  53.      CJNE  R3,#50,XX
  54.      MOV   R3,#00
  55.      MOV   R2,#0
  56.         JMP   DD
  57.      XX:CJNE  R2,#3,VV
  58.      SETB  LIANAN
  59.      MOV   R2,#00
  60.    
  61.      DD:CLR   BIT4   
  62.      VV:JB   LIANAN,ZIJIAN
  63.         JB  CHANGAN,ZIJIA   ;長按標志位=1,循環顯示0-9;若不為0顯示鍵值加一  
  64.    
  65.         CALL  JISUAN
  66.                     CALL  DISPLAY
  67.      JB    ANJIAN2,JJ                     
  68.    
  69.         JNB   ANJIAN1,PANDUAN1
  70.            JNB   P1.2,XIANSHI1   
  71.      MOV   R0,#00
  72.         CLR   ANJIAN1
  73.      CLR   XIAN1
  74.      CLR   ANJIAN2
  75.      CLR   XIAN2
  76.      JMP   MAIN
  77.      JJ:JNB   ANJIAN2,PANDUAN2
  78.      JNB   P1.3,XIANSHI2   
  79.     ; SETB  BIT4
  80.      INC   R2
  81.     ;  MOV   R3,#0
  82.      CLR   ANJIAN1
  83.      CLR   XIAN1
  84.      CLR   ANJIAN2
  85.      CLR   XIAN2
  86.      JMP   MAIN
  87.      PANDUAN1:JB    P1.3,YY
  88.               SETB  BIT4
  89.     ; INC   R2
  90.      MOV   R3,#0
  91.               SETB  ANJIAN2
  92.      ;JMP   MAIN
  93.         YY:JB    P1.2,MAIN     ;若按鍵抬起則返回MAIN,若沒有抬起按鍵標志位清0
  94.            SETB  ANJIAN1
  95.            JMP   MAIN
  96.      PANDUAN2:JB    P1.2,ZZ
  97.               SETB  ANJIAN1
  98.      JMP   MAIN
  99.         ZZ:JB    P1.3,MAIN     ;若按鍵抬起則返回MAIN,若沒有抬起按鍵標志位清0
  100.            SETB  ANJIAN2
  101.            JMP   MAIN
  102.      XIANSHI1:  
  103.         INC   R0
  104.         CJNE  R0,#150,L6    ;若R0=150,長按到達1秒,循環顯示0-9;不相等,則顯示鍵值加1
  105.      MOV   R0,#00
  106.      SETB  CHANGAN
  107.            L6:JB    XIAN1,MAIN
  108.               SETB  XIAN1   ;顯示標志位清0
  109.      CALL  JIACHULI  ;加處理
  110.      JMP   MAIN
  111.      XIANSHI2:  
  112.      JB    XIAN2,OUT
  113.               SETB  XIAN2   ;顯示標志位清0
  114.      CALL  JIANCHULI  ;加處理
  115.     OUT:JMP   MAIN
  116.         
  117.      ZIJIA:MOV   A,SHUZI
  118.            CALL  JIACHULI
  119.            CALL  JISUAN
  120.      CALL  DISPLAY
  121.      JMP   MAIN
  122.        ZIJIAN:MOV   A,SHUZI
  123.      CALL  JIANCHULI
  124.      CALL  JISUAN
  125.      CALL  DISPLAY
  126.      JMP   MAIN
  127. ;====================定時中斷0服務子程序========================
  128. ;輸入:無
  129. ;輸出:無
  130. ;實現的功能:實現定時20MS,影響標志位T_BIT.
  131. ;===============================================================
  132.       T0_1:MOV    TL0,#0E0H     ;設置定時初值
  133.      MOV    TH0,#0B1H
  134.      SETB   BIT0       ;定時標志位清0
  135.      RETI
  136. ;========================中斷設置子程序=========================
  137. ;輸入:無
  138. ;輸出:無
  139. ;實現的功能:初始化設置定時器,設置初值
  140. ;===============================================================
  141.                INIT:MOV    TMOD,#MODE  ;定時器0工作方式1
  142.             MOV    TL0,#0E0H
  143.      MOV    TH0,#0B1H
  144.      MOV    IE,#82H   ;開定時器中斷0
  145.      SETB   TR0    ;開定時器0
  146.      RET
  147. ;========================計算子程序=============================
  148. ;輸入:30H
  149. ;輸出:"A和B"
  150. ;實現的功能:把30H的數據的十位和個位分離出來
  151. ;===============================================================
  152.              JISUAN:MOV   A,SHUZI
  153.            MOV   B,#10        ;除數放在B中
  154.         DIV   AB           ;商放在A中,余數放在B中
  155.         RET               
  156. ;========================顯示子程序=============================
  157. ;輸入:"A"
  158. ;輸出:"P0口"
  159. ;實現的功能:把A的數輸出到P0口顯示,十位和個位分開顯示
  160. ;===============================================================
  161.          DISPLAY:MOVC  A,@A+DPTR    ;查表
  162.        MOV   SHUCHU,A         ;顯示十位
  163.        MOV   PIANXUAN,#04H    ;片選
  164.        CALL  DELAY
  165.        MOV   SHUCHU,#0FFH
  166.               MOV   A,B              
  167.        MOVC  A,@A+DPTR    ;查表
  168.          MOV   SHUCHU,A         ;顯示個位
  169.        MOV   PIANXUAN,#05H    ;片選
  170.        CALL  DELAY
  171.        MOV   SHUCHU,#0FFH
  172.                  RET
  173. ;======================加處理子程序=============================
  174. ;輸入:無
  175. ;輸出:無
  176. ;實現的功能:把30H地址加1
  177. ;===============================================================
  178.          JIACHULI:
  179.              MOV   A,SHUZI
  180.              CJNE  A,#99,L7
  181.        MOV   SHUZI,#00
  182.        CLR   CHANGAN
  183.        JMP   L8
  184.     L7:INC   SHUZI
  185.     L8:RET  
  186. ;======================減處理子程序=============================
  187. ;輸入:無
  188. ;輸出:無
  189. ;實現的功能:把30H地址加1
  190. ;===============================================================
  191.         JIANCHULI:MOV    A,SHUZI
  192.              CJNE   A,#00,L9
  193.              MOV    SHUZI,#99
  194.        CLR    LIANAN
  195.        JMP    LL
  196.         L9:DEC    SHUZI
  197.        LL:RET
  198. ;========================延時程序===============================
  199. ;輸入;無
  200. ;輸出: 無
  201. ;實現的功能:延時一段時間
  202. ;===============================================================
  203.           DELAY:
  204.           MOV  R6,#3
  205.       LL1:MOV  R7,#250
  206.           DJNZ R7,$
  207.           DJNZ R6,LL1
  208.     RET
  209. ;=====================共陽查表數據==============================
  210.       TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
  211. ;=======================程序結束================================
  212.     END
復制代碼


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

使用道具 舉報

沙發
ID:72846 發表于 2015-1-28 11:47 | 只看該作者
放干擾。很不錯
回復

使用道具 舉報

板凳
ID:313328 發表于 2018-10-29 18:35 | 只看該作者
很不錯,C語言?
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产高清精品一区二区三区 | 亚洲视频在线观看一区二区三区 | 久久一 | 欧美黄色片 | 国产精品99久久久久久人 | 成人久草| 亚洲免费视频网站 | 亚洲少妇综合网 | 色婷婷综合久久久中字幕精品久久 | 国产一区免费 | 日韩久久久久久 | 欧美一级精品片在线看 | 91影院在线观看 | 日韩在线一区二区 | 午夜丰满少妇一级毛片 | 亚洲国产aⅴ成人精品无吗 欧美激情欧美激情在线五月 | 久久国产成人午夜av影院武则天 | 欧美精品久久久久 | 欧美激情久久久 | 精品综合| 美女黄网 | 日韩免费视频 | 亚洲欧美中文日韩在线v日本 | 国产精品视频999 | 亚洲国产一区二区三区 | 国产精品毛片一区二区三区 | 成人欧美 | 国产精品久久久久一区二区三区 | 久久青视频| 黄免费观看视频 | 亚洲精品99 | 中文字幕视频在线观看 | 一a级片| 亚洲午夜视频在线观看 | 秋霞精品 | 超碰婷婷| 午夜精品久久久久久久99黑人 | 久久久久久久久久久久久9999 | 中文字幕影院 | 伊人91在线| 午夜影院免费体验区 |