找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 9017|回复: 0
收起左侧

单片机数码管0-99按键加减1汇编程序

[复制链接]
ID:70976 发表于 2014-12-27 18:20 | 显示全部楼层 |阅读模式
  1. ;============================================================
  2. ;程序编写人:兰建
  3. ;编写地点:51hei培训机构
  4. ;时间:5月23日下午  星期六
  5. ;功能:本程序实现P0口的对2个数码管显示0到99,一个按键实现加1,
  6. ;    到99回到0;一个按键实现减1,减到0回到99,低电平亮
  7. ;P2口实现对数码管的片选功能
  8. ;============================================================
  9. ;//////开始初始化////////////////////////
  10.            SHUCHU   EQU    P0          ;定义P0口为输出口
  11.        PIANXUAN EQU   P2           ;定义P2口为片选口
  12.        SHUZI    EQU   30H          ;设置处理数据存放地址
  13. ;========================程序开始===========================
  14.                     ORG   00H          ;程序开始
  15.                     LJMP  MAIN         ;跳到MAIN
  16.                     ORG   0030H        ;入口地址
  17. ;========================主程序=============================        
  18.                MAIN:
  19.             MOV  SHUZI,#00
  20.             MOV  DPTR,#TAB     ;查表初始化
  21.                 MOV  P1,#0F3H      ;设置P1.0、P1.1口为输入
  22.           START:CALL  JISUAN       ;计算处理
  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      ;计算处理
  31.                 CALL   DISPLAY     ;显示
  32.                 CALL   DELAY       ;延时
  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        ;循环
  38.              L3:CALL  JIANCHULI    ;减1处理
  39.                 LJMP    L2_0        ;返回显示
  40. ;========================计算子程序=========================
  41. ;输入:30H
  42. ;输出:"A和B"
  43. ;实现的功能:把30H的数据的十位和个位分离出来
  44. ;============================================================
  45.              JISUAN:MOV   A,SHUZI      ;数据放在A中  
  46.             MOV   B,#10        ;除数放在B中
  47.             DIV   AB           ;商放在A中,余数放在B中
  48.             RET               
  49. ;========================显示子程序==========================
  50. ;输入:"A"
  51. ;输出:"P0口"
  52. ;实现的功能:把A的数输出到P0口显示,十位和个位分开显示
  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         ;显示个位
  61.         MOV   PIANXUAN,#01H    ;片选
  62.         CALL  DELAY            ;延时
  63.                 RET
  64. ;========================处理子程序=========================
  65. ;输入:无
  66. ;输出:无
  67. ;实现的功能:把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. ;输入:无
  78. ;输出:无
  79. ;实现的功能:把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. ;========================延时程序============================
  89. ;输入;无
  90. ;输出: 无
  91. ;实现的功能:延时一段时间
  92. ;============================================================
  93.           DELAY:
  94.                 MOV  R6,#09
  95.              L7:MOV  R5,#25
  96.              L8:DJNZ R5,L8
  97.                 DJNZ R6,L7
  98.                 RET
  99. ;=====================共阳查表数据============================
  100.             TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
  101. ;=======================程序结束==============================
  102.                 END
复制代码


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表