当前位置:首页 > 单片机课后习题答案
错误!使用“开始”选项卡将 标题 1,部分标题 1 应用于要在此处显示的文字。
21
} 14.
用3种循环结构编写程序实现输出1到10的平方之和。
参考程序:
(1)while循环
#include
int i,s=0; //定义整型变量 i=1;
SCON=0x52; //串口初始化 TMOD=0x20; TH1=0XF3; TR1=1;
while (i<=10) //累加1到10的平方之和在s中 {
s=s+i*i; i++; }
printf(\到10的平方之和=%d\\n\while(1); }
(2)do while循环
#include
int i,s=0; //定义整型变量 i=1;
SCON=0x52; //串口初始化 TMOD=0x20; TH1=0XF3; TR1=1; do //累加1到10的平方之和在s中 {
s=s+i*i; i++; }
while (i<=10);
printf(\到10的平方之和=%d\\n\while(1); }
(3)for循环
#include
int i,s=0; //定义整型变量
22
错误!使用“开始”选项卡将 标题 1,部分标题 1 应用于要在此处显示的文字。
SCON=0x52; //串口初始化 TMOD=0x20; TH1=0XF3; TR1=1;
for (i=1;i<=10;i++) s=s+i*i; //累加1到10的平方之和在s中 printf(\到10的平方之和=%d\\n\while(1); } 15. 排序。
对一个由5个元素组成的无符号字符数组按由小到大的顺序进行
参考程序:
#include
unsigned char f[5],m,i,j;
SCON=0x52; //串口初始化 TMOD=0x20; TH1=0XF3; TR1=1;
printf(\输入任意5个字符:\
scanf(\printf(\
for (i=0;i<5;i++)
for (j=0;j<5-i;j++) if (f[j]>f[j+1])
{m=f[j];f[j]=f[j+1];f[j+1]=m;}
printf(\由小到大的顺序
为:%c,%c,%c,%c,%c\printf(\while(1); } 16.
用指针实现,输入3个无符号字符数据,按由大到小的顺序输出。
参考程序:
#include
unsigned char x,y,z;
unsigned char *p,*p1,*p2,*p3;
错误!使用“开始”选项卡将 标题 1,部分标题 1 应用于要在此处显示的文字。
23
SCON=0x52; //串口初始化 TMOD=0x20; TH1=0XF3; TR1=1;
printf(\scanf(\printf(\
p1=&x;p2=&y; p3=&z;
if (*p1<*p2) {p=p1;p1=p2;p2=p;} if (*p2<*p3) {p=p2;p2=p3;p3=p;} if (*p1<*p2) {p=p1;p1=p2;p2=p;}
printf(\while(1); }
17. 有3个学生,每个学生都包括学号、姓名和成绩,要求找出成绩最高的学生的姓名和成绩。
参考程序:
#include
unsigned char number[10]; unsigned char name[10]; unsigned int grade; }p1[3]; main() {
unsigned char i,j=0; SCON=0x52; //串口初始化 TMOD=0x20; TH1=0XF3; TR1=1;
printf(\for (i=0;i<3;i++) {
printf(\scanf(\printf(\scanf(\printf(\scanf(\}
for (i=1;i<3;i++) {
if (p1[i].grade>p1[j].grade) j=i; }
printf(\成绩最高的学生是:%s,成绩是:%d\
24
错误!使用“开始”选项卡将 标题 1,部分标题 1 应用于要在此处显示的文字。
printf(\}
while(1); }
第五章
1.单片机C语言与汇编语言混合编程有哪几种方式?通常采用什么方式? 答:单片机C语言和汇编语言混合编程分为汇编中调用C51函数和C51程序中引用汇编,通常使用的是在C51程序中引用汇编。在C51程序中使用汇编语言有两种情况:一种是汇编程序部分和C51程序部分为不同的模块,或不同的文件,通常由C51程序调用汇编程序模块的变量和函数(也可称为子程序或过程);另一种是嵌入式汇编,即在C51程序中嵌入一段汇编语言程序。
2.简述C51程序调用汇编程序时如何实现参数传递。
答:C51中调用汇编程序进行参数传递时都必须严格遵守C51函数的参数和返回值的相关约定。行参数传递的方式有两种,一种是通过寄存器传递参数,C51中不同类型的实参会存入相应的寄存器,在汇编中只需对相应寄存器进行操作,即可达到传递参数的目的;第二种是通过固定存储区传递。
3.简述嵌入式汇编的实现方法。
答:在C51程序中嵌入汇编程序通常的处理方法如下。 第一步:在C文件中以如下方式嵌入汇编程序。
第二步:在Keil C51软件的Project 窗口右击嵌入汇编程序的C文件,在弹出的快捷菜单中选择Options for ...命令,选中右边的Generate
Assembler SRC File和Assemble SRC File复选框,使检查框由灰色变成黑色(有效)状态。
第三步:根据选择的编译模式,把相应的库文件(如 Small 模式时,是 Keil\\C51\\Lib\\C51S.Lib)加入到工程中,该文件必须作为工程的最后文件。
4.简述C51中调用汇编程序的实现方法。
答:编写为C51调用的汇编程序,参数须按规定的寄存器或存储器传送,程序格式有相应的规则,这些规则比较繁琐,为了便于处理,在实际中我们往
共分享92篇相关文档