单片机099计数器秒表报告

上传人:re****.1 文档编号:456931317 上传时间:2023-11-01 格式:DOC 页数:6 大小:9.89MB
返回 下载 相关 举报
单片机099计数器秒表报告_第1页
第1页 / 共6页
单片机099计数器秒表报告_第2页
第2页 / 共6页
单片机099计数器秒表报告_第3页
第3页 / 共6页
单片机099计数器秒表报告_第4页
第4页 / 共6页
单片机099计数器秒表报告_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《单片机099计数器秒表报告》由会员分享,可在线阅读,更多相关《单片机099计数器秒表报告(6页珍藏版)》请在金锄头文库上搜索。

1、课程设计报告课程名称单片机原理及应用课程设计学 号姓 名班 级指导老师时 间信息工程学院设计题目: 秒表的设计设计内容、目的与要求:1.用单片机的定时/计数器实现一个秒表的应用。当按键S1按下时,秒表开始计时,并在 数码管上显示当前的计数知道“99”,然后从“00”开始重新计时,然后按键按下则停止计时,第三次按下键则清除上一次的计时结果。2.硬件电路要求:单片机使用P1和P2.1和P2.2来驱动两位数码管,(P1用来作为数码管动态显示的段码引脚,P2.1和P2.2用来作为数码管动态显示的位显信号引脚),P3.7上外扩一个按键。计划与进度安排:2017.6.10 星期六 任务分配;根据自己的题目

2、,在网上或图书馆查找相应资料并进行整理。2017.6.11星期天 根据查找到的资料,并结合题目要求,确定系统的理论设计方案,进行方案论证。2017.6.12 星期一 根据最终确定的方案编写软件部分的程序代码,并连接好实物图,对相应模块的程序进行调试;观察实验现象,与题目要求相比较,优化系统设计。2017.6.13 星期二 修改程序,调试结果。2017.6.14 星期三 编写设计报告。2017.6.15 星期四 修改实验报告和优化程序2017.6.16 星期五 演示设计成果,回答老师提出的问题,完成答辩。2017.6.17 星期六 根据答辩过程中的问题,对程序和报告进行最后的修改。2017.6.

3、18 星期日 对本周课程设计进行总结,并将自己所用的实验器材放回原处。设计过程、步骤(可加页):一、 设计方案利用STC90C51单片机来制作一个手动计数器,在STC90C51单片机的P3.7 管脚接一个轻触开关,作为手动计数的按钮,用单片机的P2.0P2.7 接一个共阳数码管,作为0099 计数的个位数显示,用单片机的P0.0P0.7 接一个共阴数码管,作为0099 计数的十位数显示;二、 工作原理采用STC90C51单片机为中心器件,利用其定时器/计时器定时和计数的原理,结合硬件电路如电源电路、晶振电路、复位电路、显示电路,以及一些按键电路等来设计计时器,软硬件有机的结合起来,其中软件系统

4、采用c语言编写程序,包括显示程序,快加程序,暂停程序等,硬件系统利用Keil强大的功能来实现,简单且易观察。(一) 开发板上硬件连线(如图1)1把“单片机系统”区域中的P0.0/AD0P0.7/AD7 端口用8 芯排线连接到“四路静态数码显示模块”区域中的任一个ah 端口上;要求:P0.0/AD0对应着a,P0.1/AD1 对应着b,P0.7/AD7 对应着h。2把“单片机系统”区域中的P2.0/A8P2.7/A15 端口用8 芯排线连接到“四路静态数码显示模块”区域中的任一个数码管的ah 端口上;3把“单片机系统”区域中的P3.7/RD 端口用导线连接到“独立式键盘”区域中的SP1 端口上。

5、图1 硬件电路连接图(二)显示电路两位数码管循环显示0099电路数码管只要是用于数字的显示。数码管有共阴和共阳的区分,单片机都可以进行驱动,但是驱动的方法却不同。两位数码管循环电路是由电阻、二极管和数码管组成,电源+5V通过560的电阻直接给数码管的7个段位供电,P0.0-P0.7对应了两个接数码管的A,B,C,D,E,F,G和小数点位,P2.6接显示个位数的数码管的3、8引角,P2.7则接十位数的。P2.6和P2.7端口分别控制数码管的十位和个位的供电,当相应的端口变成低电平时,驱动相应的三极管会导通,+5V通过二极管和驱动三极管给数码管相应的位供电,这时只要P0口送出数字的显示代码,数码管

6、就能正常显示需要的数字。图2 十位显示动态数码管(共阳数码管)图3 个位显示静态数码管(共阴数码管)(三)时钟电路时钟电路的晶振频率越高,系统的时钟频率越高,单片机的运行速度也越快。晶振频率根据设计需要设为12MHz,又根据谐振性质,电路中的电容应选择为30pF左右。图4 时钟电路(四)复位电路MCS-51单片机的复位是靠外部电路实现的。MCS-51单片机工作之后,只要在他的RST引线上加载10ms以上的高点平,单片机就能有效地复位。MCS-51单片机通常采用上电自动复位和按键复位两种方式。最简单的复位电路如图5:图5 复位电路上电瞬间,RC电路充电,RST引线出现正脉冲,只要RST保持10m

7、s以上的高电平,就能使单片机有效的复位。在系统中,有些外围芯片也需要复位。如果这些芯片复位端的复位电平与单片机的复位电平的要求一致,则可以将复位信号与之相连。三、 软件设计(一) 主程序及流程图开始Count初始为0数码管显示为00按键识别成功Count=count+1Count100显示count数值图6 程序流程图#include#define uchar unsigned char#define uint unsigned int /头文件sbit K1=P37; /定义按键引脚uchar i,count,keyflag;bit keystate;uchar CODE=0x3f,0x06

8、,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f; /数码管编码void delayMS(uint ms) /ms延时函数uchar t;while(ms-)for(t=0;t120;t+);void Key() /按键处理函数if(keystate=0) /如果按键被按下keyflag=(keyflag+1)%3; /将按键索引变换成0、1、2三种switch(keyflag)case 1:EA=1;ET0=1;TR0=1;break;case 2:EA=0;ET0=0;TR0=0;break;case 0:P0=0x3f;P2=0x3f;i=0;count=

9、0;void main()P0=0x3f; /显示00P2=0x3f;i=0;count=0;keyflag=0;keystate=1;TMOD=0x01;TH0=(65536-50000)/256; /定时器T0:50msTL0=(65536-50000)%256;while(1)if(keystate=K1)delayMS(10); /动态扫描实现数码管显示keystate=K1;Key();void DSY_Refresh()interrupt 1 / 定时器T0中断处理函数TH0=(65536-50000)/256;TL0=(65536-50000)%256; /秒定时的预置函数(回复

10、定时0初值)if(i+=100) /如果i=0i=0;count+;P0=CODEcount/10;P2=CODEcount%10;if(count=99)count=0; /如果到了99,则重新从0开始计数结果与分析(可以加页): (一) 调试结果1初始状态图7:初始状态结果图2开始计时后按下按键暂停图8:中间状态图示(二)问题分析及解决措施1.一开始时没有分清楚数码管是共阴数码管还是共阳数码管,C语言程序中默认数码管是共阴,所以两个P接口的值都是按照共阴去写的,导致数码管选段及位显有问题,后来经过老师的指点,将共阳数码管P2的接口改成了共阴。2.用到Keil软件时,生成的文件不能烧录,与单

11、片机的开发板连机。后来经过学习教程并和同学讨论,掌握了用Keil软件生成hex文件并被烧录程序识别的方法。3.第一次差点出了实验结果,但结果与实验要求不符。要求99秒,但是我的结果是有两位数显,但是时间跳转得太快。后来想到可能是程序有问题,通过自己的摸索,和网络检索修改了C语言程序中的时间定时和count循环赋值。设计体会与建议:课程设计是培养学生综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.。回顾起此次单片机课程设计,仍感慨颇多。从理论到实践,在这一个星期里,我学到很多很多的的东西,巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说不懂keil中hex文件生成方法,对单片机汇编语言掌握得不好等等。通过这次课程设计之后,一定把以前所学过的知识重新温故。指导老师评语

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

当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号