单片机课程设计说明书多功能秒表_第1页
单片机课程设计说明书多功能秒表_第2页
单片机课程设计说明书多功能秒表_第3页
单片机课程设计说明书多功能秒表_第4页
单片机课程设计说明书多功能秒表_第5页
已阅读5页,还剩15页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《机械制图与技术测量课程设计》说明书PAGEPAGEII《单片机原理》课程设计说明书 专业名称:电气工程及其自动化 班级:103班 学号:20100 姓名: 指导教师: 日期:2012.12.21《单片机原理》评阅书题目《多功能秒表》学生姓名学号20指导教师评语及成绩指导教师签名:年月日答辩评语及成绩答辩教师签名:年月日教研室意见总成绩:室主任签名:年月日《单片机课程设计》说明书PAGE1《单片机课程设计》说明书I摘要本设计是设计一个单片机控制的多功能秒表系统。近年来随着科技的飞速发展单片机的应用正在不断地走向深入同时带动着传统控制检测日新月异的更新。在实时检测和自动控制的单片机应用系统中单片机往往是作为一个核心部件来使用仅单片机方面的知识是不够的还要根据具体的硬件结构以及针对具体的应用对象的软件结合加以完善。秒表的出现解决了传统的由于人为因素造成的误差和不公平性。本设计的多功能秒表系统采用AT89C52单片机为中心器件利用其定时器/计数器定时和记数的原理结合显示电路、电源电路、LED数码管以及按键电路来设计计时器。将软、硬件有机地结合起来使得系统能够正确地进行计数并且结合相应的显示驱动程序使数码管能够正确地显示时间暂停和中断。我们设计的秒表可以同时记录八个相对独立的时间通过上翻下翻来查看这八个不同的计时值可谓功能强大。其中软件系统采用汇编语言编写程序包括显示程序计数程序中断延时程序按键消抖程序等硬件系统利用PROTEUS强大的功能来实现简单且易于观察在仿真中就可以观察到实际的工作状态。关键词:单片机多功能秒表目录TOC\o"1-2"\h\z\u1.概述 22.系统总体方案及硬件设计 32.1系统总体方案 32.2硬件设计 33软件部分设计 73.1设计特点 73.2设计思路 74调试 155总结 166参考文献 171.概述1.1设计目的设计一个单片机控制的秒表系统。利用单片机的定时器/计数器定时和记数的原理,结合显示电路、LED数码管以及按键来设计秒表。将软、硬件有机地结合起来,使得系统能够正确地进行计时,同时具有开始/暂停、清零、改变频率等功能。1.2设计要求1、共四位LED显示显示时间为00:00~99.99。2、共四个按键分别是开始、暂停、清零、变频键。3、变频按键,可以更改一下秒表的计时频率。1.3设计意义通过本次课程设计可以使我们进一步熟悉和掌握单片机内部结构和工作原理,了解单片机应用系统设计的基本步骤和方法。通过利用AT89C52单片机理解单片机在自动化仪表中的作用以及掌握单片机的编程方法。3、通过设计一个简单的实际应用输入及显示模拟系统,掌握单片机仿真软件PROTEUS的使用方法。4、该实验通过单片机的定时器/计数器定时和计数原理,设计简单的计时器系统,拥有正确的计时、暂停、清零、功能,并能够改变,该种秒表的计时频率。在现实生活中应用广泛,具有现实意义。2系统总体方案及硬件设计2.1系统总体方案本系统采用AT89C52单片机为中心器件利用其定时器/计数器定时和记数的原理,结合硬件电路如电源电路、晶振电路、复位电路、显示电路以及一些按键电路等来设计计时器,将软、硬件有机地结合起来。其中软件系统采用汇编语言编写程序,包括显示计数、中断、延时、按键消抖程序等。并在编程软件中调试运行,硬件系统利用PROTEUS强大的功能来实现,简单且易于观察,在仿真中就可以观察到实际的工作状态。图1系统电路原理2.2硬件设计2.2.189C52单片机MCS-51系列单片机是8位单片机产品,89C52是其中的典型代表,基本模块包括以下几个部分:1、CPU:89C52的CPU是8位的,另外89C52内部有1个位处理器。2、R0M:4KB的片内程序存储器,存放开发调试完成的应用程序。3、RAM:256B的片内数据存储器,容量小,但作用大。4、I/O口:P0-P3共4个口32条双向且可位寻址的I/O口线。5、中断系统:共5个中断源,3个内部中断,2个外部中断。6、定时器/计数器:2个16位的可编程定时器/计数器。7、通用串行口:全双工通用异步接收器/发送器。8、振荡器:89C52的外接晶振与内部时钟振荡器为CPU提供时钟信号。9、总线控制:89C52对外提供若干控制总线,便于系统扩展。89C52的引脚图如下:2.2.2晶体振荡电路89C52芯片内部有一个高增益反相放大器,用于构成振荡器。引线XTAL1和XTAL2分别为反向放大器的输入和输出,两端跨接石英晶体及两个电容就可构成稳定的自激振荡器。这里我们选用52单片机12MHZ的内部振荡方式,电容器C7、C8起稳定振荡频率,并对振荡频率有微调作用,C7和C8可在20-100PF之间取值,这里取33P。2.2.3复位电路采用上电加按键复位电路,上电后由于电容充电,使RST持续一段高电平时间。当单片机已在运行之中时,按下复位键也能使RST持续一段时间的高电平,从而实现上电加按键复位的操作。2.2.4按键电路在按键电路中,我们可以在I/O口上直接接按键或者通过I/O口设计一个键盘,然后通过键盘扫描程序判断是否有键按下等。键盘扫描电路节省I/O口,但编程有些复杂在这里由于我们所用的按键较少且系统是一个小系统有足够的I/O口可以使用为了使程序简化,我们采用按键电路,用部分P1口做开关,P1.0开始、P1.1暂停、P1.2复位、P1.3改变频率、。对于按键的设计,采用了防抖动的程序设计,使系统的性能得到进一步的提升。当按键被按下时,相应的引脚被拉低,经扫描后获得键值,并执行键功能程序,因此按下不同的按键,将执行不同的功能程序。2.2.5显示电路显示电路既可以选用液晶显示器,也可以选用数码管显示。我们采用的是数码管显示电路。用四个共阳极LED显示,LED是八段式显示器,内部有7个条形发光二极管和1个小圆点发光二极管组成,根据各管的亮暗组合成字符。在用数码管显示时,我们有静态和动态两种选择,静态显示程序简单,显示稳定但是占用端口比较多,动态显示所使用的端口比较少,可以节省单片机的I/O口。在设计中,我们采用LED动态显示,用P0口驱动显示。由于P0口的输出级是开漏电路,用它驱动时需要外接上上拉电阻才能输出高电平。2.2.6系统电路图3软件部分3.1设计特点在软件设计中,一般采用模块化的程序设计方法,它具有明显的优点。把一个多功能的复杂的程序划分为若干个简单的、功能单一的程序模块,有利于程序的设计和调试,优化和分工,提高了程序的阅读性和可靠性,使程序的结构层次一目了然。应用系统的程序由包含多个模块的主程序和各种子程序组成。各程序模块都要完成一个明确的的任务,实现某个具体的功能如计数、延时、和显示等。在具体需要时调用相应的模块即可。功能描述,用四位LED数码管显示时间。一个“开始”键一个“暂停”键,一个"复位"键,一个“变频”键,四个按键分别通过四个端口控制秒表的四个功能。3.2设计思路(程序流程图及程序)程序如下#include<reg52.h>//包含52单片机寄存器定义的头文件sbitK1=P1^0;sbitK2=P1^1;sbitK3=P1^2;sbitK4=P1^3;unsignedcharcodeTab[11]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};unsignedcharcodeTab1[11]={0x40,0x79,0x24,0x30,0x19,0x12,0x2,0x78,0x0,0x10,0xff};//数码管显示0~9的段码表unsignedcharint_time;//记录中断次数unsignedintsecond;//储存秒unsignedchara=0;/***********************************************************************函数功能:快速动态扫描延时,延时约0.6毫秒************************************************************************/voiddelay(void){unsignedchari;for(i=0;i<200;i++);}/***********************************************************************函数功能:显示秒入口参数:k出口参数:无************************************************************************/voidDisplaySecond(unsignedintk){P2=0x7f;//P2.6引脚输出低电平,DS6点亮P0=Tab[k/100];//显示1位delay(); delay(); delay(); delay(); delay(); ;P2=0xbf;//P2.7引脚输出低电平,DS7点亮P0=Tab1[k%100/10];//显示2位 delay(); delay(); delay(); delay(); delay(); P2=0xdf; P0=Tab[k%100%10]; delay(); delay(); delay(); delay(); delay(); P2=0xff;//关闭所有数码管 P0=0xff;//显示个位 delay(); delay(); delay(); delay(); delay(); } voidmain(void){ while(1) { while(K1) DisplaySecond(0); TMOD=0x01;//使用定时器T0 TH0=(65536-46083)/256;//将定时器计时时间设定为46083×1.085微秒//=50000微秒=50毫秒 TL0=(65536-46083)%256; EA=1;//开启总中断 ET0=1;//定时器T0中断允许 TR0=1;//启动定时器T0开始运行 int_time=0;//中断次数初始化 second=0; //秒初始化 while(1) { DisplaySecond(second); //调用秒的显示子程序 if(K3==0)break; } }}//********************************************************//函数功能:定时器T0的中断服务程序//*******************************************************voidinterserve(void)interrupt1using1{TR0=0;//关闭定时器T0int_time++;//每来一次中断,中断次数int_time自加1 if(!K4) { delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay(); if(!K4) { a=!a; } } if(a==0) { if(int_time==2||int_time>2)//够20次中断,即1秒钟进行一次检测结果采样 { int_time=0;//中断次数清0 second++;//秒加1 if(second==1000) second=0;//秒等于60就返回0 } }else { if(int_time==8)//够80次中断,即4秒钟进行一次检测结果采样 { int_time=0;//中断次数清0 second++;//秒加1 if(second==1000) second=0;//秒等于60就返回0 } } TH0=(65536-46083)/256;//重新给计数器T0赋初值 TL0=(65536-46083)%256; TR0=1;//启动定时器T0 if(K2==0) TR0=0;}4调试在我们小组成员的一直努力下,终于把多功能秒表的程序给写了出来。但是下载之后,我们发现数码管所显示的效果并不能实现所能希望的。我们总结其原因可能是按键的判断不准确,我们再次认真的看了程序,发现在按键扫描程序中的P2口只是所有

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论