//串口的初始化
//波特率为9600,8位数据格式,无校验,一个停止位,用查询方式发送
void SCI_Init(void)
{
SCI0BDH = 0x00;
SCI0BDL = 0x41; //波特率=BUSCLK/(16*BR[12:0])=38400 , BUSCLK=40MHz 14400_0xae 38400_0x41 230400_0x0b
SCI0CR2 = 0x2C; //发送,接收允许,接收采用中断方式
}
//将8位二进制数转换为相应的ASCII字符
unsigned char Digit_ASCII(unsigned char temp)
{
if(temp>=0x0A)//如查temp有两位,如11,则转换为B
temp = temp + 'A' - 0x0A;//'A'=65, 0x0A=10,
else
temp = temp + '0'; //temp为数字0~9, 只有1位
return temp;
}
//发送单个字符,下面这两个函数均可以
void SCI_SendChar(unsigned char ch)
{
while(SCI0SR1_TC == 0); //keep waiting when not empty
SCI0DRL = ch;
}
//或者
void SCI_SendChar(unsigned char ch)
{
while(SCI0SR1_TDRE == 0); //keep waiting when not empty
SCI0DRL = ch;
}
//通过SCI发送字符串
void SCI_SendStr(char *str)
{
while(*str!=0)
SCI_SendChar(*str++);
}
//把一个8位数以ASCII形式通过SCI0发送去
void SCI_SendHex8(unsigned char a)