欢迎来到天天文库
浏览记录
ID:37255625
大小:105.00 KB
页数:7页
时间:2019-05-20
《单片机秒表设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、基于单片机的秒表设计摘要:本设计利用单片机的定时器/计数器定时和计数的原理,通过proteus仿真软件来模拟实现的。模拟利用AT89S52单片机、LED数码管以及软件来控制秒表的计数以及计数的开启/暂停/继续与复位。本设计主要完成具备基本功能的电子秒表的理论和实践设计,其中开启、停止按键的使用方法与传统的机械计时器相同,即按一下开启按键,启动计时器开始计时,按一下停止按键计时终止。而复位按键可以在任何情况下使用,即使在计时过程中,只要按一下复位按键,计时应立即终止,并对计时器清零。关键字:电子秒表,STC
2、89C52,SN74HC573N,定时中断。引言:6随着大规模和超大规模集成电路技术的发展和计算机微型化的需要,将微型计算机的基本部件:中央处理器(CPU)、存储器、输入/输出(I/O)接口、定时器/计数器等多种资源集成在一个半导体芯片上,使得一块集成电力芯片就能构成一个完整的微型计算机。这种集成电路芯片被称为单片微型计算机,简称单片机。单片机在结构设计上,他的软、硬件系统及I/O接口控制能力等方面都有独到之处,具有较强而有效的功能。从其组成、逻辑功能上来看,单片机具备了微型计算机系统的基本部件。1.硬件
3、系统1.1系统硬件设计1.1.1单片机最小系统单片机最小系统包括电源(地),晶振(一般使用11.0592M或者12M),复位电路,单片机内装程序。有了以上几块内容,单片机就能工作了。另外需要注意的是,EA(31脚)也要接高电平,即接到+5V电源。单片机最小系统电路图见下图。1.1.2秒表硬件线路图图一61.2.3系统工作原理本设计利用AT89C52单片机的定时器/计时器定时和计数的原理,使其能精确计时。其硬件电路主要有主控制器、计时与显示电路和复位电路等。主控制器用AT89C52,显示电路采用共阴极LED
4、数码管显示计时时间。利用中断系统使其能实现开始暂停的功能。P3.2,RST开口接四个按钮,分别实现开始,暂停,复位的功能。电路原理图设计最基本得要求是正确性,其次布局合理,最后在正确性和布局合理的前提下力求完美。由于条件限制本系统采用软件模拟硬件系统,采用proteus软件进行模拟设计及调试工作。图二七段数码管引脚图2.软件系统2.1程序设计程序流程图如下6是否是否手动开关定时器溢出中断对定时器重新赋值进行加一操作后重新计算时间往P1口和P2口送显示时间数码管显示中断返回主函数对定时器/计数器初始化始化程
5、序开始判断P3^2口是否有低电平信号开中断并启动定时器开始、暂停或者继续计数置零判断复位开关是否按下62.2相应程序代码#includecodeunsignedchartab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//共阴数码管0-9unsignedcharDis_Shiwei;//定义十位unsignedcharDis_Gewei;//定义个位unsignedcharS_Dis_Shiwei;//定义秒十位unsig
6、nedcharS_Dis_Gewei;//定义秒个位unsignedcharsecond,msecond;voiddelay(unsignedintcnt){while(--cnt);}/********************************//*定时中断*//********************************/voidtim(void)interrupt1using1{TH0=0xd8;//重新赋值TL0=0xf0;msecond++;if(msecond==100){mseco
7、nd=0;second++;//秒加1if(second==100)second=0;S_Dis_Shiwei=tab[second/10];//十位显示值处理S_Dis_Gewei=tab[second%10];//个位显示处理6}Dis_Shiwei=tab[msecond/10];//十位显示值处理Dis_Gewei=tab[msecond%10];//个位显示处理}voidISR_INT0(void)interrupt0using1{TR0=!TR0;//利用外部中断打开和关闭定时器0用于开始和停
8、止计时}voidCLR(void){second=0;//利用外部中断清零msecond=0;Dis_Shiwei=tab[msecond/10];//十位显示值处理Dis_Gewei=tab[msecond%10];//个位显示处理S_Dis_Shiwei=tab[second/10];//十位显示值处理S_Dis_Gewei=tab[second%10];//个位显示处理}main(){EX0=1;//外部中断0设置IT0
此文档下载收益归作者所有