打印

1602液晶万年历汇编

[复制链接]
1530|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ledrgb|  楼主 | 2008-7-30 22:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
;********************************************************************************
;按K1,依次进入闹钟功能,闹钟时间,年,月,日和时,分,秒模式,直致退出设置状态      *
;按K2,调整是否起用闹钟和调节闹钟时,分,秒,年,月,日,时间的时,分,秒的数字          *
;闹钟响时,按K2即可停止闹钟的声响                                               *
;正常状态,上排最前面显示一自定义字符,下排最前面闪动"willar"                    *
;设置状态,LCD上排最前面显示"P",下排最前面设置闹钟时显示"alarm:",其他显示"time:"*
;闹钟启用时,在LCD下排中间显示一小喇叭,闹钟禁用时,无此小喇叭                  *
;年代变化2000--2099,星期自动转换                                                *
[龙图开发网: http://www.longtoo.com ]


;**************变量的定义*****************
RS  BIT P2.0  ;LCD数据/命令选择端(H/L)
RW  BIT     P2.1     ;LCD读/写选择端(H/L)
EP  BIT  P2.2  ;LCD使能控制
PRE  BIT   P1.4  ;调整键(K1)
ADJ  BIT P1.5  ;调整键(K2)
SPK  BIT     P3.7  ;闹钟声音输出口

YEAR   DATA 18H  ;年,月,日变量
MONTH  DATA 19H
DATE  DATA  1AH
WEEK  DATA  1BH

HOUR  DATA  1CH  ;时,分,秒,百分之一秒变量
MIN  DATA 1DH
SEC  DATA 1EH
SEC100  DATA 1FH

HOUR_ARM DATA  20H  ;闹钟时,分,秒,变量
MIN_ARM  DATA 21H
SEC_ARM  DATA 22H

STATE  DATA 23H
ALARM  BIT STATE.0  ;闹钟是否启用标志1--启用,0--禁止
LEAP  BIT STATE.1  ;是否闰年标志1--闰年,0--平年

KEY_S  DATA 24H  ;当前扫描键值
KEY_V  DATA 25H  ;上次扫描键值

DIS_BUF_U0 DATA 26H  ;LCD上排显示缓冲区
DIS_BUF_U1 DATA 27H
DIS_BUF_U2 DATA 28H
DIS_BUF_U3 DATA 29H
DIS_BUF_U4 DATA 2AH
DIS_BUF_U5 DATA 2BH
DIS_BUF_U6 DATA 2CH
DIS_BUF_U7 DATA 2DH
DIS_BUF_U8 DATA 2EH
DIS_BUF_U9 DATA 2FH
DIS_BUF_U10 DATA 30H
DIS_BUF_U11 DATA 31H
DIS_BUF_U12 DATA 32H
DIS_BUF_U13 DATA 33H
DIS_BUF_U14 DATA 34H
DIS_BUF_U15 DATA 35H


DIS_BUF_L0 DATA 36H  ;LCD下排显示缓冲区
DIS_BUF_L1 DATA 37H
DIS_BUF_L2 DATA 38H
DIS_BUF_L3 DATA 39H
DIS_BUF_L4 DATA 3AH
DIS_BUF_L5 DATA 3BH
DIS_BUF_L6 DATA 3CH
DIS_BUF_L7 DATA 3DH
DIS_BUF_L8 DATA 3EH
DIS_BUF_L9 DATA 3FH
DIS_BUF_L10 DATA 40H
DIS_BUF_L11 DATA 41H
DIS_BUF_L12 DATA 42H
DIS_BUF_L13 DATA 43H
DIS_BUF_L14 DATA 44H
DIS_BUF_L15 DATA 45H

FLAG  DATA 46H  ;标识调整状态 0-闹钟功能,1-闹钟时,2-闹钟分,3-闹钟秒
     ;4-年,5-月,6-日,7-时,8-分,9-秒,10-退出调整。
DIS_H  DATA 47H
DIS_M  DATA 48H
DIS_S  DATA 49H

DIS_S0  DATA 4AH
DIS_S1  DATA 4BH
DIS_S2  DATA 4CH
DIS_S3  DATA 4DH
DIS_S4  DATA 4EH
DIS_S5  DATA 4FH


;******************初始化***********************
  ORG 0000H
  LJMP START
  ORG 000BH
  LJMP TIMER0
  ORG 001BH
  LJMP TIMER1
  ORG 0100H
START:  MOV SP,#60H
  MOV R0,#18H
  MOV A,#00H
MEM_INI: MOV @R0,A
  INC R0
  CJNE R0,#5FH,MEM_INI
  LCALL DELAY_5ms ;初始化LCD
  MOV R0,#38H  ;设置LCD为16X2显示,5X7点阵,八位数据接口
  LCALL LCD_WCMD
  LCALL DELAY_5ms
  MOV R0,#0CH  ;设置LCD开显示及光标形式(光标不闪烁,不显示"-")
  LCALL LCD_WCMD
  LCALL DELAY_5ms
  MOV R0,#06H  ;LCD显示光标移动设置(光标地址指针加1,整屏显示不移动)
  LCALL LCD_WCMD
  LCALL DELAY_5ms
  MOV R0,#01H  ;清除LCD的显示内容
  LCALL LCD_WCMD
  LCALL DELAY_5ms


     ;第一自定义字符:
  MOV R0,#40H
  LCALL lcd_wcmd ;"01 000 000"第1行地址 (D7D6为地址设定命令形式

相关帖子

沙发
sz_kd| | 2008-7-30 22:50 | 只看该作者

不错,顶

使用特权

评论回复
板凳
simgong| | 2008-8-5 14:48 | 只看该作者

我是个初学者,收藏后慢慢学习

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

16

主题

16

帖子

0

粉丝