找回密码
 立即注册

QQ登录

只需一步,快速开始

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

51单片机汇编电子秒表

[复制链接]
跳转到指定楼层
楼主


单片机汇编语言源程序如下:
  1. LED_0          EQU  30H            ;存放三个数码管的段码
  2. LED_1  EQU  31H           ;十位
  3. LED_2  EQU  32H           ;百位
  4. LED_3  EQU  33H           ;千位
  5. ADC EQU 35H                   ;存放转换后的数据
  6. CLOCK BIT P1.4           ;定义0809时钟位
  7. ST  BIT         P1.5
  8. OE  BIT         P1.7
  9. EOC BIT         P1.6     
  10.       ORG          00H
  11.       SJMP         START
  12.       ORG         0BH
  13.       LJMP         INT_T0
  14.       ORG         30H
  15. START:          MOV LED_0,#00H         
  16.                MOV LED_1,#00H            
  17.                MOV LED_2,#00H        
  18.                MOV DPTR,#TABLE  ;送段码表首地址
  19.                MOV TMOD,#02H
  20.                MOV TH0,#245
  21.                       MOV TL0,#00H
  22.                       MOV IE,#82H
  23.                SETB TR0      
  24. WAIT:          CLR  ST      
  25.                SETB  ST              
  26.                CLR  ST                    ;启动转换      
  27.                JNB  EOC,$            ;等待转换结束         
  28.                SETB  OE             ;允许输出      
  29.                MOV  ADC,P2           ;暂存转换结果      
  30.                CLR  OE              ;关闭输出      
  31.                MOV  A,ADC          ;将AD转换结果转换成BCD码      
  32.                MOV  R7,A            
  33.                MOV  LED_3,#00H         
  34.                MOV  LED_2,#00H      
  35.                MOV  A,#00H
  36. LOOP1:         ADD  A,#20H    ;一位二进制码对应20mv电压值
  37.                DA  A
  38.                JNC   LOOP2
  39.                MOV  R4,A
  40.                INC  LED_2
  41. MOV  A,LED_2
  42.        CJNE  A,#0AH,LOOP4
  43.        MOV  LED_2,#00H
  44.        INC  LED_3
  45. LOOP4:  MOV  A,R4
  46. LOOP2:  DJNZ  R7,LOOP1
  47.         ACALL  BTOD1
  48. LCALL  DISP
  49. SJMP   WAIT
  50. ORG  200H
  51. BTOD1:  MOV  R6,A
  52.         ANL  A,#0F0H
  53. MOV  R5,#4
  54. LOOP3:  RR  A
  55.         DJNZ  R5,LOOP3
  56. MOV  LED_1,A
  57. MOV   A,R6
  58. ANL  A,#0FH
  59. MOV  LED_0,A
  60. RET
  61. INT_T0:  CPL  CLOCK      ;提供0809时钟信号
  62. RETI
  63. DISP: MOV A,LED_0   ;数码显示子程序           
  64.      MOVC A,@A+DPTR     
  65.      CLR P1.3     
  66.      MOV P0,A     
  67.      LCALL   DELAY     
  68.      SETB  P1.3      
  69.      MOV A,LED_1     
  70.      MOVC A,@A+DPTR     
  71.      CLR  P1.2     
  72.      MOV  P0,A        
  73.      LCALL  DELAY     
  74.      SETB P1.2        
  75.      MOV A,LED_2     
  76.      MOVC A,@A+DPTR               
  77.      CLR P1.1   
  78.      MOV P0,A     
  79.      LCALL  DELAY     
  80.      SETB P1.1
  81.      MOV A,LED_3
  82.      MOVC A,@A+DPTR               
  83.      CLR P1.0
  84.      MOV  P0,A
  85.      LCALL  DELAY
  86.      SETB  P1.0
  87.      RET
  88. DELAY: MOV R6,#10   ;延时5毫秒
  89. D1: MOV R7,#250      
  90. DJNZ R7,$     
  91. DJNZ R6,D1     
  92. RET
  93. TABLE: DB  3FH,06H,5BH,4FH,66H     ;共阴极数码管七段值
  94.       DB  6DH,7DH,07H,7FH,6FH
  95.       END


复制代码


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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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