1、北海职业学院毕业设计(论文)基于52单片机的秒表设计摘要随着电子技术的发展,电子技术在各个领域的运用也越来越广泛,人对它的认识也逐步加深。秒表计时器秒表计时器常常用于体育竞赛及各种其他要求有较精确时间的各领域中。其中启/停开关的使用方法与传统的机械计时器相同,即按一下启/停开关,启动计时器开始计时,再按一下启/停开关计时终止。而复位开关可以在任何情况下使用,即使在计时过程中,只要按一下复位开关,计时应立即终止,并对计时器清零。本设计就是利用所学到的电子元器件将脉冲源用数码管显示出来,以制承诺简易的秒表。关键词机械计时器 启/停开关 复位 数码管显示 简易1 单片机的应用领域目前单片机渗透到我们
2、生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种职能IC卡,名用豪华车辆的安全保障系统,摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械了。因此,的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。单片机广发应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分为如下几个范畴:1.1 在智能仪器仪表上的应用单片机具有体积小、功耗低、控制功能强、扩
3、展灵活、微型化和使用方便等优点,广泛应用与仪器仪表中,结合不同类型的传感器,可实现诸如电压、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。采用单片机控制使得仪器仪表数字化、智能化、微型化,且功能比起采用电子或数字电路更加强大。例如精密的测量设备(示波器,各种分析仪)。1.2在工业控制中的应用用单片机可以构成形式多样的控制系统、数据采集系统。例如工厂流水线的智能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二极管控制系统等。1.3在家用电器中的应用可以这样说,现在的家用电器基本上都采用了单片机控制,从电饭煲、洗衣机、电冰箱、空调机、彩电、其他音响视频器材
4、、再到电子称量设备,五花八门,无所不在。1.4在计算机网络和通信领域中的应用现代的单片机普遍具备通信接口,可以很方便的与计算机进行数据通信,为在计算机网络和通信设备间的应用提供了极好的物质条件,现在的通信设备基本上实现了单片机智能控制,从手机、电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可以兼得移动电话,集群移动通信,无线电对讲机等。1.5单片机在医用设备领域中的应用单片机在医用设备中的用途亦相当广泛,例如易用呼吸机,各种分析仪,监护仪,超生趁断设备及病床呼叫系统等等。1.6在各大型电器中的模块化的应用某些专用单片机设计用于实现特定功能,从而在各种电路中进行模
5、块化应用,而不要求使用人员了解其内部结构。如音乐集成单片机,看似简单的功能,微缩在纯电子芯片中(有别于磁带机的原理),就需要复习的类似与计算机的原理。如:音乐信号一数字的形式存于存储器中(类似于ROM),由微控制器读出,转化为模拟音乐电信号(类似于声卡)1.7单片机在汽车设备领域中应用AT89C52单片机在汽车电子中的应用非常广泛,例如汽车中的发动机控制器,基于CAN总线的汽车发动机智能电子控制器,GPS导航系统,abs防抱死系统,制动系统等等。此外,单片机在工商、金融、科研、教育,国防航空航天等领域都有着十分广泛的用途。以89c52为例讲解单片机的引脚及相关AT89C52单片机的引脚图如图1
6、所示.图1 单片机引脚图40个引脚按引脚功能大致可分为4个种类:电源、时钟、控制和I/O引脚。1电源: (1)VCC芯片电源,接+5V;(2)VSS接地端;注:用万用表测试单片机引脚电压一般为0V或者5V,这是标准的TTL电平。但有时候在单片机程序正在工作时候测试结果并不是这个值而是介于0V+5V之间,其实这是万用表的响应速度没这么快而已,在某一个瞬间单片机引脚电压仍保持在0V或5V。2.时钟:XTAL1、XTAL2晶体振荡电路反相输入端和输出端。3.控制线:控制线共有4根:(1)ALE/PROG:地址锁存允许/片内EPROM编程脉冲ALE功能:用来锁存P0口送出的低8位地址PROG功能:片内
7、有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。(2)PSEN:(3)RST/VPD:复位、备用电源。RST(Reset)功能:复位输入端。VPD功能:在Vcc钓点的情况下,接备用电源。(4)EA/Vpp:内外ROM选择/片内EPROM编程电源。EA功能:内外ROM选择端。Vpp功能:片内有EPROM的芯片,在EPROM编程期间,施加编程电源Vpp。4.I/O线。89C52共有4个8位并行I/O端:P0、P1、P2、P3、口,共32个引脚。P3口还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)5.P3口第一功能:P3.0 RXD 串行输入口P3.1 TXD 串行输出口
8、P3.2 INT0 外部中断0(低电平有效)、P3.3 INT1 外部中断1(低电平有效)P3.4 T0 定时计数器0P3.5 T1 定时计数器1P3.6 WR 外部数据存储器写选通(低电平有效)P3.7 RD外部数据存储器写选通(低电平有效)2 系统设计任务和要求以及方案硬件设计2.1 设计任务设计一个单片机控制的秒表系统。利用单片机的定时器、计数器定时和记数的原理,结合显示电路、LED数码管以及按键来设计计时器。将软、硬件有机的结合起来,使得系统能够正确的进行加计时,数码管能够正确的显示时间。2.2设计要求1.开机时数码显示00。2两位LED显示,相识时间为0099秒。3.每一秒钟,计数器
9、自动加1。4.按键控制计数,分别控制开始计数、停止计数和归零,功能分配如下所示: 按键K1:控制秒表的启动、停止 按键K2:控制数码管显示清零2.3 系统总体方案本系统采用89C52系列单片机为中心器件,利用其定时器/计数器定时和记数的原理,结合硬件电路如电源电路,晶振电路,复位电路,显示电路,以及一些按键电路等来设计计数器,将软、硬件有机的结合起来。其中软件系统采用C语言编写程序,包括显示程序,加1技术程序,演示程序,按键消抖程序等,并在WAVE中调试运行,硬件系统利用PROTEUS强大功能来实现,简单且易于观察,在仿真中就可以观察到实际的工作状态。系统框图如图2所示。显示电路外围电路 单片
10、机电源电路键盘电路 图2 系统框图2.4 硬件电路设计本系统中,硬件电路主要有电源电路,晶振电路,复位电路,显示电路,以及一些按键电路等。(1)单片机简介本系统设计采用89C52系列单片机。AT89C52是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器。该器件采用ATMEL高密度非意识存储器制造技术制造,与工业标准的MCS-52指令集和输出管脚相兼容(由于在微机原理中学过C-52的具体知识,这里不再详细说明)。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C52是一种高效的微控制器。(2)电源电路电源电路是系统最基本的部分电路,任何电路都
11、离不开电源部分,由于三端集成稳压器件所组成的稳压电源线路简单,性能稳定,工作可靠,调整方便,已逐渐取代分立元件,在生产中被广泛采用,由于是小系统,我们采用7809电源提供+5V稳压电压。(1) 晶体振荡电路MCS-52单片机内部的振荡电路是一个高增益反相器,引线XTAL1和XTAL2分别为反向振荡放大器的输入及内部时钟工作电路的输入和来自反向振荡器的输出,该反向放大器可以配置为片内振荡器。这里,我们选用52单片机12MHz的内部振荡方式,电路如下:电容器C1、C2起稳定振荡频率,快速起振的作用,C1和C2可在20-100PF之间取,这里取30P,接线时要晶体振荡器X1极可能接近单片机。电路图如
12、图3 所示。图3 晶体振荡电路图(2) 复位电路采用上电+按键复位电路,上电后,由于电容充电,使RST持续一段高电平时间。当单片机已在运行之中时,按下复位键也能使用RST持续一段时间的高电平,从而实现上电加开关复位的操作。这不仅能使单片机复位,而且还能使单片机的外围芯片也同时复位。电路图如图4所示。图4 复位电路(3) 显示电路显示电路既可以选用液晶显示器,也可以选用数码管显示。我们采用的是数码管显示电路。用2个共阳极LED显示,LED是七段式显示器,内部有7个条形发光二极管和1个小圆点发光二极管组成,根据各管的亮暗组合成字符。再用数码管显示时,我们静态和动态两种选择,静态显示程序简单,显示稳
13、定,但是占用端口比较多;动态显示所使用的端口比较少,可以节省单片机的I/O口。在设计中,我们采用LED动态显示,用P0口驱动显示。由于P0口输出级是开漏电路,用它驱动是需要上拉电阻才能输出高电平。电路图如图5 所示。图5 显示电路图 (4)键盘电路在按键电路中,我们可以在I/O口直接接按键,或者通过I/O设计一个键盘,然后通过键盘扫描程序判断是否有键按下等。键盘扫描电路节省I/O口,但程序有些复杂,在这里,由于我们所用的按键较少,且系统是一个小系统,有足够的I/O口可以使用,为了使程序简化,我们采用按键电路,用部分P1口做开关,P1.1为开始停止,P1.0为清零,外用中断INT1开始,另外用软
14、件发消除振动。电路图如图6所示。图6 键盘电路图2.5硬件主电路图设计用pretues画出其硬件主电路图如图7 所示。 图7 硬件主电路图3 软件设计3.1软件设计概述在软件设计中,一般采用模块化的程序设计方法,它具有明显的优点。把一个多功能的复杂的程序划分为若干个简单的、功能单一的程序模块,有利于程序的设计和调试,有利于程序的优化和分工,提高了程序的阅读性和可能性,使程序的结构层次一目了然。应用系统的程序由包含多个模块的主程序和各种子程序组成。各程序模块都要完成一个明确的任务,实现某个具体的功能,如:加计数延时,计数和显示等,在具体需要时调用相应的模块即可。功能描述:用2位LED数码显示“秒
15、表”,显示时间为0099秒,每秒自动加:1;一个:“开始”“暂停”键,一个“清零”键。3.2主程序流程图这里采用顺序结构,通过对按键的扫描,判断要实现什么功能。如图8 所示。图8 主流程框图3.3程序中个函数设计(1) 初始化函数设计void init() TMOD=0x10; /定时器1工作方式1 TH1=0xd8; TL=0xf0; /延时初始化设置/TR1=1; EA=1; /开总开关 ET1=1; /开定时(2) 显示函数设计void writed(uchar numuchar addr) P2=0xff; /关显示 P0=dulatabnum; /送数据 P2=welatabaddr
16、; delay(4);void display(uchar sec) uchar sech,secl; sech=sec/10; secl=sec%10; writeled(sech,0);writeled(secl,1);(3) 按键函数设计void keyscan() if(start=0) delay(2); if(start=0) TR=TR1; while(start=0) dislay(sec); if(stop=0&TR1=0) delay(2); if(stop=0) s ec=0; while(stop=0) display(sec); (4) 延时函数设计void dela
17、y(uchar time) uchar i,j; for(i=0;itime;i+) for(j=0;j110;j+) 3.4 C语言主程序设计主程序如下:#include#define uchar unsigned charsbit start=P11;sbit stop=P10;uchar code dulatab =0x3f,0x06,0x5b;0x4f,0x66, ox6d,0x7d,0x07,0x7f,0x6f,0x40;/数字编码0-9uchar code welatab =0xfe,0xfd;/位控制字uchar msec,sec;void delay(uchar tiame)/
18、延时 uchar i,j; for(i=0;itime;i+); for(i=0;j110;j+); void writeled(uchar mun ,addr) P2=0xff;/关显示 P0=dulatabnum; /送数据 P2=welatabaddr; delay(4);void display(uchar sec) uchar sech,secl; sech=sec/10; secl=sec%10; writeled(sech,0);writeled(secl,1);void init() TMOD=0x10; /定时器1工作方式1 TH1=0xd8; TL=0xf0; /延时初始化
19、设置/TR1=1; EA=1; /开总开关 ET1=1; /开定时void keyscan() if(start=0) delay(2); if(start=0) TR=TR1; while(start=0) dislay(sec); 延时防抖 if(stop=0&TR1=0) delay(2); /延时防抖 if(stop=0) sec=0; while(stop=0) display(sec); void main() init(); while(1) display(sec); keyscan(); void timer1() interrupt 3 TH1=0xd8; TL1=0xf0
20、; msec+; if(msec=100) msec=0; sec+; if(sec=100) sec=0; 4 结束语经过这次秒表的设计后,我从中学到了好多东西。要设计成功一个好的作品出来,必须要有扎实的专业知识基础,也要熟练地掌握本专业上的知识。这样才能对调试出现的问题进行分析解决,同时要有耐心和毅力。在具体设计的时候,我深刻地体会到做一个设计,要考虑到的东西很多,比如各个元件的功能和特性等,这些问题都要翻阅大量的资料,也要适当地参考别人的经验。这样设计出来的东西才能更好的发挥出它应有的功能。总体来说,这次的设计让我受益匪浅。在平时的理论学习中遇到的问题都在这里一一解决了,同时也加深了我对单片机的程序设计,和秒表的制作过程的了解。在摸索设计电路中我体会到了知识的伟大性,发挥了我的主观能动性和创造能力,这样可以在学到东西的同时又能发挥自己的思维,为我以后的工作和学习打下了一个良好的开端。参考文献1周国运.单片机原理及应用(C语音版).北京:中国水利水电出版社,20092徐玮、沈建良.单片机快速入门.北京:北京航空航天大学出版社,20093彭伟.单片机C语言程序设计100例.北京:电子工业出版社,20104任文霞、吕文哲、王彦朋电子电路仿真技北京:中国电力出版社 .14