找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 8041|回复: 1
收起左侧

51单片机定时器中断实现数码管0-9闪烁汇编程序

[复制链接]
ID:70976 发表于 2014-12-27 18:22 | 显示全部楼层 |阅读模式
本帖最后由 daniu 于 2014-12-27 18:25 编辑
  1. ;============================================================
  2. ;程序编写人:兰建
  3. ;编写地点:51hei培训机构
  4. ;时间:5月23日下午 星期六
  5. ;功能:本程序利用定时器中断0方法,实现P0口数码管0-9的闪烁功能
  6. ;=======================开始初始化================================
  7.     SHUCHU      EQU   P0             ;定义P0口为输出口
  8.     PIANXUAN    EQU   P2             ;设置P2.0为片选
  9.     SHUZI       EQU   30H
  10.     CISHU       EQU   20             ;循环20次数为1秒
  11.     MODE        EQU   01H            
  12.     C_BIT       BIT   20H.0          ;数码管闪烁标志位设置
  13. ;========================程序开始================================
  14.                 ORG   00H            ;程序开始
  15.                 LJMP  START          ;跳到START
  16.                 ORG   0BH            ;定时器中断0入口地址
  17.                 JMP   T0_1           ;跳到定时器中断0服务程序
  18.                 ORG   0030H          ;入口地址      
  19.           START:MOV    R5,#CISHU
  20.                 CALL   INIT          ;开定时器中断0,设置定时初值
  21.                 MOV    PIANXUAN,#00  ;片选初始化        
  22.                 MOV    SHUZI,#00         ;数码管显示初始化
  23.                 MOV    DPTR,#TAB
  24.                 MOV    SHUZI,#00
  25.                 MOV    SP,#30H       ;移开指针
  26. ;==========================主程序=================================
  27.            MAIN:JNB    C_BIT,L0      ;判断数码管闪烁标志位,为1数码管点亮,为0灭            
  28.                 MOV    A,SHUZI
  29.                 CALL   CHABIAO
  30.                 CALL   XIANSHI
  31.                 JMP    LL
  32.              L0:MOV    SHUCHU,#0FFH   ;数码管灭
  33.              LL:JMP    MAIN          ;返回主程序
  34. ;========================中断设置子程序============================
  35. ;输入:无
  36. ;输出:无
  37. ;实现的功能:初始化定时器0,初值设置
  38. ;==================================================================
  39.            INIT:MOV    TMOD,#MODE    ;定时器1工作方式1
  40.                 MOV    TL1,#0B0H     ;设定时初值
  41.                 MOV    TH1,#3CH
  42.                 MOV    IE,#82H
  43.                 SETB   TR0         
  44.                 RET
  45. ;====================定时器中断0服务子程序=========================
  46. ;输入:P0
  47. ;输出:P0
  48. ;实现的功能:定时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. ;实现的功能:把A的数输出到P0口显示
  65. ;=============================================================
  66.            CHABIAO:MOVC  A,@A+DPTR
  67.                    RET
  68. ;========================显示子程序===========================
  69. ;输入:"A"
  70. ;输出:"P2口"
  71. ;实现的功能:把A的数输出到P0口显示
  72. ;=============================================================
  73.           XIANSHI:MOV SHUCHU,A
  74.                   RET
  75. ;==========================共阳查表数据=============================
  76.               TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
  77. ;============================程序结束===============================
  78.                   END
复制代码


回复

使用道具 举报

ID:92857 发表于 2015-10-18 21:52 | 显示全部楼层
你好,请问这个有图吗,在proteus里的
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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