《简易秒表设计实验报告.pdf》由会员分享,可在线阅读,更多相关《简易秒表设计实验报告.pdf(4页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 实 验 报 告 系别 信工系 专业 班级 姓名 学号 课题名称:简易秒表设计 实验目的:1、熟悉 Keil C51 软件的使用方法及 proteus 仿真软件的使用;2、综合运用所学的理论知识(数码管、按键),通过实践加强对所学知识的理解,具备设计单片机应用系统的能力。3、通过本次试验,增强自己的动手能力.认识单片机在日常生活中的应用的广泛性,实用性。设计要求:制作简易秒表,用三个按键分别实现秒表的启动、停止与复位,利用两位共阴级的数码管显示时间.设计思路:硬件设计:数码管部分采用 2 位共阴极的数码管,在 P0 口接上拉电阻,公共端低电平扫描。按键电路部分,将按键一侧与单片机任一 I/O
2、口相连。软件设计:模块化思想,使用定时器 T0 的工作方式 1,编写显示子程序,延时子程序,初始化程序,主程序设计时注意按键消抖。原理图:源代码:includereg51.h#define uint unsigned int define uchar unsigned char sbit key1=P30;/定义启动”按钮 sbit key2=P31;/定义”停止”按钮 sbit key3=P32;/定义”复位”按钮 sbit wei1=P26;/定义位选 sbit wei2=P27;uchar aa;uchar temp;uchar shi;uchar ge;uchar code table
3、=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f,0 x77,0 x7c,0 x39,0 x5e,0 x79,0 x71;/共阴极数码真值表 void delay(uint z)uint x,y;for(x=z;x0;x-)for(y=110;y0;y-);void display(uchar shi,uchar ge)/显示子程序 shi=temp/10;ge=temp10;/分离个位和十位 wei1=0;/送位选 P0=tableshi;/使用动态扫描的方法实现数码管显示 delay(1);wei1=1;/关闭位选 w
4、ei2=0;P0=tablege;delay(1);wei2=1;void init()/初始化程序 aa=0;temp=0;TMOD=0 x01;/使用定时器 T0 的方式 1 TH0=0 x4c;TL0=0 x00;/定时 50ms 中断一次 EA=1;/终端总允许 ET0=1;/允许定时器 T0 中断 void timer0()interrupt 1 TH0=0 x4c;/重装初值 TL0=0 x00;aa+;/中断计数值加 1 if(aa=20)/中断 20 次后,定时时间为 2050ms=1000ms=1s aa=0;temp+;if(temp=60)/秒表到达 60s 后回零 te
5、mp=0;void main()init();/调用初始化子程序 while(1)if(key1=0)/检验启动按钮是否按下 delay(10);/延时去抖动 if(key1=0);/再次检测启动按钮 while(!key1);/松手检测 TR0=1;/启动定时器开始工作 if(key2=0)/delay(10);if(key2=0)while(!key2);TR0=0;if(key3=0)delay(10);if(key3=0)while(!key3);temp=0;shi=0;ge=0;TR0=0;display(shi,ge);实验结果:在 proteus 中编写程序,编译调试后生成 hex 文件,将 hex 文件加到仿真电路中,通过对简易秒表进行演示,达到设计要求。实验心得:在 keil 软件中,即使程序不会需要模仿别人的时候,也必须通过自身再打一遍程序,在多次的通过打印过程,渐渐记住并理解程序,也有助于我们以后的程序创新.内容:实验题目;实验目的;实验原理;实验步骤;数据处理;结果分析 年 月 日 分数
限制150内