网站首页 > 文章中心 > 其它

C51语言输入函数

作者:小编 更新时间:2023-08-11 16:02:52 浏览量:362人看过

c51中 printf怎用

是这样的,keil的stdio.h提供了一堆函数,大致分两类,一类是通过串口在上位机上输入输出,另一类是指定一个指针变量,向其输入输出,这样便可以将得到的字符数组指针的内容输出到LCD一类设备上了,也可通过指针获得按键输入.

对于一类,你必须得软件初始化串口,硬件与电脑连接好,然后利用windows的超级终端就可以显示单片机中程序里的printf等函数打印出的内容了,你也可以使用getchar获得超级终端的按键码.(当然也可以使用串口助手之类软件代替超级终端,注意波特率,数据位,校验位,等设置要保持一致)

对于第二类,是不用初始化串口的,因为跟串口没任何关系,你只要用指针虚拟设备就可以了,输入输出都是你自己做的硬件.

附串口初始化程序:

void UartInit(void){

TMOD = 0x0f;//清除定时器1模式位

TL1 = T1_INIT_VALUE;//设定定时初值

C51语言输入函数-图1

TH1 = T1_INIT_VALUE;//设定定时器重装值

ET1 = 0;//禁止定时器1中断

TR1 = 1;//启动定时器1

ES = 0;//禁止串行口中断

TI = 1; //必须置高TI,RI

RI = 1;

puts("Uart Initialize Success!");

//*.调用printf之前应该关闭串口中断使能

}

C51的scanf()和printf()是做什么的?

printf()是以规定的格式向单片机的串口输出数据 原型如下: extern int printf (const char *, ...);

const char *是格式控制字符串指针,必须以%开始, %[flags][width][.precision]][modified] type

scanf()函数是依规定的格式从串口输入数据,extern int scanf( const char * , ....)

与printf相同其格式控制符需要以%开始,一一个格式字符结束,中间可以插入附加字符:

%[*][width][modifiers]type

c51 汇编调用c函数

我的程序KEIL编译器,EXTRN CODE(_Send_CRC)的第一个国家Send_CRC C函数编译加上调用_LCALL _Send_CRC如果您要成相应的数据,然后使用变量在C,XDATA代码.

一般形式:

函数名(实参表列);如果是调用无参函数,则"实参表列"可以没有,但括弧不能省略.如果实参表列包含多个实参,则个参数间用逗号隔开.实参与形参的个数应相等,类型应一致.

实参与形参按顺序对应,一一传递数据.但应说明,如果实参表列包括多个实参,对实参求值的顺序并不是确定的,有的系统按自左至右顺序求实参的值,有的系统则按自右至左顺序

单片机C51中c语言函数(-nop-())求助

extern unsigned char _cror_ (unsigned char, unsigned char); //字符循环右移

extern unsigned int _iror_ (unsigned int, unsigned char); //整数循环右移

extern unsigned long _lror_ (unsigned long, unsigned char); //长整数循环右移

extern unsigned char _crol_ (unsigned char, unsigned char); //字符循环左移

extern unsigned int _irol_ (unsigned int, unsigned char); //整数循环左移

extern unsigned long _lrol_ (unsigned long, unsigned char); //长整数循环左移

extern unsigned char _chkfloat_(float); //测试并返回源点数状态

看你的要求~~

在C语言中如何输入一个函数

C51函数是如何调用

在你原来的函数基础上,加上三个参数,分别是:

①. 要操作的PORT口

当然,如果你的目标很明确,可以把以上三个参数裁剪掉一些,利于系统的效率提高.

下面是我写的示例程序,你可能参考一下:

#define Pin0 0x01

#define OPT_CPL 0x00 //----取反某位操作

#define OPT_CLR 0x01 //----清零某位操作

void Operate(

/*这里写你原来的参数,*/

unsigned char Port_Num,

unsigned char Opr_Style,

unsigned char Pins

)

{

//----如果在单片机PORT口范围之内,刚读取当前PORT口的状

//----如果不在范围之内,死循环

//----注意,为了效率起见,这个部分可以根据实际应用进行裁剪

if(Port_Num == 0)

Port_Num = P0;

else if(Port_Num == 1)

Port_Num = P1;

else

while(1);

//----如果是取反相应位,进行异或操作

//----如果清零相应位,则位与操作

//----如果置位相应位,则位或操作

//----如果都不在范围之内,则死循环

//----这段代码也根据实际情况裁剪

if(Opr_Style == OPT_CPL)

Port_Num ^= Pins;

else if(Opr_Style == OPT_CLR)

Port_Num = ~Pins;

else if(Opr_Style == OPT_SET)

Port_Num |= Pins;

P0 = Port_Num;

P1 = Port_Num;

//----以上的内容,可根据实际情况进行裁剪,以实现程序最优化

//----添加你的功能的其他代码---------------

void main(void)

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章