DS1302时钟数码管课程设计.docx
- 文档编号:23707089
- 上传时间:2023-05-20
- 格式:DOCX
- 页数:19
- 大小:216.91KB
DS1302时钟数码管课程设计.docx
《DS1302时钟数码管课程设计.docx》由会员分享,可在线阅读,更多相关《DS1302时钟数码管课程设计.docx(19页珍藏版)》请在冰豆网上搜索。
DS1302时钟数码管课程设计
单片机原理课程设计
课题名称:
用数码管显示实时日历时钟的设计
专业班级:
电子信息科学与技术
(2)班
学生学号:
1114040204
学生姓名:
陈先丰
设计时间:
2013年6月15日
基于DS1302的数码管显示数字钟设计
本次设计的硬件电路由主控部分(单片机MCS-51)、计时部分(实时时钟芯片DS1302)、调试部分3个部分组成。
一、主控部分(单片机MCS-51)
MCS-51单片机作为主控芯片,控制整个电路的运行。
其外围电路主要有两部分:
复位电路和晶体振荡器。
图1、主控部分电路图
二、计时部分(实时时钟芯片DS1302)
时钟芯片DS1302与外围电路的连接:
与MCS-51单片机的接口是由3条线来完成的,MCS-51单片机的P1.0与时钟芯片的数据传输端I/O相连,P1.1用来作为DS1302输入时钟SCLK控制端,P1.2控制DS1302的复位输入端RST。
只有在SCLK为低电平时,才能将RST置为高电平。
图2、计时部分电路图
图3、原理部分电路
三、调试部分
四、源程序
IOEQUP1.0;实时时钟数据线引脚
SCLKEQUP1.1;实时时钟时钟线引脚
RSTEQUP1.2;实时时钟复位线引脚
SECONDEQU40H
MINUTEEQU41H
HOUREQU42H
DAYEQU43H
MONTHEQU44H
WEEKEQU45H
YEAREQU46H
ORG0000H
JMPMAIN
ORG0003H
jmpINT_0
ORG0020H
MAIN:
CLRIT0
SETBEX0
SETBEA
LCALLGET;从DS1302读取时间
DISPALY:
MOVa,40H;显示秒
ANLa,#0FH;低位保留
lcallwww
lcalldelay
mova,40h
anla,#0f0h
swapa;高位低位互换
lCALLaaa
lcalldelay
MOVa,41H;显示分
ANLa,#0FH;低位保留
lcallwwwf
lcalldelay
mova,41h
anla,#0f0h
swapa;高位低位互换
lCALLaaaf
lcalldelay
MOVa,42H;显示时
ANLa,#0FH;低位保留
lcallwwws
lcalldelay
mova,42h
anla,#0f0h
swapa;高位低位互换
lCALLaaas
lcalldelay
ljmpmain
sjmp$
INT_0:
MOVa,43H;显示日
ANLa,#0FH;低位保留
lcallwwwr
mova,43h
anla,#0f0h
swapa;高位低位互换
lCALLaaar
lcalldelay
MOVa,44H;显示月
ANLa,#0FH;低位保留
lcallwwwy
lcalldelay
mova,44h
anla,#0f0h;高位低位互换
swapa
lCALLaaay
lcalldelay
MOVa,46H;显示年
ANLa,#0FH;低位保留
lcallwwwn
lcalldelay
mova,46h
anla,#0f0h
swapa;高位低位互换
lCALLaaan
lcalldelay
RETI
;把寄存器中的内容传给74ls164的子程序
www:
;给秒的低四位数码管赋值
mov49h,#8h
lcallL0
eee:
jbacc.7,rrr
clrp0.0
jmpttt
rrr:
setbp0.0
ttt:
clrp2.0
setbp2.0
rla
djnz49h,eee
ret
aaa:
;给秒的高四位数码管赋值
mov49h,#8h
lcallL0
sss:
jbacc.7,ddd
clrp0.1
jmpfff
ddd:
setbp0.1
fff:
clrp2.1
setbp2.1
rla
djnz49h,sss
ret
wwwf:
;给分的低四位数码管赋值
mov49h,#8h
lcallL0
eeef:
jbacc.7,rrrf
clrp0.2
jmptttf
rrrf:
setbp0.2
tttf:
clrp2.2
setbp2.2
rla
djnz49h,eeef
ret
aaaf:
;给分的高四位数码管赋值
mov49h,#8h
lcallL0
sssf:
jbacc.7,dddf
clrp0.3
jmpffff
dddf:
setbp0.3
ffff:
clrp2.3
setbp2.3
rla
djnz49h,sssf
ret
wwws:
;给时的低四位数码管赋值
mov49h,#8h
lcallL0
eees:
jbacc.7,rrrs
clrp0.4
jmpttts
rrrs:
setbp0.4
ttts:
clrp2.4
setbp2.4
rla
djnz49h,eees
ret
aaas:
;给时的高四位数码管赋值
mov49h,#8h
lcallL0
ssss:
jbacc.7,ddds
clrp0.5
jmpfffs
ddds:
setbp0.5
fffs:
clrp2.5
setbp2.5
rla
djnz49h,ssss
ret
wwwr:
;给日的低四位数码管赋值
mov49h,#8h
lcallL0
eeer:
jbacc.7,rrrr
clrp0.0
jmptttr
rrrr:
setbp0.0
tttr:
clrp2.0
setbp2.0
rla
djnz49h,eeer
ret
aaar:
;给日的高四位数码管赋值
mov49h,#8h
lcallL0
sssr:
jbacc.7,dddr
clrp0.1
jmpfffr
dddr:
setbp0.1
fffr:
clrp2.1
setbp2.1
rla
djnz49h,sssr
ret
wwwy:
;给月的低四位数码管赋值
mov49h,#8h
lcallL0
eeey:
jbacc.7,rrry
clrp0.2
jmpttty
rrry:
setbp0.2
ttty:
clrp2.2
setbp2.2
rla
djnz49h,eeey
ret
aaay:
;给月的高四位数码管赋值
mov49h,#8h
lcallL0
sssy:
jbacc.7,dddy
clrp0.3
jmpfffy
dddy:
setbp0.3
fffy:
clrp2.3
setbp2.3
rla
djnz49h,sssy
ret
wwwn:
;给年的低四位数码管赋值
mov49h,#8h
lcallL0
eeen:
jbacc.7,rrrn
clrp0.4
jmptttn
rrrn:
setbp0.4
tttn:
clrp2.4
setbp2.4
rla
djnz49h,eeen
ret
aaan:
;给年的高四位数码管赋值
mov49h,#8h
lcallL0
sssn:
jbacc.7,dddn
clrp0.5
jmpfffn
dddn:
setbp0.5
fffn:
clrp2.5
setbp2.5
rla
djnz49h,sssn
ret
delay:
;延时60ms
mov47h,#60
lop11:
mov48h,#0ffh
lop22:
nop
nop
djnz48h,lop22
djnz47h,lop11
ret
;判断时钟每位是几(1,2,3,4,5,6,7,8,,9,)
L0:
cjnea,#0h,L1
mova,#0c0h
ret
L1:
cjnea,#1h,L2
mova,#0f9h
ret
L2:
cjnea,#2h,L3
mova,#0a4h
ret
L3:
cjnea,#3h,L4
mova,#0b0h
ret
L4:
cjnea,#4h,L5
mova,#99h
ret
L5:
cjnea,#5h,L6
mova,#92h
ret
L6:
cjnea,#6h,L7
mova,#82h
ret
L7:
cjnea,#7h,L8
mova,#0f8h
ret
L8:
cjnea,#8h,L9
mova,#80h
ret
L9:
mova,#90h
RET
从DS1302读取时间
GET:
MOVR0,#40H
MOVR1,#81H;DS1302中读时间的首地址
MOVR7,#7
GETLOOP:
CLRRST
nop
CLRSCLK
nop
SETBRST
nop
MOVB,R1
LCALLWRITE;写命令字
LCALLREAD;读时间
MOV@R0,A
;将从DS1302中读取的时间从内存中保存
INCR0;修改地址指针
INCR1
INCR1
SETBSCLK
nop
CLRRST
nop
DJNZR7,GETLOOP
RET
WRITE:
MOV30H,#8;写入命令子程序DS1302
LOP1:
MOVA,B
RRCA
MOVB,A
MOVP1.0,C
SETBP1.1
CLRP1.1
DJNZ30H,LOP1
RET
READ:
;读出数据子程序DS1302
MOV30H,#8
LOP2:
MOVC,P1.0
RRCA
SETBP1.1
CLRP1.1
DJNZ30H,LOP2
RET
END
五、心得体会
通过本次设计,使我们对单片机的了解有了更加深一步,我发现只有动手做才会孰能技巧,还有对材料的整理和理解。
这次设计运用到的知识很多方面,尤其是单片机,像AT89C51,引脚多,硬件内部线路接通,所以用起来很方便,还有ds1302芯片与单片机之间的连接,以及如入使用ds1302芯片。
当然也要对这些元器件作相应调查。
主要就是电路原理图,还有对引脚的作用熟悉。
对于软件方面则是灵活运用单片机有关的程序语言,还有很多扩展功能,由于知识匮乏,但是理论知识还是比较详细的。
我们最大的成功之处是在这整个过程,动脑寻求解决一个一个问题的办法,对程序是不断思索,务必写出很简单的程序来,使得电子时钟能做成功!
参考文献
《单片机原理及其接口技术》(第二版)清华大学出版社
《新概念51单片机C语言教程》电子工业出版社
《单片机C语言程序设计实训100例》电子工业出版社
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DS1302 时钟 数码管 课程设计