⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lcdwnl.asm

📁 说明:本文件夹一共提供各类编程实例200多个
💻 ASM
字号:

;/********************************************************************************
;*  标题:  xl系列单片机实验仪演示程序 1602液晶万年历                            *
;*  文件:   LCDWNL.ASM                                                          *
;*  日期:  2006-1-5                                                             *
;*  版本:  3.0 (试验通过版)可用xl600-xl1000单片机综合试验仪试验               *
;*  邮箱:  sxj1974@163.com                                                      *
;*  网站: http://www.51c51.com    www.8951.com                                 *
;********************************************************************************
;按K1,依次进入闹钟功能,闹钟时间,年,月,日和时,分,秒模式,直致退出设置状态      *
;按K2,调整是否起用闹钟和调节闹钟时,分,秒,年,月,日,时间的时,分,秒的数字          *
;闹钟响时,按K2即可停止闹钟的声响                                               *
;正常状态,上排最前面显示一自定义字符,下排最前面闪动"willar"                    *
;设置状态,LCD上排最前面显示"P",下排最前面设置闹钟时显示"alarm:",其他显示"time:"*
;闹钟启用时,在LCD下排中间显示一小喇叭,闹钟禁用时,无此小喇叭                  *
;年代变化2000--2099,星期自动转换                                                *
;********************************************************************************
;* 【版权】 Copyright(C)深圳市学林电子有限公司 www.51c51.com                    *
;* 【声明】 此程序仅用于学习与参考,引用请注明版权和作者信息!                  *
;*  【技术支持】请访问http://www.51c51.com/bbs/index.asp  官方论坛              *
;********************************************************************************/

;**************变量的定义*****************
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为地址设定命令形式

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -