[51单片机] 这段程序里的两个小问题,求助!纠结我两天了已经,是不是中断和计时器有冲突啊?。 求解释

#include<reg52.h>#defineuintunsignedint#defineucharunsignedcharsbitwela=P2^7;sbitdula... #include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit wela=P2^7;
sbit dula=P2^6;
sbit led1=P1^0;//定义第一只发光二极管
uchar shi,ge,n;
uchar code table[]={0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f}; void delay(uchar);
void display(uchar,uchar);
void main()
{
TMOD=0x01;
TH0=(65536-45872)/256;
TL0=(65536-45872)%256;
EA=1;
EX0=1;//电平触发
ET0=1;//定时器0
TR0=1;
while(1)
{
if(n==20)//定时器每次中断是50ms,持续20次达到1s
{
n=0;
ge++;
if(ge==10)
{
ge=0;
shi++;
}
if(shi==6)
{
shi=0;
}
}
display(shi,ge);
}
}
void EX0_time() interrupt 0 //进入中断后LED亮,可是为什么运行后LED0一直亮,真的很费解。△
{
led1=0;//将P3^2接地时只是数码管即使停止,不管INT0中断有没有触发,LED0从头到尾时钟在亮
}
void ET0_time() interrupt 1//还有一个现象:现在是定时器0,计时正常,当换成计时器1时,计时不正常了就??!和实际时间不符
{
TH0=(65536-45872)/256;
TL0=(65536-45872)%256;
n++;
}
展开
 我来答
wang12zhe
2013-08-02 · TA获得超过1636个赞
知道小有建树答主
回答量:676
采纳率:100%
帮助的人:296万
展开全部
第一:你的led1=0点亮LED但是没有led1=1所以LED一直发光了,
第二:不知道你是怎么换成定时器2的,你的初值是给定时器1设置的,你改成定时器2的时候有改过吗,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
宾科电子工作室
2013-08-02
知道答主
回答量:45
采纳率:0%
帮助的人:27.2万
展开全部
什么问题呢?你把程序发给我,我给你看看,你截图的话。可能大家都没时间一行一行去看哟!!!
更多追问追答
追问
嗯嗯,你给个邮箱吧,我发给你,谢谢
追答
请发至bincod@163.com
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
大草原黄花菜
2013-08-02 · TA获得超过1587个赞
知道小有建树答主
回答量:1479
采纳率:40%
帮助的人:882万
展开全部
只看到led1=0; 没看到led1=1;啊
追问
嗯,我是想在触发低电平时LED亮,可是事实是,我即使不给低电平,(我只是打开电源,没有触发低电平。如果我触发低电平后,断开那么LED是不是ing该一直亮着?)LED也亮,这是为什么?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-08-02
展开全部
n是自动++的吗?
追问

这里写不下,,我分开写,有张图,不过好像不太清晰,要不i给个邮箱,我发给你看吧

追答
我建议哈,调试,逐句后面加上测试灯,看看问题在哪,没空仔细帮你看程序啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式