东方华威汽车电子技术论坛 汽车电子技术论坛 |汽车电子技术论坛|汽车电子论坛|汽车技术论坛|汽车维修技术论坛|汽车维修论坛|汽车检测仪器|汽车解码器|里程表调校设备|防盗钥匙匹配设备|气囊电脑修  防盗匹配  气囊数据恢复  音响解码   电脑板维修  电脑解码

 找回密码
 立即注册
查看: 367|回复: 2

LCD1602显示时间

[复制链接]
发表于 2019-6-4 00:27:46 | 显示全部楼层 |阅读模式
  1. ;液晶初始化,显示数字,按秒计数
  2.    RS EQU P0.0
  3.    RW EQU P0.1
  4.    E  EQU P0.2
  5. IN_0 EQU P2
  6. SECL EQU 40H   ;秒低位
  7. SECH EQU 41H   ;秒高位
  8. MH1  EQU 42H   ;冒号
  9. MINL EQU 43H   ;分低位
  10. MINH EQU 44H   ;分高位
  11. MH2  EQU 45H   ;冒号
  12. HOURL EQU 46H   ;时低位
  13. HOURH EQU 47H   ;时高位
  14. ;==============================
  15.       ORG 00H
  16.      AJMP START
  17.       ORG 0BH
  18.      AJMP INTT_0
  19. START: MOV SP,#70H     ;堆栈地址
  20.        MOV R2,#20D
  21.      ACALL INIT_LCD    ;初始化液晶
  22.        MOV R5,#00H
  23.        MOV IN_0,#84H   ;写入显示地址位置(第一行第五位)
  24.      ACALL ENABLE
  25.        MOV TH0,#3FH    ;50MS定时
  26.        MOV TL0,#0B0H
  27.        MOV TMOD,#01H
  28.      ACALL SJCZ
  29. START1:SETB EA
  30.        SETB ET0
  31.        SETB TR0
  32.       LCALL WDATA
  33.        AJMP START1
  34. ;==========时间初值===============
  35. SJCZ:  MOV 40H,#0
  36.        MOV 41H,#0
  37.        MOV 42H,#10
  38.        MOV 43H,#0
  39.        MOV 44H,#0
  40.        MOV 45H,#10
  41.        MOV 46H,#0
  42.        MOV 47H,#0
  43.        RET
  44. ;==========T0定时器中断==============
  45. INTT_0: PUSH ACC
  46.          MOV TH0,#3FH      ;送50MS定时值
  47.          MOV TL0,#0B0H
  48.         DJNZ R2,TT
  49.          MOV R2,#20
  50.          INC SECL          ;秒计数,到60S就清0
  51.          MOV A,SECL
  52.         CJNE A,#0AH,TT
  53.          INC SECH
  54.          MOV SECL,#0
  55.          MOV A,SECH
  56.         CJNE A,#06D,TT     
  57.          MOV SECH,#0D
  58.          INC MINL          ;分计数到60分清0
  59.          MOV A,MINL
  60.         CJNE A,#0AH,TT
  61.          MOV MINL,#0
  62.          INC MINH
  63.          MOV A,MINH
  64.         CJNE A,#06H,TT
  65.          MOV MINH,#0
  66.          INC HOURL          ;时计数到24清0
  67.          MOV A,HOURL
  68.         CJNE A,#04H,TT2
  69.          MOV A,HOURH
  70.         CJNE A,#02H,TT1
  71.          MOV HOURL,#0D
  72.          MOV HOURH,#0D
  73.         AJMP TT
  74. TT2:    CJNE A,#0AH,TT
  75.          MOV HOURL,#0
  76.          INC HOURH
  77.         AJMP TT
  78. TT1:    MOV A,HOURL
  79.         CJNE A,#0AH,TT
  80.         MOV HOURL,#0D
  81.         INC HOURH
  82.         AJMP TT
  83. TT:     POP ACC
  84.         RETI
  85. ;===========液晶初始化==============
  86. INIT_LCD:   CALL DELAYL          ;延时20MS,等待电源的启动
  87.             MOV IN_0,#01H        ;清屏并光标复位
  88.            ACALL ENABLE
  89.             MOV IN_0,#38H        ;设置显示模式:8位2行 5X7点阵
  90.            ACALL ENABLE
  91.             MOV IN_0,#0FH        ;显示器开 光标开 光标允许闪烁
  92.            ACALL ENABLE
  93.             MOV IN_0,#06H        ;文字不动 光标自动右移
  94.            ACALL ENABLE
  95.             MOV IN_0,#0C0H       ;写入显示地址(第二行 第一位)
  96.            ACALL ENABLE
  97.             RET
  98. ;==========写数据程序====================
  99. WDATA:     MOV IN_0,#84H         ;写入显示起始地址(第一行第五位置)
  100.           ACALL ENABLE
  101.            MOV R1,#8D
  102.            MOV R0,#47H
  103. WDATA1:    MOV A,@R0
  104.            MOV DPTR,#TABLE
  105.            MOVC A,@A+DPTR
  106.            MOV IN_0,A            ;写入数据
  107.            SETB RS
  108.             CLR RW
  109.             CLR E
  110.           ACALL CHECKBUSY        ;忙检测
  111.            SETB E               
  112.             DEC R0
  113.            DJNZ R1,WDATA1
  114.             MOV R1,#8D
  115.             RET
  116. ;============写指令===============
  117. ENABLE:    CLR RS
  118.            CLR RW
  119.            CLR E
  120.          ACALL CHECKBUSY
  121.           SETB E
  122.            RET
  123. ;===========程序忙检测============
  124. CHECKBUSY: MOV IN_0,#0FFH      ;判断液晶是佛忙的子程序
  125.            CLR RS
  126.           SETB RW
  127.            CLR E
  128.            NOP
  129.           SETB E
  130.            JB P2.7,CHECKBUSY   ;如果P2.7为高电平表示忙就循环等待
  131.            RET
  132. ;==============延时程序==============
  133. DELAY:     MOV R6,#50D
  134. DEL:       MOV R7,#48D
  135.           DJNZ R7,$
  136.           DJNZ R6,DEL
  137.            RET

  138. DELAYL:    MOV R7,#100D
  139. DEH:       MOV R6,#98D
  140.           DJNZ R6,$
  141.           DJNZ R7,DEH
  142.            RET
  143. ;============显示字母表-================
  144. TABLE: DB 30H,31H,32H,33H,34H,35H  ;0 1 2 3 4 5
  145.        DB 36H,37H,38H,39H,3AH,80H,2EH ;6 7 8 9 : 空格
  146. END
复制代码
回复

使用道具 举报

发表于 2019-6-15 10:53:18 | 显示全部楼层
用单片机做时钟有点浪费了
回复 支持 反对

使用道具 举报

发表于 2019-6-20 20:40:23 | 显示全部楼层
我也想做,就没做出来
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|小黑屋|手机版|东方华威汽车电子 ( 吉ICP备15003515号-1

GMT+8, 2019-10-19 13:02 , Processed in 0.167122 second(s), 18 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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