单片机课程设计 - 基于AT89C51的数字钟的设计
更新时间:2023-09-21 12:27:01 阅读量: 工程科技 文档下载
- 单片机课程设计推荐度:
- 相关推荐
课程:姓名:班级:课程设计报告
单片机原理与接口技术 10通信1班
河北联合大学信息工程学院
一、设计名称
基于AT89C51的数字钟的设计 二、设计目的及要求
1,了解AT89C51芯片的功能,性能,及使用方法。 2,了解时钟日历芯片DS12887的性能及使用方法。
3,利用所学汇编语言编(中断、计数等)写代码实现钟表计时定时等功能。 三、设计原理说明
利用AT89C51芯片、时钟日历芯片DS12887,三极管等器件连接硬件电路,在用kell软件编写时钟程序,调试程序,最后烧入到硬件设备中进行结果检验及更改。
3.1、基于AT89C51数字钟设计的原理
数字钟的基本功能是显示时间,可以通过计数器的级联实现。以4位数码管的数字钟为例,设定前两位为小时,后两位为分钟,数码管的小数点闪烁可以表示秒。首先产生一个1Hz的方波信号,在它的触发下驱动小数点闪烁。在这个1Hz的基础上,可以产生1/60Hz的信号(对1Hz信号计数,每计数30次就将输出反相,得到1/60Hz信号),它就是分钟信号需要的时钟。在这个时钟的触发下分钟位数码管依次加1,直到60时变为0,再重新开始计数。清零的时候要产生一个进位,加到小时上面。其他时间小时位保持不变。 3.2、数字钟主要元件介绍 3.2.1、AT89C51单片机
AT89C51是一种低功耗,高性能的片内含有4KB快闪可编程/擦除只读存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的8位COMS微控制器,使用高密度,非易失存储技术制造,并且与80C51引脚和指令系统完全兼容。芯片上的FPEROM允许在线编程或采用通用的非易失存储编程器对存储器重复编程。单片机的主要特性如下:
1.与MCS-51 兼容
2.4K字节可编程闪烁存储器 3.全静态工作:0Hz-24MHz 4.三级程序存储器锁定 5.4KB的片内程序存储器ROM
6.128B内部数据存储器RAM和128B特殊功能寄存器SFR 7.4个8位可编程并行I/O接口
8.两个16位定时/计数器 9.5个中断源的控制控制系统 10.一个全双工串行接口 11.低功耗的闲置和掉电模式 12.片内振荡器和时钟电路。
各引脚功能说明如下:
Vcc(40脚):接+5V电源正端。
Vss(20脚):接+5V电源负端。
XTAL1(19脚):晶体振荡器接入的一个引脚(采用外部振荡器时,此引脚接地)
XTAL2(18脚):晶体振荡器接入的另一个引脚(采用外部振荡器时,此引脚作为外部振荡信号的输入端)
P0口(39~32脚):P0.0~P0.7统称为P0口。一般I/O口引脚或数据/低位地址总线复用引脚;
P1口(1~8脚):P1.0~P1.7统称为P1口,可作为准双向I/O口使用。一般I/O口引脚;
P2口(21~28脚):P2.0~P2.7统称为P2口,一般I/O口引脚或高位地址总线引脚;
P3口(10~17脚):P3.0~P3.7统称为P3口。除作为准双向I/O口使用外,还可以将每一位用于第二功能,而且P3口的每一条引脚均可以独立定义为第一功能的输入输出或第二功能。
ALE/PROG(30脚):地址锁存允许信号输入或输出引脚。
对于片内含有EPROM的机型,在编程期间,该引脚用作编程脉冲PROG的输入端。
PSEN(29脚):外部程序存储器选通信号输出端,低电平有效。 RST/VPD引脚(9脚):复位信号输入引脚/备用电源输入引脚。 常见的复位电路有:上电复位电路和上电及按钮复位电路,如图3.3-5所示。 EA/Vpp(31脚):内外存储器选择引脚/片内EOROM编程电压输入。 3.2.2、数码管
LED数码管以发光二极管作为发光单元,颜色有单红,黄,蓝,绿,白,七彩效果,它属于一种照明装饰、亮化灯具。分类如下:
1、从控制方式上分:分为内控方式(内部有单片机,通电自动变色)和外控方式(需要外接控制器才能变色)。
2、从变化方式上分:分为固定色彩的和七彩、全彩的;固定色彩的是用来勾轮廓的,全彩的可以勾轮廓,也可以组成管屏显示文字、视频等;
3、从尺寸上分:有D50的、D30的,这是直径;长度基本上1米的(可以定制)。
4、从内部可控性上分:有1米6段的,有1米8段的和1米12段、1米16段、1米32段的。也就是1米的管子内有几段可以独立受控; 1米段数越多,做视频的效果越好。如果密度低,或者做些追逐效果,做1米6段也就可以了。
5、从led数量上,有1米96颗灯的,有1米144颗灯的;灯越多效果越好。一般做全彩的都是用1米144颗灯的。
6、从供电上分,分为高压供电(直接220V供电)和低压供电(12v供电,220v电源需要加开关电源转换);一般选择低压供电的,比较可靠稳定,高压供电的容易烧毁。
数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。
3.2.3、74LS164
74LS164是我们常用的led显示驱动芯片,如下图所示。
三极管:因为数据在传送过程中,对164输出端来说是透明的,这样,数据在传送过程中,数码管上有闪动现象,驱动的位数越多,闪动现象越明显。为了消除这种现象,在数据传送过程中,关闭三极管使数码管没电不显示,数据传送完后立刻使三极管导通,这样就实现锁存功能。
3.2.4、 时钟日历芯片 DS12887
1.芯片内部含有锂电池,断电情况下运行10年以上不丢失数据。 2.可计算到2100年前的秒、分、小时、星期、日期、月、年七种日历信息并带闰年补偿。
3.用二进制码或BCD码代表日历和闹钟信息。
4.有12和24小时两种制式,12小时制时有AM和PM提示。
5.内建128字节RAM。14个字节为时钟和控制寄存器,114个字节通用寄存器。
6、可编程方波输出。
7、有可编程的中断信号(IRQ)输出。
KEYUP: MOV R6,2CH ;键值处理,判断键值暂存单元是否为0
CJNE R6, #0,HH ;不为0则转至HH处理 LJMP MM ;为0则返回
HH: MOV 2CH,#0 ;不为0,存有键值,则进行键值处理,处理后清0
MOV A,R6 ORL A,#80H CPL A
JZ MM ;判断是否有键按下,没有则返回 MOV A,R6
JNB ACC.0, LL0 ;有键按下,是否是P1.0位,如P1.0位为0,则其按下,转去LL0调整被校位数
JNB ACC.1,XDYJIA1 ;如P1.0没按下,判断P1.1是否按下,是,则转去XDYJIA1使被校位加1
LJMP MM ;P1.0和P1.1没按下则返回 LL0: MOV A,WEISHU ;被校位数调整 INC A
MOV WEISHU,A
CLR C ;判断被校位数是否小于等于4 SUBB A,#5
JC MM ;是,则返回
CLR 23H.0 ;被校位数达到5,则退出校时 CLR ET0 ;关闭T0中断 CLR TR0 ;关闭T0
SETB EX1 ;开INT1,恢复1秒1次的中断 LCALL HF1 ;调用HF1,将校后的时间存回DS12C887
LJMP END1 ;中断返回
MM: MOV A,20H ;以下判断T0中断是否到5次 INC A MOV 20H,A
CJNE A,#5,END1 ;不等于5,则返回 MOV A,#0 ;等于5,中断次数清0, mov 20h,a
LCALL DISP1 ;调被校位闪耀显示子程序 END1: CLR RS0 ;恢复现场 POP PSW POP ACC SETB EA
RETI ;中断返回
XDYJIA1: SETB RS1 ;被校位加1处理 SETB RS0 ;选择3寄存器区 MOV A,WEISHU ;被校位数送A ADD A,#2FH ;得到被校位地址 MOV R0,A ;被校位地址存入R0 MOV A,WEISHU ;被校位数送A
ADD A,#3FH ;得到被校位的最大数存放地址 MOV R1,A ;被校位的最大允许数存放地址存入R1
MOV A,@R0 ;取出被校位数据送A CLR C ;判断其是否达到其最大允许数 SUBB A,@R1
JNC BACK ;达到,则转至BACK,回0 MOV A,@R0 ;没达到,则加1 INC A MOV @R0,A LJMP PP1
BACK: MOV @R0,#0 ;被校位回0
PP1: MOV A,HOUR1 ;小时位不能大于等于24,因此如下判断:判断小时的高位是否为2
CJNE A,#2,PP ;不为2,则转至PP送显示后中断返回 CLR C ;为2,则判断小时低位是否小于等于3 MOV A,HOUR2 SUBB A,#4
JC PP ;小于等于3则转至PP送显示后中断返回 MOV HOUR1,#0 ;否则小时的高低位都回0 MOV HOUR2,#0
PP: CLR RS1 ;选择0寄存器区 CLR RS0
LCALL DISP ;显示加1后结果 LJMP END1 ;中断返回
DISP1: CPL 22H.0 ;被校位闪耀显示子程序:闪耀标志取反 JB 22H.0,MM2 ;闪耀标志为1,转至MM2送亮,闪耀标志为0,送黑
MOV A,WEISHU ;被校位数送A ADD A,#2FH ;得到被校位地址 MOV R0,A ;被校位地址存入R0 MOV 25H,@R0 ;被校位数据暂存入25H MOV @R0,#0AH ;使被校位数据变为0AH,通过查TAB表,
LCALL DISP ;送显示,调用显示子程序时,通过查TAB表得到0AH的字形码为FFH,使被校位黑
MOV @R0,25H ;被校位显示黑后,从25H取回原来数据
SJMP OVER1 ;返回
MM2: LCALL DISP ;闪耀标志为1,显示亮 OVER1: RET ;返回
HF1: PUSH ACC ;将CPU中30H到33H的数据送入DS12887子程序
PUSH PSW PUSH DPL
MOV DPTR,#0004H MOV R1,#30H LCALL SRSZ1 DEC DPL DEC DPL INC R1 LCALL SRSZ1
POP DPL POP PSW POP ACC
RET SRSZ1: PUSH ACC DS12C887子程序
PUSH PSW MOV A,@R1 SWAP A INC R1 ADD A,@R1 MOVX @DPTR,A POP PSW POP ACC
;DS12C887中小时存放单元 ;CPU中小时高位存放单元 ;恢复现场 ;返回
;从CPU中输出一个字节到 RET ;返回
DEL10mS: MOV R5,#0AH ;10mS延时子程序 LL: MOV R6,#0ffH LL1: NOP NOP
DJNZ R6,LL1 DJNZ R5,LL RET
END ;程序结束 六、设计收获
通过这次实验,使我对AT89C51芯片、时钟日历芯片DS12887的功能有了深刻的了解。在实践过程中,充分锻炼了我的自学能力,分析问题能力以及解决问题的能力,更使我对专业基础知识有了更深的理解。总之,此次课程设计使我受益匪浅。
正在阅读:
单片机课程设计 - 基于AT89C51的数字钟的设计09-21
中物联中级物流师职业资格认证各级别试卷结构及命题思路03-04
部编人教版八年级下册语文 - 古诗文默写专项练习题(含答案)03-19
2016四年级数学每日一练01-10
小学生二年级我喜欢的荷花作文06-13
大学物理化学8-电化学课后习题及答案09-21
通江野生银耳培育实验方案05-15
浅谈高速铁路箱梁提运架施工的安全管理04-09
2018年人教版小学六年级毕业考试数学模拟试卷及答案6套01-04
说文解字序感悟06-07
- 2017年云南大学自命题科目 632-社会学基础 考试大纲
- 旅游文化学论文
- 部编版小学三年级语文上册课外阅读专项及答案(推荐) - 图文
- 铁板神数解析
- 当代外国学前教育离线作业1
- 第三部分 电力系统运行操作
- 大学税法期末考试试题B
- 杭州市房地产中介服务公司名录2018版5654家 - 图文
- 《学前心理学》在线考核参考答案
- 训诂学作业
- 强化措施 狠抓落实 全力推进重大项目建设
- 翻译论文1
- 金融数据库 - SAS编程与数据处理2-18章复习题
- 多媒体技术的历史及现状范文
- rtk操作步骤
- 人教版小学数学四年级上册第八单元教学设计《数学广角-优化》
- 通信原理答案(樊昌信)
- 机电多自由度机械手课程设计
- 汉语类词缀的特点 -
- 尤立增《荷塘月色》课堂实录