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

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

ID:56196631

大小:1.68 MB

页数:10页

时间:2020-03-19

实验四单片机秒表设计.doc_第1页
实验四单片机秒表设计.doc_第2页
实验四单片机秒表设计.doc_第3页
实验四单片机秒表设计.doc_第4页
实验四单片机秒表设计.doc_第5页
资源描述:

《实验四单片机秒表设计.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、微控制器实验报告四班级:15自动化学号:姓名:指导教师:李素敏实验四秒表设计一.实验目的(1)掌握利用单片机定时器实现定时。(2)熟悉单片机与数码管的接口技术及数码管动态显示的控制过程。(3)熟悉单片机与键盘的接口技术及按键识别过程。(4)学会如何编制含数码管显示,定时器中断及按键控制等多种功能的综合程序,体会大型程序的编制和调试技巧。二.实验内容1、用6位数码管显示秒表时间,最左边2位显示分,中间2位显示秒,最右边2位显示秒的小数位(0.00~0.99秒),秒与小数位之间要显示小数点。2、两个按键:(

2、1)计时/停止按键:首次按下从0开始计时,再次按下暂停计时,之后每次按下按键实现‘继续计时、暂停计时,继续计时、暂停计时……’。(继续计时即从上次暂停时的时间开始继续计时)(2)复位按键:按下后全部清0,等待下次按下‘计时/停止按键’时重新开始计时。三.实验仪器PC机、单片机四.实验步骤1.编写程序2.生成hex文件3.将程序烧录至单片机4.调试程序,知道得出正确的实验结果五.实验结果与分析实验代码如下:#include#defineucharunsignedchar#defineui

3、ntunsignedintsbitdula=P2^6;sbitwela=P2^7;sbitkey=P3^4;sbitreset=P3^5;Unsignedchardisplay1,display2,display3,display4,display5,display6,min,sec,decimal;unsignedcharflag=0;unsignedcharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//数码管显示0

4、~9不带小数unsignedcharcodetable2[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};//数码管显示0~9带小数//延时函数voiddelay(unsignedinti){unsignedintj,k;for(j=i;j>0;j--)for(k=125;k>0;k--);}//判断按键是否按下voidKEY(){if(key==0){delay(10);if(key==0)//按键消抖{flag++;if(flag==1)/

5、/按下一次,计数开始计数{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;}}}}//显示

6、函数voidshow(){display1=min/10;//分十位display2=min%10;//分个位display3=sec/10;//秒十位display4=sec%10;//秒个位display5=decimal/10;//小数十位display6=decimal%10;//小数个位dula=0;P0=table[display1];dula=1;dula=0;wela=0;P0=0xfe;wela=1;wela=0;delay(2);P0=table[display2];dula=1;d

7、ula=0;P0=0xfd;wela=1;wela=0;delay(2);P0=table2[display3];dula=1;dula=0;P0=0xfb;wela=1;wela=0;delay(2);P0=table[display4];dula=1;dula=0;P0=0xf7;wela=1;wela=0;delay(2);P0=table[display5];dula=1;dula=0;P0=0xef;wela=1;wela=0;delay(2);P0=table[display6];dula=

8、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);}voidmain(){TMOD=0x01;TH0=(65536-10000)/256;//向定时器写入初值的高8位TL0=(65536-10000)%256;//向TL0写入初值的低八位EA=1;//总中断允许ET0=1;//允许定时器T0工作TR0=0;

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。