我想把程序中的Delay_N_ms(10),换成用定时器延时0.5ms。要怎么改。求大神赐教。。在线等
#include<reg52.h>
typedef unsigned char uint8;
typedef unsigned int uint16;
sbit IN1=P0^0;
sbit IN2=P0^1;
sbit IN3=P0^2;
sbit IN4=P0^3;
sbit ENA=P3^0;
sbit ENB=P3^1;
unsigned char C[5]={0x01,0x04,0x02,0x08,0x00};
uint8 i = 0;
uint8 j = 0;
uint8 zf = 0;
uint16 counter;
void Delay_N_ms(uint16 N)
{
uint8 cnt = 110;
while(N--)
{
for(cnt = 110;cnt > 0; cnt--);
}
}
void main (void)
{
TMOD = 0x11;
TH0 = 0xFE;
TL0 = 0x34;
//TH1 = 0xFC;
//TL1 = 0x67;
TR0 = 1;
TR1 = 1;
ET0 = 1;
ET1 = 1;
EA = 1;
ENA=0;
ENB=0;
while(1)
{
if( j > 180 ) j = 4;
if( j > 4 ) j = 0;
P0= C[j];
Delay_N_ms(10);
if(0 == zf)
{
j++; //控制 逆时针
}
else
{
j--; //控制顺时针
}
}
}
void time1() interrupt 3
{
TH1 = 0xFC;
TL1 = 0x67;
counter++;
if(counter == 2000)
{
zf = ~zf;
counter = 0;
}
}
------解决方案--------------------
给你个类似的参考程序:
while(1)
{//加入的成对大括号
for(thou=0;thou
#defineuintunsignedint
#defineucharunsignedchar
sbitLED4=P2^0;//数码管千分位
sbitLED3=P2^1;//数码管百分位
sbitLED2=P2^2;//数码管十分位
sbitLED1=P2^3;//数码管个分位
ucharms20,s1;//20毫秒和1s变量定义(声明)