#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 烧写入芯片,电路没反应。请问:错在哪?? |