秒表设计单片机课程设计.doc

上传人:精*** 文档编号:853925 上传时间:2023-09-16 格式:DOC 页数:19 大小:217.56KB
下载 相关 举报
秒表设计单片机课程设计.doc_第1页
第1页 / 共19页
秒表设计单片机课程设计.doc_第2页
第2页 / 共19页
秒表设计单片机课程设计.doc_第3页
第3页 / 共19页
秒表设计单片机课程设计.doc_第4页
第4页 / 共19页
秒表设计单片机课程设计.doc_第5页
第5页 / 共19页
点击查看更多>>
资源描述

1、摘要本设计利用单片机的定时器/计数器定时和计数的原理,利用AT89S52单片机、LED数码管以及软件来控制秒表的计数以及计数的计时/倒计时/清零/复位。本设计主要完成具备基本功能的电子秒表的理论和实践设计,其中一个按键来清零(00);一个计时开始按键,控制计时的开始(执行加1操作);一个复位键(60秒,用来倒计时);一个倒计时按键,表示开始逐渐减1。关键字:电子秒表,单片机,定时中断目录一、前言 41.1单片机技术的特点及应用4二、设计任务要求及研究意义 62.1设计任务62.2设计要求62.3课题的研究意义6三、总体方案设计分析、讨论73.1、硬件方案73.2、软件方案7四、硬件原理图设计8

2、4.1单片机简介84.2时钟电路94.3LED8段数码显示管结构与原理9五、软件框图及程序设计115.1系统框图 115.2程序流程图 125.3程序代码 13六、设计总结和心得体会206.1设计总结 206.2心得体会 20七、参考文献20一、前言1.1 单片机技术的特点及应用随着大规模和超大规模集成电路技术的发展和计算机微型化的需要,将微型计算机的基本部件:中央处理器(CPU)、存储器、输入/输出(I/O)接口、定时器/计数器等多种资源集成在一个半导体芯片上,使得一块集成电力芯片就能构成一个完整的微型计算机。这种集成电路芯片被称为单片微型计算机,简称单片机。单片机在结构设计上,他的软、硬件

3、系统及I/O接口控制能力等方面都有独到之处,具有较强而有效的功能。从其组成、逻辑功能上来看,单片机具备了微型计算机系统的基本部件。目前,8位高档机和16位机在单片机应用中占主导地位,产品众多,已有几十个系列、几百个型号,除了通用单片机以外,集成更多资源,如A/D转换器、D/A转换器、“看门狗”(Watchdog)电路、LCD控制器、网路控制模块等,将单片机嵌入式系统和Internet连接起来已是一种趋势。还有专用单片机产品,如专门用于数据处理(图像和语言处理等)的单片机。总之,单片机正在向微型化、低功耗、高速、集成、高集成度、多资源、网络化、专用型方向发展。1.1.1 单片机的特点单片机在一块

4、芯片上集成了一台微型计算机所需要的基本部件。它在硬件结构、指令功能等方面均有独到之处,其特点如下:性价比高。单片机性能稳定,功能强大,价格便宜。体积小,集成度高、可靠性高。单片机将一台计算机所需要的基本部件集成在一块芯片上,减少了各部件间的连线,能大大地提高运行速度和抗干扰能力。控制功能强。为了,满足工业控制的需要,单片机有很强的位处理功能。在其他的逻辑控制功能等方面,也都优于一般的8位微处理。单片机系统配置灵活、方便。由于单片机带有一定数量的接口电路,容易构成各种规模的应用系统。单片机类型多。单从ROM类型来说,单片机的只读存储器有ROM、EPROM、EEPROM、Flash Memory等

5、多种,可以根据实际需要进行选择。1.1.2 单片机的应用由于单片机具有如上所述的特点,因此在工业生产、日常生活等诸多领域,得到了日益广泛的应用,单片机的主要应用领域有:工业控制,如在工业生产过程中参数(如温度、压力、流量、液位等)的控制,数据处理功能于一体,如转速测试仪、噪声测试仪、振动测试仪及电子秤等。计算机网络与通信,单片机上有并行I/O接口角儿串联I/0接口,可用于通信接口,如单片机控制的自动呼叫应答系统、列车无线通信系统、遥测遥控系统等。家用电器,由于单片机体积小,控制能力强,且片内与定时器/计数器,所以广泛应用于家用设备中。如空调、洗衣机、微波炉及防盗报警等。二、 设计任务要求及研究

6、意义2.1设计任务:用AT89S52设计一个单片机控制的秒表系统。2位的LED数码作为“秒表”,利用单片机的定时器、计数器定时和记数的原理,结合显示电路、LED数码管以及按键来设计计时器。将软、硬件有机的结合起来,使得系统能够正确的进行加计时和减计时,数码管能够正确的显示时间。2.2设计要求:2位LED数码显示的秒表设计,显示时间为,00-59,以秒为单位;并设置一个按键来清零(00);一个计时开始按键,控制计时的开始(加1操作);一个复位键(60秒,用来倒计时);一个倒计时按键,表示开始逐渐减1。2.3课题的研究意义1) 通过本次课程设计加深对单片机课程的全面认识复习和掌握,对单片机课程的应

7、用进一步的了解。2) 掌握定时器、中断的设置和编程原理。3) 通过此次课程设计能够将单片机软硬件结合起来,对程序进行编辑,校验。4) 该实验通过单片机的定时器/计数器定时和计数原理,设计简单的计时器系统,拥有正确的计时、倒计时、清零、置位功能,并同时可以用数码管显示,在现实生活中应用广泛,具有现实意义三、总体方案设计分析、讨论本设计分为时钟电路、按钮电路、显示电路和单片机四大部分,这些模块中单片机占主控地位。时钟电路常用的有内部时钟方式和外部时钟方式,但因为本设计中只需要一片单片机,所以采用内部时钟方式比较简单。显示电路所用的数码管有共阴和共阳之分,不管使用何种数码管,P0口作为I/O使用时都

8、是需要上拉电阻才能驱动数码管。另外,因为单片机的4个并行I/O口的输出电流一般是1mA,短路电流为4mA左右,而数码管的最少驱动电流也需要10mA,因而不管在使用共阴数码管时,单片机输出口也必须使用上拉电阻提高输出电流,才能驱动数码管。根据显示方式的不同选择,我们可以有几种方案:方案一:使用静态显示方式。静态显示方式下的数码管的显示字符一经确定,相应锁存器锁存的断码输出將维持不变,直到送入另一个字符的断码为止。因而此设计中使用的显示位数使用了三个8位并行I/0口。如果另外想扩展单片机功能,则能使用的输出管脚很是有限。方案二:使用动态显示方式。这个显示方式是将所有显示位的段码线的相应段并联在一起

9、,由一个8位I/O口控制,而各位的共阴或共阴极分别由相应的I/O线控制,形成各位的分时选通。这种显示方式,简化了硬件电路,特别在多位数码管显示时尤为突出。3.1、硬件方案单片机选择AT89S52采用两个LED八段数码显示管分别显示秒表的个位和十位;P0口输出十位段码和个位段码,通过两个锁存器74HC573控制段选和位选信号。3.2、软件方案因为当晶振频率为12MHz时,定时/计数器最大计时时间为65536ms,所以应根据计时时间设定定时/计数器定时时间,累计合适中断次数后执行刷新显示子程序;按2键每隔1s秒计数加1,秒计数到60自动从0开始,循环不止。按4键每隔1s秒计数减1,秒计数到0自动从

10、60开始,循环不止。四、硬件原理图设计4.1 单片机简介本系统设计采用89C52系列单片机。AT89S52是一种带8K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器。该器件采用ATMEL高密度非意识存储器制造技术制造,与工业标准的MCS-52指令集和输出管脚相兼容(由于在微机原理中学过C-52的具体知识,这里不再详细说明)。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89S52是一种高效的微控制器。4.2时钟电路时钟电路用于产生单片机工作所需要的时钟信号,单片机本身就是一个复杂的同步时序电路,为了保证同步工作方式的实现,电路应在唯一的时钟信号控制下严

11、格地按时序进行工作。在AT89C52芯片内部有一个高增益反相放大器,其输入端为芯片引脚XTAL1,输出端为引脚TXAL2,在芯片的外部通过这两个引角跨接晶体振荡器和微调电容,形成反馈电路,就构成了一个稳定的自激振荡器。 此电路采用12MHz的石英晶体。时钟电路如下图:4.3LED8段数码显示管结构与原理按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管 的阳极接到一起形成公共阳极(COM)的数码管,共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮,当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所

12、有发光二极管的阴极接到一起形成公共阴极(COM)的数码管,共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮,当某一字段的阳极为低电平时。数码管结构八段LED数码管段码表显示数码共阴型段码共阳型段码显示数码共阴型段码共阳型段码03FHC0HA77H88H106HF9Hb7CH83H25BHA4HC39HC6H34FHB0HD5EHA1H466H99HE79H86H560H92HF71H8EH670H82H707HF8H87FH80H96FH90H锁存器五、软件框图及程序设计本系统采用89S52系列单片机为中心器件,利用其定时器/计数器定时和

13、记数的原理,结合硬件电路如电源电路,晶振电路,复位电路,显示电路,以及一些按键电路等来设计计数器,将软、硬件有机的结合起来。其中软件系统采用C语言编写程序,并在keil中调试运行,硬件系统利用开发板来实现,简单且易于观察,。系统框图如图所示。5.1系统框图单片机AT89S52显示电路按钮电路时钟电路 5.2程序流程图:程序开始程序初始化按键按下?开各中断Key1=0?调用显示子程序YYYKey4=0?Key2=0?Key3=0?YY按键按下?循环数据确定5.3程序代码#include /头文件包含特殊功能寄存器的定义#define uchar unsigned char#define uint

14、 unsigned intsbit key1=P34; /独立键盘sbit key2=P35;sbit key3=P36;sbit key4=P37;sbit dula=P26; /段锁存位sbit wela=P27; /位锁存位uchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f; /共阴数码管 0-9uchar num,num0,num1,num2,num3,num4;/*/ /* 延时函数 */*/void delayms(uint xms)uint i,j;for(i=xms;i0;i-)for(j=110

15、;j0;j-);/*/ /* 数码管显示函数 */*/void display(uchar numdis)uchar shi,ge;shi=numdis/10;ge=numdis%10;dula=1;P0=tableshi;/送段显示码 十位数字dula=0;P0=0xff;/消影wela=1;P0=0xfe;/送位选码 wela=0;delayms(5);dula=1;P0=tablege; /送段显示码 个位数字dula=0;P0=0xff;wela=1;P0=0xfd;/送位选码wela=0;delayms(5);/*/ /* 初始化子函数 */*/void init()TMOD=0x0

16、1;/定时器0工作在模式1,16位定时TH0=(65536-50000)/256;/装初值,50ms中断一次TL0=(65536-50000)%256;EA=1;/开总中断ET0=1;/开定时器0中断TR0=1;/启动定时器0/*/ /* 键盘扫描函数 */*/void keyscan()if(key1=0)/第一个键按下delayms(10);/消抖if(key1=0)num1=0;while(!key1);/第一个键释放while(key2&key4&key3)display(num1);/数码管显示00if(key2=0)/第二个键按下delayms(10);/消抖if(key2=0)n

17、um2=0;while(!key2); /第二个键释放while(key1&key4&key3)display(num2);/数码管显示00-59每秒增1if(key3=0) /第三个键按下delayms(10); /消抖if(key3=0)num3=60;while(!key3); /第三个键释放while(key1&key2&key4) display(num3);/数码管显示60if(key4=0) /第四个键按下delayms(10);/消抖if(key4=0)num4=59;while(!key4);/第四个键释放while(key1&key2&key3)display(num4);/数码管显示59-00每秒减1/*/ /* 主函数 */*/void main()init();/初始化while(1)keyscan();/*/ /* 定时器0中断函数 */*/void T0_time() interrupt 1TH0=(65536-50000)/256;TL0=(65536-50000)%256;num+;if(num=20)/计时1snum=0;num2+;if(num2=60)num2=0;if(num4=0)num4=60;num4-;六、设计总结和心得体会6.1设计总结6.2心得体会七、参考文献19

展开阅读全文
相关资源
相关搜索
资源标签

当前位置:首页 > 技术资料 > 课程设计

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922