標(biāo)題: 51單片機(jī)定時(shí)器中斷實(shí)現(xiàn)數(shù)碼管0-9閃爍匯編程序 [打印本頁(yè)]

作者: daniu    時(shí)間: 2014-12-27 18:22
標(biāo)題: 51單片機(jī)定時(shí)器中斷實(shí)現(xiàn)數(shù)碼管0-9閃爍匯編程序
本帖最后由 daniu 于 2014-12-27 18:25 編輯
  1. ;============================================================
  2. ;程序編寫人:蘭建
  3. ;編寫地點(diǎn):51hei培訓(xùn)機(jī)構(gòu)
  4. ;時(shí)間:5月23日下午 星期六
  5. ;功能:本程序利用定時(shí)器中斷0方法,實(shí)現(xiàn)P0口數(shù)碼管0-9的閃爍功能
  6. ;=======================開始初始化================================
  7.     SHUCHU      EQU   P0             ;定義P0口為輸出口
  8.     PIANXUAN    EQU   P2             ;設(shè)置P2.0為片選
  9.     SHUZI       EQU   30H
  10.     CISHU       EQU   20             ;循環(huán)20次數(shù)為1秒
  11.     MODE        EQU   01H            
  12.     C_BIT       BIT   20H.0          ;數(shù)碼管閃爍標(biāo)志位設(shè)置
  13. ;========================程序開始================================
  14.                 ORG   00H            ;程序開始
  15.                 LJMP  START          ;跳到START
  16.                 ORG   0BH            ;定時(shí)器中斷0入口地址
  17.                 JMP   T0_1           ;跳到定時(shí)器中斷0服務(wù)程序
  18.                 ORG   0030H          ;入口地址      
  19.           START:MOV    R5,#CISHU
  20.                 CALL   INIT          ;開定時(shí)器中斷0,設(shè)置定時(shí)初值
  21.                 MOV    PIANXUAN,#00  ;片選初始化        
  22.                 MOV    SHUZI,#00         ;數(shù)碼管顯示初始化
  23.                 MOV    DPTR,#TAB
  24.                 MOV    SHUZI,#00
  25.                 MOV    SP,#30H       ;移開指針
  26. ;==========================主程序=================================
  27.            MAIN:JNB    C_BIT,L0      ;判斷數(shù)碼管閃爍標(biāo)志位,為1數(shù)碼管點(diǎn)亮,為0滅            
  28.                 MOV    A,SHUZI
  29.                 CALL   CHABIAO
  30.                 CALL   XIANSHI
  31.                 JMP    LL
  32.              L0:MOV    SHUCHU,#0FFH   ;數(shù)碼管滅
  33.              LL:JMP    MAIN          ;返回主程序
  34. ;========================中斷設(shè)置子程序============================
  35. ;輸入:無(wú)
  36. ;輸出:無(wú)
  37. ;實(shí)現(xiàn)的功能:初始化定時(shí)器0,初值設(shè)置
  38. ;==================================================================
  39.            INIT:MOV    TMOD,#MODE    ;定時(shí)器1工作方式1
  40.                 MOV    TL1,#0B0H     ;設(shè)定時(shí)初值
  41.                 MOV    TH1,#3CH
  42.                 MOV    IE,#82H
  43.                 SETB   TR0         
  44.                 RET
  45. ;====================定時(shí)器中斷0服務(wù)子程序=========================
  46. ;輸入:P0
  47. ;輸出:P0
  48. ;實(shí)現(xiàn)的功能:定時(shí)1S后P0口取反
  49. ;===================================================================
  50.            T0_1:MOV    TL0,#0B0H
  51.                 MOV    TH0,#3CH
  52.                 DJNZ   R5,L1
  53.                 CPL    C_BIT
  54.                 JB     C_BIT,L2
  55.                 INC    SHUZI
  56.                 MOV    A,SHUZI
  57.                 CJNE   A,#10,L2
  58.                 MOV    SHUZI,#00
  59.              L2:MOV    R5,#CISHU
  60.              L1:RETI
  61. ;========================查表子程序===========================
  62. ;輸入:"DPTR"
  63. ;輸出:"A"
  64. ;實(shí)現(xiàn)的功能:把A的數(shù)輸出到P0口顯示
  65. ;=============================================================
  66.            CHABIAO:MOVC  A,@A+DPTR
  67.                    RET
  68. ;========================顯示子程序===========================
  69. ;輸入:"A"
  70. ;輸出:"P2口"
  71. ;實(shí)現(xiàn)的功能:把A的數(shù)輸出到P0口顯示
  72. ;=============================================================
  73.           XIANSHI:MOV SHUCHU,A
  74.                   RET
  75. ;==========================共陽(yáng)查表數(shù)據(jù)=============================
  76.               TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
  77. ;============================程序結(jié)束===============================
  78.                   END
復(fù)制代碼



作者: rangjunkai    時(shí)間: 2015-10-18 21:52
你好,請(qǐng)問(wèn)這個(gè)有圖嗎,在proteus里的




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1