C51 printf修改如何能打印到不同的设备呢?

来源:互联网 发布:linux mint kde xfce 编辑:程序博客网 时间:2024/05/29 06:42
 原文如下
我们知道标准的C51库函数printf是将内容通过串口打印,常见单片机系统中的输出设备通
常是lcd,led,甚至osd等,但是许多编程者苦于编写其打印函数以及各种各样的格式控
制,其实keil c51提供了非常方便的方法来实现,那就是通过改写putchar.c来改造printf
函数,你可以通过以下办法来实现自己设计系统中的打印,
1、拷贝KEIL C51下LIB目录中的putchar.c文件到你的项目目录下,并且将其添加到你的工
程中
2、在char putchar (char c)函数中把所有对SBUF负值的语句替换为你自己的打印设备函数
如:把最后的return(SBUF = c)替换为Lcd_PutC(c);return(c);
3、如果你的输出设备是二维的显示设备你可能需要建立全局的二维变量cursor(x,y),在
每打印一个字符后x,y做相应的变换
4、如果你要在二维的显示设备上输出汉字,你还需要建立一个全局的区码变量,在putchar
函数中先对入口参数c作判断如果是处在区码范围内则此次不输出,并做好获得区码的标
志,待程序第二次调用putchar函数时判断区码标识存在则此次入口参数c实际上就是这个汉
字的位码,则可以将区码变量和本次参数c组成这个汉字的区位码并调用用户的输出函数将
其输出到用户设备,输出后把区码标识复位
以上方法可以把printf函数中的各种格式控制很轻松的应用到用户系统中