基于STC89C52定时器设计Word文档下载推荐.docx
《基于STC89C52定时器设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于STC89C52定时器设计Word文档下载推荐.docx(13页珍藏版)》请在冰点文库上搜索。
![基于STC89C52定时器设计Word文档下载推荐.docx](https://file1.bingdoc.com/fileroot1/2023-5/6/56e77d67-05ce-4855-96fe-66941766ff99/56e77d67-05ce-4855-96fe-66941766ff991.gif)
6电路板的制作安装5
7程序设计6
7.1程序流图6
7.2程序代码7
8软硬件调试12
9设计报告总结12
参考文献13
1设计题目
基于STC89C52时钟设计。
2设计目的
1、巩固和加深单片机原理课程知识的理解和运用。
2、培养学生综合分析问题、发现问题和解决问题的能力。
3设计要求
使用STC89C52定时器完成定时,设计出时钟,并将时间在数码管上显示,秒闪烁使用小数点实现,保留分。
1.能正确认识元器件;
2.能读懂电路原理图;
3.能正确掌握PCB图和原理图的关系;
4.掌握基本焊接技巧,保证不能出现断路、短路、极性元件焊反等情况,以便保证下一步调试程序的正常进行;
5.学会利用Keil软件进行程序的编程与设计,以实现相应的功能。
4软硬件介绍
4.1软件简介
随着单机片的开发软件也在不断发展,Keil软件时目前最流行开发MCS-51系列单机片软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出,Keil提供了包括C编译器,宏汇编,连接器,库管理和一个功能强大的方针调试器等在内的完整开发方案,通过一个集成开发环境(uUision)将这些部分组合在一起,运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM.20M以上空闲的硬盘空间,WIN98,WIN2000.WINXP等操作系统。
Keil
C51单片机软件开发系统中法的整体结构中的uVision与Ishell分别是用于在C51
for
Windows和for
Dos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。
开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。
然后分别由C51及A51编译器编译生成目标文件(.OBJ)。
目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。
ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。
4.2STC89C52硬件介绍
单片机自1976年由Intel公司推出MCS-48开始,迄今已有二十多年。
由于单片机集成度高、功能强、可靠性高、体积小、功耗低、使用方便、价格低廉等一系列优点,目前已经渗入到人们工作和生活的方方面面,“几乎无处不在,无所不为”。
单片机的应用领域已经从面相工业控制、通讯、交通、智能仪表等迅速发展到家用消费产品、办公自动化、汽车电子、PC机外围以及网络通讯等广大领域。
单片机系列有51和52两个系列。
MCS-51系列有8053、8051、8751共3种机型,它们的指令系统和引脚完全相同,而差别在于片内有无ROM或EPROM。
8031内部无ROM,8051内部有4KBROM,8751内部有4KBEPROM。
MCS-52系列有8032、8052、8752共三种机型,52系列的指令系统及引脚和51系列相同,但52系列有3个16位定时器/计数器、6个中断源,片内有256字节的RAM。
8052内部有8KROM,8752内部有8KBEPROM。
4.3LED数码管显示器概述
LED数码显示器是一种有LED发光二极管组合显示字符的显示器件。
它使用了8个LED发光二极管,其中7个用于显示字符,一个用于显示小数点,故通常称之为7段发光二极管数码器。
其内部结构如下图4.1所示,LED数码显示器有两种连接方法如下:
图4.1LED数码管
共阳极接法:
把发光二极管的阳极连在一起构成公共阳极,使用时公共阳极接+5V,每个发光二极管的阴极通过电阻与输入端相连。
共阴极接法:
把发光二极管的阴极连在一起构成公共阴极,使用时公共阴极接地,每个发光二极管的阳极通过电阻与输入端相连。
5电路原理图
根据设计要求,确定总体电路原理图如图4.1:
图4.1总体电路原理图
实现秒表器控制与显示功能模块如图4.2:
图4.2控制与显示模块
STC89C52单片机的P1口与四片数码管的七段发光二极管及小数点位a、b、c、d、e、f、g、dp引脚相连,在P1口的相应位置低电平时,七段发光二极管进行相应的显示;
而P2口是用于控制四片数码管中每一片的显示,在P2口的相应位置低电平时,与之相连的数码管片将用于显示。
继电器工作模块如图4.3:
图5.3继电器工作模块
STC89C52单片机的P3口(RD)通过PNP三极管与继电器相连,P3口置低电平时,继电器工作,LED(D13)被点亮。
6电路板的制作安装
根据电路总原理图和对单片机、各种原理电路的认识,以及购买的元器件清单,设备和工具清单,开始对电路板进行制作安装。
安装好的电路板如图6.1所示:
图6.1电路板演示
7程序设计
7.1程序流图
根据题目的要求,按照程序的编写原则,可以画出如下程序框图7.1:
图7.1程序流图
7.2程序代码
程序代码如下:
#include<
reg52.h>
absacc.h>
#defineunitunsignedint
#defineucharunsignedchar
uchardatatimer_count,cm,cf,cs,f;
/*定时器计数变量*/
ucharcodeduma[]={0x28,0xF9,0x4C,0x58,0x99,0x1A,0x0A,0xF8,0x08,0x18};
//共阴的数码管段选.将值送给P0口
ucharcodewema[]={0xEF,0xDF,0xBF,0x7F};
//P1口的片选位
unsignedcharled_buf[]={0,0,0,0};
delay(uchartime)//time=1时延时10ms
{uchari,j,k,q;
for(q=time;
q>
0;
q--);
//10*timems
for(i=10;
i>
i--)//10ms
{for(j=2;
j>
j--);
//1ms
{for(k=60;
k>
k--);
}//154*3.255=500us
}
}
voiddisplay(void)
{
unsignedchari=0;
led_buf[0]=cm%10;
led_buf[1]=cm/10;
led_buf[2]=cf%10;
led_buf[3]=cf/10;
for(i=0;
i<
4;
i++)
{
switch(i){
case0:
P2=0x7F;
break;
case1:
P2=0xBF;
case2:
P2=0xDF;
case3:
P2=0xEF;
P0|=0x08;
default:
P2=0xEF;
}
P0=duma[led_buf[i]];
if(i==2)
if(f==0)
{
P0&
=0xf7;
else
P0|=0x08;
delay
(1);
voidmain(void)
timer_count=0;
//初始化端口
cm=0;
cf=0;
cs=0;
EA=1;
ET0=1;
TMOD=0x01;
/*T0方式1计时*/
TH0=-46080/256;
//定时器T0的高四位赋值
TL0=-46080%256;
TR0=1;
/*开中断,启动定时器*/
f=0;
for(;
;
)
display();
/*定时计数器0的中断服务子程序*/
voidtimer0(void)interrupt1using1
timer_count=timer_count+1;
if(timer_count==10)
{
if(f==0)
{
f=1;
}
else
f=0;
}
if(timer_count==20)
cm=cm+1;
timer_count=0;
if(cm==60)
{cf=cf+1;
cm=0;
if(cf==60)
{cs=cs+1;
cf=0;
if(cs==24)
{cs=0;
8软硬件调试
软件调试的任务是利用开发工具进行在线仿真调试,发现和纠正程序错误,同时也能发现硬件故障。
在KeilC软件中编写程序,然后进行程序调试、仿真,检查数码管是否按要求进行变化,经过仿真,程序符合题目要求。
硬件调试是先用万用表检查印制电路的焊接情况,检查是否有虚焊,是否有短路。
在检查无误后通电检查LED数码管显示。
9设计报告总结
经过了几周的实践与探索,更进一步的对所学的知识有了深刻的理解,而且也学到了新的知识并将理论知识与实践经验相结合,深化用理论去指导实践。
这次实践锻炼了我的动手实践能力,加强了我分析和解决问题的能力,培养了我的团队合作意识。
在我们组里,每个人都很认真的完成焊接工作,最终我们团结一致,共同努力,完成了满意的结果。
这是大学里的最后一次的实验,我们倍加珍惜,对我们进入社会做了初步的锻炼,受益匪浅。
在今后社会的发展和学习实践过程中,一定要不懈努力,不能遇到问题就想到要退缩,一定要不厌其烦的发现问题所在,然后一一进行解决,只有这样,才能成功的做成想做的事,才能在今后的道路上劈荆斩棘,而不是知难而退,那样永远不可能收获成功。
参考文献
[1]樊昌信,曹丽娜.通信原理[M],国防工业出版社,2007
[2]余成波,单片机实用技术与应用,清华大学出版社,2010
[3]马秀丽,C语言程序设计,清华大学出版社,2008
[4]江丽,单片机原理与应用技术,清华大学出版社,2007
[5]何宏主编.单片机原理与接口技术,国防工业出版社,2006
[6]王秋爽,单片机开发基础与经典设计实例,机械工业出版社,2008
[7]沈建良,单片机入门与提高,北京航空航天大学出版社,2009