十六进制HEX/hexadecimal /ˌheksəˈdesɪml/
十进制DEC/decimalism/'desiməlizəm/
二进制BIN/binary/ˈbaɪnəri/
八进制OCT/octonary /ˈɒktənəri/
波特率计算:
串口向电脑发送数据:
#include <REGX52.H>void Delayms(unsigned int time);void UartInit(void);void UART_SendByte(unsigned char Byte);main(){unsigned char Sec;UartInit();while(1){UART_SendByte(Sec);Sec++;Delayms(1000);}}
#include <REGX52.H>/*** @brief 串口初始化,4800bps@11.0592MHz* @param * @retval */void UartInit(void)//4800bps@11.0592MHz{PCON |= 0x80;//使能波特率倍速位SMODSCON = 0x40;//8位数据,可变波特率TMOD &= 0x0F;//清除定时器1模式位TMOD |= 0x20;//设定定时器1为8位自动重装方式TL1 = 0xF4;//设定定时初值TH1 = 0xF4;//设定定时器重装值ET1 = 0;//禁止定时器1中断TR1 = 1;//启动定时器1}/*** @brief 像串口发送一个字节的数据* @param Byte要发送的数据* @retval */void UART_SendByte(unsigned char Byte){SBUF=Byte;//写入即可自动发出; while(TI==0);//检测是否发出,发出则为1;TI=0;//重置;}
串口接收数据,并返回
#include <REGX52.H>void UartInit(void);void UART_SendByte(unsigned char Byte);main(){UartInit();while(1){}}void Uart_Routine() interrupt 4{if(RI==1){//保证当单片机接收数据时执行P2=SBUF; UART_SendByte(SBUF);//单片机返回接收的数据RI=0;}}
串口接收数据