想用time0中断,输出一个1k的方波,但是输出一直是低,帮忙看看哪儿出问题了。
#include <pic.h> //调用头文件,可以去PICC软件下去查找PIC16F87XA单片机的头文件
__CONFIG(XT&WDTDIS&LVPDIS); //定义配置字,晶振类型:XT,关闭开门狗,禁止低电压编程
#define clk RD0 //定义V0为RD0端口
void timer0init(void)
{
T0CS=0; //TMR0工作于定时器方式
PSA=0; //TMR0分频
PS2=0;
PS1=0;
PS0=1;
T0IF=0; //清除TMR0中断标志
T0IE=1; //TMR0中断允许
TMR0=0x09; //赋初值,
GIE=1;
}
void interrupt ISR(void)
{
if(TMR0IF==1)
{
TMR0=0x09;
T0IF=0;
clk=!clk; //将clk取反,达到输出方波的目的
}
}
void main(void)
{
TRISD=0B00000000; //RD设置为输出
PORTD=0B00000001;
timer0init();
while(1)
{
}
} |