实验四 单片机秒表设计.docVIP

  • 11
  • 0
  • 约3.38千字
  • 约 14页
  • 2019-11-30 发布于浙江
  • 举报
微控制器实验报告四 班 级: 15自动化 学 号: 姓 名: 指 导 教 师: 李素敏 实验四 秒表设计 一. 实验目的 (1)掌握利用单片机定时器实现定时。 (2)熟悉单片机与数码管的接口技术及数码管动态显示的控制过程。 (3)熟悉单片机与键盘的接口技术及按键识别过程。 (4)学会如何编制含数码管显示,定时器中断及按键控制等多种功能的综合程序,体会大型程序的编制和调试技巧。 二. 实验内容 1、用6位数码管显示秒表时间,最左边2位显示分,中间2位显示秒,最右边2位显示秒的小数位(0.00~0.99秒),秒与小数位之间要显示小数点。 2、两个按键: (1)计时/停止按键:首次按下从0开始计时,再次按下暂停计时,之后每次按下按键实现‘继续计时、暂停计时,继续计时、暂停计时……’。(继续计时即从上次暂停时的时间开始继续计时) (2)复位按键:按下后全部清0,等待下次按下‘计时/停止按键’时重新开始计时。 三.实验仪器 PC机、单片机 四.实验步骤 1.编写程序 2.生成hex文件 3.将程序烧录至单片机 4.调试程序,知道得出正确的实验结果 实验结果与分析 实验代码如下: #include reg51.h #define uchar unsigned char #define uint unsigned int sbit dula=P2^6; sbit wela=P2^7; sbit key=P3^4; sbit reset=P3^5; 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};//数码管显示0~9不带小数 unsigned char code table2[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};//数码管显示0~9带小数 //延时函数 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; //秒 十位

文档评论(0)

1亿VIP精品文档

相关文档