单片机C语言C51的输入输出

时间:2024-03-16 17:47:28

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

在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就是使输出换一行。

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

单片机C语言C51的输入输出

2.  格式输入函数scanf()

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

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

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

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

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

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

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

单片机C语言C51的输入输出

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

#include  <reg52.h>     //包含特殊功能寄存器库

#include  <stdio.h>      //包含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);      //结束

}