单片机C语言案例教程习题解答

上传人:m**** 文档编号:560063175 上传时间:2023-02-07 格式:DOC 页数:31 大小:258.50KB
返回 下载 相关 举报
单片机C语言案例教程习题解答_第1页
第1页 / 共31页
单片机C语言案例教程习题解答_第2页
第2页 / 共31页
单片机C语言案例教程习题解答_第3页
第3页 / 共31页
单片机C语言案例教程习题解答_第4页
第4页 / 共31页
单片机C语言案例教程习题解答_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《单片机C语言案例教程习题解答》由会员分享,可在线阅读,更多相关《单片机C语言案例教程习题解答(31页珍藏版)》请在金锄头文库上搜索。

1、单片机C语言案例教程习题解答习题11. 在图1-3中,若MCU的P0.0和P2.0两引脚均为低电平,则四位数码管上有何显示。解:由图1-3可知,P0.0引脚为低电平,将使四位数码管的a笔划为低电平,P2.0为低电平,则使Q3导通,即数码管千位管的8个发光二极管正极为高电平,从而使千位管显示其a笔划。 2. 设有定义“sbit qw=P20;”,和赋值语句“qw=0;P0=0Xfe”,则将如何影响MCU的输出引脚?解:qw=0,,就是使P2.0为低电平,则使Q3导通,即数码管千位管的8个发光二极管正极为高电平,P0=0xfe,就是使P0.0为低电平,P0.1P0.7为高电平。从而使千位管显示其a

2、笔划。 3. 画出案例6源程序的函数架构及函数调用路线图。解:案例6源程序的函数架构及函数调用路线图如下:4. 将案例6源程序中Delay函数的for循环之式子2“i500”分别改为“ i5000”和“ i50000”后重新编译和下载运行,对比循环终值从500变成5000、再从5000变成50000对显示效果的影响。解:先在数码管的千位管上显示8,其余各管无显示;再在百位管上显示0,其余各管无显示;又在十位管上显示5,其余各管无显示;再在个位管上显示1,其余各管无显示;5. 写出图1-3中,数码管在单片机学习板中的电路连接要点。解:四位数码管的8只笔段电极从a到小数点被依次接于P0.0到P0.

3、7上,从左至右的四只位置电极被接在受控于P2.0至P2.3的Q3至Q6的集电极回路.6. 写出图1-3中,DS1302在单片机学习板中的电路连接要点。解: DS1302的时钟线SCLK与8051的P2.7相接,数据线DATA与P2.6相接,复位线RST与P2.5相接.7. 写出图1-3中,AT24C02在单片机学习板中的电路连接要点。解:AT24C02的串行时钟线SCL与8051的P3.6相接,串行数据线与P2.7所接,AT24C02的写保护脚WP接地(允许写入)。习题21 设有如下定义: int a; crar b; unsigned int c; unsigned char d;则a称为什

4、么变量?它表示数的起止范围是什么?b哪?c哪?d哪? 解:a称为整型号变量,它表示的数的起止范围是-3276832767;b称为字符型变量,所表示数的起止范围是-128127;c称为无符号整型变量,所表示数的起止范围是065535;d称为无符号字符型变量,所表示数的起止范围是0225。2 试说明语句“a+1;”与语句“a+”的区别。 解:“a+1”表示变量a与1的和,“a+”表示用变量a与1的和对变量a赋值;前者的a没有被赋值,后者的a被赋值。3 写出if语句的一般形式、画出if语句的流程图,说明if语句的执行规则。 解:if语句的一般形式:if(表达式)语句if语句的流程图 执行规则:首先对

5、表达式进行判断,如果计算结果为“真”,那么执行“语句”,否则跳过“语句”。4 写出if-else语句的一般形式、画出if-else语句的流程图,说明if-else语句的执行规则。 解:ifelse语句的一般形式如下:if(表达式) 语句1else 语句2ifelse语句的流程图 其执行规则:首先计算表达式的值,如果为真,则执行语句1,否则执行语句2。5 写出不带break的switch语句的一般形式,画出其流程图,说明其执行规则。 解:switch语句的一般形式如下:switch (表达式) case 常量表达式1: 语句1 case 常量表达式2: 语句2 case 常量表达式n: 语句n

6、default: 语句n+1其中不带break的switch结构流程图如右图。 不带break的switch语句的执行过程是:首先计算小括号中的整型表达式的值,并以此寻找所匹配的常量表达式,匹配的常量表达式若是常量表达式x,流程就从常量表达式x进入switch结构,若没有一个能匹配的,流程就从default处进入switch结构,只要进入后,就从进入处就执行完到“”为止的所有语句。6写出带break的switch语句的一般形式,画出其流程图,说明其执行规则。 解:带break的switch语句的一般形式:switch (表达式) case 常量表达式 1: 语句1 break; case 常量

7、表达式 2: 语句2 break; case 常量表达式 n: 语句n break; default: 语句n+1 带break的switch结构流程图如右图 带break的switch语句的执行过程是:首先计算小括号中的整型表达式的值,并以此寻找所匹配的常量表达式,匹配的常量表达式若是常量表达式x,流程就从常量表达式x进入switch结构,若没有一个能匹配的,流程就从default处进入switch结构,进入switch结构后,若遇上break语句,流程就从该break语句上跳出switch结构;否则,就从进入处就执行完到“”为止的所有语句,。7 写出for语句的一般形式,画出其流程图,说明

8、其执行规则。 解:for语句的一般形式:for(表达式1;表达式2;表达式3) 语句组 其中,”for(表达式1;表达式2;表达式3)”可称为循环头,下面大括号所界定范围称为循环体。for语句的流程图如右图它的执行规则如下:A:先计算表达式1,再转B;B:计算表达式2,若其值为真(1),则转C,若其值为假(0)则转E;C:执行for下面大括号中的语句组,执行完后转D;D:计算表达式3,结束本次循环,转回B开始下一次循环;E:结束循环。流程转出整个for循环结构,也就是去执行for循环结构后面的第一条语句。8 写出while语句的一般形式,画出其流程图,说明其执行规则。 解:while语句的一般

9、形式如下:while(表达式) 语句组 其流程图如下执行规则如下:先计算表达式,若表达式计算不为0,就执行一次循环体语句组,然后返回再次计算表达式。如此重复,直到表达式的值计算为0时,流程转出循环结构。另外,当且仅当大括号括住的语句组只是一个语句时,大括号也可省略9 写出do-while语句的一般形式,画出其流程图,说明其执行规则。 解:dowhile语句的一般形式:do 语句组while(表达式);其流程图如图2-10所示。 其执行规则是:首先执行一次循环体语句,此后计算表达式的值;若表达式为1,就又返回去执行循环体语句;再计算表达式,若;直到计算的表达式的值为0,流程就退出整个dowhil

10、e结构。还要注意的是,在do-while语句中,最后的”while(表达式)”后面的那一分号:”不可少.10 写出一维数组定义的一般形式。 解:一维数组定义的一般形式是: 类型说明符 数组名常量表达式;11写出二维数组定义的一般形式。 解:二维数组定义的一般形式:类型说明符 数组名常量表达式1常量表达式2;12 写出无参数函数定义的一般形式。 解:无参数函数定义的一般形式为:类型标识符 函数名() 函数体语句13 写出有两个参数的函数定义的一般形式。 解:有两个参数函数定义的一般形式如下: 类型标识符 函数名(类型标识符 变量名1,类型标识符 变量名2) 函数体语句 14 在什么情况下函数定义

11、时的类型说明符可以缺省? 解:当函数的返回值类型为整型或字符型时,函数定义的类型说明符可以缺省。15 何谓局部变量?局部变量有何特点? 解: 在函数内部定义的变量叫做局部变量,局部变量只能在定义它的函数内有效,因此,在不同的函数中,可以定义同名的局部变量。16 何谓全局变量?全局变量有何特点? 解: 在函数外部定义的变量叫做全局变量,全局变量在从其定义位置起,到整个程序结束处有效。在一个函数内,若有与全局变量同名的局部变量,则在该函数内,全局变量不起作用。习题31上机编程,把案例7沿顺时针方向的跑马灯,改为逆时针方向的跑马灯。 解: 这只需调整Disp_led函数内部各程序段的顺序即可,即把该

12、函数内的第一场和第四场的顺序保持不变,把第二场程序段与第六场程序段位置交换、第三场程序段与第五场程序段交换即可。2上机编程,把案例8沿顺时针方向的巡逻灯,改为逆时针方向的巡逻灯。 解: 同上题,这也只需调整Disp_led函数内部各程序段的顺序即可,即把该函数内的第一场和第七场的顺序保持不变,把第二场程序段与第十二场程序段位置交换、第三场程序段与第十一场程序段交换,第四场程序段与第十场程序段交换,第五场程序段与第九场程序段交换,第六场程序段与第八场程序段交换即可。3上机编程,把案例9向右移动的流水灯,改为向左移动的流水灯。 解: 这也只需调整Disp_led函数内部各程序段的顺序即可,即把该函

13、数内把第一场程序段与第八场程序段位置交换、第二场程序段与第七场程序段交换,第三场程序段与第六场程序段交换,第四场程序段与第五场程序段交换即可。4上机编程,把案例10效果图中的第四幕改为第一幕,第三幕改为第二幕,第二幕改为第三幕,第一幕改为第四幕。 解:只修改各if语句小括号中的表达式,即把原来的“a=1”改为“a=4”,“a=2”改为“a=3”,“a=3”改为“a=2”,“a=4”改为“a=1”即可。5 上机编程,把案例12中的倒数数显示,改为顺数数显示。解:把主函数main修改如下: main() int n,m; n=0; while(1) if(n=10000) n=0; for(m=1;m=20;m+) Disp_led(n); n+; 习题41 何谓中断?51单片机中有哪几个中断资源? 解: 让计算机正常运行程序时,因某突发事件的产生而暂停正在运行的程序,转去执行应对突发事件的相应程序,执行完该相应程序后,再返回原暂停处接着运行原来的程序,这种应对机制称为中断。 单片机中有5个中断资源。2 写出定义中断服务函数的一般形式。 解: 中断请求服务函数的编写形式如下: 函数类型 函数名(形式参数表)interrupt n using m

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 习题/试题

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号