历史上的今天
返回首页

历史上的今天

今天是:2025年07月08日(星期二)

正在发生

2021年07月08日 | 单片机C语言C51的输入输出

2021-07-08 来源:eefocus

在C51语言中,它本身不提供输入和输出语句,输入和输出操作是由函数来实现的。在C51的标准函数库中提供了一个名为“stdio.h”的一般I/O函数库,它当中定义了C51中的输入和输出函数。当对输入和输出函数使用时,须先用预处理命令“#include  ”将该函数库包含到文件中。


在C51的一般I/O函数库中定义的I/O函数都是通过串行接口实现,在使用I/O函数之前,应先对51单片机的串行接口进行初始化。选择串口工作于方式2(8位自动重载方式),波特率由定时器/计数器1溢出率决定。例如,设系统时钟为12MHZ,波特率为2400,则初始化程序如下:


SCON=0x52;


TMOD=0X20;


TH1=0xf3;


TR1=1;


1.  格式输出函数printf()


printf()函数的的作用是通过串行接口输出若干任意类型的数据,它的格式如下:


printf(格式控制,输出参数表)


格式控制是用双引号括起来的字符串,也称转换控制字符串,它包括三种信息:格式说明符、普通字符和转义字符。


(1)格式说明符,由“%”和格式字符组成,它的作用是用于指明输出的数据的格式输出,如%d、%f等,它们的具体情况见下表。


(2)普通字符,这些字符按原样输出,用来输出某些提示信息。


(3)转义字符,就是前面介绍的转义字符(下表),用来输出特定的控制符,如输出转义字符n就是使输出换一行。


输出参数表是需要输出的一组数据,可以是表达式。

2.  格式输入函数scanf()


scanf()函数的作用是通过串行接口实现数据输入,它的使用方法与printf()类似,scanf()的格式如下:


scanf(格式控制,地址列表)


格式控制与printf()函数的情况类似,也是用双引号括起来的一些字符,可以包括以下三种信息:空白字符、普通字符和格式说明。


(1)空白字符,包含空格、制表符、换行符等,这些字符在输出时被忽略。


(2)普通字符,除了以百分号“%”开头的格式说明符而外的所有非空白字符,在输入时要求原样输入。


(3)格式说明,由百分号“%”和格式说明符组成,用于指明输入数据的格式,它的基本情况与printf()相同,具体情况见表4-5。


地址列表是由若干个地址组成,它可以是指针变量、取地址运算符“&”加变量(变量的地址)或字符串名(表示字符串的首地址)。



【例】 使用格式输入输出函数的例子


#include       //包含特殊功能寄存器库


#include        //包含I/O函数库


void main(void)            //主函数


{

int  x,y;                          //定义整型变量x和y


SCON=0x52;                 //串口初始化


TMOD=0x20;


TH1=0XF3;


TR1=1;


printf(“input  x,y:n”);                  //输出提示信息


scanf(“%d%d”,&x,&y);                //输入x和y的值


printf(“n”);                                   //输出换行


printf(“%d+%d=%d”,x,y,x+y);    //按十进制形式输出


printf(“n”);                                   //输出换行


printf(“%xH+%xH=%XH”,x,y,x+y);    //按十六进制形式输出


while(1);      //结束


}


推荐阅读

史海拾趣

驰兴电感(Coilank)公司的发展小趣事

驰兴电感自成立之初,就深知技术创新对于企业发展的重要性。公司投入大量资源进行研发,成功推出了一系列全自动、小型化的SMD绕线电感产品。这些产品不仅具有更高的性能和稳定性,而且满足了市场对小型化、轻量化的需求,迅速在市场上获得了广泛的认可。驰兴电感凭借技术创新的优势,逐渐在电子行业中崭露头角。

Accelink Technologies Co Ltd公司的发展小趣事

驰兴电感自成立之初,就深知技术创新对于企业发展的重要性。公司投入大量资源进行研发,成功推出了一系列全自动、小型化的SMD绕线电感产品。这些产品不仅具有更高的性能和稳定性,而且满足了市场对小型化、轻量化的需求,迅速在市场上获得了广泛的认可。驰兴电感凭借技术创新的优势,逐渐在电子行业中崭露头角。

Glorious Sources Co Ltd公司的发展小趣事
在特定场合下,如仓库、博物馆等,利用可听式光探测器电路监测光线变化以触发警报系统。
e2v technologies公司的发展小趣事

在医疗领域,e2v也积极发挥其作用。公司针对放射治疗系统提供了价格合理、易于运输和安装的国内制造设备,支持中国各地医院和诊所的放射治疗工作。这些设备不仅提高了放射治疗的效果和效率,也为患者带来了更好的治疗体验。

Edsun Laboratories Inc公司的发展小趣事

随着公司规模的扩大和产品线的丰富,ECM Electronics Limited.开始积极拓展市场。公司不仅在国内市场取得了良好的销售业绩,还积极开拓国际市场,将产品出口到多个国家和地区。为了更好地服务全球客户,公司还设立了海外办事处和研发中心,加强与国际市场的联系和合作。通过国际化战略的实施,ECM进一步提升了品牌知名度和市场竞争力。

科达嘉CODACA公司的发展小趣事

在追求技术创新的同时,科达嘉电子也积极承担社会责任。公司关注环境保护,推行绿色生产,努力减少生产过程中的环境污染。此外,科达嘉还积极参与社会公益活动,为社区的发展贡献力量。通过不断创新和履行社会责任,科达嘉电子在电子行业中树立了良好的企业形象。

问答坊 | AI 解惑

电子捕鱼机

80年代初期,我在拿着钓鱼杆的时候,心里就想着,要是鱼儿任我捕捞,好安逸哦。在我生活的环境,是一望无际的大河坝。有时候,我在家里因为淘气被父母骂了或打了,就带上火柴、鱼杆和食盐,在外面过上一两天,那是肯定饿不到我的。一望无际的河坝使 ...…

查看全部问答>

PCB技术文章精选.

PCB技术文章精选.很有用的…

查看全部问答>

请教:6410 wince5.0 BSP移植到wince6.0

     请问各位老大有谁做过6410 wince5.0 BSP的移植没?应该如何着手呢?本人菜鸟中的菜鸟,帮帮忙,不胜感激。。。      邮箱:949770385@qq.com…

查看全部问答>

如何将BYTE转化为HBITMAP

已经给出了BYTE类型的数组(是位图数据),而现在函数接口接受的是HBITMAP型的参数,所以要将BYTE类型的数组转化为HBITMAP,不知道如何转换? 补充:WinCE平台C++语言开发…

查看全部问答>

求助版主解答RTC问题

请问版主是否有遇到过RTC因为温度过低而不能起振的问题? ST RTC晶振是否需要并一颗反馈电阻? 谢谢…

查看全部问答>

关于IFR

ti的文档 中有这么一句: Notes: 1) To clear an IFR bit, you must write a one to it, not a zero. 明明如果要清除某个中断请求的话要把相应的IFR位置为0,怎么能是 置1呢?…

查看全部问答>

2011电源突破性新技术

在电源半导体器件领域,SiC(Silicon carbide:碳化硅材料不但具备击穿电场强度高、热稳定性好,还具有载流子饱和漂移速度高、热导率高等特点。因为这些特性,SiC可以用来制造各种耐高温的高频大功率器件,罗姆已经率先将基于碳化硅的肖特基势垒二 ...…

查看全部问答>

提醒下大家ez430无线运动手表27日14:00开拍

活动的具体内容详见:https://bbs.eeworld.com.cn/thread-325762-1-1.html 想入手的明天中午准备好了,具体规则大家看看上面的那个链接,我是坐等开拍,想要这个已经很久了。 [ 本帖最后由 wstt 于 2012-4-26 13:31 编辑 ]…

查看全部问答>