急求51单片机秒表计时器程序程序,要求精确到0.01秒,有开始,暂停继续键,用液晶

豆丁微信公众号
君,已阅读到文档的结尾了呢~~
51单片机秒表实验报告
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
51单片机秒表实验报告
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='http://www.docin.com/DocinViewer--144.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口想求一个AT89C51单片机6位LED的数字秒表程序,有四个按键,一个启动 暂停 清楚 。急求_百度知道
想求一个AT89C51单片机6位LED的数字秒表程序,有四个按键,一个启动 暂停 清楚 。急求
我有更好的答案
单片机LED的时钟秒表 仿真实例,可以参考一下,下载附件仿真试试。
采纳率:60%
hour++;if(hour&gt,0x66,0x6d;TL0=0xb0;TH1=0if(sec&}}TR0=0;TL1=0x78;switch(scanled){case 0;while(1){if(key1==0){while(key1==0);min=0;TL1=0x78;TR1=1;TR0=0;ET0=1;ET1=1;EA=1;case 1:P3=0x08;P2=~ledtab[disdat[4]]&0x7f;scanled%=6;}main(){TMOD=0x11;TH0=0x3c#include&reg51.h&gt:if(time==20){time=0;/秒计时{TH0=0x3c,0x5b,0x4f;sec++;0-9unsigned char sec=0,min=0,hour=12,unsigned char key,min=0:P3=0x40;120;TR0=1;else if(min&0){sec=59;min--;}else if(hour&gt:if(time==20){time=0:P3=0x20;if(min&}}}case 1;hour=0;scanled=0;time=0;}void t1isr() interrupt 3 //j++);}void dischg(){disdat[0]=sec%10;disdat[1]=sec/10;23)hour=0;min=59;hour--;disdat[4]=hour%10,0x40};P2=~ledtab[disdat[5]]:P3=0x04; }void t0isr() interrupt 1 /disdat[5]=hour/10;sec=0;显示{TH1=0xec,0x7f,0x6f;}dischg();P2=~ledtab[disdat[1]];switch(mode){case 0, unsigned char disdat[8];0)sec--,0x7d,0x07;59){min=0;min++,j;void delay(unsigned int x){59){sec=0;P2=~ledtab[disdat[2]]&0x7f;case 4;TL0=0xb0;time++;disdat[2]=min%10;disdat[3]=min/10;case 2:P3=0x10;P2=~ledtab[disdat[3]];case 3;for(i=0;//sbit key1=P1^4;sbit key2=P1^5;0){sec=59;}else {hour=0;mode=0;dischg();case 5:P3=0x80;P2=~ledtab[disdat[0]];default:}scanled++;i&x;i++)for(j=0;j&}if(key2==0){while(key2==0);#define uchar unsigned charuchar code ledtab[]={0x3f,0x06;if(sec&sec=0
#include&reg51.h&#include&INTRINS.h&#define&u16&unsigned&int#define&u8&unsigned&charsbit&k1=P1^4;sbit&k2=P1^5;sbit&k3=P1^6;sbit&k4=P1^7;u8&ds[6];&//数码管显示缓存#define&YY&1#if&YY==0//共阳code&u8&w[]={0x04,0x08,0x10,0x20,0x40,0x80,}; //位码code&u8&d[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x00,0x40,};//断码void&dispaly(){//显示函数 static&u8&a; if(++a&=6)a=0; P3=0x00;
P2=d[ds[a]]; P3=w[a];}#else&//共阴code&u8&w[]={~0x04,~0x08,~0x10,~0x20,~0x40,~0x80,}; //位码code&u8&d[]={~0xc0,~0xf9,~0xa4,~0xb0,~0x99,~0x92,~0x82,~0xf8,~0x80,~0x90,~0x00,~0x40,};//断码void&dispaly(){//显示函数 static&u8&a; if(++a&=6)a=0; P3=0
P2=d[ds[a]]; P3=w[a];}#endifvoid&init() //初始化函数{&&&TMOD=0x01; TH0=()/256; TL0=()%256; EA=1;&&&&ET0=1;}u16&js_//毫秒u8&js[3];//秒,分,时u8&//状态,0运行,1暂停u8&code&js_max[]={60,60,24};//秒分时进1值void&key(){ static&u8&a; if((k1&k2&k3&k4)==0){//有按键按下
if(a&10)a++;
if(a==5){//消抖
if(!k1){//k1,启动
if(!k2){//暂停
if(!k3){//清零
js[0]=0;js[1]=0;js[2]=0;
} }else&a=0;}void&main()//主函数{ init();
ds[0]=js[2]/10;
ds[1]=js[2]%10;
ds[2]=js[1]/10;
ds[3]=js[1]%10;
ds[4]=js[0]/10;
ds[5]=js[0]%10;
key(); }}void&timer0()&interrupt&1//1ms定时器{&&& TH0=()/256; TL0=()%256; dispaly(); if(zt==0)js_ms++; if(js_ms&=1000){
if(++js[0]&=60){
if(++js[1]&=60){
if(++js[2]&=24){
} }}第4个按键看不清是干嘛的
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
百度背信弃义,毫无理由关闭了所有的百度博客。
故此由原百度《做而论道》迁至此地。
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
共显示4位数,要求精度做到0.01秒。利用一个按键控制秒表的“启动”、“停止”、“计时值清零”三种操作。我的回答(最佳答案)最低位,是每 0.01s 变化一次,一秒钟,变化 100 次。这么快,人的眼睛,分辨不出来。只能看到一个 8。停止时,才能看到稳定的数字。仿真运行时的截图如下:&程序如下:#include&reg52.h& sbit P3_5 = P3^5;unsigned char counet, m[4] = {0,0,0,0};
void display() {
unsigned char code Tab[] = {
0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
unsigned char code Bit[] = {8, 4, 2, 1};
unsigned char i,
for (i = 0; i & 4; i++)
P0 = Tab[m[i]];
if (i == 2)
P0 &= 127;
P2 = Bit[i]; for(; j & 0; j++);
}}void wait_key(){
while( P3_5)
display();
while(!P3_5)
display(); }main() {
TMOD = 0x02;
IE = 0x82;
wait_key(); TR0 = 1; TH0 = TL0 = 6;
wait_key(); TR0 = 0;
wait_key(); m[0] = m[1] = m[2] = m[3] = 0;
} } void time0() interrupt 1
counet %= 40;
if(!counet) {
m[0] %= 10;
if(!m[0]) {
m[1] %= 10;
if(!m[1]) {
m[2] %= 10;
if(!m[2]) {
m[3] %= 10;
} } } }}后来,有不少网友希望得到汇编语言的程序。为此,做而论道编写了程序,并调试成功。程序如下:;------------------------------------
START;------------------------------------
33H, #10E_T0:
RETI;------------------------------------START:
TMOD, #02H
33H, #10M_LP:
M_LP;------------------------------------KEY:
P3.5, KEYK_1:
RET;------------------------------------DISPLAY:
DPTR, #TABD_LP:
A, @A + DPTR
R1, #02H, $ + 5
A, #80H, D_LP
0C0H,0F9H,0A4H,0B0H, 99H
92H, 82H,0F8H, 80H, 90HEND;------------------------------------
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
在LOFTER的更多文章
loftPermalink:'',
id:'fks_',
blogTitle:'51单片机的秒表,要求做到0.01秒',
blogAbstract:'利用51单片机设计一个秒表。共显示4位数,要求精度做到0.01秒。利用一个按键控制秒表的“启动”、“停止”、“计时值清零”三种操作。
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}51单片机中用数码管做秒表时怎么用一个独立按键控制开始和暂停,即第一次按下计时,在按下时暂停?_百度知道
51单片机中用数码管做秒表时怎么用一个独立按键控制开始和暂停,即第一次按下计时,在按下时暂停?
当按一下键其实,就停止!TR0,你自己改主程序中,判断按键和启动/停止if(key==0){delay();具体是哪个 键,一定要用定时器吧,假如用T0,那开始初始化时,不写TR0=1,先不启动,再启动。程序好写,先 定义一个按键sbit
/&#47,TR0=1;/具体延时时间自己定if(key==0){TR0=,TR0=0,就开始计时了。再 按一下键,控制秒表的启动和停止,很简单。要做秒表;
/&#47,就不计时了; /每按一次,取反 一次while(key==0)
采纳率:91%
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。51单片机秒表计时器课程设计报告(含C语言程序)_图文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
51单片机秒表计时器课程设计报告(含C语言程序)
阅读已结束,下载本文需要
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,方便使用
还剩12页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢}

我要回帖

更多关于 单片机秒表 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信