?? mc68hc908rf2帶曼徹斯特碼的發(fā)射程序.txt
字號(hào):
SCI串口發(fā)送程序:(以MC68HC908JK8_DIP20為例,分別以1200/2400/4800/9600/19200的波特率發(fā)送0-255,同時(shí)PTB4腳的LED閃爍)
/*********************************************************/
/* 功能描述: 串口發(fā)送程序,程序控制連續(xù)發(fā)射0~255, */
/* 由PC接收, */
/* 編譯環(huán)境:CodeWarrior3.1 */
/* IC 型號(hào) :mc68hc908jk8_dip20 */
/* 晶振頻率:4.9152MHz */
/* 編輯時(shí)間:2005_11_29 */
/* 編者:laomu */
/*********************************************************/
#include <hidef.h> /* for EnableInterrupts macro */
#include <MC68HC908JK8.h> /* include peripheral declarations */
#define Baud_19200 0x00 //19200
#define Baud_9600 0x01 //9600
#define Baud_4800 0x02 //4800
#define Baud_2400 0x03 //2400
#define Baud_1200 0x04 //1200
#define RxD PTD_PTD6 //intput
#define TxD PTD_PTD7 //output
#define OUTPUT_LED PTB_PTB4 //發(fā)送指示燈,每發(fā)送一個(gè)數(shù)據(jù),LED閃爍一次.
void delay_time(uint delay_time);
void Baud_Setup(unsigned char BaudRate);
void init_sys(void);
void sci_send(uchar ch);
uchar sci_receive(void);// 此程序未經(jīng)驗(yàn)證!
/*********************************************************/
/* 函數(shù):void main(void) */
/*********************************************************/
void main(void) {
uchar data;
DisableInterrupts; /* disable interrupts */
/* include your code here */
init_sys();
EnableInterrupts; /* enable interrupts */
for(;;) {
Baud_Setup(Baud_1200);
for(data=0;data<255;data++){
sci_send(data);
OUTPUT_LED = 1; // 輸出指示燈點(diǎn)亮約1秒
delay_time(10000);
OUTPUT_LED = 0;
}
Baud_Setup(Baud_2400);
for(data=0;data<255;data++){
sci_send(data);
OUTPUT_LED = 1; // 輸出指示燈點(diǎn)亮約1秒
delay_time(10000);
OUTPUT_LED = 0;
}
Baud_Setup(Baud_4800);
for(data=0;data<255;data++){
sci_send(data);
OUTPUT_LED = 1; // 輸出指示燈點(diǎn)亮約1秒
delay_time(10000);
OUTPUT_LED = 0;
}
Baud_Setup(Baud_9600);
for(data=0;data<255;data++){
sci_send(data);
OUTPUT_LED = 1; // 輸出指示燈點(diǎn)亮約1秒
delay_time(10000);
OUTPUT_LED = 0;
}
Baud_Setup(Baud_19200);
for(data=0;data<255;data++){
sci_send(data);
OUTPUT_LED = 1; // 輸出指示燈點(diǎn)亮約1秒
delay_time(10000);
OUTPUT_LED = 0;
}
} /* loop forever */
/* please make sure that you never leave this function */
}
/*********************************************************/
/* 函數(shù)名:void sci_send(uchar ch) */
/* Sends the data stored in "data" through the SCI. */
/* Recall the data there is reversed, so it is sent last */
/* byte first. */
/* check ok */
/*********************************************************/
void sci_send(uchar ch) {
while(!SCS1_SCTE); //Wait until SCTE set.
SCDR = ch; //Get data to transmit
}
uchar sci_receive(void){
uchar data;
while(!SCS1_SCRF);
data = SCDR;
return data;
}
/*********************************************************/
/* 函數(shù)名:void delay_time(uchar delay_time); */
/*********************************************************/
void delay_time(uint delay_time){
uint i;
i=delay_time;
while(i--);
}
/*********************************************************/
/* 函數(shù)名:void Baud_Setup(unsigned char BaudRate); */
/* 功能:串口初始化 */
/*********************************************************/
void Baud_Setup(unsigned char BaudRate) {
//初始化RS-232串口,波特率為9600
//M=0 8bit Mode;1start and 1 stop bit. no PEN and PTY.
SCC1 = 0x40; //enable SCI ENSCI=1
//Enable Tx,and Disable Rx
SCC2 = 0x08;
SCBR = BaudRate; //With a 4.9152MHz XTAL, 9600 bauds.
}
/*********************************************************/
/* 函數(shù)名:void init_sys(void) */
/* 功能:系統(tǒng)初始化 */
/*********************************************************/
void init_sys(void){
CONFIG1 = 0x03; // close watchdog
CONFIG2 = 0x80;
//初始化I/O口
DDRB = 0xFF;
PTB = 0x00;
DDRD = 0x80;
PTD = 0x00;
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -