程序这样的
#include<reg52.h>
sbit DCOUT = P1^0;//定义电机信号输出端口
bit flag;
unsigned char t0count,x; //测速用的
void
timer_init()
{
SCON = 0x50;
TMOD|=0x25;//t0计数,t1用于波特率计算
TH1 = 0xFD;
TH2 = (65536-2000)/256;
TL2 = (65536-2000)%256;
RCAP2H = (65536-2000)/256;//晶振12M 60ms 16bit 自动重载
RCAP2L = (65536-2000)%256;
EA=1;
ET0=1;
ET1=1;
ET2=1;
TR0=1;
TR1=1;
TR2=1;
}
void TIM0(void) interrupt 1
{
t0count++;
}
void SendByte(unsigned char dat)
{
SBUF = dat;
while(!TI);
TI = 0;
}
void TIM2(void) interrupt 5
{
static unsigned char i;
TF2=0;
i++;
if(i==5)
{
i=0;
flag=1;
}
}
void main()
{
timer_init();
DCOUT=1;
while(1)
{
if(flag==1)
{
flag=0;
TR0=0;
x=t0count*65536+TH0*256+TL0; //测的电机速度不会超过每秒255转的
t0count=0;
TH0=0;
TL0=0;
TR0=1;
SendByte(x);
}
}
}
程序执行不到设置的断点,在执行二部就出现*** error 65: access violation at C:0x0100 : no 'execute/read' permission这错误了
QQ截图20120715162519.png(10.27 KB)下载次数:0
5 小时前
void TIM2(void) interrupt 5
{
static unsigned char i;
TF2=0; 这边设了断点,定时器2的断点,可是程序进不到这,用的是stc89c54rd+芯片
i++;
一周热门 更多>