找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 22729|回复: 0
打印 上一主题 下一主题
收起左侧

单片机数码管静态显示0到9汇编程序

[复制链接]
跳转到指定楼层
楼主
ID:70976 发表于 2014-12-27 18:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  1. ;============================================================
  2. ;程序编写人:兰建
  3. ;编写地点:51hei培训机构
  4. ;时间:5月23日下午 星期六
  5. ;功能:本程序实现P0口的对数码管静态显示0到9;
  6. ;      分时显示0到5;动态显示0到9,低电平亮
  7. ;      P2口实现对数码管的片选功能
  8. ;==========================开始初始化============================
  9.          SHUCHU   EQU   P0               ;定义P0口为输出口
  10.          PIANXUAN EQU   P2       ;定义P2口为片选口
  11.          CISHU    EQU   10       ;0-9,共10个数字
  12.          CISHU1   EQU   6                ;定义片选个数
  13.          SHUZI    EQU   30H          ;定义处理数据存放地址
  14.                   ORG   00H              ;程序开始
  15.                   LJMP  MAIN             ;跳到MAIN
  16.                   ORG   30H              ;入口地址
  17. ;=========================主程序================================
  18.              MAIN:CLR   A                ;数码管显示初始化
  19.                   CALL  JINGTAI          ;静态显示0-9
  20.                   CLR   A                ;数码管显示初始化
  21.                   CALL  DONGTAI1         ;分时显示123456
  22.                   CLR   A                ;数码管显示初始化
  23.                   CALL  DONGTAI2         ;动态显示0-9
  24.                   CLR   A                ;数码管显示初始化
  25.                   JMP   MAIN             ;返回MAIN
  26. ;=====================静态显示0-9子程序==========================
  27. ;输入:"30H"
  28. ;输出:"P0"
  29. ;实现的功能:把A的数输出到P0口显示
  30. ;================================================================
  31.           JINGTAI:MOV   SHUZI,#00    ;输出数据初始化
  32.                   MOV   PIANXUAN,#00H    ;设置片选
  33.                   MOV   R0,#CISHU    ;把查表次数放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,进行下一个数字显示
  42.           RET
  43. ;=====================分时显示123456子程序======================
  44. ;输入:"30H"
  45. ;输出:"P0"
  46. ;实现的功能:把A的数输出到P0口显示
  47. ;===============================================================
  48.          DONGTAI1:MOV   SHUZI,#00        ;输出数据初始化
  49.                   MOV   R1,0             ;设置片选
  50.                   MOV   PIANXUAN,R1
  51.                   MOV   R0,#CISHU1   ;把查表次数放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,进行下一个数字显示
  61.                   RET  
  62. ;======================动态显示0-9子程序=========================
  63. ;输入:"30H"                           
  64. ;输出:"P0"                              
  65. ;实现的功能:把A的数输出到P0口显示
  66. ;================================================================
  67.          DONGTAI2:MOV   SHUZI,#00    ;输出数据初始化
  68.                   MOV   DPTR,#TAB        ;查表初始化
  69.                   MOV   R3,#CISHU        ;把现实数字的次数放在R3
  70.              L3_1:MOV   R1,#00H          ;设置片选
  71.                   MOV   PIANXUAN,R1      ;片选
  72.                   CALL  CHABIAO          ;查表
  73.                   MOV   R2,#50
  74.                DD:MOV   R0,#CISHU1   ;把查表次数放R0
  75.                L3:CALL  DISPLAY          ;显示
  76.                   CALL  PIANXUANCHULI    ;片选处理
  77.                   CALL  DELAY            ;延时
  78.                   DJNZ  R0,L3            ;若R0减一不为0,跳转到L1
  79.                   DJNZ  R2,DD            ;各数子之间显示设置一定的时间间隔
  80.                   CALL  CHULI            ;处理
  81.                   DJNZ  R3,L3_1          ;若R3不为0,显示下一个数字
  82.                   RET
  83. ;========================处理子程序==============================
  84. ;输入:无
  85. ;输出:无
  86. ;实现的功能:把30H地址加1
  87. ;================================================================
  88.             CHULI:MOV   A,SHUZI
  89.                   INC   A
  90.                   MOV   SHUZI,A
  91.                   RET
  92. ;=======================查表子程序===============================
  93. ;输入:"DPTR"
  94. ;输出:"A"
  95. ;实现的功能:把A的数输出到P0口显示
  96. ;================================================================
  97.           CHABIAO:MOVC  A,@A+DPTR
  98.                   RET
  99. ;====================片选处理子程序==============================
  100. ;输入:无
  101. ;输出:无
  102. ;实现的功能:把片选数据加1
  103. ;================================================================
  104.     PIANXUANCHULI:INC   R1      
  105.                   MOV   PIANXUAN,R1
  106.                   RET
  107. ;======================显示子程序================================
  108. ;输入:"A"
  109. ;输出:"P0口"
  110. ;实现的功能:把A的数输出到P0口显示
  111. ;================================================================
  112.           DISPLAY:MOV   SHUCHU,A
  113.                   RET
  114. ;======================延时程序==================================
  115. ;输入;无
  116. ;输出: 无
  117. ;实现的功能:延时一段时间
  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. ;======================共阳查表数据==============================
  127.               TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
  128.                   END
复制代码




分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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