#include <hidef.h> /* for EnableInterrupts macro */
#include <MC68HC908SR12.h> /* include peripheral declarations */
#define uchar unsigned char
#define uint unsigned int
void ini_pll(void)
PCTL=0x00; //功 能: PLL时钟程序
PBWC=0X80;
PMSH=0x03;
PMSL=0xD1;
PMRS=0xD0;
PCTL=0x28; //E=2
while(PBWC_LOCK==0);
PCTL_BCS = 1;
}
void ini_port(void)
{ //0为输入口,1为输出口
DDRA=0xA0; //set direction
DDRB=0x53; //功 能: I/O初始化
DDRC=0x33;
DDRD=0xFF;
PTA=0x80 ;
PTB=0x00 ;
PTC=0x30 ;
PTD=0x00 ;
}
void init_timer1(void)
{
T1SC_TSTOP=1;//功 能: 初始化定时器1
T1SC_TRST=1;
T1SC=0x43;
T1MODH=0x01; //设0.5毫秒产生1次溢出中断
T1MODL=0xF4; //模数寄存器设定值=500×(8/8)=$01F4
}
//声明变量
uchar led_data;
//主程序
void main(void)
{
DisableInterrupts; //禁止所有中断
CONFIG1=0x09; //关闭看门狗, 5V模式
T1SC_TSTOP=1; //停止计时器1
asm LDHX #$260;
asm TXS; //SP=25F
ini_pll();
CONFIG2=0x01;
ini_port();
init_timer1(); //定时器1初始化
led_data=0x00; //初始化变量
T1SC_TSTOP=0; //打开定时器1
EnableInterrupts; //开中断
/* enable interrupts */
/* include your code here */
for(;;){
};
//while(1); /* loop forever */
}
interrupt void T1_OverFlow_ISR(void)
{
T1SC_TOIE=0; //功 能: 定时器1溢出处理程序
T1SC_TOF=0;
if(PTC_PTC5==0)
{
PTC_PTC5=1;
} else
PTC_PTC5=0;
PTD=led_data;
T1SC_TOIE=1;
}
这段程序编译后 ..\bin\P&E_FCS.abs.s19 烧写入芯片,电路没反应。请问:错在哪??
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) | Powered by Discuz! 7.0.0 |