程序要求:1秒之內(nèi)燈閃10次,我編的程序A和B都不能實現(xiàn)這個要求,哪位熱心人幫幫我
A:
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar a=0;
sbit LED=P0^0;
sbit P1_4=P1^4;
void delay(uint z);
void main()
{
P1_4=0;
a=0;
TMOD = 0x01;
TH0 = (65536-50000)/256;//50ms
TL0 = (65536-50000)%256;
EA = 1;
ET0 = 1;
TR0 = 1;
while(1);
}
void Timer_0() interrupt 1
{
TH0 = (65536-50000)/256;
TL0 = (65536-50000)%256;
a++;
if(a == 1)
{
a=0;
LED = ~LED;
delay(689);
TR0=0;
}
}
void delay (uint z)
{
uint x,y;
for(x=125;x>0;x--)
for(y=z;y>0;y--);
}
B:
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar a=0;
sbit LED=P0^0;
sbit P1_4=P1^4;
void delay(uint z);
void main()
{
P1_4=0;
a=0;
TMOD = 0x01;
TH0 = (65536-50000)/256;//50ms
TL0 = (65536-50000)%256;
EA = 1;
ET0 = 1;
TR0 = 1;
while(1);
delay(689);
ET0=0;
TR0=0;
}
void Timer_0() interrupt 1
{
TH0 = (65536-50000)/256;
TL0 = (65536-50000)%256;
a++;
if(a == 1)
{
a=0;
LED = ~LED;
}
}
void delay (uint z)
{
uint x,y;
for(x=125;x>0;x--)
for(y=z;y>0;y--);
}
首先非常感謝你噢——給我回復了。!
我按照你的提示寫了一個如下,可是運行失敗,您可否幫我寫一個程序呢?
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar a=0;
sbit LED=P0^0;
sbit P1_4=P1^4;
void delay(uint z);
void main()
{
P1_4=0;
a=0;
TMOD = 0x01;
TH0 = (65536-50000)/256;//50ms
TL0 = (65536-50000)%256;
EA = 1;
ET0 = 1;
TR0 = 1;
while(1);
}
void Timer_0() interrupt 1
{
TH0 = (65536-50000)/256;
TL0 = (65536-50000)%256;
a++;
if(a == 2) //50ms*2=100ms,中斷一次
{
a=0;
LED = ~LED;
if(a==20)//1000ms 即1秒
{
a=0;
TR0=0;
}
}
}
請問是這樣的嗎?if(a == 2)之后它還會再實現(xiàn)if(a==20)嗎?我感覺這個行不通!,我是新學者,還請多多賜教。
歡迎光臨 (http://www.torrancerestoration.com/bbs/) | Powered by Discuz! X3.1 |