基于51单片机的数字秒表课程设计(共21页).doc
《基于51单片机的数字秒表课程设计(共21页).doc》由会员分享,可在线阅读,更多相关《基于51单片机的数字秒表课程设计(共21页).doc(21页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上电气与自动化工程学院卓越工程师培养计划暑期实训报告题 目 秒表系统的设计 年 级 11级 专 业 自动化 班 级 卓越班 学 号 姓 名 俞雷 地 点 大学生创新实验室 日 期 2012年8月12日2012年8月20日目录一、单片机简介单片机以其高可靠性、高性价比、低电压、低功耗等一系列优点,近几年得到迅猛发展和大范围推广,广泛应用于工业控制系统,数据采集系统、智能化仪器仪表,及通讯设备、日常消费类产品、玩具等。并且已经深入到工业生产的各个环节以及人民生活的各层次中,如车间流水线控制、自动化系统等、智能型家用电器(冰箱、空调、彩电)等。管脚图如图1.1所示。图1.1
2、AT89C52单片机引脚图(1) 电源地组Vcc和Vss;VCC(40)脚接+5V电压;VSS(20)脚接地(2) 时钟电路组XTAL1和XTAL2(3) 控制信号组RST/ALE/PSEN和EA(4) I/O端口P0, P1, P2和P3二、设计目标1、设计目的:1.利用单片机定时器中断实现秒表计时功能。2.方案一:通过LED显示程序的调整,熟悉LED动态显示的控制过程。 方案二: 通过对1602设置,熟悉1602液晶显示的控制过程。3.通过键盘程序的调整,熟悉矩阵式键盘的控制,熟悉键盘扫描原理。4.通过阅读和调试简易秒表整体程序,学会如何编制含LED动态显示、1602液晶的显示、键盘扫描和
3、定时器中断等多种功能的综合程序。2、具体操作:方案一:用AT89C51设计一个6位的数码管显示作为“秒表”,显示时间范围为0.00655.36秒(此处可以通过设置两个变量进行进位操作来达到最大计数9999.99秒),计时精度达到0.01秒。利用其定时器的原理,数码管以及定时器中断来设计计时器。将软硬件结合起来,使得系统能实现0.00655.36秒的计时。另外,通过独立按键的设计来对秒表进行控制。key1键控制计时的开始与暂停、key2键控制计时时的保存数据然后可以通过key4键控制数据的输出(可以保存十个,保存十个时秒表可以停止,该功能可用于赛跑中的计时)、key3键控制“清零”和保存按下清零
4、键前的最后一次所计时间。(特别声明:每次处于“暂停状态”的时间都可以在此基础之上进行计时)。方案二:用AT89C51设计一个1602液晶显示的“秒表”,显示时间范围为0.00655.36秒(此处可以通过设置两个变量进行进位操作来达到最大计数9999.99秒),计时精度达到0.01秒。利用其定时器的原理,1602液晶以及定时器中断来设计计时器。将软硬件结合起来,使得系统能实现0.00655.36秒的计时。另外,通过独立按键的设计来对秒表进行控制。key1键控制计时的开始与暂停、key3键控制“清零”和保存按下清零键前的最后一次所计时间。(特别声明:每次处于“暂停状态”的时间都可以在此基础之上进行
5、计时)。注:由于开发板的键盘对液晶显示有影响,顾放弃数码管秒表显示中的部分功能。三、硬件设计原理图:(程序可用于在下图在软件中仿真也可以用于开发板)四、系统的软件设计1、软件整体设计思路:将程序模块化与功能,含有多个子程序的调用与嵌套。通过对按键的是否按下来对秒表进行操作,按键功能在设计目标的具体操作中已经展现。10毫秒秒定时采用定时器T0中断的工作方式1进行,中断及计数的开启与关闭受控于按键处理程序。2、软件流程图:按键key1按键key3按键key4按键key2计时开始与暂停显示key2保存的时间清零并保留清零时的时间按一次保存一个时间如图所示。(注:用1602液晶的方案中无key2与ke
6、y4)上电程序开始初始化函数选择按键3、程序:(1)数码管秒表显示程序:/* 数码管显示秒表计时*/* 头文件 宏定义 定义*/#include #define uint unsigned int #define uchar unsigned charuint t,tt;uint table10;uchar yi,er,san,si,wu,liu,i,j,k,l,m,flag;uchar code table0=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00;uchar code table1=0xbf,0x86,0xdb,0xcf
7、,0xe6,0xed,0xfd,0x87,0xff,0xef;uchar code table2=0xfe,0xfd,0xfb,0xf7,0xef,0xdf;/* 位定义*/sbit dula=P26;sbit wela=P27;sbit key1=P34; /开始与暂停sbit key2=P35; /保存10次时间sbit key3=P36; / 清零与恢复sbit key4=P37; /读取保存的数据/* 函数的申明*/void init();void display(flag);void display1();void keyscan1();void keyscan2();void sh
8、u(uint t);void delay(uchar d);/* 主函数*/void main()init();while(1)display1();keyscan2();/* 初始化函数*/void init()m=1;TMOD=0x01;TH0=(65536-10000)/256;TL0=(65536-10000)%256;EA=1;ET0=1;TR0=0;shu(t);/* 总显示函数*/void display(flag) while(flag)display1();keyscan1();/* 数据显示函数*/void display1()P0=table0liu;dula=1;dul
9、a=0;P0=0xff;P0=table20;wela=1;wela=0;delay(5);P0=table0wu;dula=1;dula=0;P0=0xff;P0=table21;wela=1;wela=0;delay(5);P0=table0si;dula=1;dula=0;P0=0xff;P0=table22;wela=1;wela=0;delay(5);P0=table1san;dula=1;dula=0;P0=0xff;P0=table23;wela=1;wela=0;delay(3);P0=table0er;dula=1;dula=0;P0=0xff;P0=table24;wela
10、=1;wela=0;delay(3);P0=table0yi;dula=1;dula=0;P0=0xff;P0=table25;wela=1;wela=0;delay(3);/*动态显示数字循环中的键盘检测*/void keyscan1() if(key1=0)delay(10);if(key1=0) flag+;while(!key1);delay(10);while(!key1);if(flag%2) /判断 是否暂停TR0=1;elseTR0=0;if(key2=0)delay(10);if(key2=0)if(j=10)j=0;flag+;elsetablej=t;j+;while(!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 51 单片机 数字 秒表 课程设计 21
限制150内