单片机秒表的问题

要一个按钮控制单片机计时,按一下开始,再按下停止,再按清零,运行不出来是为什么,急求~以下是代码和电路图#include<reg51.h>#include<intrins... 要一个按钮控制单片机计时,按一下开始,再按下停止,再按清零,运行不出来是为什么,急求~以下是代码和电路图#include<reg51.h>#include<intrins.h>sbit KEY=P3^7;sbit P0_7=P0^7;unsigned char Tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};unsigned int s=0;unsigned int t=0;unsigned int k=0;void delay(int);int0_sev() interrupt 0{ TMOD=0x01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; t=t+1; if(t==2) { t=0; s=s+1; if(s==100) {s=0;} s=s/10; } P0=Tab[s];}main(){ TMOD=0x01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1;ET0=1; while(1) { if(KEY==0) { if(k==0) { IE=0x81; TR0=1;P0_7=1; delay(10); k=k+1; } else if(k==1) { TR0=0;P0_7=0; IE=0x0; delay(10); k=k+1; } else { delay(10); k=0; } } }} 展开
 我来答
11kxmx
2016-06-18 · TA获得超过1.4万个赞
知道大有可为答主
回答量:1.2万
采纳率:70%
帮助的人:2485万
展开全部
试一下芹洞告:
int0_sev() interrupt 0
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
t=t+1;
if(t==2)
{
t=0;
s=s+1;
if(s==100)
{s=0;}
s=s/10;//去掉此句颤樱
}
P0=Tab[s];//直嫌明接写P0=Tab[s/10]
}
另外最好加等按键抬起语句
k=3 时要加 s=0
更多追问追答
追问
还是不行。。。怎么回事儿
除了k=0和1,都让k=0了
追答
什么现象呢,数码管什么也不显,中断序号错了吧
int0_sev() interrupt 0 应该是 interrupt 1
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式