单片机技术C51串口输出输入函数
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机技术C51串口输出输入函数
*51 串口输出输入函数外部声明ComFun.h----------------------------------------*/#include
//串口初始化晶振为11.0592M方式1 波特率300-57600void InitCom(unsigned char BaudRate){unsigned char THTL;switch (BaudRate){case 1: THTL = 64; break; //波特率300case 2: THTL = 160; break; //600case 3: THTL = 208; break; //1200case 4: THTL = 232; break; //2400case 5: THTL = 244; break; //4800case 6: THTL = 250; break; //9600case 7: THTL = 253; break; //19200case 8: THTL = 255; break; //57600default: THTL = 208;}SCON = 0x50; //串口方式1,允
许接收TMOD = 0x20; //定时器1 定时方式2TCON = 0x40; //设定时器1 开始计
数TH1 = THTL;TL1 = THTL;PCON = 0x80; //波特率加倍控制,SMOD 位RI = 0;
//清收发标志TI = 0;TR1 = 1; //启动定时器}
//向串口输出一个字符(非中断方式)void ComOutChar(unsigned char OutData) {SBUF = OutData; //输出字符while(!TI); //空语句判断字符是否发完TI = 0; //清
TI}
//向串口输出一个回车换行void ComOutEnter(void){SBUF = 0x00;while(!TI);
TI = 0;SBUF = 0x0A;while(!TI);TI = 0;}
//向串口输出一个字符串(非中断方式)void ComOutStr(unsigned char *Str) {while(*Str != 0x00) //判断是否到了字符串的尾部{SBUF = *Str; //输出字符
while(!TI); //空语句判断字符是否发完TI = 0; //清TIStr++; //字符串指针加一}}
//从串口接收一个字符(非中断方式)unsigned char ComInChar(){unsigned char InData;while(!RI); //空语句判断字符是否收完InData = SBUF; //保存COM 缓冲
字符RI = 0; //清RIreturn (InData); //返回收到的字符}