找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 23311|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

單片機數(shù)碼管靜態(tài)顯示0到9匯編程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:70976 發(fā)表于 2014-12-27 18:29 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
  1. ;============================================================
  2. ;程序編寫人:蘭建
  3. ;編寫地點:51hei培訓(xùn)機構(gòu)
  4. ;時間:5月23日下午 星期六
  5. ;功能:本程序?qū)崿F(xiàn)P0口的對數(shù)碼管靜態(tài)顯示0到9;
  6. ;      分時顯示0到5;動態(tài)顯示0到9,低電平亮
  7. ;      P2口實現(xiàn)對數(shù)碼管的片選功能
  8. ;==========================開始初始化============================
  9.          SHUCHU   EQU   P0               ;定義P0口為輸出口
  10.          PIANXUAN EQU   P2       ;定義P2口為片選口
  11.          CISHU    EQU   10       ;0-9,共10個數(shù)字
  12.          CISHU1   EQU   6                ;定義片選個數(shù)
  13.          SHUZI    EQU   30H          ;定義處理數(shù)據(jù)存放地址
  14.                   ORG   00H              ;程序開始
  15.                   LJMP  MAIN             ;跳到MAIN
  16.                   ORG   30H              ;入口地址
  17. ;=========================主程序================================
  18.              MAIN:CLR   A                ;數(shù)碼管顯示初始化
  19.                   CALL  JINGTAI          ;靜態(tài)顯示0-9
  20.                   CLR   A                ;數(shù)碼管顯示初始化
  21.                   CALL  DONGTAI1         ;分時顯示123456
  22.                   CLR   A                ;數(shù)碼管顯示初始化
  23.                   CALL  DONGTAI2         ;動態(tài)顯示0-9
  24.                   CLR   A                ;數(shù)碼管顯示初始化
  25.                   JMP   MAIN             ;返回MAIN
  26. ;=====================靜態(tài)顯示0-9子程序==========================
  27. ;輸入:"30H"
  28. ;輸出:"P0"
  29. ;實現(xiàn)的功能:把A的數(shù)輸出到P0口顯示
  30. ;================================================================
  31.           JINGTAI:MOV   SHUZI,#00    ;輸出數(shù)據(jù)初始化
  32.                   MOV   PIANXUAN,#00H    ;設(shè)置片選
  33.                   MOV   R0,#CISHU    ;把查表次數(shù)放R0
  34.                   MOV   DPTR,#TAB        ;查表初始化
  35.                L1:CALL  CHABIAO ;查表
  36.                   CALL  DISPLAY          ;顯示
  37.                   MOV   R1,#200
  38.              L1_0:CALL  DELAY            ;延時
  39.                   DJNZ  R1,L1_0
  40.                   CALL  CHULI            ;處理
  41.                   DJNZ  R0,L1            ;若R0減一不為0,進行下一個數(shù)字顯示
  42.           RET
  43. ;=====================分時顯示123456子程序======================
  44. ;輸入:"30H"
  45. ;輸出:"P0"
  46. ;實現(xiàn)的功能:把A的數(shù)輸出到P0口顯示
  47. ;===============================================================
  48.          DONGTAI1:MOV   SHUZI,#00        ;輸出數(shù)據(jù)初始化
  49.                   MOV   R1,0             ;設(shè)置片選
  50.                   MOV   PIANXUAN,R1
  51.                   MOV   R0,#CISHU1   ;把查表次數(shù)放R0
  52.                   MOV   DPTR,#TAB        ;查表初始化            
  53.                L2:CALL  CHABIAO ;查表
  54.                   CALL  DISPLAY          ;顯示
  55.                   MOV   R2,#100
  56.              L2_0:CALL  DELAY            ;延時
  57.                   DJNZ  R2,L2_0
  58.                   CALL  CHULI            ;處理
  59.                   CALL  PIANXUANCHULI    ;片選處理
  60.                   DJNZ  R0,L2            ;若R0減一不為0,進行下一個數(shù)字顯示
  61.                   RET  
  62. ;======================動態(tài)顯示0-9子程序=========================
  63. ;輸入:"30H"                           
  64. ;輸出:"P0"                              
  65. ;實現(xiàn)的功能:把A的數(shù)輸出到P0口顯示
  66. ;================================================================
  67.          DONGTAI2:MOV   SHUZI,#00    ;輸出數(shù)據(jù)初始化
  68.                   MOV   DPTR,#TAB        ;查表初始化
  69.                   MOV   R3,#CISHU        ;把現(xiàn)實數(shù)字的次數(shù)放在R3
  70.              L3_1:MOV   R1,#00H          ;設(shè)置片選
  71.                   MOV   PIANXUAN,R1      ;片選
  72.                   CALL  CHABIAO          ;查表
  73.                   MOV   R2,#50
  74.                DD:MOV   R0,#CISHU1   ;把查表次數(shù)放R0
  75.                L3:CALL  DISPLAY          ;顯示
  76.                   CALL  PIANXUANCHULI    ;片選處理
  77.                   CALL  DELAY            ;延時
  78.                   DJNZ  R0,L3            ;若R0減一不為0,跳轉(zhuǎn)到L1
  79.                   DJNZ  R2,DD            ;各數(shù)子之間顯示設(shè)置一定的時間間隔
  80.                   CALL  CHULI            ;處理
  81.                   DJNZ  R3,L3_1          ;若R3不為0,顯示下一個數(shù)字
  82.                   RET
  83. ;========================處理子程序==============================
  84. ;輸入:無
  85. ;輸出:無
  86. ;實現(xiàn)的功能:把30H地址加1
  87. ;================================================================
  88.             CHULI:MOV   A,SHUZI
  89.                   INC   A
  90.                   MOV   SHUZI,A
  91.                   RET
  92. ;=======================查表子程序===============================
  93. ;輸入:"DPTR"
  94. ;輸出:"A"
  95. ;實現(xiàn)的功能:把A的數(shù)輸出到P0口顯示
  96. ;================================================================
  97.           CHABIAO:MOVC  A,@A+DPTR
  98.                   RET
  99. ;====================片選處理子程序==============================
  100. ;輸入:無
  101. ;輸出:無
  102. ;實現(xiàn)的功能:把片選數(shù)據(jù)加1
  103. ;================================================================
  104.     PIANXUANCHULI:INC   R1      
  105.                   MOV   PIANXUAN,R1
  106.                   RET
  107. ;======================顯示子程序================================
  108. ;輸入:"A"
  109. ;輸出:"P0口"
  110. ;實現(xiàn)的功能:把A的數(shù)輸出到P0口顯示
  111. ;================================================================
  112.           DISPLAY:MOV   SHUCHU,A
  113.                   RET
  114. ;======================延時程序==================================
  115. ;輸入;無
  116. ;輸出: 無
  117. ;實現(xiàn)的功能:延時一段時間
  118. ;================================================================
  119.             DELAY:MOV  R7,#02H
  120.                L6:MOV  R6,#002H
  121.                L7:MOV  R5,#0F8H
  122.                L8:DJNZ R5,L8
  123.                   DJNZ R6,L7
  124.                   DJNZ R7,L6
  125.                   RET
  126. ;======================共陽查表數(shù)據(jù)==============================
  127.               TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
  128.                   END
復(fù)制代碼




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

相關(guān)帖子

回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表