收藏 分享(赏)

秒表计时器.doc

上传人:hskm5268 文档编号:6137435 上传时间:2019-03-30 格式:DOC 页数:8 大小:39KB
下载 相关 举报
秒表计时器.doc_第1页
第1页 / 共8页
秒表计时器.doc_第2页
第2页 / 共8页
秒表计时器.doc_第3页
第3页 / 共8页
秒表计时器.doc_第4页
第4页 / 共8页
秒表计时器.doc_第5页
第5页 / 共8页
点击查看更多>>
资源描述

1、/*1.按下启动键,秒表计时;按下停止键,秒表暂停计时;2.再按启动键,秒表接着计时;再按下停止键,秒表暂停计时;3.再按下停止键,秒表清零;4.清零后能够回显两次记录的秒数;5.完成整体设计,交出完整的课设报告。*/#include#include #include #include#define uchar unsigned char#define uint unsigned int#define shuju P0 /LCD1602 P0 输出显示数据sbit wela=P27; /数码管位选锁存端sbit dula=P26; /数码管段选锁存端sbit key1 =P32; /启动命令

2、sbit key2 =P33; /停止命令sbit key3 =P34; /清除键sbit key4 =P35; / 空车/*定义变量*uchar flag; /标志位uchar flag1; /标志位 uchar flag2; /标志位 uchar table2=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,; /码表uchar table1=0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe;/位码uchar tt; / 计时标量每 50ms 加 1uchar a; / 秒个位uchar b; / 秒十位uc

3、har c; / 分个位uchar d; / 分十位uchar num1;uchar num2;uchar num3;uchar num4;uchar num5;uchar num6;uchar num7;uchar num8;/*延时函数*void delayus(uchar t) while(-t);/*延时函数*void delay(uchar t) /大致延时 1mS while(t-)delayus(235);delayus(235);/*秒表计时*void miaobiao(void)if(tt=2) / 10ms 到tt=0; / 清零a+;if(a=10)a=0;b+;if(b

4、=10)b=0;c+;if(c=10)c=0;d+;void display(void)if(flag1=1)/flag1=0;wela=1;shuju=table10;wela=0;dula=1;shuju=table2num1;dula=0;delayus(200);wela=1;shuju=table11;wela=0;dula=1;shuju=table2num2;dula=0;delayus(200);wela=1;shuju=table12;wela=0;dula=1;shuju=0x40;dula=0;delayus(200);wela=1;shuju=table13;wela=

5、0;dula=1;shuju=table2num3;dula=0;delayus(200);wela=1;shuju=table14;wela=0;dula=1;shuju=table2num4;dula=0;delayus(200);else if(flag1=2)/flag2=0;wela=1;shuju=table10;wela=0;dula=1;shuju=table2num5;dula=0;delayus(200);wela=1;shuju=table11;wela=0;dula=1;shuju=table2num6;dula=0;delayus(200);wela=1;shuju=

6、table12;wela=0;dula=1;shuju=0x40;dula=0;delayus(200);wela=1;shuju=table13;wela=0;dula=1;shuju=table2num7;dula=0;delayus(200);wela=1;shuju=table14;wela=0;dula=1;shuju=table2num8;dula=0;delayus(200);elsewela=1;shuju=table10;wela=0;dula=1;shuju=table2a;dula=0;delayus(200);wela=1;shuju=table11;wela=0;du

7、la=1;shuju=table2b;dula=0;delayus(200);wela=1;shuju=table12;wela=0;dula=1;shuju=0x40;dula=0;delayus(200);wela=1;shuju=table13;wela=0;dula=1;shuju=table2c;dula=0;delayus(200);wela=1;shuju=table14;wela=0;dula=1;shuju=table2d;dula=0;delayus(200);/*定时器初始化*void Init_Timer0(void)TMOD |= 0x01; /使用模式 1,16 位

8、定时器,TH0=(65535-5000)/256;TL0=(65535-5000)%256; EA=1; /总中断打开ET0=1; /定时器中断打开/TR0=1; /定时器开关打开/*独立按键检测*void key(void)if(key1=0)delay(15);if(key1=0) /按键消抖TR0=1; /打开定时器/flag=0; /标志位设置while(key1=0); if(key2=0)delay(15);if(key2=0) /按键消抖TR0=0; /打开定时器flag+;/flag=0; /标志位设置while(key2=0);if(flag=1)num1=a;num2=b;

9、num3=c;num4=d;if(flag=2)num5=a;num6=b;num7=c;num8=d;if(flag=3)flag=0;a=0;b=0;c=0;d=0; if(key3=0)delay(15);if(key3=0) /按键消抖 TR0=0; /打开定时器flag1=1;/display1();/flag=0; /标志位设置while(key3=0); if(key4=0)delay(15);if(key4=0) /按键消抖 TR0=0; /打开定时器flag1=2;while(key4=0); /*主程序*void main() a=0; /各参数初始化b=0;c=0;d=0;flag=0;flag1=0;flag2=0;dula=0;wela=0;Init_Timer0();while(1)key();miaobiao();display();/*定时器中断*void time0() interrupt 1TH0=(65535-5000)/256;TL0=(65535-5000)%256;tt+;

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 实用文档 > 统计图表

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报