
大家帮忙看看这个简单的程序 指点指点 谢谢了
#include<AT892051.H>unsignedintminute;sbitledl=P3^3;sbitledh=P3^4;sbitanjian=P3^7;sbi...
#include <AT892051.H>
unsigned int minute;
sbit ledl=P3^3;
sbit ledh=P3^4;
sbit anjian=P3^7;
sbit jdq=P3^5;
void timer() interrupt 1
{
TH0=(65536-46080)/256;
TL0=(65536-46080)%256;
minute++;
if(minute>12001) minute=0;
}
void main()
{
minute=0;
jdq=0 ; ledh=0; ledl=1;
EA=1;
ET0=1;
TMOD=0x01;
TH0=(65536-46080)/256;
TL0=(65536-46080)%256;
TR0=1;
while(1)
{ if(minute==12000) {TR0=0;jdq=1;ledh=1;ledl=0;}
if(anjian==0)
{if(ledh!=0) {TR0=1;minute=0;jdq=0; ledh=~ledh; ledl=1;}
else {jdq=1;ledh=~ledh;ledl=0;TR0=0;}}
}
}
程序开后运行十分钟停止,如按键在运行中按下 停止
如按键在停止状态按下 运行10分钟停止
为什么按键不好用 有的时候要按好几次才有反应,确认按键按下了
还有就是怎么改下按键的时候两个灯不同时亮。 展开
unsigned int minute;
sbit ledl=P3^3;
sbit ledh=P3^4;
sbit anjian=P3^7;
sbit jdq=P3^5;
void timer() interrupt 1
{
TH0=(65536-46080)/256;
TL0=(65536-46080)%256;
minute++;
if(minute>12001) minute=0;
}
void main()
{
minute=0;
jdq=0 ; ledh=0; ledl=1;
EA=1;
ET0=1;
TMOD=0x01;
TH0=(65536-46080)/256;
TL0=(65536-46080)%256;
TR0=1;
while(1)
{ if(minute==12000) {TR0=0;jdq=1;ledh=1;ledl=0;}
if(anjian==0)
{if(ledh!=0) {TR0=1;minute=0;jdq=0; ledh=~ledh; ledl=1;}
else {jdq=1;ledh=~ledh;ledl=0;TR0=0;}}
}
}
程序开后运行十分钟停止,如按键在运行中按下 停止
如按键在停止状态按下 运行10分钟停止
为什么按键不好用 有的时候要按好几次才有反应,确认按键按下了
还有就是怎么改下按键的时候两个灯不同时亮。 展开
1个回答
展开全部
大概看了下你的代码,发现以下几个问题,大家讨论一下吧:
1.注释没有,这让我们给你看代码时非常的困难,比如你的sbit jdq=P3^5;我就一直没看懂是个什么东西。
2.按键不好用的问题,有可能是你的按键不好,或者有抖动产生,灯已经反复闪了几次,你只是看不出来而已,有按键的地方最好还是要加一个“消抖”的功能
3.你说是要程序改一下,让按键的时候两个灯同时亮?最后一点没看明白
1.注释没有,这让我们给你看代码时非常的困难,比如你的sbit jdq=P3^5;我就一直没看懂是个什么东西。
2.按键不好用的问题,有可能是你的按键不好,或者有抖动产生,灯已经反复闪了几次,你只是看不出来而已,有按键的地方最好还是要加一个“消抖”的功能
3.你说是要程序改一下,让按键的时候两个灯同时亮?最后一点没看明白
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询