实验四单片机秒表设计.doc
《实验四单片机秒表设计.doc》由会员分享,可在线阅读,更多相关《实验四单片机秒表设计.doc(10页珍藏版)》请在装配图网上搜索。
微控制器实验报告四 班 级: 15自动化 学 号: 姓 名: 指 导 教 师: 李素敏 实验四 秒表设计一. 实验目的(1)掌握利用单片机定时器实现定时。(2)熟悉单片机与数码管的接口技术及数码管动态显示的控制过程。(3)熟悉单片机与键盘的接口技术及按键识别过程。(4)学会如何编制含数码管显示,定时器中断及按键控制等多种功能的综合程序,体会大型程序的编制和调试技巧。二. 实验内容1、用6位数码管显示秒表时间,最左边2位显示分,中间2位显示秒,最右边2位显示秒的小数位(0.000.99秒),秒与小数位之间要显示小数点。 2、两个按键:(1)计时/停止按键:首次按下从0开始计时,再次按下暂停计时,之后每次按下按键实现继续计时、暂停计时,继续计时、暂停计时。(继续计时即从上次暂停时的时间开始继续计时)(2)复位按键:按下后全部清0,等待下次按下计时/停止按键时重新开始计时。三实验仪器 PC机、单片机四实验步骤1.编写程序2.生成hex文件3.将程序烧录至单片机4.调试程序,知道得出正确的实验结果5. 实验结果与分析实验代码如下:#include #define uchar unsigned char#define uint unsigned intsbit dula=P26;sbit wela=P27;sbit key=P34;sbit reset=P35;Unsignedchardisplay1 ,display2,display3,display4,display5,display6,min,sec,decimal;unsigned char flag=0; unsigned char code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/数码管显示09不带小数unsigned char code table2=0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef;/数码管显示09带小数/延时函数void delay(unsigned int i) unsigned int j,k; for(j=i;j0;j-) for(k=125;k0;k-); /判断按键是否按下void KEY() if(key=0) delay(10); if(key=0) /按键消抖 flag+; if(flag=1) /按下一次,计数开始计数 TR0=1; /定时器TO开始工作 if(flag=2) /按下两次,计数暂停 TR0=0; /定时器T0停止 flag=0; /计数标志清零 if(reset=0) /复位键按下 delay(10); if(reset=0) TR0=0; /T0停止计时 flag=0; /所有数据清零 min=0; sec=0;decimal=0;display1=0; display2=0;display3=0;display4=0;display5=0;display6=0;/显示函数void show() display1=min/10; /分 十位display2=min%10; /分 个位display3=sec/10; /秒 十位display4=sec%10; /秒 个位display5=decimal/10; /小数 十位display6=decimal%10; /小数 个位 dula=0;P0=tabledisplay1; dula=1;dula=0;wela=0;P0=0xfe;wela=1;wela=0;delay(2);P0=tabledisplay2; dula=1;dula=0;P0=0xfd;wela=1;wela=0;delay(2);P0=table2display3; dula=1;dula=0;P0=0xfb;wela=1;wela=0;delay(2);P0=tabledisplay4; dula=1;dula=0;P0=0xf7;wela=1;wela=0;delay(2);P0=tabledisplay5; dula=1;dula=0;P0=0xef;wela=1;wela=0;delay(2);P0=tabledisplay6; dula=1;dula=0;P0=0xdf;wela=1;wela=0;delay(2);P0=0x80; dula=1;dula=0;P0=0xf7;wela=1;wela=0;delay(2);void main() TMOD=0x01;TH0=(65536-10000)/256;/向定时器写入初值的高8位TL0=(65536-10000)%256;/向TL0写入初值的低八位EA=1; /总中断允许ET0=1; /允许定时器T0工作 TR0=0; dula=0; wela=0;while(1) KEY(); show(); void T0_int(void) interrupt 1 TH0=(65536-10000)/256;/向定时器写入初值的高8位TL0=(65536-10000)%256;/向TL0写入初值的低八位decimal+;if(decimal=99) /小数部分进位 decimal=0; sec+; if(sec=60) /秒部分进位 sec=0; min+; if(min=60) min=0; sec=0; decimal=0; 实验截图如下:五、实验心得这次的实验相当于一个大设计,几乎综合了这学期所学的所有知识,中断、计数器、按键、数码管。程序编写时,应该弄清楚原理,如中断是如何工作的,弄清楚这些后,程序的编写就很容易了。- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 单片机 秒表 设计
![提示](https://www.zhuangpeitu.com/images/bang_tan.gif)
关于本文