18luck网站

18luck网站電子設計 | 18luck网站Rss 2.0 會員中心 會員注冊
搜索: 您現在的位置: 18luck网站 >> 18luck平台 >> 單片機 >> 正文

單片機製作的12864數字鍾

作者:佚名    文章來源:本站原創    點擊數:    更新時間:2008-12-4
           ;"日"
db  22h,0FFh, 02h, 00h, 00h, 00h, 00h, 07h
db  02h, 02h, 02h, 02h, 02h, 07h, 00h, 00h
;***************************************************T0定時子程序<不占區>
org 1000h
ttxx:mov th0,#03ch       ;以下是T0刷新子程序
mov tl0,#0b0h    
push dph
push dpl
push acc
push psw
inc 28h
mov a,28h
cjne a,#05h,tt22         ;刷新5次
mov 28h,#00h
inc 29h                  ;延時500mS兩次
mov a,29h
cjne a,#02h,tt22
mov 29h,#00h
inc 2ah                  ;刷新秒個位
mov a,2ah                ;刷新秒十位
cjne a,#0ah,tt22
mov 2ah,#00h
inc 2bh                  ;刷新秒十位
mov a,2bh
cjne a,#06h,tt22
mov 2bh,#00h
inc 2ch                  ;刷新分個位
mov a,2ch
cjne a,#0ah,tt22
mov 2ch,#00h
inc 2dh                  ;刷新分十位
mov a,2dh
cjne a,#06h,tt22
mov 2dh,#00h
inc 2eh                  ;刷新時個位
mov a,2eh
cjne a,#0ah,tt11
mov 2eh,#00h
inc 2fh                  ;刷新時十位
tt22:pop psw
pop acc
pop dpl
pop dph
reti
tt11:mov a,2eh
cjne a,#04h,tt22
mov a,2fh
cjne a,#02h,tt22
mov 2eh,#00h             ;到24點,時兩位全清零
mov 2fh,#00h
inc 25h
mov a,25h                ;刷新周數據
cjne a,#08h,tt33
mov 25h,#01h
tt33:inc 26h             ;刷新日數據
mov a,26h
cjne a,#32,tt44
mov 26h,#01h
inc 27h
mov a,27h                ;刷新月數據
cjne a,#13,tt55
mov 27h,#1
sjmp tt22
tt55:mov a,27h
anl a,#0fh
cjne a,#0ah,tt22
mov 27h,#10h
sjmp tt22
tt44:mov a,26h
anl a,#0fh
cjne a,#0ah,tt22
mov a,26h
swap a
inc a
anl a,#0fh
swap a
mov 26h,a
sjmp tt22
;***************************************************T1讀紅外代碼子程序<占用區2 >
org 1100h
tt1:push dph       ;保護現場
push dpl
push acc
push psw
jb 01h,t3
jb 02h,t3
jb 00h,t2           ;如果收到遙控引導碼則進入接收識別模式
mov th1,#00h        ;清T1,為接收做準備
mov tl1,#00h
setb 00h            ;設接收遙控波頭準備好標誌位
setb tr1            ;開T1中斷
sjmp t3
t2:setb psw.4       ;進入區2
clr psw.3
mov @r0,th1
mov th1,#00h        ;清T1,準備讀下一位
mov tl1,#00h
inc r0
djnz r1,t3          ;全部信號接收完閉否?
mov 10h,#50h
mov 11h,#2fh
setb 01h            ;設讀取完成與允許轉換標誌位
clr tr1             ;關T1中斷
clr ex1             ;關外部中斷1
clr 00h             ;恢複接收標致位
t3:pop psw
pop acc
pop dpl
pop dph
reti
;***************************************************zh轉換子程序<占用區1>
org 11A0h
zh: push dph           ;將識別後的遙控信號轉換成16位動作代碼
push dpl
push acc
push psw
setb psw.3             ;進入區i
clr psw.4
mov r0,#2fh
mov r1,#07h            ;8位一小組
jb 00h,h01
jb 02h,h01
jb 01h,h0
h00:setb ex1
mov 20h,#00h
mov 21h,#00h
h01:mov 08h,#2fh
mov 09h,#07h
pop psw
pop acc
pop dph
pop dpl
ret
h0: inc r0                 ;取第一組第一位
cjne r0,#71h,h1            ;是否幹擾?
sjmp h00                   ;是則返回
h1: jc h2
sjmp h00
h2: cjne @r0,#03h,h0       ;開始轉換第一組第一位
inc r0
cjne @r0,#03h,h0
inc r0
cjne @r0,#03h,h0
inc r0
cjne @r0,#01h,h0
inc r0
cjne @r0,#01h,h0
inc r0
cjne @r0,#01h,h0
inc r0
cjne @r0,#03h,h0
inc r0
cjne @r0,#01h,h0
cjne r0,#79h,h3         ;地址碼正確否?
sjmp h00
h3: jc h4
sjmp h00
h4: inc r0              ;開始轉換指令碼
mov a,@r0
jb acc.1,h5
clr 08h
sjmp h6
h5: setb 08h
h6: mov a,21h
rl a
mov 21h,a
djnz r1,h4          ;8位指令碼轉換完否?
setb 02h            ;設置允許執行動作標誌位
clr 01h             ;清除允許轉換標誌位
ljmp h01
;***************************************************dz動作子程序<不占區>
org 12A0h
dz: push dph             ;執行相應的動作
push dpl
push acc
push psw
jb 00h,d01
jb 01h,d01
jnb 02h,d01              ;允許動作否?
mov a,21h
cjne a,#0cch,dz2         ;是分增加否?
inc 2ch
mov a,2ch
cjne a,#0ah,d00
mov 2ch,#00h
inc 2dh
mov a,2dh
cjne a,#06h,d00
mov 2dh,#00h
sjmp d00
dz2:mov a,21h            ;是分減少否?
cjne a,#0dch,dz3
mov a,2ch                ;分減1
cjne a,#00h,dz21
mov 2ch,#09h
mov a,2dh
cjne a,#00h,dz22
mov 2dh,#05h
sjmp d00
dz21:dec 2ch
sjmp d00
dz22:dec 2dh
d00:setb ex1             ;全部動作完成後重新打開外部中斷1
mov 20h,#00h             ;清除全部標誌位
mov 21h,#00h             ;清除已完成的動作代碼
setb 20h.7
d01:pop psw
pop acc
pop dpl
pop dph
ret
dz3:mov a,21h            ;是時增加否?
cjne a,#0c4h,dz5
inc 2eh
mov a,2eh
cjne a,#0ah,dz4
mov 2eh,#00h
inc 2fh
sjmp d00
dz4:mov a,2eh
cjne a,#04h,d00
mov a,2fh
cjne a,#02h,d00
mov 2eh,#00h
mov 2fh,#00h
sjmp d00
dz5:mov a,21h
cjne a,#0d4h,dz6         ;是時減少否?
mov a,2eh
cjne a,#00h,dz50
mov 2eh,#9
mov a,2fh
cjne a,#00h,dz51
mov 2fh,#02h             ;判別小時2位均為0則強製2fh=#02h,2eh=#03h
mov 2eh,#03h
sjmp d00
dz50:dec 2eh
sjmp d00
dz51:dec 2fh
sjmp d00
dz6:mov a,21h            ;刷新周數據
cjne a,#044h,dz7
inc 25h
mov a,25h               
cjne a,#08h,dz777
mov 25h,#01h
sjmp dz777
dz7:mov a,21h            ;刷新月數據
cjne a,#054h,dz8
inc 27h                 
mov a,27h
cjne a,#13h,dz71
mov 27h,#1
sjmp dz777
dz71:mov a,27h
anl a,#0fh
cjne a,#0ah,dz777
mov a,27h
anl a,#0f0h
swap a
inc a
swap a
mov 27h,a
dz777:ljmp d00
dz8:mov a,21h            ;是日期增加否?
cjne a,#50h,dz9
inc 26h
mov a,26h
cjne a,#32h,dz81
mov 26h ,#01h
sjmp dz777
dz81:mov a,26h
anl a,#0fh
cjne a,#0ah,dz777
mov a,26h
swap a
inc a
anl a,#0fh
swap a
mov 26h,a
sjmp dz777
dz9:mov a,21h            ;是日期減小否?
cjne a,#48h,dz777
mov a,26h
cjne a,#01h,dz91
mov 26h,#31h
sjmp dz777
dz91:mov a,26h
cjne a,#31h,dz92
dec 26h
sjmp dz777
dz92:mov a,26h
cjne a,#30h,dz93
mov 26h,#29h
sjmp dz777
dz93:mov a,26h
cjne a,#20h,dz94
mov 26h,#19h
sjmp dz777
dz94:mov a,26h
cjne a,#10h,dz95
mov 26h,#09h
sjmp dz777
dz95:dec 26h
sjmp dz777
;***************************************************
END

;lxa12864LCD說明如下:
;CGRAM(自定義(yi) RAM區)地址範圍40h~7Fh。
;DDRAM(顯示RAM區)地址範圍:
;80h~87h為(wei) 第1行。
;88h~8fh為(wei) 第3行。
;90h~97h為(wei) 第2行。
;98h~9fh為(wei) 第4行。
;A0h~AFh,B0h~BFh這2個(ge) 僅(jin) 在卷動功能下有效。

;漢字顯示坐標
;_____________________________________________
;                   x坐標
;  LINE1   80H  81H  82H 83H 84H 85H 86H 87H  
;  LINE2   90H  92H  93H 94H 94H 95H 96H 97H  
;  LINE3   88H  89H  8AH 8BH 8CH 8DH 8EH 8FH  
;  LINE4   98H  99H  9AH 9BH 9CH 9DH 9EH 9FH  
;_____________________________________________

;漢字庫:用宋體(ti) 16.dot縱向取模下高位,數據排列:從(cong) 左到右從(cong) 上到下

上一頁  [1] [2] [3] [4] [5] [6] 

Tags:單片機數字鍾,單片機,數字鍾製作  
責任編輯:admin
請文明參與討論,禁止漫罵攻擊,不要惡意評論、違禁詞語。 昵稱:
1分 2分 3分 4分 5分

還可以輸入 200 個字
[ 查看全部 ] 網友評論
關於我們 - 聯係我們 - 廣告服務 - 友情鏈接 - 網站地圖 - 版權聲明 - 在線幫助 - 文章列表
返回頂部
刷新頁麵
下到頁底
晶體管查詢