#include
#include "derivative.h" /* include peripheral declarations */
#define LED_D1 PTDD_PTDD0
#define LED_D1_DIR PTDDD_PTDDD0
#define LED_ON 0
#define LED_OFF 1
unsigned char SCANF_SEND_STRINGS[] = "HELLO MCU WORLD";
unsigned char *pSendString = SCANF_SEND_STRINGS;
/*************************************************************/
/* 外部晶振頻率為4MHz,總線頻率16MHz */
/*************************************************************/
void INIT_MCG(void)
{
MCGC2=0x36;
while(!MCGSC_OSCINIT);
MCGC1=0xb8;
while(MCGSC_IREFST);
while(MCGSC_CLKST!=0b10);
MCGC2_LP = 1;
MCGC1 = 0x90;
MCGC3 = 0x48;
MCGC2_LP = 0;
while(!MCGSC_PLLST);
while(!MCGSC_LOCK);
MCGC1 = 0x10;
while(MCGSC_CLKST!=0b11);
}
void delay(void)
{
unsigned int i;
unsigned int j;
for(i = 0; i < 100; i++)
for(j = 0; j < 4000; j++);
}
void main(void) {
DisableInterrupts;
SOPT1 = 0;
INIT_MCG();
EnableInterrupts; /* enable interrupts */
/* include your code here */
LED_D1_DIR = 1;
LED_D1 = LED_OFF;
SCI1BDH = 0X00;
SCI1BDL = 0X68;//波特率設置為9600
SCI1C1 = 0x00; //設置SCI1為正常模式,八位數據位,無奇偶校驗
SCI1C2 = 0x88; //TIE = 1(bit7) 啟動TDRE中斷,發送中斷使能
//手冊指出,如果設置了發送中斷使能TIE位,每當TDRE = 1時都請求硬件中斷
//TE = 1(bit3) 發送器打開
while(1);
for(;;) {
__RESET_WATCHDOG(); /* feeds the dog */
} /* loop forever */
/* please make sure that you never leave main */
}
/*************************************************************/
/* SCI1中斷向量函數 */
/* 向量編號為18,中斷來源TDRE,TC */
/*************************************************************/
interrupt 18 void SCI1_SEND(void)
{
while(*pSendString != '
主站蜘蛛池模板: 墨脱县| 盱眙县| 外汇| 余姚市| 马尔康县| 晋州市| 望江县| 蒙山县| 岑溪市| 明水县| 台湾省| 花莲县| 甘孜县| 微山县| 苏尼特右旗| 城口县| 任丘市| 若尔盖县| 长葛市| 宁城县| 西畴县| 宁国市| 花莲县| 松溪县| 曲松县| 栖霞市| 内丘县| 焦作市| 浦县| 工布江达县| 麟游县| 无锡市| 永福县| 泾源县| 瑞安市| 万州区| 镶黄旗| 福鼎市| 炉霍县| 琼结县| 温宿县|