第四章-单片机C语言程序设计2课件

上传人:痛*** 文档编号:241675052 上传时间:2024-07-15 格式:PPT 页数:50 大小:304KB
返回 下载 相关 举报
第四章-单片机C语言程序设计2课件_第1页
第1页 / 共50页
第四章-单片机C语言程序设计2课件_第2页
第2页 / 共50页
第四章-单片机C语言程序设计2课件_第3页
第3页 / 共50页
点击查看更多>>
资源描述
单片机原理与应用第四章 单片机C语言程序设计本章要点:C51的数据类型的数据类型C51的运算量的运算量 C51的运算符及表达式的运算符及表达式 C51程序基本结构与相关语句程序基本结构与相关语句7/15/2024单片机原理与应用第四章 单片机C语言程序设计4.1 C语言与MCS-51单片机4.1.1 C语言的特点及程序结构语言的特点及程序结构一一C语言的特点语言的特点1语言简洁、紧凑,使用方便、灵活。语言简洁、紧凑,使用方便、灵活。2运算符丰富。运算符丰富。3数据结构丰富。具有现代化语言的各种数据结构。数据结构丰富。具有现代化语言的各种数据结构。4可进行结构化程序设计。可进行结构化程序设计。5可以直接对计算机硬件进行操作。可以直接对计算机硬件进行操作。6生成的目标代码质量高,程序执行效率高。生成的目标代码质量高,程序执行效率高。7可移植性好。可移植性好。7/15/2024单片机原理与应用第四章 单片机C语言程序设计二二C语言的程序结构语言的程序结构 C语言程序采用函数结构程序总是从main()函数开始执行,执行到main()函数结束则结束。在编制C程序时,程序的开始部分一般是预处理命令、函数说明和变量定义等。C语言程序结构一般如下:预处理命令 include 函数说明 long fun1();float fun2();int x,y;float z;7/15/2024单片机原理与应用第四章 单片机C语言程序设计功能函数主函数功能函数功能函数1 fun1()函数体 主函数 main()主函数体 功能函数2 fun2()函数体7/15/2024单片机原理与应用第四章 单片机C语言程序设计4.1.2 C语言与语言与MCS-51单片机单片机 汇编语言编写MCS51单片机程序必须要考虑其存储器结构,尤其必须考虑其片内数据存储器与特殊功能寄存器的使用以及按实际地址处理端口数据。用C语言编写的MCS51单片机应用程序,在C语言编程中,对数据类型与变量的定义,必须要与单片机的存储结构相关联,否则编译器不能正确地映射定位。7/15/2024单片机原理与应用第四章 单片机C语言程序设计4.1.3 C51程序结构程序结构C51的语法规定、程序结构及程序设计方法都与标准的C语言程序设计相同,但C51程序与标准的C程序在以下几个方面不一样:(1)C51中定义的库函数和标准C语言定义的库函数不同;(2)C51中的数据类型与标准C的数据类型也有一定的区别;(3)C51变量的存储模式与标准C中变量的存储模式不一样;(4)C51中的输入输出是通过MCS-51串行口来完成的;(5)C51中有专门的中断函数。(Interrupt m)7/15/2024单片机原理与应用第四章 单片机C语言程序设计4.2 C51的数据类型的数据类型 C51的数据类型如表4.1所示:基本数据类型长度取值范围unsigned char1字节0255signed char1字节-128+127unsigned int2字节065535signed int2字节-32768+32767unsigned long4字节04294967295signed long4字节-2147483648+2147483647float4字节1.175494E-383.402823E+38bit1位0或1Sbit1位0或1sfr1字节0255sfr162字节065535表4.1 C51的数据类型7/15/2024单片机原理与应用第四章 单片机C语言程序设计4.3 C51的运算量的运算量4.3.1 常量一整型常量一整型常量在C51中它可以表示成以下几种形式:十进制整数。如234、-56、0等。十六进制整数。以0 x开头表示,如0 x12表示12H。长整数。在存储器中占四个字节(123L)。二浮点型常量二浮点型常量 十进制表示形式:0.123、34.645 指数表示形式为:123.456e-3、-3.123e2三字符型常量三字符型常量 字符型常量是用单引号引起的字符,如a、1、F等。常用的转义字符如表4-2所示。一个字符常量只用一个字节存放。7/15/2024单片机原理与应用第四章 单片机C语言程序设计转义字符含 义 ASCII码(十六进制数)0空字符(null)00H n换行符(LF)0AH r回车符(CR)0DH t水平制表符(HT)09H b退格符(BS)08H f换页符(FF)0CH 单引号27H”双引号22H 反斜杠5CH四四字符串字符串型常量型常量 字符串型常量由双引号“”括起的字符组成。如“D”、“1234”、“ABCD”等。一个字符串常量存放时双引号内的一个字符占一个字节,而且系统在后面加一个转义字符“0”作为字符串结束符。表4-2 常用的转义字符7/15/2024单片机原理与应用第四章 单片机C语言程序设计定义的格式如下:存储种类 数据类型说明符 存储器类型 变量名1=初值,变量名2=初值;char data var1一数据类型说明符一数据类型说明符 typedef c51固有的数据类型说明符 别名#define 别名 c51固有的数据类型说明符【例例4-1】typedef的使用。typedef unsigned int WORD;define BYTE unsigned char;(#define uint unsigned int;#define uchar unsigned char)BYTE a1=0 x12;WORD a2=0 x1234;4.3.2 变量7/15/2024单片机原理与应用第四章 单片机C语言程序设计C51变量的存储种类有四种,分别是自动(auto)、外部(extern)、静态(static)和寄存器(register)。1auto:使用auto定义的变量称为自动变量,其作用范围在定义它的函数体或复合语句内部,当定义它的函数体或复合语句执行时,C51才为该变量分配内存空间,结束时占用的内存空间释放。2extern:使用extern定义的变量称为外部变量。在一个函数体内,要使用一个已在该函数体外或别的程序中定义过的外部变量时,该变量在该函数体内要用extern说明。外部变量被定义后分配固定的内存空间,在程序整个执行时间内都有效,直到程序结束才释放。二存储种类二存储种类7/15/2024单片机原理与应用第四章 单片机C语言程序设计3static:使用static定义的变量称为静态变量。它又分为内部静态变量和外部静态变量。在函数体内部定义的静态变量为内部静态变量,它在对应的函数体内有效,一直存在,但在函数体外不可见。外部静态变量上在函数外部定义的静态变量。它在程序中一直存在,但在定义的范围之外是不可见的。如在多文件或多模块处理中,外部静态变量只在文件内部或模块内部有效。4register:使用register定义的变量称为寄存器变量。它定义的变量存放在CPU内部的寄存器中,处理速度快,但数目少。7/15/2024单片机原理与应用第四章 单片机C语言程序设计存储器类型描 述 data直接寻址的片内RAM低128B,访问速度快 bdata片内RAM的可位寻址区(20H2FH),允许字节和位混合访问 idata间接寻址访问的片内RAM,允许访问全部片内RAM pdata用Ri间接访问的片外RAM的低256B xdata用DPTR间接访问的片外RAM,允许访问全部64k片外RAM code程序存储器ROM64k空间表4.3 C51编译器能识别的存储器类型三存储器类型三存储器类型7/15/2024单片机原理与应用第四章 单片机C语言程序设计【例例4-2】变量定义存储种类和存储器类型相关情况。char data varl;/*在片内RAM低128B定义用直接寻址方式访问的字符型变量var1*/int idata var2;/*在片内RAM256B定义用间接寻址方式访问的整型变量var2*/定义:在片外RAM64KB空间定义用间接寻址方式访问的外部外部实型变量var4。extern float xdata var4;int code var5;定义:在ROM空间定义整型变量var5。7/15/2024单片机原理与应用第四章 单片机C语言程序设计四特殊功能寄存器变量四特殊功能寄存器变量 特殊功能寄存器进行访问通过sfr或sfr16类型说明符进行定义。格式如下:sfr或sfr16 特殊功能寄存器名=地址;例例4-3】特殊功能寄存器的定义。sfr PSW=0 xd0;/*特殊功能寄存器名一般用大写字母表示。*/sfr P1=0 x90;sfr16 DPTR=0 x82;五位变量五位变量 位类型符有两个:bit和sbit。可以定义两种位变量。bit位类型符定义的格式如下:bit 位变量名位变量名;但注意存储器类型只能是bdata、data、idata。【例例4-4】bit型变量的定义。bit bdata a2;/*正确*/;bit pdata a3;/*错误*/7/15/2024单片机原理与应用第四章 单片机C语言程序设计【例例4-5】sbit型变量的定义。sbit CY=0 xd7;(P20)unsigned char bdata flag;sbit flag0=flag0;sfr P1=0 x90;sbit P1_0=P10;字节地址与位号之间、特殊功能寄存器与位号 之间一般用“”作间隔。sbit P1_1=P11;当用户要使用时,只须要在使用之前用一条预处理命令#include 把这个头文件包含到程序中。sbit位类型符格式如下:sbit 位变量名位变量名=位地址位地址(可以是可位寻址变量带位号,也可以是特殊功能寄存器名带位号)。7/15/2024单片机原理与应用第四章 单片机C语言程序设计4.3.3 绝对地址的访问绝对地址的访问C51编译器提供了一组宏定义来对51系列单片机的code、data、pdata和xdata空间进行绝对寻址。其函数原型如下:#define CBYTE(unsigned char volatile*)0 x50000L)#define DBYTE(unsigned char volatile*)0 x40000L)#define PWORD(unsigned int volatile*)0 x30000L)#define XWORD(unsigned int volatile*)0 x20000L)这些函数原型放在absacc.h文件中。使用时须用预处理命令把该头文件包含到文件中,形式为:#include 。其中:CBYTE以字节形式对code区寻址。一使用一使用C51运行库中预定义宏运行库中预定义宏7/15/2024单片机原理与应用第四章 单片机C语言程序设计【例例4-7】绝对地址对存储单元的访问#include /*将绝对地址头文件包含在文件中*/#include /*将寄存器头文件包含在文件中*/#define uchar unsigned char /*定义符号uchar为unsigned char*/#define uint unsigned int /*定义符号uint为unsigned int*/void main(void)uchar var1;uint var2;var1=XBYTE0 x0005;/*访问片外RAM的0005字节单元*/var2=XWORD0 x0002;/*访问片外RAM的0002字单元*/.while(1);7/15/2024单片机原理与应用第四章 单片机C语言程序设计#define uchar unsigned char /*定义符号uchar为unsigned char*/#define uint unsigned int void func(void)uchar data var1;uchar pdata *dp1;/*定义一个指向pdata区的指针dp1*/uint xdata *dp2;/*定义一个指向xdata区的指针dp2*/dp1=0 x30;/*dp1指针赋值,指向pdata区的30H单元*/dp2=0 x1000;/*dp2指针赋值,指向xdata区的1000H单元*/*dp1=0 xff;/*将数据0 xff送到片外RAM30H单元*/*dp2=0 x1234;/*将数据0 x1234送到片外RAM1000H单元*/二通过指针访问二通过指针访问【例例4-8】通过指针实现绝对地址的访问。7/15/2024单片机原理与应用第四章 单片机C语言程序设计#define uchar unsigned char /*定义符号uchar为unsigned char*/#define uint unsigned int /*定义符号uint为unsigned int*/void main(void)data uchar x1 _at_ 0 x40;/*在data区中定义字节变量x1,它的地址为40H*/xdata uint x2 _at_ 0 x2000;/*在xdata区中定义字变量x2,它的地址为2000H*/x1=0 xff;x2=0 x1234;.while(1);三使用三使用C51扩展关键字扩展关键字_at_一般格式如下:存储器类型 数据类型说明符 变量名 _at_ 地址常数;【例例4-9】通过_at_实现绝对地址的访问。7/15/2024单片机原理与应用第四章 单片机C语言程序设计4.4 C51的运算符及表达式的运算符及表达式 赋值运算符“=”,一个赋值语句的格式为:变量=表达式;例如:x=8+9;/*将8+9的值赋绐变量x*/x=y=5;/*将常数5同时赋给变量x和y,赋值顺序自右向左。*/C51中支持的算术运算符有:+加或取正值运算符-减或取负值运算符*乘运算符/除运算符%取余运算符例如:25.0/20.0结果为1.25,而25/20结果为1。x=5%3,结果x的值为2。1、赋值运算符、赋值运算符2、算术运算符、算术运算符7/15/2024单片机原理与应用第四章 单片机C语言程序设计C51中有6种关系运算符:大于=大于等于3,结果为真(1),而10=100,结果为假(0)。注意:关系运算符等于“=”是由两个“=”组成。7/15/2024单片机原理与应用第四章 单片机C语言程序设计C51有3种逻辑运算符:|逻辑或&逻辑与!逻辑非例如:若a=8,b=3,c=0,则!a为假,a&b为真,b&c为假。4、逻辑运算符、逻辑运算符5、位运算符位运算符 C51中位运算符只能对整数进行操作,不能对浮点数进行操作。C51中的位运算符有:&按位与|按位或 按位异或 按位取反 右移7/15/2024单片机原理与应用第四章 单片机C语言程序设计【例例4-10】设a=0 x45=01010100B,b=0 x3b=00111011B,则a&b、a|b、ab、a、a2分别为多少?a&b=00010000b=0 x10。a|b=01111111B=0 x7f。ab=01101111B=0 x6f。a=10101011B=0 xab。a2=00001110B=0 x0e。a 01010100b 001110117/15/2024单片机原理与应用第四章 单片机C语言程序设计下面是C51中支持的复合赋值运算符:+=加法赋值 +减法赋值*=乘法赋值 /=除法赋值%=取模赋值&=逻辑与赋值|=逻辑或赋值 =逻辑异或赋值=逻辑非赋值 =右移位赋值 =2相当于x=x2。6、复合赋值运算符、复合赋值运算符7/15/2024单片机原理与应用第四章 单片机C语言程序设计逗号表达式的一般格式为:表达式表达式1,表达式,表达式2,表达式表达式n 逗号表达式的处理:按从左至右的顺序依次计算出各个表达式的值,而整个逗号表达式的值是最右边的表达式(表达式n)的值。例如:x=(a=3,6*3)结果x的值为18。7、逗号运算符、逗号运算符条件运算符“?:”是C51语言中唯一的一个三目运算符,条件表达式的一般格式为:逻辑表达式?表达式逻辑表达式?表达式1:表达式:表达式2例如:条件表达式max=(ab)?a:b的执行结果是将a和b中较大的数赋值给变量max。8、条件运算符、条件运算符7/15/2024单片机原理与应用第四章 单片机C语言程序设计C51中提供了两个专门的运算符:*指针运算符&取地址运算符9、指针与地址运算符、指针与地址运算符例如:指针变量p=2000H,则*p所访问的是地址为2000H的存储单元。例如:设变量x的内容为12H,地址为2000H,则&x的值为2000H,如有一指针变量p,则通常用p=&x,则*p=0X12。7/15/2024单片机原理与应用第四章 单片机C语言程序设计4.5 C51的输入输出的输入输出 当对输入和输出函数使用时,须先用预处理命令“#include ”将该函数库包含到文件中。4.5.2 格式输入函数格式输入函数scanf()4.5.1 格式输出函数格式输出函数printf(P89)【例例4-12】使用格式输入输出函数的例子#include /包含特殊功能寄存器库#include /包含I/O函数库7/15/2024单片机原理与应用第四章 单片机C语言程序设计void main(void)/主函数int x,y;/定义整型变量x和ySCON=0 x52;/串口初始化TMOD=0 x20;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);/结束7/15/2024单片机原理与应用第四章 单片机C语言程序设计4.6 C51程序基本结构与相关语句程序基本结构与相关语句4.6.1 C51的基本结构的基本结构一顺序结构一顺序结构 顺序结构是最基本、最简单的结构,在这种结构中,程序由低地址到高地址依次执行,图4.3给出顺序结构流程图,程序先执行A操作,然后再执行B操作。AB图4.3 顺序结构流程图7/15/2024单片机原理与应用第四章 单片机C语言程序设计 选择结构可使程序根据不同的情况,选择执行不同的分支,在选择结构中,程序先都对一个条件进行判断。当条件成立,即条件语句为“真”时,执行一个分支,当条件不成立时,即条件语句为“假”时,执行另一个分支。二选择结构二选择结构条件P语句A语句B成立不成立 在C51中,实现选择结构的语句为if/else,if/else if语句。另外在C51中还支持多分支结构,多分支结构既可以通过if和else if语句嵌套实现,可用swith/case语句实现。7/15/2024单片机原理与应用第四章 单片机C语言程序设计 循环结构能够使程序段重复执行的结构。循环结构又分为两种:当(while)型循环结构和直到(do.while)型循环结构。(1)当型循环结构当型循环结构如图4-3,当条件P成立(为“真”)时,重复执行语句A,当条件不成立(为“假”)时才停止重复,执行后面的程序。三循环结构三循环结构条件P语句A成立不成立图4.5 当型循环结构 7/15/2024单片机原理与应用第四章 单片机C语言程序设计(2)直到型循环结构 直到型循环结构如图4-4,先执行语句A,再判断条件P,当条件成立(为“真”)时,再重复执行语句A,直到条件不成立(为“假”)时才停止重复,执行后面的程序。条件P语句A成立不 成立图4.6 直到型循环结构构成循环结构的语句主要有:while、do while、for、goto等。7/15/2024单片机原理与应用第四章 单片机C语言程序设计if语句是C51中的一个基本条件选择语句,它通常有三种格式:(1)if(表达式)语句;(2)if(表达式)语句1;else 语句2;(3)if(表达式1)语句1;else if(表达式2)(语句2;)else if(表达式3)(语句3;)else if(表达式n-1)(语句n-1;)else 语句n【例例4-13】if语句的用法。if (score=90)printf(“Your result is an An”);else if (score=80)printf(“Your result is an Bn”);else if (score=70)printf(“Your result is an Cn”);else if (score=60)printf(“Your result is an Dn”);else printf(“Your result is an En”);执行上面语句后,能够根据分数score分别打出A、B、C、D、E五个等级。4.6.2 if语句7/15/2024单片机原理与应用第四章 单片机C语言程序设计4.6.3 switch/case语句语句 if语句通过嵌套可以实现多分支结构,但结构复杂。switch是C51中提供的专门处理多分支结构的多分支选择语句。它的格式如下:switch(表达式)case 常量表达式1:语句1;break;case 常量表达式2:语句2;break;case 常量表达式n:语句n;break;default:语句n+1;说明如下:(1)switch后面括号内的表达式,可以是整型或字符型表达式。(2)当该表达式的值与某一“case”后面的常量表达式的值相等时,就执行该“case”后面的语句,然后遇到break语句退出switch语句。若表达式的值与所有case后的常量表达式的值都不相同,则执行default后面的语句,然后退出switch结构。7/15/2024单片机原理与应用第四章 单片机C语言程序设计【例例4-14】switch/case语句的用法。对学生成绩划分为AD,对应不同的百分制分数,要求根据不同的等级打印出它的对应百分数。可以通过下面的switch/case语句实现。switch(grade)case A;printf(”90100n”);break;case B;printf(”8090n”);break;case C;printf(”7080n”);break;case D;printf(”6070n”);break;case E;printf(”60n”);break;default;printf(”error”n)7/15/2024单片机原理与应用第四章 单片机C语言程序设计4.6.4 while语句语句 while语句在C51中用于实现当型循环结构,它的格式如下:while(表达式)语句;/*循环体*/它的特点是:先判断条件,后执行循环体。【例例4-15】下面程序是通过while语句实现计算并输出1100的累加和。#include /包含特殊功能寄存器库#include /包含I/O函数库void main(void)/主函数int i,s=0;/定义整型变量x和yi=1;SCON=0 x52;/串口初始化TMOD=0 x20;TH1=0XF3;TR1=1;while (i=100)/累加1100之和在s中s=s+i;i+;printf(“1+2+3+100=%dn”,s);while(1);程序执行的结果:1+2+3+100=50507/15/2024单片机原理与应用第四章 单片机C语言程序设计4.6.5 do while语句语句do while语句在C51中用于实现直到型循环结构,它的格式如下:do 语句;/*循环体*/while(表达式);它的特点是:先执行循环体中的语句,后判断表达式。【例例4-16】通过do while语句实现计算并输出1100的累加和。#include /包含特殊功能寄存器库#include /包含I/O函数库void main(void)/主函数7/15/2024单片机原理与应用第四章 单片机C语言程序设计int i,s=0;/定义整型变量x和yi=1;SCON=0 x52;/串口初始化TMOD=0 x20;TH1=0XF3;TR1=1;do /累加1100之和在s中s=s+i;i+;while (i=100);printf(“1+2+3+100=%dn”,s);while(1);程序执行的结果:1+2+3+100=50507/15/2024单片机原理与应用第四章 单片机C语言程序设计for语句的格式如下:for(表达式1;表达式2;表达式3)/for(i=1;i=100;i+)s=s+i;语句;/*循环体*/在for循环中,一般表达式1为初值表达式,表达式2为条件表达式,表达式3为循环变量更新表达式。4.6.6 for语句7/15/2024单片机原理与应用第四章 单片机C语言程序设计 在一个循环的循环体中允许又包含一个完整的循环结构,这种结构称为循环的嵌套。【例例4-18】用嵌套结构构造一个延时程序。void delay(unsigned int x)unsigned char j;while(x-)for(j=0;j125;j+);这里,用内循环构造一个基准的延时,调用时通过参数设置外循环的次数,这样就可以形成各种延时关系。4.6.7 循环的嵌套循环的嵌套7/15/2024单片机原理与应用第四章 单片机C语言程序设计1break语句语句使用break语句还可以从循环体中跳出循环,提前结束循环而接着执行循环结构下面的语句。【例例4-19】下面一段程序用于计算圆的面积,当计算到面积大于100时,由break语句跳出循环。for(r=1;r100)break;printf(“%fn”,area);4.6.8 break和和continue语句语句7/15/2024单片机原理与应用第四章 单片机C语言程序设计 continue语句和break语句的区别在于:continue语句只是结束本次循环而不是终止整个循环;break语句则是结束循环,不再进行条件判断。【例例4-20】输出100200间不能被3整除的数。for(i=100;iy?x:y;return(z);7/15/2024单片机原理与应用第四章 单片机C语言程序设计4.7 函数函数4.7.1 函数的定义函数的定义函数定义的一般格式如下:函数类型 函数名(形式参数表)reentrantinterrupt musing n形式参数说明局部变量定义函数体【例例4-21】定义一个返回两个整数的最大值的函数max()。int max(int x,int y)int z;z=xy?x:y;return(z);7/15/2024单片机原理与应用第四章 单片机C语言程序设计1interrupt m修饰符修饰符在该修饰符中,m的取值为031,对应的中断情况如下:0外部中断01定时/计数器T02外部中断13定时/计数器T14串行口中断注意如下:(1)中断函数不能进行参数传递,如果中断函数中包含任何参数声明都将导致编译出错。(2)中断函数没有返回值,建议在定义中断函数时将其定义为void类型,以明确说明没有返回值。(3)在任何情况下都不能直接调用中断函数,否则会产生编译错误。7/15/2024单片机原理与应用第四章 单片机C语言程序设计2using n修饰符修饰符 修饰符using n用于指定本函数内部使用的工作寄存器组,其中n的取值为03,表示寄存器组号。(1)加入using n后,C51在编译时自动的在函数的开始处和结束处加入以下指令。PUSH PSW ;标志寄存器入栈MOV PSW,#与寄存器组号相关的常量与寄存器组号相关的常量POP PSW ;标志寄存器出栈(2)using n修饰符不能用于有返回值的函数。例:void time0_int(void)interrupt 1 using 0/中断服务程序 P1_0=!P1_0;7/15/2024单片机原理与应用第四章 单片机C语言程序设计二自定义函数的声明二自定义函数的声明在C51中,函数原型一般形式如下:extern 函数类型 函数名(形式参数表);注意:1、函数的声明后面要加分号。2、如果一个自定义函数的函数定义在调用之前函数定义在调用之前,在调用函数时可不声明,函数定义在调用之后函数定义在调用之后需对函数作声明。3、如果声明的函数不在文件内部,而在另一个文件中,声明时须带extern。4.7.2 函数的调用与声明函数的调用与声明一函数的调用一函数的调用函数调用的一般形式如下:函数名(实参列表);若实参列表包含多个实参,则各个实参之间用逗号隔开。7/15/2024单片机原理与应用第四章 单片机C语言程序设计【例例4-23】函数的调用#include /包含特殊功能寄存器库#include /包含I/O函数库int max(int x,int y);/对max函数进行声明行式参数void main(void)/主函数int a,b;.scanf(“please input a,b:%d,%d”,&a,&b);printf(“n”);printf(“max is:%dn”,max(a,b);/函数的调用实参while(1);int max(int x,int y)/函数的定义int z;z=(x=y?x:y);return(z);7/15/2024单片机原理与应用第四章 单片机C语言程序设计作业:教材p114 5题 8题(2、4、6、8)9题(1、3)14题(使用任意一种)7/15/2024
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!