知方号

知方号

51单片机在Keil中使用printf进行串口输出

51单片机在Keil中使用printf进行串口输出

        最近有同学在51单片机的学习过程中困扰如何使用单片机串口在上位机串口助手上输出显示的问题,其实很多开发环境都支持使用C语言里面最常用的printf函数,Keil中也不例外,不仅仅是最常用的STC89C52、keil下其他51系列单片机如STC12、STC15等同样适用。具体步骤如下:

在Keil中建立一个空的工程,加入一个源文件,如main.c 粘贴以下代码,编译生成hex文件,下载到单片机即可。

        需要注意的是:1、需要包含stdio.h头文件 2、串口初试化函数中需要有 TI = 1;

        废话少说,直接上代码:

#include #include void InitUART(void)//使用定时器1作为串口波特率发生器{ TH1 = 0xFD; //晶振11.0592mhz 波特率设为9600 TL1 = TH1; TMOD |= 0x20; //定时器1方式2 SCON = 0x50; //串口接收使能 ES = 1; //串口中断使能 TR1 = 1; //定时器1使能 TI = 1; //发送中断标记位,必须设置}//毫秒延时函数void delay_ms(unsigned int t){ unsigned char a,b; while(t--) { for(b=102;b>0;b--) for(a=3;a>0;a--); }}void main(){ InitUART();//初始化串口 EA = 1; //开总中断 while(1) { delay_ms(500); printf("Hello World! ");//串口打印结果 }}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至lizi9903@foxmail.com举报,一经查实,本站将立刻删除。