单片机数字钟完整原程序如下:
;Lxa0--12864LCD数字钟代码2008-6-21
;************************************************定义端口
CS1 EQU P2.7 ;CS1=L,选择左半屏
CS2 EQU P2.6 ;CS2=L,选择右半屏
RESET EQU P2.5 ;L=Lcm复位有效
RW EQU P2.4 ;H=读,L=写
RS EQU P2.3 ;H=写数据,L=写指令
E EQU P2.2 ;L读写使能
com EQU 30H ;指令寄存器
dat EQU 31H ;数据寄存器
DATZC EQU 32H ;读数据暂存寄存器
DH EQU 33H ;行地址
DY EQU 34H ;页地址
DL EQU 35H ;列地址
;************************************************
org 0000h
ljmp mm
org 000bh
ljmp ttxx
org 0013h
ljmp tt1
;************************************************初始化
ORG 0100H
mm: mov th0,#03ch ;T0设初始值
mov tl0,#0b0h ;TH0=3ch,TL0=b0h
mov tmod,#91h ;T0设方式1
mov tcon,#14h ;T0设控制方式
mov ie,#86h ;设中断允许
mov ip,#04h ;设中断优先级别
mov sp,#7fh ;设堆栈入口
mov r0,#0 ;区1间址用
mov r1,#0 ;显示对象的首地址
mov r2,#0 ;显示对象的宽度
mov 08h,#2fh ;解码转换用
mov 09h,#07h ;解码转换用
mov 10h,#50h ;读红外波头存放首址
mov 11h,#2fh ;读红外波头48个
mov 20h,#00h ;动作标志位1
mov 21h,#00h ;动作标志位2
mov 22h,#00h ;备用
mov 23h,#00h ;备用
mov 24h,#00h ;备用
mov 25h,#7 ;周
mov 26h,#1 ;日
mov 27h,#7 ;月
mov 28h,#00h ;5次
mov 29h,#00h ;2次
mov 2ah,#00h ;秒个位
mov 2bh,#00h ;秒十位
mov 2ch,#00h ;分个位
mov 2dh,#00h ;分十位
mov 2eh,#00h ;时个位
mov 2fh,#00h ;时十位
mov 30h,#00h ;com占用
mov 31h,#00h ;dat占用
mov 32h,#00h ;读数据暂存
mov 33h,#00h ;行
mov 34h,#00h ;页
mov 35h,#00h ;列
MOV P0,#0FFH
MOV P0,#0FFH
LCALL YS300 ;延时等待稳定
CLR RESET ;LCD复位
LCALL YS300 ;延时300mS
SETB RESET
CLR CS1 ;选中双屏
CLR CS2
MOV com,#3EH ;关显示
LCALL Wcom
MOV com,#3fh ;开显示开光标
LCALL Wcom
LCALL CLEAR ;清屏
LCALL CSH ;lcd行页列复位
CLR CS1
SETB CS2
MOV 33H,#0C0H ;设行单元初值
MOV 34H,#0BEH ;设页单元初值
MOV 35H,#40H ;设列单元初值
MOV com,33H ;设置起始为第1行
LCALL Wcom
MOV com,34H ;设置第1行0页
LCALL Wcom
MOV com,35H ;设置第1行0列
LCALL Wcom
MOV R1,#0 ;写入乌
LCALL lxazzz
MOV com,33H ;设置起始为第1行
LCALL Wcom
MOV com,34H ;设置第1行0页
LCALL Wcom
MOV com,35H ;设置第1行0列
LCALL Wcom
MOV R1,#24 ;写入石
LCALL lxazzz
MOV com,33H ;设置起始为第1行
LCALL Wcom
MOV com,34H ;设置第1行0页
LCALL Wcom
MOV com,35H ;设置第1行0列
LCALL Wcom
MOV R1,#48 ;写入化
LCALL lxazzz
MOV com,33H ;设置起始为第1行
LCALL Wcom
MOV com,34H ;设置第1行0页
LCALL Wcom
MOV com,35H ;设置第1行0列
LCALL Wcom
MOV R1,#72 ;写入宾
LCALL lxazzz
MOV com,33H ;设置起始为第1行
LCALL Wcom
MOV com,34H ;设置第1行0页
LCALL Wcom
MOV com,35H ;设置第1行0列
LCALL Wcom
MOV R1,#96 ;写入馆
LCALL lxazzz
SETB CS1
CLR CS2
MOV 33H,#0C0H ;设行单元初值
MOV 34H,#0BEH ;设页单元初值
MOV 35H,#40H ;设列单元初值
MOV com,33H ;设置起始为第1行
LCALL Wcom
MOV com,34H ;设置第1行0页
LCALL Wcom
MOV com,35H ;设置第1行0列
LCALL Wcom
MOV R1,#120 ;写入李
LCALL lxazzz
MOV com,33H ;设置起始为第1行
LCALL Wcom
MOV com,34H ;设置第1行0页
LCALL Wcom
MOV com,35H ;设置第1行0列
LCALL Wcom
MOV R1,#144 ;写入小
LCALL lxazzz
MOV com,33H ;设置起始为第1行
LCALL Wcom
MOV com,34H ;设置第1行0页
LCALL Wcom
MOV com,35H ;设置第1行0列
LCALL Wcom
MOV R1,#168 ;写入安
LCALL lxazzz
MOV com,33H ;设置起始为第1行
LCALL Wcom
MOV com,34H ;设置第1行0页
LCALL Wcom
MOV com,35H ;设置第1行0列
LCALL Wcom
MOV R1,#192 ;写入制
LCALL lxazzz
MOV com,33H