单片机课程设计数字式电子钟的设计.docx
- 文档编号:24994995
- 上传时间:2023-06-03
- 格式:DOCX
- 页数:13
- 大小:889.93KB
单片机课程设计数字式电子钟的设计.docx
《单片机课程设计数字式电子钟的设计.docx》由会员分享,可在线阅读,更多相关《单片机课程设计数字式电子钟的设计.docx(13页珍藏版)》请在冰豆网上搜索。
单片机课程设计数字式电子钟的设计
课程设计名称:
单片机课程设计
题目:
数字式电子钟的设计
课程设计名称
单片机课程设计
课程设计题目
数字式电子钟的设计
设计内容:
任务与要求:
1单片机要有复位电路和时钟电路;
2电子钟通过数码管显示小时、分钟、秒信息,时间范围00小时00分00秒~23小时59分59秒;
3通过按键对电子钟进行小时、分钟、秒的时间设定;
4利用proteus仿真软件画出系统仿真图;
5利用汇编语言或C语言编写程序。
6书写课程设计报告。
以单片机At89C51为主控制器芯片,使用若干数码管及开关按键,设计一个电子钟的硬件系统,并编写软件程序。
数字式电子钟的设计
设计内容:
以单片机At89C51为主控制器芯片,使用若干数码管及开关按键,设计一个电子钟的硬件系统,并编写软件程序。
设计任务与要求:
1、单片机要有复位电路和时钟电路;
2、电子钟通过数码管显示小时、分钟、秒信息,时间范围00小时00分00秒~23小时59分59秒;
3、通过按键对电子钟进行小时、分钟、秒的时间设定;
4、利用proteus仿真软件画出系统仿真图;
5、利用汇编语言或C语言编写程序。
关键词电子钟AT89C51仿真设计软件设计
目录
1.ATM89C51介绍…………………………………2
2.显示设计…………………………………4
2.1LED显示原理…………………………………4
3按键设计…………………………………5
4复位电路设计…………………………………6
5.仿真设计…………………………………7
6结论…………………………………7
附录:
程序…………………………………9
1.ATM89C51介绍
AT89C2051单片机,带有2KBFlash可编程、可擦除只读存储器(E2PROM)的低压、高性能8位CMOS微型计算机。
拥有15条可编程I/O引脚,2个16位定时器/计数器,6个中断源,可编程串行UART通道,并能直接驱动LED输出。
仅仅是为了完成时钟设计或者是环境温度采集设计,应用AT89C2051单片机完全可以实现。
但是将两种功能结合在一片单片机上,就需要更多的I/O引脚,故本设计采用具有32根I/O引脚的AT89C51单片机。
AT89C51单片机是一款低功耗,低电压,高性能CMOS8位单片机,片内含4KB(可经受1000次擦写周期)的FLASH可编程可反复擦写的只读程序存储器(EPROM),器件采用CMOS工艺和ATMEI公司的高密度、非易失性存储器(NURAM)技术制造,其输出引脚和指令系统都与MCS-51兼容。
片内的FLASH存储器允许在系统内可改编程序或用常规的非易失性存储器编程器来编程。
因此,AT89C51是一种功能强,灵活性高且价格合理的单片机,可方便的应用在各个控制领域[6]。
AT89C51具有以下主要性能:
1.4KB可改编程序Flash存储器;
2.全静态工作:
0——24Hz;
3.128×8字节内部RAM;
4.32个外部双向输入/输出(I/O)口;
5.6个中断优先级;2个16位可编程定时计数器;
6.可编程串行通道;
7.片内时钟振荡器。
此外,AT89C51是用静态逻辑来设计的,其工作频率可下降到0Hz,并提供两种可用软件来选择的省电方式——空闲方式(IdleMode)和掉电方式(PowerDownMode)。
在空闲方式中,CPU停止工作,而RAM、定时器/计数器、串行口和中断系统都继续工作。
在掉电方式中,片内振荡器停止工作,由于时钟被“冻结”,使一切功能都暂停,只保存片内RAM中的内容,直到下一次硬件复位为止[8]。
图1AT89C51芯片引脚图
AT89C51为适应不同的产品需求,采用PDIP、TQFP、PLCC三种封装形式,本系统采用双列直插PDIP封装形式,如图1。
2.显示设计
就时钟而言,通常可采用LCD显示或LED显示。
对于一般的段式LCD,需要专门的驱动电路,而且LCD显示的可视性较差;对于具有驱动电路和微处理器接口的液晶显示模块(字符或点阵),一般采用并行接口,对微处理器的接口要求较高,占用资源多。
另外,AT89C51本身没有专门的液晶驱动接口。
LED结构简单,体积小,功耗低,响应速度快,易于匹配,寿命长,可靠性高,而且显示亮度高,价格便宜,市场上也有专门的时钟显示组合LED。
故本设计中应用7位8段共阴LED实现显示部分,显示面板分布如图3.6。
2.1LED显示原理
多个发光二极管封装在一起的七段数码显示器按其连接形式可分为共阳显示器和共阴显示器。
图7-1所示为共阳和共阴的七段显示器,在显示器中除了显示数字必须的七段笔画外,还提供了小数点。
共阳显示器的阳极连接在一起,此时对阳极提供一正电压,通过限流电阻控制其阴极为高电平或是低电平来决定其暗或是亮。
共阴显示器的阴极连在一起,此时可将阴极接地,通过限流电阻控制其阳极为高电平或是低电平来决定其亮或是暗。
图2七段数码显示器
采用七段数码显示器显示的字型受到显示器本身结构的限制。
因此,在显示比较复杂的字符、汉字或图形时,可采用点陈显示的办法。
LED显示分动态显示和静态显示:
本设计采用动态显示方式。
本设计采用动态显示的硬件电路简单,有助于设计。
3按键设计
按键图如下图所示
OK键:
该键为校时选择键,在正常显示时间状态下,第一次按下后,只显示分。
按UP和UN键开始校对分钟。
第二次按下后,只显示小时,按UP和UN键开始校对小时。
第三次按下后,复位。
UP键:
该键为调整键,在校时的状态下,按下一次加一。
UN键:
该键为调整键,在校时的状态下,按下一次减一。
OK键连接89C51芯片的P2.6接口。
UP键连接89C51芯片的P2.7接口。
S3键连接89C51芯片的P3.2接口。
4复位电路设计:
复位电路如下所示
5.仿真设计
仿真电路图如下所示
6结论
过去人们应用时钟仅仅是为了明确当前时间。
随着生产力的发展,社会的进步,生产生活对时钟的需求越来越大,对时钟的体型、功能的要求也各有不同。
所以多功能电子时钟在今后的应用也会越来越广泛。
基于单片机实现电子时钟,仅仅是众多方法之一。
并且市场上的实时时钟日历芯片品类繁多,IC化的传感器各种各样,显示方式也愈趋于人性化。
所以多功能电子时钟有多种实现方案,能够实现的功能也很多,笔者已经通过仿真和调试,实现了时间日历显示和校对、闹铃等功能。
本文采用51单片机C语言进行编程,当然也可以应用汇编语言编程。
由于笔者能力有限,提供的程序还可以进一步优化,并且还可以根据需求为电子时钟增设新功能。
如闹铃,报警功能等等。
通过此次的仿真,学习并会使用Protues软件。
也让我们把所学的知识得到了一定的实践。
明白了单片机各种芯片的用途。
让我对各种电路有了大概的了解。
所以说,实践是学习和生活的连接桥梁。
在这次的设计中,对生活中的电子钟有了很大的了解。
通过元件和程序实现电子钟的显示。
让我们把理论知识用到实际中去。
对电子产品有了更深入的了解,程序只有多练才能提高。
附录1:
程序
#include
#include"key.h"
#defineucharunsignedchar
#defineuintunsignedint
sbitE1=P2^0;
sbitE2=P2^1;
sbitE3=P2^2;
sbitE4=P2^3;
sbitE5=P2^4;
sbitE6=P2^5;
ucharcodedis[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//显示函数断码
ucharh=23,min=59,s=50;
ucharj=0;
uchardinwei=0,key=0;
voidys(uintx)//延时函数
{
uchary=123;
while(x--)
{
while(y--){;}
}
}
voidxianshih(void)//显示小时
{
P1=0xff;P1=dis[h/10];E1=1;E2=0;E3=0;E4=0;E5=0;E6=0;ys(5);
P1=0xff;P1=dis[h%10];E1=0;E2=1;E3=0;E4=0;E5=0;E6=0;ys(5);
}
voidxianshimin(void)//显示分钟
{
P1=0xff;P1=dis[min/10];E1=0;E2=0;E3=1;E4=0;E5=0;E6=0;ys(5);
P1=0xff;P1=dis[min%10];E1=0;E2=0;E3=0;E4=1;E5=0;E6=0;ys(5);
}
voidxianshis(void)//显示秒
{
P0=0xff;P0=dis[s/10];E1=0;E2=0;E3=0;E4=0;E5=1;E6=0;ys(5);
P0=0xff;P0=dis[s%10];E1=0;E2=0;E3=0;E4=0;E5=0;E6=1;ys(5);
}
voidysh(uintms)//显示延时小时
{
while(ms--)
{
xianshih();
}
}
voidysmin(uintms)//显示延时分钟
{
while(ms--)
{
xianshimin();
}
}
voidyss(uintms)//显示延时秒
{
while(ms--)
{
xianshis();
}
}
voidKeyProc(ucharkey1)//按键校准函数
{
if(dinwei==0){ysh(5);ysmin(5);yss(5);}
if(dinwei==1)ysmin(15);
if(dinwei==2)ysh(15);
if(key==ENTER)
{
dinwei++;
if(dinwei>2)dinwei=0;
}
if(dinwei==1)
{
if(key1==UP)min++;
if(key1==DOWN)min--;
if(min==60)min=0;
if(min>59)min=59;
}
if(dinwei==2)
{
if(key1==UP)h++;
if(key1==DOWN)h--;
if(h==24)h=0;
if(h>23)h=23;
}
}
voidmain()//主函数
{
voidtiaozheng(void);//调整检测函数
TMOD=0x10;
IT0=1;
TH0=0x63;
TL0=0xbf;
EA=1;
ET1=1;
TR1=1;
while
(1)
{
if(dinwei==0){xianshih();xianshimin();xianshis();}
if(dinwei==1)xianshimin();
if(dinwei==2)xianshih();
if(s>59)min++,s=0;
if(min>59)h++,min=0;
if(h>23)h=0;
tiaozheng();
}
}
voidTimer0()interrupt3//定时函数
{
TH1=0x63;
TL1=0xbf;
if(j==25)
{
j=0;
s++;
}
j++;
}
voidtiaozheng(void)//调整时间函数
{
key=KeyScanNUM();
if(key==UP||key==DOWN||key==ENTER)
{
KeyProc(key);
}
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 课程设计 数字式 电子钟 设计