單片機數字鍾完整原程序如下:
;Lxa0--12864LCD數字鍾代碼2008-6-21
;************************************************定義(yi) 端口
CS1 EQU P2.7 ;CS1=L,選擇左半屏
CS2 EQU P2.6 ;CS2=L,選擇右半屏
RESET EQU P2.5 ;L=Lcm複位有效
RW EQU P2.4 ;H=讀,L=寫(xie)
RS EQU P2.3 ;H=寫(xie) 數據,L=寫(xie) 指令
E EQU P2.2 ;L讀寫(xie) 使能
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 ;設中斷優(you) 先級別
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個(ge)
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 ;秒個(ge) 位
mov 2bh,#00h ;秒十位
mov 2ch,#00h ;分個(ge) 位
mov 2dh,#00h ;分十位
mov 2eh,#00h ;時個(ge) 位
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 ;關(guan) 顯示
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 ;設置起始為(wei) 第1行
LCALL Wcom
MOV com,34H ;設置第1行0頁
LCALL Wcom
MOV com,35H ;設置第1行0列
LCALL Wcom
MOV R1,#0 ;寫(xie) 入烏(wu)
LCALL lxazzz
MOV com,33H ;設置起始為(wei) 第1行
LCALL Wcom
MOV com,34H ;設置第1行0頁
LCALL Wcom
MOV com,35H ;設置第1行0列
LCALL Wcom
MOV R1,#24 ;寫(xie) 入石
LCALL lxazzz
MOV com,33H ;設置起始為(wei) 第1行
LCALL Wcom
MOV com,34H ;設置第1行0頁
LCALL Wcom
MOV com,35H ;設置第1行0列
LCALL Wcom
MOV R1,#48 ;寫(xie) 入化
LCALL lxazzz
MOV com,33H ;設置起始為(wei) 第1行
LCALL Wcom
MOV com,34H ;設置第1行0頁
LCALL Wcom
MOV com,35H ;設置第1行0列
LCALL Wcom
MOV R1,#72 ;寫(xie) 入賓
LCALL lxazzz
MOV com,33H ;設置起始為(wei) 第1行
LCALL Wcom
MOV com,34H ;設置第1行0頁
LCALL Wcom
MOV com,35H ;設置第1行0列
LCALL Wcom
MOV R1,#96 ;寫(xie) 入館
LCALL lxazzz
SETB CS1
CLR CS2
MOV 33H,#0C0H ;設行單元初值
MOV 34H,#0BEH ;設頁單元初值
MOV 35H,#40H ;設列單元初值
MOV com,33H ;設置起始為(wei) 第1行
LCALL Wcom
MOV com,34H ;設置第1行0頁
LCALL Wcom
MOV com,35H ;設置第1行0列
LCALL Wcom
MOV R1,#120 ;寫(xie) 入李
LCALL lxazzz
MOV com,33H ;設置起始為(wei) 第1行
LCALL Wcom
MOV com,34H ;設置第1行0頁
LCALL Wcom
MOV com,35H ;設置第1行0列
LCALL Wcom
MOV R1,#144 ;寫(xie) 入小
LCALL lxazzz
MOV com,33H ;設置起始為(wei) 第1行
LCALL Wcom
MOV com,34H ;設置第1行0頁
LCALL Wcom
MOV com,35H ;設置第1行0列
LCALL Wcom
MOV R1,#168 ;寫(xie) 入安
LCALL lxazzz
MOV com,33H ;設置起始為(wei) 第1行
LCALL Wcom
MOV com,34H ;設置第1行0頁
LCALL Wcom
MOV com,35H ;設置第1行0列
LCALL Wcom
MOV R1,#192 ;寫(xie) 入製
LCALL lxazzz
MOV com,33H