我用PIC单片机的定时器让RA2输出113K的方波,使用的是内部4M时钟
TMR0是8位的,我现在先给TMR0赋值254 然后等待溢出中断,让RA2取反,可是输出只有21K,怎么回事呀?
刚学,请帮我看一下谢谢了、
#include<pic.h> //包含单片机内部资源预定义
//#include<pic16630.h> //包含 的头文件
__CONFIG(0x0194); //芯片配置字
#define uint unsigned int
#define uchar unsigned char
#define K113 RA2 //
void delay(uint x)
{
uint a,b;
for(a=x;a>0;a--)
for(b=110;b>0;b--);
}
void init(void)
{
TRISA=0xF8; //1111 1000
OPTION=0x00; //0000 1111
INTCON=0XA0;
TMR0=0xfe;
}
void main() //主程序
{
init();
while(1)
{
RA1=1;
delay(500);
RA1=0;
delay(500);
}
}
void interrupt ISR(void) //中断服务函数只能有一个
{
if(T0IE && T0IF) //判断TMR0中断
{
TMR0=0xfe;
T0IF = 0; //消除TMR0中断标志
K113=!K113;
}
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>