- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第03章 单片机C语言程序设计 习题解答
一、填空题
1.程序的基本结构有?????顺序结构、分支结构、循环结构。
2.C51的存储器模式有????SMALL、COMPACT、LARGE。
3.C51中int型变量的长度??????16位 ,其值域 0--65535 。
4.C51中关键字sfr的作用??????定义51单片机内部一个字节的特殊功能寄存器 ,sbit的作用 定义51单片机片内可位寻址位 。
5.函数定义??????函数头 和 函数体 部分组成。
6.C51的表达式由?????运算符运算对象 组成。
7.C51表达式语句由表达式和????? 组成。
8.C51中“!”运算符的作用 逻辑非 。
9.若函数无返回值,用 关键字指定。
10.局部变量未初始化,其初值 不确定 。
简答题
1.举例说明和运算的。答:(按位与)是位运算符,是双目运算。当二个位都等于1时,结果等于1,其它的结果都等于0。(逻辑与)是逻辑运算符。当两个及以上条件都同时成立的情况下逻辑与的运算结果才为真。
例:a = 1;? b = 2;?
如果执行ab,则结果为0;
如果执行ab,则结果为1;
2、说明全局变量和局部变量的。答:全局变量和局部变量的差异为:
(1)作用域不同。全局变量对所有的函数是可见的,所有函数都可以使用它;局部变量只对定义它的函数可见,只能在定义它的函数中使用,其他函数不能使用它。
(2)一个源程序中的各个全局变量不能同名,而各个函数的局部变量可以同名。在一个函数中,当全局变量与局部变量同名时,全局变量不起作用,局部变量起作用。
(3)全局变量定义时未初始化,系统自动默认初值为0;局部变量定义时未初始化,其初值不确定。3、说明C51中变量的存储类型及其特点。答:C51中变量的存储类型有:
(1)data,特点是:以直接寻址方式访问内部数据存储器,速度最快(2)bdata,特点是:以直接寻址方式访问内部可位寻址数据存储器,允许位与字节混合访问(3)idata,特点是:以间接寻址方式访问内部数据存储器,允许访问全部内部数据存储器(4)pdata,特点是:分页访问外部数据存储器,用MOVX @Ri指令访问(5)xdata,特点是:访问外部数据存储器,用MOVX @DPTR指令访问(6)code,特点是:访问程序存储器,用MOVC @A+DPTR指令访问。4、i++和++i答:i++:先赋值,i再自加1++i:i先自加1,再赋值。
例:假设i=3;
如果执行x = i++; 则x = 3,i = 4。
执行x = ++i; 则i = 4,x = 4。5、函数声明答:(1)函数声明即是声明被调函数的原型,包括被调函数名、函数类型(即返回值类型)、形参表(包括形参个数及其数据类型)。
(2)声明函数原型可以按照写函数定义时的函数头,再加上分号即可。
1.在Proteus下,仿真实现3.6节内容。
答:设在存储区,有10个数据:99,15,30,13,27,28,7,0,33,67。编写程序,将其按照从大到小的次序排列。并按次序在数码管上显示。为了简化硬件电路,选用译码、显示一体化显示模块。仿真电路如图3-8所示。
图3-8 数据排序仿真电路
C语言参考程序如下。
#include reg51.h //定义头文件
#define uchar unsigned char //定义常量
uchar A[10]= {99,15,30,13,27,28,7,0,33,67} ;
//定义数组,为了显示直观,对0-99之间的十进制数进行排序
int DIS[10] = {252,96,218,242,102,182,190,224,254,246};
//定义数码管显示0-9的引脚值
sbit pos_1 = P2^0; //定义4位数码管第1位使能引脚
sbit pos_2 = P2^1; //定义4位数码管第2位使能引脚
sbit pos_3 = P2^2; //定义4位数码管第3位使能引脚
sbit pos_4 = P2^3; //定义4位数码管第4位使能引脚
void taxisfun () //排序函数
{
uchar i,j,Temp; //定义局部变量
for (i=0; i=8; i++) { //设置外循环
for (j=0; j=8-i; j++) { //设置内循环,j8-i 比用 j=8 少用很多循环
if (A[j+1]A[j]) { //当后一个数大于前一个数
Temp = A[j]; //前后 2 数交换,前数送零时变量
您可能关注的文档
最近下载
- 城市道路交通事故地点文字表述方法研究.pdf VIP
- 新能源转换与控制技术风力发电(本科)樊.ppt
- 七年级英语上册期末专题训练(任务型阅读,首字母填空,完形填空)(有答案).pdf VIP
- 学术规范与论文写作(雨课堂)研究生 全部答案.doc VIP
- 2025年耐火材料行业分析.docx VIP
- 技术咨询合同简洁版模板5篇.docx VIP
- 2025-2026学年山东省青岛市八年级上学期期中模拟英语试题(含解析).docx VIP
- 日置 BT3564电池测试仪使用说明书.pdf VIP
- 上海三菱LEHY(C)电梯安装调试培训资料.ppt VIP
- 人教版(2025)高二生物选择性必修1稳态与调节期中达标测试卷A卷(含答案解析).pdf VIP
原创力文档


文档评论(0)