單片機數(shù)字鐘完整原程序如下:
;Lxa0--12864LCD數(shù)字鐘代碼2008-6-21
;************************************************定義端口
CS1 EQU P2.7 ;CS1=L,選擇左半屏
CS2 EQU P2.6 ;CS2=L,選擇右半屏
RESET EQU P2.5 ;L=Lcm復(fù)位有效
RW EQU P2.4 ;H=讀,L=寫
RS EQU P2.3 ;H=寫數(shù)據(jù),L=寫指令
E EQU P2.2 ;L讀寫使能
com EQU 30H ;指令寄存器
dat EQU 31H ;數(shù)據(jù)寄存器
DATZC EQU 32H ;讀數(shù)據(jù)暫存寄存器
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設(shè)初始值
mov tl0,#0b0h ;TH0=3ch,TL0=b0h
mov tmod,#91h ;T0設(shè)方式1
mov tcon,#14h ;T0設(shè)控制方式
mov ie,#86h ;設(shè)中斷允許
mov ip,#04h ;設(shè)中斷優(yōu)先級別
mov sp,#7fh ;設(shè)堆棧入口
mov r0,#0 ;區(qū)1間址用
mov r1,#0 ;顯示對象的首地址
mov r2,#0 ;顯示對象的寬度
mov 08h,#2fh ;解碼轉(zhuǎn)換用
mov 09h,#07h ;解碼轉(zhuǎn)換用
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 ;讀數(shù)據(jù)暫存
mov 33h,#00h ;行
mov 34h,#00h ;頁
mov 35h,#00h ;列
MOV P0,#0FFH
MOV P0,#0FFH
LCALL YS300 ;延時等待穩(wěn)定
CLR RESET ;LCD復(fù)位
LCALL YS300 ;延時300mS
SETB RESET
CLR CS1 ;選中雙屏
CLR CS2
MOV com,#3EH ;關(guān)顯示
LCALL Wcom
MOV com,#3fh ;開顯示開光標
LCALL Wcom
LCALL CLEAR ;清屏
LCALL CSH ;lcd行頁列復(fù)位
CLR CS1
SETB CS2
MOV 33H,#0C0H ;設(shè)行單元初值
MOV 34H,#0BEH ;設(shè)頁單元初值
MOV 35H,#40H ;設(shè)列單元初值
MOV com,33H ;設(shè)置起始為第1行
LCALL Wcom
MOV com,34H ;設(shè)置第1行0頁
LCALL Wcom
MOV com,35H ;設(shè)置第1行0列
LCALL Wcom
MOV R1,#0 ;寫入烏
LCALL lxazzz
MOV com,33H ;設(shè)置起始為第1行
LCALL Wcom
MOV com,34H ;設(shè)置第1行0頁
LCALL Wcom
MOV com,35H ;設(shè)置第1行0列
LCALL Wcom
MOV R1,#24 ;寫入石
LCALL lxazzz
MOV com,33H ;設(shè)置起始為第1行
LCALL Wcom
MOV com,34H ;設(shè)置第1行0頁
LCALL Wcom
MOV com,35H ;設(shè)置第1行0列
LCALL Wcom
MOV R1,#48 ;寫入化
LCALL lxazzz
MOV com,33H ;設(shè)置起始為第1行
LCALL Wcom
MOV com,34H ;設(shè)置第1行0頁
LCALL Wcom
MOV com,35H ;設(shè)置第1行0列
LCALL Wcom
MOV R1,#72 ;寫入賓
LCALL lxazzz
MOV com,33H ;設(shè)置起始為第1行
LCALL Wcom
MOV com,34H ;設(shè)置第1行0頁
LCALL Wcom
MOV com,35H ;設(shè)置第1行0列
LCALL Wcom
MOV R1,#96 ;寫入館
LCALL lxazzz
SETB CS1
CLR CS2
MOV 33H,#0C0H ;設(shè)行單元初值
MOV 34H,#0BEH ;設(shè)頁單元初值
MOV 35H,#40H ;設(shè)列單元初值
MOV com,33H ;設(shè)置起始為第1行
LCALL Wcom
MOV com,34H ;設(shè)置第1行0頁
LCALL Wcom
MOV com,35H ;設(shè)置第1行0列
LCALL Wcom
MOV R1,#120 ;寫入李
LCALL lxazzz
MOV com,33H ;設(shè)置起始為第1行
LCALL Wcom
MOV com,34H ;設(shè)置第1行0頁
LCALL Wcom
MOV com,35H ;設(shè)置第1行0列
LCALL Wcom
MOV R1,#144 ;寫入小
LCALL lxazzz
MOV com,33H ;設(shè)置起始為第1行
LCALL Wcom
MOV com,34H ;設(shè)置第1行0頁
LCALL Wcom
MOV com,35H ;設(shè)置第1行0列
LCALL Wcom
MOV R1,#168 ;寫入安
LCALL lxazzz
MOV com,33H ;設(shè)置起始為第1行
LCALL Wcom
MOV com,34H ;設(shè)置第1行0頁
LCALL Wcom
MOV com,35H ;設(shè)置第1行0列
LCALL Wcom
MOV R1,#192 ;寫入制
LCALL lxazzz
MOV com,33H