与考研数学大纲变化对比数三.docx
- 文档编号:14882029
- 上传时间:2023-06-28
- 格式:DOCX
- 页数:21
- 大小:317.84KB
与考研数学大纲变化对比数三.docx
《与考研数学大纲变化对比数三.docx》由会员分享,可在线阅读,更多相关《与考研数学大纲变化对比数三.docx(21页珍藏版)》请在冰点文库上搜索。
与考研数学大纲变化对比数三
单片机数字时钟设计
学院:
信息技术学院
专业:
计算机应用
姓名:
郭永鹏
学号:
0943100111
班级:
Z1001
目录
1、概述…………………………………………..
2、硬件设计………………………………………..
3、软件设计………………………………………
4、系统测试……………………………………..
5、原理图及程序………………………………..
6、课程设计体会………………………………………
摘要
近年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用正在不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此特别适合于与控制有关的系统,越来越广泛地应用于自动控制,智能化仪器,仪表,数据采集,军工产品以及家用电器等各个领域,单片机往往是作为一个核心部件来使用,在根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。
本次设计中以单片机的发展过程和发展方向为背景,介绍了单片机的输入输出的工作原理和操作方法,中断的工作原理和操作方法以及LED连接的方法。
本次做的数字钟是以单片机(AT89C51)为核心,结合相关的元器件(共阴极LED数码显示器),再配以相应的软件,是它具有时,分,秒显示的功能,并且时,分,秒还可以调整。
此次设计电子数字钟是为了了解电子数字钟的原理,从而学会制作电子数字钟。
而且通过电子数字钟的制作进一步的了解各种在制作中用到的中小规模集成电路的作用及实用方法。
通过它可以进一步学习与掌握单片机原理与使用方法。
关键词:
单片机AT89C51共阴极数码显示器
一、概述
应用前景
电子时钟显示的计时装置,广泛用于个人家庭,车站,码头办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式指针式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。
诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。
因此,研究数字钟及扩大其应用,有着非常现实的意义
当今电子时钟的现状
现今,高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟,石英表,石英钟都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调校,数字式电子钟用集成电路计时时,译码代替机械式传动,用LED显示器代替指针显示进而显示时间,减小了计时误差,这种表具有时,分,秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好。
时钟电路在计算机系统中起着非常重要的作用,是保证系统正常工作的基础。
在一个单片机应用系统中,时钟有两方面的含义:
一是指为保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统的标准定时时钟,即定时时间,它通常有两种实现方法:
一是用软件实现,即用单片机内部的可编程定时/计数器来实现,主要用在对时间精度要求不高的场合;二是用专门的时钟芯片实现,在对时间精度要求很高的情况下,通常采用这种方法,典型的时钟芯片有:
DS1302,DS12887,X1203等都可以满足高精度的要求。
本设计主要以设计简单电子时钟为目的,由单片机AT89S52芯片和LED数码管为核心,辅以必要的电路,如数码管驱动,调时按键等构成了一个单片机电子时钟。
研究电子时钟的意义和功能介绍
意义:
时钟,自从它发明的那天起,就成为人类的朋友,但随着时间的推移,科学技术的不断发展,人们对时间计量的精度要求越来越高,应用越来越广。
怎样让时钟更好的为人民服务,怎样让我们的老朋友焕发青春呢?
这就要求人们不断设计出新型时钟。
功能介绍:
本设计时钟能用六个数码管分别显示小时(24小时制)、分钟、秒,能对各位进行调节。
1)初始化时6个七段显示器刚好用来显示时,分,秒的部分。
2)本设计的电子时钟是显示时间的模式。
3)用户可以设置电子时钟的时间。
设置时间时必须先单击模式选择按钮,进入调整时间模式,选择相应的调节位,然后再单击调整时间加减按钮,使其调节为正确的时间。
4)单击调整时间的加按钮时,电子时钟的分或者秒会一直往上增加,当增加到59就会循环到0,电子时钟的时会增加到23就会循环到0,以此类推,可以逐步调节。
本课题介绍
本设计是用单片机设计的一个简单的数字时钟,采用AT89S52单片机芯片、6位数码管、按键组合而成;时钟的计时方式是用单片机芯片自身的定时器计数,每来一个脉冲响应中断记一次数,计到一秒使秒增一。
时间的设定是采用优先级更高的中断,这样在进行时间调整时,定时器中断就屏蔽了,也就是在调整时间时暂停走秒。
由于本设计是又定时器设定的计数,所以时间存在一点的误差,也即走时精确度不是百分之百。
设计的工作是掌握单片机定时器和中断的编程及应用。
还有就是数码管的段选及位选的掌握,对数码管的要求,需加驱动电路才能让它正常显示。
该电子时钟设计的一些具体指标如下:
显示范围:
秒:
0~60
分:
0~60
时:
0~24
显示步进:
1秒
调节步进:
1个单位
误差:
1.5秒/时
系统时钟误差分析
电子钟的走时误差S=S1-S2,S1表示程序实际运行计算所得的秒;S2表示客观时间的标准秒。
S>0时表示电子钟秒单元数值刷新滞后,即走时误差为“慢”;反之,S<0表示秒单元数值的刷新超前,即走时误差为“快”。
本次设计的单片机电子钟系统中,因条件有限S2所参照的时间是电脑显示时间,经测试S>0即走时“慢”。
其误差主要来源包括晶体频率误差,定时器溢出误差,延迟误差。
晶体频率产生震荡,容易产生走时误差;定时器溢出的时间误差,本应这一秒溢出,但却在下一秒溢出,造成走时误差;延迟时间过长或过短,都会造成与基准时间产生偏差,造成走时误差。
方案论证
电子时钟是本设计的最主要的部分。
根据需要,可利用两种方案实现。
方案一:
本方案采用Dallas公司的专用时钟芯片DS12887A。
该芯片内部采用石英晶体振荡器,其芯片精度不大于10ms/年,且具有完备的时钟闹钟功能,因此,可直接对其以用于显示或设置,使得软件编程相对简单。
为保证时钟在电网电压不足或突然掉电等突发情况下仍能正常工作,芯片内部包含锂电池。
当电网电压不足或突然掉电时,系统自动转换到内部锂电池供电系统。
而且即使系统不上电,程序不执行时,锂电池也能保证芯片的正常运行,以备随时提供正确的时间。
方案二:
本方案完全用软件实现数字时钟。
原理为:
在单片机内部存储器设五个变量分别存放时钟的月、日、时、分、秒信息。
利用定时器与软件结合实现1秒定时中断,每产生一次中断,存储器内相应的秒值加1;若秒值达到60,则将其清零,并将相应的分字节值加1;若分值达到60,则清零分字节,并将时字节值加1;若时值达到24,则将十字节清零。
该方案具有硬件电路简单的特点。
但由于每次执行程序时,定时器都要重新赋初值,所以该时钟精度不高。
而且,由于是软件实现,当单片机不上电,程序不执行时,时钟将不工作。
数码管显示方案
方案一:
静态显示。
所谓静态显示,就是当显示器显示某一字符时,相应的发光二极管恒定的导通或截止。
该方式每一位都需要一个8位输出口控制。
静态显示时较小的电流能获得较高的亮度,且字符不闪烁。
但当所显示的位数较多时,静态显示所需的I/O口太多,造成了资源的浪费。
方案二:
动态显示。
所谓动态显示就是一位一位的轮流点亮各个位,对于显示器的每一位来说,每隔一段时间点亮一次。
利用人的视觉暂留功能可以看到整个显示,但必须保证扫描速度足够快,字符才不闪烁。
显示器的亮度既与导通电流有关,也于点亮时间与间隔时间的比例有关。
调整参数可以实现较高稳定度的显示。
动态显示节省了I/O口,降低了能耗。
从节省I/O口和降低能耗出发,本设计采用方案二。
二、硬件设计
1、整体设计框图
2、管脚功能描述
(1)XTAL1(19脚)和XTAL2(18脚):
振荡器输入输出端口,外接晶振电路。
(2)RST/Vpd(9脚)为复位输入端口,外接电阻电容组成的复位电路。
(3)P0口8个端口依次和LED显示器的A、B、C、D、E、F、G和Dp端口对应连接,实现对显示器的片选功能。
(4)P2.0~P2.5依次与LED显示器的1、2、3、4、5、6一一连接,实现对显示器的位选功能。
(5)P3.0~P3.2依次与按键电路的秒、分、时三个按键相连接。
通过按键实现对时间的调试功能。
3、整体原理设计
其计时周期为24小时,显示满刻度为23时59分59秒,另外还有校时功能。
整个设计图由晶振电路、复位电路、AT89C51单片机、键盘控制电路组成。
显示电路将“时”、“分”、“秒”通过七段显示器显示出来,6个数码管的片选接到单片机的P0口,位选接到单片机的P2口。
数码管按照数码管动态显示的工作原理工作。
把定时器定时时间设为50ms,则计数溢出20次即得时钟计时最小单位秒,而20次计数可用软件方法实现,每累计60秒进1分,每累计60分钟,进1小时。
时采用24进制计时器,可实现对一天24小时的累计。
校时电路时用来对“时”、“分”、“秒”显示数字进行校对调整,时分秒三个控制键分别接单片机的p3.2、p3.1、p3.0进行控制。
按一下秒键秒单元就加1,按一下分键分就加1,按一下时键时就加1。
4、晶振电路
单片机的时钟产生方法有两种:
内部时钟方式和外部时钟方式。
本系统中AT89C51单片机采用内部时钟方式。
采用外接晶体和电容组成的并联谐振回路。
其电路图如下:
5、显示电路
LED显示器是现在最常用的显示器之一发光二极管(LED)分段式显示器由7条线段围成8字型,每一段包含一个发光二极管。
外加正向电压时二极管导通,发出清晰的光。
只要按规律控制各发光段亮、灭,就可以显示各种字形或符号。
显示电路显示模块需要实时显示当前的时间,即时、分、秒,因此需要6个数码管,采用动态显示方式显示时间,其硬件连接方式如下图所示。
6、键盘控制电路
键盘可实现对时间的校对,用三个按键来实现。
按时键来调节小时的时间,按分键来调节分针的时间,按秒键来调节秒的时间。
其电路连接图如下:
三、软件设计
1、主程序流程图
主程序是先开始,然后启动定时器,定时器启动后在进行按键检测,检测完后,就可以显示时间。
主程序流程图如下
2、按键控制流程图
按键处理是先检测秒按键是否按下,秒按键如果按下,秒就加1;如果没有按下,就检测分按键是否按下,分按键如果按下,分就加1;如果没有按下,就检测时按键是否按下,时按键如果按下,时就加1;每一次按后都有一次延迟,所有检测完后,就把时间显示出来。
1、显示电路流程图
由P2口进行位选功能,进行动态显示。
时间显示是先时个位计算显示,然后是时十位计算显示,再是分个位计算显示,再然后是分十位显示,再就是秒个位计算显示,最后是秒十位显示。
每一位显示后都有一个延时
4、中断电路流程图
定时器中断时是先检测1秒是否到,1秒如果到,秒单元就加1;如果没到,就检测1分钟是否到,1分钟如果到,分单元就加1;如果没到,就检测1小时是否到,1小时如果到,时单元就加1,如果没到,就显示时间。
四、系统测试
1、测试内容
(1)能否实现正常的时间显示
默认为走时状态,按24小时制分别显示“时时分分秒秒”六个数字,时间会按实际时间以秒为最少单位变化。
(2)能否进行正常的时间进位
当秒位为59时,下一次秒位数字变化分位是否加1同时秒位变为00;当分位为59时,下一次分位数字变化时位是否加1同时分位变为00;当时位为23时,下一次时位数字变化时为是否变为00.若满足以上要求则时间进位正常。
(3)能否通过按键进行时分秒的设定
按秒键对秒进行调整,按一下加一秒;按分键对分进行调整,按一下加一分;按时键对时进行调整,按一下加一小时,从而达到快速设定时间的目的。
若满足以上要求则符合方案要求。
若按一下连续加若干位,则按键延时时间设置太短,可以通过增大延时时间进行改进。
2、软件调试
仿真部分采用protus7.5professional软件,可以很容易的实现各种系统的仿真。
先进行原理图的绘制;绘制好后再选择Keil软件来生成.hex文件,选择运行,观察显示结果,根据显示的结果和课题的要求再修改程序,再运行查,直到满足要求。
3、仿真图
//基于AT89C51单片机的电子钟C语言程序
#include
#include
#defineucharunsignedchar
#defineuintunsignedint
/*七段共阴管显示定义*/
ucharcodedispcode[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,
0xBF,0x86,0xCB,0xCF,0xEF,0xED,0xFD,0x87,0xFF,0xDF};
/*定义并初始化变量*/
ucharseconde=0;
ucharminite=0;
ucharhour=0;
ucharmstcnt=0;
sbitP3_0=P3^0;//second调整定义
sbitP3_1=P3^1;//minite调整定义
sbitP3_2=P3^2;//hour调整定义
/*函数声明*/
voiddelay(uchark);//延时子程序
voidtime_pro();//时间处理子程序
voiddisplay();//显示子程序
voidkeyscan();//键盘扫描子程序
voidinit();//定时子程序
/*****************************/
/*延时子程序*/
/****************************/
voiddelay(uchark)
{
ucharj;
while((k--)!
=0)
{
for(j=0;j<125;j++)
{;}
}
}
/**************************/
/*时间处理子程序*/
/**************************/
voidtime_pro(void)
{
if(seconde==60)//秒钟设为60进制
{seconde=0;
minite++;
if(minite==60)//分钟设为60进制
{minite=0;
hour++;
if(hour==24)//时钟设为24进制
{hour=0;}
}
}
}
/*****************************/
/*显示子程序*/
/*****************************/
voiddisplay(void)
{
P2=0xfe;
P0=dispcode[hour/10];//显示小时的十位
delay(4);
P2=0xfd;
P0=(dispcode[(hour%10)])|0X80;//显示小时的个位
delay(4);
P2=0xfb;
P0=dispcode[minite/10];//显示分的十位
delay(4);
P2=0xf7;
P0=(dispcode[minite%10])|0X80;//显示分的个位
delay(4);
P2=0xef;
P0=dispcode[seconde/10];//显示秒的十位
delay(4);
P2=0xdf;
P0=dispcode[seconde%10];//显示秒的个位
delay(4);
}
/*******************************/
/*键盘扫描子程序*/
/*******************************/
voidkeyscan(void)
{
if(P3_0==0)//按键1秒的调整
{
delay(30);
if(P3_0==0)
{
seconde++;
if(seconde==60)
{seconde=0;}
}
while(!
P3_0);
}
if(P3_1==0)//按键2分的调整
{
delay(30);
if(P3_1==0)
{
minite++;
if(minite==60)
{minite=0;}
}
while(!
P3_1);
}
if(P3_2==0)//按键3小时的调整
{
delay(30);
if(P3_2==0)
{
hour++;
if(hour==24)
{hour=0;}
}
}
while(!
P3_2);
}
voidtimer0(void)interrupt1using0//定时器0方式1,50ms中断一次
{
TH0=0x3c;
TMOD=0x11;
mstcnt++;
if(mstcnt==20)
{
seconde++;
mstcnt=0;//对计数单元清零
}
}
/*******************************/
/*定时子程序*/
/*******************************/
voidinit()
{
P3=0xff;//初始化p3口,全设为1
TMOD=0x11;//time0为定时器,方式1
TH0=0x3c;//预置计数初值
TL0=0xb0;
EA=1;
ET0=1;
TR0=1;
}
/**************************/
/*主函数*/
/**************************/
voidmain(void)
{
init();
while
(1)
{
keyscan();//按键扫描
time_pro();//时间处理
display();//显示时间
}
}
五、课程设计体会
使用MC-51系列单片机制作数字钟是单片机应用的一个典型的例子。
通过数字钟的制作,使我们对MC-51单片机有了更深的了解,掌握了他的一些经典的应用,学到了一定的电子技术理论,也得到了一些单片机编程的经验。
在实际设计电路方案的时候,我们首先根据实际提出几个方案,然后根据自己的要求,从方案能否达到设计的要求、方案实现的难易程度、从方案能否达到设计要求的精度等,选出了最适合自己的方案。
在硬件电路设计方面,应该根据需求选择最易实现、所用器件最少的方式,编程方面,应该先做出一个流程图,使得程序编写起来规则有序,此外还要注意程序结构,使用调用子程序的形式可以使程序更简洁。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 考研 数学 大纲 变化 对比
![提示](https://static.bingdoc.com/images/bang_tan.gif)