我是新手,才学单片机两个月,以前没学过任何编程,以下程序是现学现卖。D1和D2控制两个继电器。用于洗衣机电机正反转,写程序到89C52等大芯片时间是对的,正传十秒停四秒,反转十秒停四秒,一直这样循环。可是写到15F104E里面,时间缩短一半多点,十秒大概是四秒,整个正反转过程大概六七秒,写程序是内部晶振11.0592,后来头文件也是改成15F104E,可是还是不行。
求高手指点迷津!!!
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit D1=P1^0;
sbit D2=P1^1;
void delay(uint z);
void main()
{
while(1)
{
D1=0;
delay(240);
D1=1;
delay(105);
D2=0;
delay(240);
D2=1;
delay(105);
}
}
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=5000;y>0;y--);
} |