数字时钟课程设计报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

摘要
时间,对人们来说是非常宝贵的,准确的掌握时间和分配时间对人们来说至关重要。

因此自从时钟发明的那刻起,就成为人类的好朋友。

随着时间的流逝,科学技术的不断发展和提高,人们对时间计量的精度要求越来越高,应用越来越广。

怎样让时钟更好、更方便、更精确的显示时间,这就要求人们不断设计研发出新型的时钟。

高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟,石英表,石英钟都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调校。

数字式电子钟用集成电路计时时,译码代替机械式传动,用LCD显示器代替指针进而显示时间,减小了计时误差,这种表具有时,分,秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好。

时钟电路在计算机系统中起着非常重要的作用,是保证系统正常工作的基础。

本课程设计是在前导验证性认知实验基础上,进行更高层次的命题设计实验,要求学生在教师指导下独立查阅资料、设计、安装和调试特定功能的电子电路。

培养学生利用模拟、数字电路知识,解决电子线路中常见实际问题的能力,使学生积累实际电子制作经验,目的在于巩固基础、注重设计、培养技能、追求创新、走向实用
关键词:数字时钟;stc89c52;74ls373
目录
1 数字时钟功能及原理 (2)
1.1 功能: (2)
1.2 原理: (2)
1.3 组成: (2)
2 硬件电路设计 (2)
2.1 电源电路 (2)
2.2 校时、分电路 (2)
2.3 秒脉冲发生电路 (2)
2.4 计数电路 (2)
2.4.1 74ls373芯片 (2)
2.4.2 二十四进制计数电路 (2)
2.4.3 六十进制计数电路 (2)
2.4.4 译码显示电路 (2)
2.5 显示模块选择方案 (2)
2.6 单片机芯片的选择方案 (2)
2.6.1 STC89C52芯片 (2)
2.6.2 ST89C52引脚 (2)
3 数字时钟电路的仿真图,原理图及相应程序 (2)
4 实验及测试结果分析 (2)
5 总结 (2)
感谢 (2)
参考文献 (2)
附件 (2)
1数字时钟功能及原理
1.1功能:
近年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用越来越普及了,并且由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,使单片机在电子和一些自动化行业中应用也越来越广泛了。

单片数字钟数字钟的组成模块主要由一个AT89C51单片机模块、用于放大信号来驱动数码管显示的SN74LS244N、用于显示时间的数码管显示模块、还有用于复位的按键部分,还有电源等部分组成。

1.2原理:
由振荡器产生高稳定的高频脉冲信号,作为数字钟的时间基准(系统时钟),再经分频器输出标准秒脉冲信号。

秒计数器计满60后向分计数器进位,分计数器计满60后重新开始计时。

计数器的输出经译码器送显示器。

计时出现误差时可以用校时电路进行校分
1.3组成:
数字时钟是用数字集成电路构成,用数码显示的一种现代化计数器。

本系统由振荡器、分频器、校时电路、计数器、译码显示器以及电源电路组成。

秒脉冲发生电路产生秒脉冲信号,不同进制的计数器、译码器和显示器组成计时系统,通过校时电路实现对时、分的校准,电源电路提供稳定的+5v的电压。

图1数字时钟原路图
2硬件电路设计
2.1电源电路
它由电源变压器T1,桥式整流电路D1~D4,滤波电容C1、C4,防止自激电容C2、C4和一只固定式三端稳压器(LM309K)搭建而成的。

220v交流电通过电源变压器变换成交流电压,再经过桥式整流电桥D1~D4和滤波电容C1的整流和滤波,在固定式三端稳压器LM309K的Vin和GND两端形成一个较稳定的直流电压。

此直流电压经过LM309K的稳压和C4电容德尔滤波便在稳压电源的输出端产生了较稳定的直流输出电压。

2.2校时、分电路
校“时”和校“分”的校准电路是相同的,现以校“分”电路来说明时间的校准。

利用一个按钮开关,当开关按下时,就会产生一个低电平给计数器,从而在下降沿时计数器加1
图2.2.1校时电路
2.3秒脉冲发生电路
本次设计采用由555定时器设计的多谐振荡器产生1kHz频率与三级十分频器组成秒脉冲信号发生
图2.3.1 555多谐振荡器产生的秒脉冲电路
2.4计数电路
74ls373是八D锁存器(三态). 一个封装中有八个锁存器,三态总线驱动输出,置数全并行存取,缓冲控制输入,时钟/使能输入有改善抗扰度的滞后作用.
2.4.174ls373芯片
373的输出端O0~O7可直接与总线相连。

当三态允许控制端OE为低电平时,O0~O7为正常逻辑状态,可用来驱动负载或总线。

当OE为高电平时,O0~O7呈高阻态,即不驱动总线,也不为总线的负载,但锁存器内部的逻辑操作不受影响。

当锁存允许端LE为高电平时,O随数据D而变。

当LE为低电平时,O被锁存在已建立的数据电平。

当LE端施密特触发器的输入滞后作用,使交流和直流噪声抗扰度被改善
400mV。

引出端符号:D0~D7数据输入端OE三态允许控制端(低电平有效)LE锁存允许端O0~O7输出端
引脚图:图2.4.1
E G 功能
0 0 直通Qi=Di
0 1 保持(Qi保持不
变)
1 X 输出高阻
时计数电路是由U7和U8组成的二十四进制计数电路,当“时”个位U8计数输入端到第10个触发信号时,U8计数器复零,进位端QD向U7“时”十位计数器输出进位信号,当第24个“时”(来自“分”计数器输出的进位信号)脉冲到达时,U8计数器的状态为“0100”,U7计数器的状态为“0010”,此时“时”个位计数器的QC和“时”十位计数器的QB输出为“1”。

把他们分别送入U7、U8计数器的清零端R01和R02,通过74LS290内部的R01和R02与非 14后清零,计数器复零,完成二十四进制计数
图2.4.3 二十四进制计数器电路
“秒”计数器电路与“分”计数器电路都是六十进制,它由一级十进制计数器和一级六进制计数器连接构成,如下图所示,采用两片74LS290串接起来构成“秒”“分”计数器。

图2.4.4六十进制计数器电路
2.4.4译码显示电路
用七段发光二极管来显示译码器输出的数字,显示器有两种:共阳极和共阴极显示器。

74LS248译码器对应的显示器是共阴极(接地)显示器。

在本设计中采用的是解码七段排列显示器。

74LS248是四线—七段译码/驱动器,集电极开路输出,以高电平“1” 15驱动,用于共阴极显示器。

图2.4.5译码显示电路
2.5显示模块选择方案
采用LED数码管动态扫描。

LED数码管价格便宜,对于显示数字最合适,本次课程设计使用的是共阴极数码管。

共阴极数码管:共阴极数码管是把所有led的阴极连接到共同接点com,而每个led的阳极分别为a、b、c、d、e、f、g及dp(小数点)通过控制各个led 的亮灭来显示数字共阴极数码管
图2.5
2.6单片机芯片的选择方案
采用STC89C52芯片作为硬件核心。

STC89C52内部具有8KB ROM存储空间,512字节数据存储空间,带有2K字节的EEPROM存储空间,与MCS-51系列单片机完全兼容,STC89C52可以通过串口下载。

2.6.1STC89C52芯片
STC89C52是由深圳宏晶科技公司生产的与工业标准MCS-51指令集和输出管脚相兼容的单片机。

STC89C52主要功能如表2.1所示
2.6.2ST89C52引脚
1.主电源引脚(2根) VCC(Pin40):电源输入,接+5V电源GND(Pin20):接地线
2.外接晶振引脚(2根) XTAL1(Pin19):片内振荡电路的输入
端XTAL2(Pin20):片内振荡电路的输出端
3.控制引脚(4根) RST/VPP(Pin9):复位引脚,引脚上出现2个机器周期的高电平将使单片机复位。

ALE/PROG(Pin30):地址锁存允许信
号PSEN(Pin29):外部存储器读选通信号 EA/VPP(Pin31):程序存储器的内外部选通,接低电平从外部程序存储器读指令,如果接高电平则从内部程序存储器读指令。

4.可编程输入/输出引脚(32根) STC89C52单片机有4组8位的可编程
I/O口,分别位P0、P1、P2、P3口,每个口有8位(8根引脚),共32
根。

P0口(Pin39~Pin32):8位双向I/O口线,名称为P0.0~P0.7 P1口(Pin1~Pin8):8位准双向I/O口线,名称为P1.0~P1.7P2口(Pin21~Pin28):8位准双向I/O口线,名称为P2.0~P2.7P3口(Pin10~Pin17):8位准双向I/O口线,名称为P3.0~P3.7
引脚图:图2.6.2
3数字时钟电路的仿真图,原理图及相应程序
仿真图:图3.1
原理图:图3.2
原理图:图3.3
程序:
#include
#define uchar unsigned char
#define uint unsigned int sbit rs =
P2^6;
sbit rw =
P2^5;
sbit ep = P2^7;
uchar hour,min,sec,k;
uchar key; unsigned char lcdd[]="0123456789";
uchar key_code[] = {0xb7,0xbb,0xbd,0xbe};
void delay(uint z)
{
uint x,y;
for(z=x;x>0;x--)
for(y=100;y>0;y--);
}
bit lcd_bz()
{
bit result;rs = 0;rw = 1; ep = 1; delay(5); result = (bit)(P0 & 0x80);
ep = 0;return result;
}
void lcd_cmd(uchar cmd)
{
while(lcd_bz());rs = 0; rw = 0;ep = 0;delay(5); P0 = cmd; delay(5);
ep = 1; delay(5); ep = 0;
}
void lcd_data(uchar dat )
{
while(lcd_bz());rs=1; rw=0; ep=0;P0 = dat; delay(5);ep = 1;
delay(5);ep = 0;
//return dat;
}
void lcd_init()
{
delay(15);lcd_cmd(0x38);delay(10);lcd_cmd(0x38);delay(10);lcd_cmd(0x38); delay(10);lcd_cmd(0x0c);delay(10);lcd_cmd(0x06);delay(10);lcd_cmd(0x01);de lay(10);
}
void timer0() interrupt 1
{
TH0=(65536-50000)/256;TL0=(65536-50000)%256; k++;
if(k==20)
{
k=0;sec++;
}
if(sec>59)
{
min++;sec=0;
}
if(min>59)
{
min=0;hour++;
}
if(hour>23)
{
hour=0;
}
}
void disptime()
{ lcd_cmd(0x0c);
delay(20);lcd_cmd(0x80);
delay(20);lcd_data(lcdd[hour/10]); delay(10);lcd_data(lcdd[hour%10]); delay(10);lcd_data(':');
delay(12);lcd_data(lcdd[min/10]); delay(10);lcd_data(lcdd[min%10]); delay(12);lcd_data(':');
delay(12);lcd_data(lcdd[sec/10]); delay(12);lcd_data(lcdd[sec%10]); delay(12);lcd_data(' ');
delay(12);
}
uchar keyscan()
{
uchar scan1, scan2, keycode, j;
P1 = 0xf0;scan1 = P1;
if (scan1 != 0xf0)
{ delay(10);
scan1 = P1;
if (scan1 != 0xf0)
{ TR0=0;
P1 = 0x0f;
scan2 = P1;
keycode = scan1 | scan2;
for (j = 0; j < 4; j++)
{
if (keycode == key_code[j]) {
key = j;
while(P1!= 0x0f)
disptime();
return (key);
}
}
}
}
else P1 = 0xff;
return (key = 4);
}
void Set_time(uchar key) {
if(key==0||key==1||key==2) {
if(key==0)
{
sec++;
if(sec>59)
{
sec=0;
}
}
else
if(key==1)
{
min++;
if(min>59)
{
min=0; }
}
else
if(key==2)
{
hour++;
if(hour>23)
{
hour=0;
}
}
}
else if(key==3) {
TR0=1;
}
}
void sysint()
{
TMOD=0x01;
TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1; ET0=1; TR0=1;
}
void timeint()
{
hour=0; min=0; sec=0; }
void main()
{
sysint() ;
timeint();
lcd_init();
while(1)
{ keyscan();
Set_time(key);
disptime();
}
}
4实验及测试结果分析
试验结果图:
图4.1
图4.2
图4.3
试验结果分析:此时钟设计是用protues仿真软件进行仿真,实现了课程设计要求实现的功能。

设置了的四个按键,当按第一个键时进入秒表显示状态,秒表计时,再按一次第一个键进入分表显示状态,此时按下第二或第三个按键,分表加一或减一。

此时再按一次第一个按键进入时表显示状态,此时按下第二或第三个按键,时表加一或减一。

当按第四个按键时,时钟清零。

调试阶段出现的问题:第一次调试发现有一个数码管无法正常显示并清零键无法使用。

使用万用表对此数码管进行检测,把万用表打到“二极管”档,共阴管,把黑表笔放在中间的脚上,然后红表笔打到其它脚上,记录相应的段经过检测此数码管已坏,焊上一个正常的数码管上去。

经过老师同学的指导发现按键装反,将清零按键取出来再以正确的方向焊接。

第二次调试成功实行此课程设计的要求
5总结
经过一周的单片机课程设计,已基本完成课题要求。

功能上基本达标:时钟的显示,定时功能,调时功能。

时钟显示功能,可以满足日常生活需求,秒表显示功能,能完成计时需求。

但是由于试验次数不多,焊板的经验不够,焊出的板有些瑕疵尽管如此,此次课程设计对我们动手能力得到提高,结合课本知识应用到生活中。

我相信下次课程设计能够更完美的完成。

此次课程设计有以下不足,准备不充分,尽管上网查了资料但是现实操作上还不足,焊板的时候很难一次性焊成功需要缝缝补补,不经过检测就把数码管焊了上去直到检测才发现有一个数码管是坏的。

自己的粗心使得这次设计完成的不是很好,希望下次设计能不要再粗心大意。

从这次的课程设计中,我意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中,学习单机片机更是如此,程序只有在经常的练习的过程中才能提高,动手能力要加强,这次课程设计使我收获良多。

感谢
本次课程设计有老师悉心指导以及同学的帮助,硬件设计的时候老师督促我们,她给出了许多建议使我们在设计的时候少走弯路,同学们热情的帮忙下使得这次设计变得异常轻松,感谢同学们给以的帮助。

老师在百忙之中抽出时间帮助我们调试程序,她以严谨的教学态度对同学出现的问题进行解答,在此十分感谢老师以及对老师致以崇高的敬意。

参考文献
[1] 林立,张俊亮.单片机原理及应用(第三版).北京:电子工业出版社,2014.8.
[2] 黄庆华,张永格.单片机开发与实例电子工业出版社
[3] 谢龙汉,鲁力,张桂东.原理图与PCB设计及仿真.北京:电子工业出版社,2012.100
[4]徐爱钧,彭秀华.单片机高级语言编程与vision2应用实践.北京:电子工业出版社,2008
附件
本次课程设计需要工具:焊笔,跳线若干,焊锡若干,万用表。

本次课程设计需要元器件:共阴极数码管8个,电阻若干,电容3个,三极管若干,74LS373芯片,STC89C52芯片。

相关文档
最新文档