电子秒表课程设计Word文档格式.docx

上传人:b****6 文档编号:21121094 上传时间:2023-01-27 格式:DOCX 页数:11 大小:51.40KB
下载 相关 举报
电子秒表课程设计Word文档格式.docx_第1页
第1页 / 共11页
电子秒表课程设计Word文档格式.docx_第2页
第2页 / 共11页
电子秒表课程设计Word文档格式.docx_第3页
第3页 / 共11页
电子秒表课程设计Word文档格式.docx_第4页
第4页 / 共11页
电子秒表课程设计Word文档格式.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

电子秒表课程设计Word文档格式.docx

《电子秒表课程设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《电子秒表课程设计Word文档格式.docx(11页珍藏版)》请在冰豆网上搜索。

电子秒表课程设计Word文档格式.docx

电子科技日新月异,人们对现代电子设备的智能化和微型化及其精度提出了更高的要求,而单片机因其具有稳定可靠、体积小、价格低廉等特点,成为设计智能化仪器仪表的首选微控制器,因此本次我没有选用传统的专用的时钟芯片,而是采用了AT89C52芯片,此款单片机可以使用软件对其进行在线编程,其灵活性和可靠性都相对提高。

通过此次课程设计,增强了我们的动手能力,把理论与实践融合在一起。

同时,也进一步加深了对单片机的硬件结构的理解和巩固,编程能力也得到了提高。

在此将秒表制作过程中用到的知识进行了一些总结,希望自己今后能注意。

关键字:

单片机;

电子秒表;

仿真

一、课程设计目的

通过课程设计教学环节,学生在进一步熟悉单片机基础知识的同时,学会单片机应用系统的设计、制作方法和开发过程,初步具备运用所学知识分析和解决实际问题的能力,能够独立地完成一个简单应用系统的设计与开发。

二、电路原理

1.电路实际应用意义

因此,研究秒表及扩大其应用,有非常现实的意义。

电子秒表是一种用数字电路技术实现秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命,因此得到了广泛的使用。

2.电路原理

(1).电子秒表的工作原理:

本设计中的数字秒表的核心是AT89C52单片机,其内部带有8KB在线可编程Flash存储器的单片机,无须外扩程序存储器,硬件电路主要由四部分构成:

时钟电路,复位电路,键盘以及显示电路。

时钟电路是秒表硬件电路的核心,没有时钟电路,电子表将无法正常工作计时。

本系统时钟电路采用的晶振的频率为12MHz,定时器采用的是定时器0工作在方式1定时。

键盘可对电子表进行调微秒启动、停止、清除设置。

显示电路由1个四位一体共阴级LED数码管构成,它的段控端和位控端通过与AT89C52单片机的I/O口相连,显示器可使秒表显示出秒、毫秒。

数字秒表的计时原理为:

上电后,电子表显示,电子表从000.0开始计时。

最小计时单位为0.1秒,也就是100毫秒。

由于时钟电路采用的晶振的频率为12MHz,故机器周期为12/12MHZ=1us,程序设计采用定时500us,因此要产生500us/1us=500个脉冲;

定时器采用的是定时器0工作在方式1定时,方式1(16位方式):

初始值C=10000H-500B=FE0CH,高位装入TH

低位装入TL

(2)时钟电路工作原理:

下图所示为时钟电路原理图,在AT89S52芯片内部有一个高增益反相放大器,其输入端为芯片引脚XTAL1,输出端为引脚XTAL2。

而在芯片内部,XTAL1和XTAL2之间跨接晶体振荡器和微调电容,从而构成一个稳定的自激振荡器。

时钟电路产生的振荡脉冲经过触发器进行二分频之后,才成为单片机的时钟脉冲信号。

图1时钟电路

(3)显示电路工作原理:

四位一体数码管如图4所示,它的位控端连接在一起,共用8根数据线,。

假设段控端有段码输入时,每个数码管的段控端都收到了段码,但只有位控线有效的数码管才能显示数据,反之亦反。

共阳极数码管段控端为低电平有效,位控端高电平有效,共阴极数码管恰恰相反。

四位一体数码管用于动态扫描,即把数码管显示数据的段控码分时送到其对应的段控端。

当一个段控码被送到段控端时,显示此段控码数据的数码管,它的位控端置有效电平,数码管点亮;

而其他数码管的位控端送无效电平,数码管不亮。

持续点亮一段时间,再送其它的段控码,依次把显示段控码的数码管,使其位控端为有效电平,其他数码管的位控端为无效电平,就这样数码管依次被点亮。

图2显示电路

此外,电路中还用了MAX7221作为显示电路的驱动器。

3.电路原理图

图3总电路图

三、课程设计总结

1.仿真电路过程

在PROTUES软件上找出所要用到芯片,电阻,电容等元件摆放在适当的位置,然后连线。

在仿真之前必须先将单片机程序编译出来,这次我用到的编译工具是Keil,将代码输入进Keil保存,没有错误后会自动生成对应的后缀名为“HEX”的文件。

在运行PROTUES仿真之前需设置AT89C52参数,要找到这个“HEX”文件的路径,其他元器件的属性设置完以后就可以进行仿真。

仿真结果如下图所示:

图4仿真图

2.课程设计心得体会

在电路图制作阶段,我到图书馆、网上查阅各种资料,在电脑上使用PROTUES进行以及相关的绘图软件,使自己在理论分析设计和动手操作能力等各方面得到了极大提高。

我通过对设计任务书的具体要求分析思考,再加上以前在学校进行的各种相关实践和实习积累的经验,首次完成了这次的课程设计的任务,在利用Keil软件编写程序调试时,遇到了不少困难,首先是C语言,我认为是这次设计中最难得的地方,因为我要做的是数字秒表,此外还要有时间校准功能,因此就要用到很多种电路,还要很多芯片,这使我学会了耐心分析问题,并进一步锻炼自己去攻破难题的能力。

通过这次课程设计我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。

这次课程设计整体来说是成功的,但我也发现了自己许多错漏和不足之处。

譬如,最简单的程序没写好就想着写更复杂的程序,做事还是缺乏耐性和细心,当有时遇到问题时,总觉得无从下手,对于课本上的知识不能很好的组织起来。

在编写各功能程序时,特别是后来增添的比较复杂的程序。

现在电子领域、不同的行业极为广泛,对于我们学电子专业的人来说,学好课本上的知识仅仅是基础,要掌握一门技术必须还得更深层的学习,并且亲自动手去做,这样才能达到事半功倍的效果,有点小小的成就感,终于觉得平时所学的知识有了实用的价值,达到了理论与实际相结合的目的,不仅学到了不少知识,而且锻炼了自己的能力,更加强了团队合作的意识,使自己对以后的路有了更加清楚的认识,同时,对未来有了更多的信心

在最后,再次感谢指导老师以及所有同组成员。

四、附录

附录一:

程序清单:

#include<

reg52.h>

sbitkey0=P3^6;

sbitkey1=P3^7;

sbitDIN=P3^0;

sbitCLK=P3^2;

sbitLOAD=P3^1;

unsignedintcount;

voiddelay(unsignedintus)

{

while(us--);

}

voidtime0_initial()

{

count=0;

//秒清零

TMOD=0x21;

//T0T1工作于方式1

TL0=60;

TH0=176;

//50ms定时初值

ET0=1;

//允许T1中断

EA=1;

//开中断

TR0=1;

//T1开始计时

}

voidint50ms()interrupt1

{

TR0=0;

//关定时器T0

TL0=0xff;

TH0=0xff;

//赋定时初值

TR0=1;

//开定时器T0

count++;

//50ms计数加1

unsignedintdecSec,centSec,sec,mSec;

voidsend(unsignedcharadd,unsignedchardat)//发送16字节子函数。

unsignedcharADS,i,j;

LOAD=0;

i=0;

while(i<

16)

{

if(i<

8)

{

ADS=add;

}

else

ADS=dat;

for(j=8;

j>

=1;

j--)

DIN=ADS&

0x80;

ADS=ADS<

<

1;

CLK=1;

CLK=0;

i=i+8;

LOAD=1;

voidinitial_max7219()

//send(0x0c,0x01);

//初始化MAX7219;

//send(0x0b,0x07);

//send(0x0a,0xf5);

//send(0x09,0xff);

send(0x09,0xff);

send(0x0a,0x08);

send(0x0b,0x03);

send(0x0c,0x00);

send(0x0f,0x00);

send(0x0c,0x01);

}

///*---显示数码子函数---*/

//voiddisp(unsignedcharhour,unsignedcharmin,unsignedcharsec)

//{

////send(0x08,sec-sec/10*10);

////send(0x07,sec/10);

////send(0x06,10);

//显示"

-"

////send(0x05,min-min/10*10);

//前四位显示

//send(0x04,sec/100);

//send(0x03,(sec-sec/100*100)/10);

//send(0x02,sec-(sec-sec/100*100)-(sec-sec/100*100)/10*10);

//send(0x01,mSec);

//}

voidtimer0()interrupt1

TH0=60;

TL0=176;

if(count%2==0)

//count=0;

mSec++;

if(mSec==10)

mSec=0;

if(count==20)

count=0;

sec++;

if(sec==10)

sec=0;

decSec++;

if(decSec==10)

{

decSec=0;

centSec++;

if(centSec==10)

centSec=0;

}

}

voidadjust_time()

if(key0==0)

TR0=!

TR0;

if(key1==0)

TR0=0;

sec=0;

mSec=0;

decSec=0;

centSec=0;

voidmain()

sec=0;

mSec=0;

time0_initial();

//voiddelay(unsignedint);

//voidsend(unsignedchar,unsignedchar);

//voidinitial_max7219();

//voiddisp(unsignedchar,unsignedchar,unsignedchar);

initial_max7219();

while

(1)

adjust_time();

send(0x04,mSec);

send(0x03,sec|0x80);

send(0x02,decSec);

send(0x01,centSec);

附录二:

参考文献

[1]、曹巧媛主编,《单片机原理及应用》北京:

电子工业出版社,1997.7。

[2]、赵秀珍,单永磊主编,《单片微型计算机原理及其应用》北京:

中国水利水电出版社,2001.8。

[3]、张毅刚,修林成,胡振江编著《MCS-51单片机应用设计》哈尔滨:

哈尔滨工业大学出版社,1990.8。

[4]、张洪润,兰清华编著《单片机应用技术教程》北京:

清华大学出版社,1997.11。

[5]、陈景初主编《单片机应用系统设计与实践》北京:

北京航空航天大学出版社,1999.6。

[6]、马家辰主编《MCS-51单片机原理与接口技术》哈尔滨:

哈尔滨工业大学出版社,2002.8。

[7]、李群芳,张士军,黄建编著《单片微型计算机与接口技术(第2版)》

北京:

电子工业出版社,2007.1。

(部分内容来源于网络,版权归原作者所有)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1