找回密码
 立即注册

QQ登录

只需一步,快速开始

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

51单片机秒表程序+电路图(汇编语言)

[复制链接]
跳转到指定楼层
楼主
ID:70976 发表于 2014-12-27 17:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 daniu 于 2014-12-27 17:19 编辑

下面是电路图


  1. ;================================================================
  2. ;程序编写人:兰建文
  3. ;编写地点:51hei培训机构
  4. ;时间5月24日晚间  星期日
  5. ;功能:本程序实现P0口的对数码管动态显示秒表的分、秒、1/100秒;
  6. ;      计时程序由中断服务程序实现,采用定时计数器T0工作方式1;
  7. ;      P2口实现对数码管的片选功能
  8. ;================================================================
  9. ;==========================初始化================================
  10.     SHUCHU        EQU    P2               ;定义P0口为输出口
  11.     PIANXUAN      EQU    P1        ;定义P2口为片选口
  12.     MIAO          EQU    30H
  13. FEN           EQU    31H
  14. MIAO0         EQU    32H
  15. SHUZI    EQU    33H
  16. C_0           BIT    20H.0
  17. ;======================系统程序开始==============================                  
  18.       ORG   00H            
  19.             LJMP  START
  20.        ORG   03H
  21.        LJMP  ON_OFF
  22.          ORG   0BH
  23.         LJMP  T0_1
  24.         ORG   13H
  25.         LJMP  RESET
  26.         ORG   30H         
  27.    START:
  28.            CALL   INIT
  29.       SETB   C_0
  30.       MOV    MIAO,#00
  31.       MOV    MIAO0,#00
  32.       MOV    FEN,#00
  33.       MOV    DPTR,#TAB
  34.       MOV     R2,#5  
  35. MAIN:
  36.          JNB    C_0,$
  37.       CLR    C_0
  38.    LL:   CALL   DISPLAY
  39.          CALL   SHIJIAN
  40.       JMP    MAIN      
  41. ;========================时间子程序=============================
  42. ;输入:"30H、31H、32H"
  43. ;输出:无
  44. ;实现的功能:分、秒、百分之秒的计算。
  45. ;===============================================================
  46.       SHIJIAN:
  47.      DJNZ    R2,TIAOCHU
  48.      MOV     R2,#5
  49.       INC     MIAO0
  50.      MOV     R3,MIAO0
  51.      CJNE    R3,#100,TIAOCHU
  52.      MOV     MIAO0,#00
  53.      INC     MIAO
  54.      MOV     R3,MIAO
  55.      CJNE    R3,#60,TIAOCHU
  56.      MOV     MIAO,#00
  57.      INC     FEN
  58.      MOV     R3,FEN
  59.      CJNE    R3,#60,TIAOCHU
  60.      MOV     FEN,#00
  61.    TIAOCHU:RET
  62. ;========================显示子程序=============================
  63. ;输入:"A"
  64. ;输出:"P2口"
  65. ;实现的功能:显示秒、分、百分之妙
  66. ;===============================================================
  67.        DISPLAY:MOV   SHUZI,MIAO0
  68.            CALL  JISUAN
  69.      MOVC  A,@A+DPTR
  70.      MOV   SHUCHU,A         ;显示十位
  71.      MOV   PIANXUAN,#10H    ;片选
  72.                CALL  DELAY
  73.      MOV   PIANXUAN,#00H
  74.    
  75.      MOV   A,B              
  76.      MOVC   A,@A+DPTR
  77.        MOV   SHUCHU,A         ;显示个位
  78.      MOV   PIANXUAN,#20H    ;片选
  79.      CALL  DELAY            ;延时
  80.      MOV   PIANXUAN,#00H
  81.          
  82.      MOV   SHUZI,MIAO
  83.            CALL  JISUAN         
  84.            MOVC  A,@A+DPTR
  85.      MOV   SHUCHU,A         ;显示十位
  86.      MOV   PIANXUAN,#04H    ;片选
  87.                CALL  DELAY
  88.      MOV   PIANXUAN,#00H
  89.    
  90.      MOV   A,B              
  91.      MOVC   A,@A+DPTR
  92.        MOV   SHUCHU,A         ;显示个位
  93.      MOV   PIANXUAN,#08H    ;片选
  94.      CALL  DELAY            ;延时
  95.      MOV   PIANXUAN,#00H
  96.    
  97.      MOV   SHUZI,FEN
  98.      CALL  JISUAN
  99.      MOVC  A,@A+DPTR
  100.      MOV   SHUCHU,A         ;显示十位
  101.      MOV   PIANXUAN,#01H    ;片选
  102.                CALL  DELAY
  103.      MOV   PIANXUAN,#00H
  104.    
  105.      MOV   A,B              
  106.      MOVC   A,@A+DPTR
  107.        MOV   SHUCHU,A         ;显示个位
  108.      MOV   PIANXUAN,#02H    ;片选
  109.      CALL  DELAY            ;延时
  110.      MOV   PIANXUAN,#00H
  111.                RET
  112. ;========================计算子程序=============================
  113. ;输入:30H
  114. ;输出:"A和B"
  115. ;实现的功能:把33H中的数据十位和个位分离出来
  116. ;===============================================================
  117.           JISUAN:MOV   A,SHUZI      ;数据放在A中  
  118.      MOV   B,#10        ;除数放在B中
  119.      DIV   AB           ;商放在A中,余数放在B中
  120.      RET
  121. ;====================复位中断服务程序============================
  122. ;输入;无
  123. ;输出: 无
  124. ;实现的功能:把30H、31H、32H中的数据清零。
  125. ;================================================================
  126.             RESET:PUSH ACC
  127.          MOV   30H,#00H
  128.             MOV   3H,#00H
  129.       MOV   32H,#00H
  130.       CALL  DELAY
  131.       POP   ACC
  132.       RETI
  133. ;====================启停中断服务程序============================
  134. ;输入;无
  135. ;输出: 无
  136. ;实现的功能:关闭定时器
  137. ;================================================================
  138.           ON_OFF:CPL    TR0
  139.            CALL   DELAY
  140.      RETI
  141. ;====================定时中断0服务子程序========================
  142. ;输入:无
  143. ;输出:无
  144. ;实现的功能:实现定时20MS,影响标中断志位C_0
  145. ;===============================================================
  146.    T0_1:MOV    TL0,50H          ;设置定时初值
  147.         MOV    TH0,51H
  148.         SETB   C_0            ;定时标志位清0
  149.      RETI
  150. ;========================中断设置子程序=========================
  151. ;输入:无
  152. ;输出:无
  153. ;实现的功能:初始化设置定时器,设置初值,开中断0、中断1,定时器0.
  154. ;===============================================================
  155.             INIT:MOV    TMOD,#01H      ;定时器0工作方式1
  156.         MOV    DPTR,#65536-20000
  157.      MOV    50H,DPL
  158.      MOV    51H,DPH
  159.          MOV    TL0,50H    ;设置定时初值
  160.         MOV    TH0,51H
  161.      MOV    IE,#87H       ;开定时器中断0
  162.      MOV    TCON,#15H
  163.      RET
  164. ;======================延时程序==================================
  165. ;输入;无
  166. ;输出: 无
  167. ;实现的功能:延时一段时间
  168. ;================================================================
  169.             DELAY:MOV  R6,#80
  170.                L7:MOV  R5,#60
  171.          L8:DJNZ R5,$
  172.                   DJNZ R6,L7
  173.       RET
  174. ;======================共阳查表数据==============================
  175.         TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
  176. ;===========================结束=================================
  177.          END
复制代码



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

使用道具 举报

沙发
ID:109462 发表于 2016-5-29 02:32 | 只看该作者
非常感谢
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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