欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
單片機(jī)制作DS1302 LCD1602顯示年歷時(shí)鐘 匯編程序+電路圖
[打印本頁]
作者:
lianlian
時(shí)間:
2015-7-10 02:47
標(biāo)題:
單片機(jī)制作DS1302 LCD1602顯示年歷時(shí)鐘 匯編程序+電路圖
程序清單:
;DS1302 1602LCD顯示
;2016 04 26 E:\D[J\DS1302LCD\DS1302LCD.ASM
H_ADJ BIT P2.0 ;時(shí)/年調(diào)整
M_ADJ BIT P2.1 ;分/月調(diào)整
S_ADJ BIT P2.2 ;秒/日調(diào)整
DT_SET BIT P2.3 ;時(shí)間/日期選擇
W_ADJ BIT P2.4 ;星期調(diào)整
STR BIT P2.5 ;啟動走時(shí)
T_RST BIT P3.2 ;實(shí)時(shí)時(shí)鐘復(fù)位線引腳
T_CLK BIT P3.3 ;實(shí)時(shí)時(shí)鐘時(shí)鐘線引腳
T_IO BIT P3.4 ;實(shí)時(shí)時(shí)鐘數(shù)據(jù)線引腳
E BIT P3.5
RW BIT P3.6
RS BIT P3.7
DL_BIT EQU 20H ;日低位
DH_BIT EQU 21H ;日高位
MOL_BIT EQU 22H ;月低位
MOH_BIT EQU 23H ;月高位
YL_BIT EQU 24H ;年低位
YH_BIT EQU 25H ;年高位
SL_BIT EQU 26H ;秒低位
SH_BIT EQU 27H ;秒高位
ML_BIT EQU 28H ;分低位
MH_BIT EQU 29H ;分高位
HL_BIT EQU 2AH ;時(shí)低位
HH_BIT EQU 2BH ;時(shí)高位
SEC EQU 30H
MIN EQU 31H
HOUR EQU 32H
DAY EQU 33H
MONTH EQU 34H
WEEK EQU 35H
YEAR EQU 36H
DS1302_ADDR EQU 5EH
DS1302_DATA EQU 5FH
ORG 00H
LJMP MAIN
ORG 0BH
AJMP T0INT
ORG 30H
MAIN:
MOV SP,#60H
MOV TMOD,#01H
MOV TH0,#3CH
MOV TL0,#0B0H
MOV R0,#10
SETB EA
SETB ET0
SETB TR0
MOV R1,37H
MOV YEAR,#11H ;上電預(yù)置日期、時(shí)間
MOV WEEK,#00H ;周1 MON
MOV MONTH,#04H ;2011 04 25 12:00:00
MOV DAY,#25H
MOV HOUR,#12H
MOV MIN,#00H
MOV SEC,#00H
MAIN1:
LCALL KEY
JB F0,MAIN10 ;F0=1,開始走時(shí)。走時(shí)前寫,不讀。走時(shí)后讀,不寫。
LCALL WR1302
AJMP MAIN2
MAIN10:
LCALL RD1302
MAIN2:
MOV A,YEAR
MOV B,#10H
DIV AB
MOV YL_BIT,B
MOV YH_BIT,A
MOV A,MONTH
MOV B,#10H
DIV AB
MOV MOL_BIT,B
MOV MOH_BIT,A
MOV A,DAY
MOV B,#10H
DIV AB
MOV DL_BIT,B
MOV DH_BIT,A
MOV A,HOUR
MOV B,#10H
DIV AB
MOV HL_BIT,B
MOV HH_BIT,A
MOV A,MIN
MOV B,#10H
DIV AB
MOV ML_BIT,B
MOV MH_BIT,A
MOV A,SEC
MOV B,#10H
DIV AB
MOV SL_BIT,B
MOV SH_BIT,A
JNB 7CH,MAIN1 ;0.5S標(biāo)志
CLR 7CH
LCALL WEEKCOV ;星期數(shù)字轉(zhuǎn)換成英語縮寫3 字母
LCALL DISP
AJMP MAIN1
KEY: ;按鍵子程序
KEY_SET:
JB DT_SET,KEY_H
ACALL D10MS
JNB DT_SET,$-2
CPL 7FH
JB F0,RT
CPL P2.7 ;點(diǎn)亮日期設(shè)定
AJMP RT
KEY_H:
JB H_ADJ,KEY_M
ACALL D10MS
JNB H_ADJ,$-2
AJMP H_ADD
KEY_M:
JB M_ADJ,KEY_S
ACALL D10MS
JNB M_ADJ,$-2
AJMP M_ADD
KEY_S:
JB S_ADJ,KEY_W
ACALL D10MS
JNB S_ADJ,$-2
AJMP S_ADD
KEY_W:
JB W_ADJ,KEY_ST
ACALL D10MS
JNB W_ADJ,$-2
AJMP W_ADD
KEY_ST:
JB STR,RT
ACALL D10MS
JNB STR,$-2
AJMP K_STR
RT:
RET
H_ADD:
JB 7FH,Y_ADD ;7FH為日期/時(shí)間切換鍵標(biāo)志。1為年月日。
MOV A,HOUR
ADD A,#01H
DA A
CJNE A,#24H,H_ADD1
MOV A,#0
H_ADD1:
MOV HOUR,A
AJMP RT
Y_ADD:
MOV A,YEAR
ADD A,#01H
DA A
CJNE A,#20H,Y_ADD1
MOV A,#0
Y_ADD1:
MOV YEAR,A
AJMP RT
M_ADD:
JB 7FH,MO_ADD
MOV A,MIN
ADD A,#01H
DA A
CJNE A,#60H,M_ADD1
MOV A,#00H
M_ADD1:
MOV MIN,A
AJMP RT
MO_ADD:
MOV A,MONTH
ADD A,#01H
DA A
CJNE A,#13H,MO_ADD1
MOV A,#1
MO_ADD1:
MOV MONTH,A
AJMP RT
S_ADD:
JB 7FH,D_ADD
MOV A,SEC
ADD A,#01H
DA A
CJNE A,#60H,S_ADD1
MOV A,#00H
S_ADD1:
MOV SEC,A
AJMP RT
D_ADD:
MOV A,DAY
ADD A,#01H
DA A
CJNE A,#32H,D_ADD1
MOV A,#01H
D_ADD1:
MOV DAY,A
AJMP RT
W_ADD:
MOV A,WEEK
ADD A,#01H
DA A
CJNE A,#7H,W_ADD1
MOV A,#0
W_ADD1:
MOV WEEK,A
AJMP RT
K_STR:
MOV DS1302_ADDR,#80H ;開始振蕩
MOV DS1302_DATA,SEC
LCALL WRITE
MOV DS1302_ADDR,#8EH ;禁止寫入1302
MOV DS1302_DATA,#80H
LCALL WRITE
SETB F0
CLR P2.7
AJMP RT
WR1302:
MOV DS1302_ADDR,#8EH
MOV DS1302_DATA,#00H ;允許寫1302
LCALL WRITE
MOV DS1302_ADDR,#80H
MOV DS1302_DATA,#80H ;1302停止振蕩
LCALL WRITE
MOV DS1302_ADDR,#8CH ;年寫入1302
MOV DS1302_DATA,YEAR
LCALL WRITE
MOV DS1302_ADDR,#8AH ;周寫入1302
MOV DS1302_DATA,WEEK
LCALL WRITE
MOV DS1302_ADDR,#88H ;月寫入1302
MOV DS1302_DATA,MONTH
LCALL WRITE
MOV DS1302_ADDR,#86H ;日寫入1302
MOV DS1302_DATA,DAY
LCALL WRITE
MOV DS1302_ADDR,#84H ;時(shí)寫入1302
MOV DS1302_DATA,HOUR
LCALL WRITE
MOV DS1302_ADDR,#82H ;分寫入1302
MOV DS1302_DATA,MIN
LCALL WRITE
MOV DS1302_ADDR,#82H ;秒寫入1302
MOV DS1302_DATA,MIN
LCALL WRITE
RET
WRITE:
CLR T_CLK
NOP
SETB T_RST
NOP
MOV A,DS1302_ADDR
MOV R4,#8
WRITE1:
RRC A
NOP
NOP
CLR T_CLK
NOP
NOP
NOP
MOV T_IO,C
NOP
NOP
NOP
SETB T_CLK
NOP
NOP
DJNZ R4,WRITE1
CLR T_CLK
NOP
MOV A,DS1302_DATA
MOV R4,#8
WRITE2:
RRC A
NOP
CLR T_CLK
NOP
NOP
MOV T_IO,C
NOP
NOP
NOP
SETB T_CLK
NOP
NOP
DJNZ R4,WRITE2
CLR T_RST
RET
RD1302:
MOV DS1302_ADDR,#8DH ;年讀出
LCALL READ
MOV YEAR,DS1302_DATA
MOV DS1302_ADDR,#8BH ;周讀出
LCALL READ
MOV WEEK,DS1302_DATA
MOV DS1302_ADDR,#89H ;月讀出
LCALL READ
MOV MONTH,DS1302_DATA
MOV DS1302_ADDR,#87H ;日讀出
LCALL READ
MOV DAY,DS1302_DATA
MOV DS1302_ADDR,#85H ;時(shí)讀出
LCALL READ
MOV HOUR,DS1302_DATA
MOV DS1302_ADDR,#83H ;分讀出
LCALL READ
MOV MIN,DS1302_DATA
MOV DS1302_ADDR,#81H ;秒讀出
LCALL READ
MOV SEC,DS1302_DATA
RET
READ:
CLR T_CLK
NOP
NOP
SETB T_RST
NOP
MOV A,DS1302_ADDR
MOV R4,#8
READ1:
RRC A
MOV T_IO,C
NOP
NOP
NOP
SETB T_CLK
NOP
NOP
NOP
CLR T_CLK
NOP
NOP
DJNZ R4,READ1
MOV R4,#8
READ2:
CLR T_CLK
NOP
NOP
NOP
MOV C,T_IO
NOP
NOP
NOP
NOP
NOP
RRC A
NOP
NOP
NOP
NOP
SETB T_CLK
NOP
DJNZ R4,READ2
MOV DS1302_DATA,A
CLR T_RST
RET
DISP:
MOV A,#30H ;16進(jìn)制轉(zhuǎn)ASCII
ORL YH_BIT, A
ORL YL_BIT, A
ORL MOH_BIT, A
ORL MOL_BIT, A
ORL DH_BIT, A
ORL DL_BIT, A
;LCALL WEEKCOV
ORL HH_BIT, A
ORL HL_BIT, A
ORL MH_BIT, A
ORL ML_BIT, A
ORL SH_BIT, A
ORL SL_BIT, A
LCALL INIT_1602
MOV A, #10000000B ; LINE1
LCALL WR_CMD
MOV A,#"2"
LCALL WR_DATA
MOV A,#"0"
LCALL WR_DATA
MOV A, YH_BIT
LCALL WR_DATA
MOV A, YL_BIT
LCALL WR_DATA
MOV A,#" "
LCALL WR_DATA
MOV A,MOH_BIT
LCALL WR_DATA
MOV A,MOL_BIT
LCALL WR_DATA
MOV A,#" "
LCALL WR_DATA
MOV A,DH_BIT
LCALL WR_DATA
MOV A,DL_BIT
LCALL WR_DATA
MOV A,#" "
LCALL WR_DATA
MOV A,#" "
LCALL WR_DATA
LCALL WEEKDISP ;星期顯示英文縮寫3個(gè)字母
MOV A, #11000000B ; LINE2
LCALL WR_CMD
MOV A,HH_BIT
LCALL WR_DATA
MOV A,HL_BIT
LCALL WR_DATA
MOV A,#":"
LCALL WR_DATA
MOV A,MH_BIT
LCALL WR_DATA
MOV A,ML_BIT
LCALL WR_DATA
MOV A,#":"
LCALL WR_DATA
MOV A,SH_BIT
LCALL WR_DATA
MOV A,SL_BIT
LCALL WR_DATA
RET
WEEKCOV:
MOV A,WEEK
CJNE A,#0,W2
MOV 37H,#"M"
MOV 38H,#"O"
MOV 39H,#"N"
W2:
MOV A,WEEK
CJNE A,#1,W3
MOV 37H,#"T"
MOV 38H,#"U"
MOV 39H,#"E" ;星期一 MON 星期二 TUE 星期三 WED 星期四 THU
;星期五 FRI 星期六 SAT 星期天 SUN
W3:
MOV A,WEEK
CJNE A,#2,W4
MOV 37H,#"W"
MOV 38H,#"E"
MOV 39H,#"D"
W4:
MOV A,WEEK
CJNE A,#3,W5
MOV 37H,#"T"
MOV 38H,#"H"
MOV 39H,#"U"
W5:
MOV A,WEEK
CJNE A,#4,W6
MOV 37H,#"F"
MOV 38H,#"R"
MOV 39H,#"I"
W6:
MOV A,WEEK
CJNE A,#5,W7
MOV 37H,#"S"
MOV 38H,#"A"
MOV 39H,#"T"
W7:
MOV A,WEEK
CJNE A,#6,W8
MOV 37H,#"S"
MOV 38H,#"U"
MOV 39H,#"N"
W8:
RET
WEEKDISP:
MOV A,37H
LCALL WR_DATA
MOV A,38H
LCALL WR_DATA
MOV A,39H
LCALL WR_DATA
RET
INIT_1602:
MOV A, #01H
LCALL WR_CMD ;清屏
MOV A, #38H
LCALL WR_CMD ;8位數(shù)據(jù),16X2,5X7點(diǎn)陣
MOV A, #0CH
LCALL WR_CMD ;開顯示,關(guān)光標(biāo),不閃爍
MOV A, #06H
LCALL WR_CMD ;讀寫字符時(shí)地址+1,整屏不移動
RET
WR_CMD:
MOV P1, A
CLR RS ;寫入控制命令
CLR RW
CLR E
LCALL BUSY
SETB E
RET
WR_DATA:
MOV P1, A
SETB RS ;寫入數(shù)據(jù)
CLR RW
CLR E
LCALL BUSY ;判斷液晶模塊是否忙?
SETB E
RET
BUSY: ;查看LCD是否忙
MOV P1,#0FFH
CLR RS
SETB RW
CLR E
NOP
SETB E
JB P1.7,BUSY ;如果P1.7為高電平表示忙就循環(huán)等待
RET
T0INT:
MOV TH0,#3CH
MOV TL0,#0B0H
DJNZ R0,RTI
MOV R0,#10
setb 7CH
RTI:
RETI
D1MS:
MOV R7,#250
LOOP0:
NOP
NOP
DJNZ R7,LOOP0
RET
D10MS:
MOV R4,#25
MOV R3,#200
DJNZ R3,$
DJNZ R2,$-4
RET
END
復(fù)制代碼
作者:
wy941016
時(shí)間:
2015-12-21 14:24
題目要求是什么??
作者:
lxa0
時(shí)間:
2016-12-19 16:44
沒看到數(shù)據(jù)表代碼~~~~~~~~~~~
作者:
思凡
時(shí)間:
2018-6-16 21:49
功能可調(diào)嗎?
作者:
思凡
時(shí)間:
2018-6-16 22:57
跪求按鍵程序
作者:
wl020807
時(shí)間:
2018-6-18 20:14
有用LED的電路圖嗎
作者:
新鄉(xiāng)家電維修
時(shí)間:
2018-11-8 08:54
思凡 發(fā)表于 2018-6-16 22:57
跪求按鍵程序
上面有按鍵程序的,只有加鍵,沒有減鍵,我在找減鍵程序,
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1