#include /* common defines and macros */ #include "INCLUDES.h" #include "main.h" /* derivative information */ #pragma LINK_INFO DERIVATIVE "mc9s12xdp512" void MCUInit(void); void put_char (char c); INT8U Digit2ASCII(INT8U src) ; void main(void) { /* put your own code here */ EnableInterrupts; OSInit(); MCUInit(); KeyInit(); SCI0CR2=0x2c;//接收中断允许 SCI0BD=0x009c; DDRB=0XFF; PORTB=0XFF; OSStart(); /* please make sure that you never leave this function */ } void MCUInit(void) { asm sei REFDV=0x01; // initiate PLL clock SYNR =0x02; // system clock 24M while (!(CRGFLG & 0x08)){} //CRGFLG的D3=1则稳定,并且可做为系统时钟 CLKSEL=0x80; // 选定所相环时钟 asm cli } void put_char (char c) {//发送数据是通过判断状态寄存器SCI0SR1的第7位(TDRE) //接收数据是通过判断状态寄存器SCI0SR1的第5位(RDRF) while((SCI0SR1 & 0X80)==0);//SCI0SR1的loops置0,正常模式,即当SCI0SR1.7=0时,等待 SCI0DRL=c;// SCI0SR1.7=1时,发送数据将c一字节输入数据缓冲区SCI0DRL(先低后 //高) } INT8U Digit2ASCII(INT8U src) //Digit to ASCII { return(src>=0x0A)?(src +'A'-0x0A):(src +'0'); }