if-else条件分支语句是选择结构的一种形式,是最常用的语句之一。这意味着如果if后面的表达式成立(不为0),则执行if下面的语句,否则直接向下执行。......
2023-11-07
1.利用参数传值调用
使用参数在函数间传送数据时,主调函数的参数必须是实参,也就是必须是实际值。被调函数的参数是形参,可以是一个或几个变量。实参的个数、顺序和数据类型必须与形参一致。
主调函数被执行后,实参值即被传送到被调函数中执行,完成后返回主调函数的程序中继续向下执行。这种调用称为传值调用。
【例4-24】 D0灯闪烁,间隔时间0.5s
(1)编辑C语言源程序
(2)编译
(3)执行
进行软仿真,单击“单步”,P1.0=0,延时,P1.0=1,延时……这就相当于表示D0取反,灯闪烁运行,间隔时间为0.5s。
(4)程序点评
本例中,主调函数是delay(5),其中(5)是实参。由于一个空执行{ }时间为6μs,总延时时间为6×167×100×5μs=500ms=0.5s。
由于传值调用的引入,通过改变实参,可以使延时时间在很大范围内变化,而程序本身无需改变。如果设实参为1,则延时时间为100ms。如果设实参为255,则延时时间为100ms×255=25.5s。利用传值调用,可以灵活设置延时时间。
若形参的数据类型为uchar型,实参范围只能为1~255。若为uint型,实参最大可以到65535。但为了让程序快速运行,一般应尽量用uchar型。
2.利用函数返回值传送
【例4-25】 调用函数a+b的和
(1)编辑C语言源程序(www.chuimin.cn)
(2)编译
(3)执行
进行软仿真,单步执行,P1=0000 1011=0x0B。因为c=5+6=11=0x0B。证明程序执行结果正确。执行到大括号程序停止。
(4)程序点评
本例通过程序执行,验证了函数的传值调用功能。add(5,6)中的数值就是实参。由于传值调用,将实参送到add(),执行后,利用返回值c送回主函数。必须注意,主程序中的变量c必须设置变量类型为uchar,否则会出错。传值调用为程序提供了很大的灵活性。若将add( )形参类型改为uint,变量c的范围可以到65536。
3.利用全局变量传送
【例4-26】
(1)编辑C语言源程序
(2)编译
(3)执行
进行软仿真,连续单击“单步”执行,P1=00110111=0x37,c=25+30=55=0x37,程序执行正确。注意,单步执行到大括号即停止,不能再向下执行。
单击“RST”,系统复位,程序从头开始。
(4)程序点评
本例验证了函数用全局变量执行传值调用。由于c是全局变量,因而可以执行add(),并显示结果。在add()中不用加返回值。在主函数main中只执行add(),不要加赋值c。因为执行了add()就得到了c值。
有关零起点学习单片机多语言编程的文章
if-else条件分支语句是选择结构的一种形式,是最常用的语句之一。这意味着如果if后面的表达式成立(不为0),则执行if下面的语句,否则直接向下执行。......
2023-11-07
将一个二进制数转换成十进制数表示,只需按权展开做一次10进制运算即可以完成。将一个十进制数转换成二进制数表示,是数据转换中较复杂的工作。做乘、除运算时,其法则与十进制数也是相同的。它不同于数值运算。二进制数可以进行按位的逻辑运算,每位之间相互独立,位与位之间不存在进位和借位的关系。......
2023-11-07
程序点评:数据传送指令MOV将一组数据分别传送到P1口,做了输出口的操作。将8位立即数传送给累加器A,再由累加器A将数据传送到I/O接口的P1口,使P1.0灯亮。在I/O接口输出操作时不能将间接寄存器中的地址输出到P1口。......
2023-11-07
尽管单片机有许多特点,但仍然属于计算机的范围。这种特殊的语言就是程序设计语言,也就是由一系列语句组成的程序。程序设计语言从原理上可分为机器语言、汇编语言和高级语言三种类型,单片机也不例外。由于汇编语言指令具有直接对应机器语言指令的特点,因而生成的机器代码效率高,执行速度快,至今在单片机程序设计中仍被采用。在众多高级语言中,只有C语言成了应用于单片机系统的高级语言。......
2023-11-07
表5-27 数据传送指令注:EDMOV指令仅适合QnU系列PLC。下面以16位数据传送指令MOV为例展开说明。图5-4 K155存储在数据寄存器D8中2)浮点数据传送EMOV指令是将源操作数中存储的浮点型实数数据传送至目标软元件中去。EMOV指令是单精度浮点数据,占32位,双精度指令占64位。4)相同16位数据批量传送指令FMOV的主要功能是将数据同时传送到指定软元件开始的n点位置。......
2023-06-16
2)数据传送指令,加1、减1指令,逻辑运算指令不影响CY、OV和AC位。标志位的状态是控制转移类指令的判断条件。数据传送类指令是使用最频繁的指令,主要用于数据的复制、保存及交换。数据传送类指令的助记符有MOV、MOVX、MOVC、XCH、XCHD、SWAP、PUSH、POP。其通用数据传送类指令格式为MOV 目的操作数,源操作数表3-2数据传送类指令注:√表示该指令影响某一标志位。外部RAM或I/O口之间的数据传送指令共有4条。......
2023-11-17
对单片机来说,可以用高级语言编程,也可用汇编语言编程,两种语言各有特点。像8051具有MCS51系列单片机的指令集。用助记符指令组成的计算机语言就称为汇编语言。......
2023-11-07
数据跟踪传送(热备)功能用于使控制系统和待机系统的数据保持统一,以确保控制系统停机时,冗余系统通过待机系统继续运行。不进行跟踪传送(热备)的情况下,在系统切换后,在新的控制系统CPU模块中,会有上升沿、下降沿和SCJ指令不能正常工作的情况。图12-77 跟踪传送(热备)的步骤......
2023-06-16
相关推荐