找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

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

單片機(jī)數(shù)碼管0-99按鍵加減1匯編程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:70976 發(fā)表于 2014-12-27 18:20 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
  1. ;============================================================
  2. ;程序編寫(xiě)人:蘭建
  3. ;編寫(xiě)地點(diǎn):51hei培訓(xùn)機(jī)構(gòu)
  4. ;時(shí)間:5月23日下午  星期六
  5. ;功能:本程序?qū)崿F(xiàn)P0口的對(duì)2個(gè)數(shù)碼管顯示0到99,一個(gè)按鍵實(shí)現(xiàn)加1,
  6. ;    到99回到0;一個(gè)按鍵實(shí)現(xiàn)減1,減到0回到99,低電平亮
  7. ;P2口實(shí)現(xiàn)對(duì)數(shù)碼管的片選功能
  8. ;============================================================
  9. ;//////開(kāi)始初始化////////////////////////
  10.            SHUCHU   EQU    P0          ;定義P0口為輸出口
  11.        PIANXUAN EQU   P2           ;定義P2口為片選口
  12.        SHUZI    EQU   30H          ;設(shè)置處理數(shù)據(jù)存放地址
  13. ;========================程序開(kāi)始===========================
  14.                     ORG   00H          ;程序開(kāi)始
  15.                     LJMP  MAIN         ;跳到MAIN
  16.                     ORG   0030H        ;入口地址
  17. ;========================主程序=============================        
  18.                MAIN:
  19.             MOV  SHUZI,#00
  20.             MOV  DPTR,#TAB     ;查表初始化
  21.                 MOV  P1,#0F3H      ;設(shè)置P1.0、P1.1口為輸入
  22.           START:CALL  JISUAN       ;計(jì)算處理
  23.                 CALL  DISPLAY      ;查表顯示
  24.                  L1:JNB    P1.0,L2     ;若P1.0=0,則跳到L2
  25.             JNB    P1.1,L3     ;若P1.1=0,則跳到L3
  26.                 LJMP   START        ;跳到MAIN
  27.                  L2:CALL   JIACHULI    ;加1處理
  28.            L2_0:MOV    R1,#255
  29.                
  30.            L2_2:CALL   JISUAN      ;計(jì)算處理
  31.                 CALL   DISPLAY     ;顯示
  32.                 CALL   DELAY       ;延時(shí)
  33.          
  34.             DJNZ   R1,L2_2
  35.                L2_1:JNB   P1.0,L2      ;若P1.1為0,則跳到L2
  36.             JNB   P1.1,L3      ;若P1.1為0,則跳到L3
  37.                 LJMP   START        ;循環(huán)
  38.              L3:CALL  JIANCHULI    ;減1處理
  39.                 LJMP    L2_0        ;返回顯示
  40. ;========================計(jì)算子程序=========================
  41. ;輸入:30H
  42. ;輸出:"A和B"
  43. ;實(shí)現(xiàn)的功能:把30H的數(shù)據(jù)的十位和個(gè)位分離出來(lái)
  44. ;============================================================
  45.              JISUAN:MOV   A,SHUZI      ;數(shù)據(jù)放在A中  
  46.             MOV   B,#10        ;除數(shù)放在B中
  47.             DIV   AB           ;商放在A中,余數(shù)放在B中
  48.             RET               
  49. ;========================顯示子程序==========================
  50. ;輸入:"A"
  51. ;輸出:"P0口"
  52. ;實(shí)現(xiàn)的功能:把A的數(shù)輸出到P0口顯示,十位和個(gè)位分開(kāi)顯示
  53. ;============================================================
  54.         DISPLAY:MOVC  A,@A+DPTR
  55.         MOV   SHUCHU,A         ;顯示十位
  56.         MOV   PIANXUAN,#00H    ;片選
  57.                 CALL  DELAY
  58.         MOV   A,B
  59.         MOVC   A,@A+DPTR
  60.         MOV   SHUCHU,A         ;顯示個(gè)位
  61.         MOV   PIANXUAN,#01H    ;片選
  62.         CALL  DELAY            ;延時(shí)
  63.                 RET
  64. ;========================處理子程序=========================
  65. ;輸入:無(wú)
  66. ;輸出:無(wú)
  67. ;實(shí)現(xiàn)的功能:把30H地址加1
  68. ;============================================================
  69.        JIACHULI:MOV  A,SHUZI
  70.                 CJNE A,#99,LL         ;若A不等于9,則跳到LL
  71.         MOV  A,#00      
  72.         JMP  L4
  73.          LL:INC  A                ;自加一
  74.          L4:MOV  SHUZI,A
  75.         RET
  76. ;========================處理子程序==========================
  77. ;輸入:無(wú)
  78. ;輸出:無(wú)
  79. ;實(shí)現(xiàn)的功能:把30H地址減1
  80. ;============================================================
  81.       JIANCHULI:MOV  A,SHUZI
  82.                 CJNE A,#00,LLL        ;若A不等于0,則跳到LLL
  83.                 MOV  A,#99        
  84.                 JMP  L5            
  85.             LLL:DEC  A                ;自減一
  86.              L5:MOV  SHUZI,A
  87.             RET
  88. ;========================延時(shí)程序============================
  89. ;輸入;無(wú)
  90. ;輸出: 無(wú)
  91. ;實(shí)現(xiàn)的功能:延時(shí)一段時(shí)間
  92. ;============================================================
  93.           DELAY:
  94.                 MOV  R6,#09
  95.              L7:MOV  R5,#25
  96.              L8:DJNZ R5,L8
  97.                 DJNZ R6,L7
  98.                 RET
  99. ;=====================共陽(yáng)查表數(shù)據(jù)============================
  100.             TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
  101. ;=======================程序結(jié)束==============================
  102.                 END
復(fù)制代碼


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

相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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