单片机应用技术(C语言版)习题参考答案
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
P1=m;
⑵ sfr P1=0x90;
sbit P1_2=P1^2;
RS0=1;RS1=1;
9.单片机执行第 8 题中的程序段后,再执行第 7 题中的 display 函数,在执行 display
函数时,R7 的地址为 0x0f ,执行 display 之后,R7 的地址为 0x1f 。
10.MCS-51 单片机的 bdata 区的地址范围是 0x20~0x2f ,共 16 字节,128 位。bdata
第5页
单片机应用技术(C 语言版)习题参考答案 作者:李文华(lizhuqing_123@163.com)
sbit P0_5=P0^5; P0_5=0; ⑸ sfr P0=0x80; unsigned char m; P0=0xff; m=P0; ⑹ sfr P0=0x80; sbit P0_0=P0^0; bit mybit; P0_0=1; mybit=P0_0; 15.单片机复位后,P0= 0xff 。 16.P0 口的每一位可以驱动 8 个 LSTTL 负载,若负载过大,则需在端口外加上 驱动 电 路后才可以接负载。 17.若用 P0.0 口线控制一只发光二极,请画出发光二极管作拉电流负载和作灌电流负 载时的电路图。 【解】发光二极管作拉电流负载和作灌电流负载时的电路图如下:
7.若函数 display()的定义如下:
void display(void)
using
1
{ ……
}
单片机在执行函数 display 时,当前工作寄存器组是第 1 组工作寄存器,其中 R2 的地
址是 0x0a 。
8.单片机执行下列程序段后,当前工作寄存器组是第 3 组工作寄存器,其中 R7 的地
址是 0x1f 。
第1页
单片机应用技术(C 语言版)习题参考答案 作者:李文华(lizhuqing_123@163.com)
19.复位电路的作用是 为单片机产生复位信号,保证单片机上电后从一个确定的状态 开始工作 。
20.请画出上电复位电路和按键复位电路的电路图,并给出电路中各元件的值。 【解】上电复位和按键复位电路如下图所示:
3.用 C51 设计单片机程序时,应尽量使用 无符号字符 型和 位 型数据,以便提高程 序的运行速度。
4.写出下列常量和变量的定义式: ⑴值为 20 的符号常量 KTIM。 ⑵无符号字符型变量 i、j。 ⑶带符号整型变量 k。 ⑷浮点型变量 f。 ⑸有符号的长整型变量 sl。 ⑹位变量 mybit。 ⑺定义无符号字符型变量 i、j,并给 i 赋值 3、j 赋值 4。 【解】 ⑴ #define KTIN 20 ⑵ unsigned char i,j; ⑶ int k; 或者 signed int k; ⑷ float f; ⑸ long sl; 或者 signed long sl; ⑹ bit mybit; ⑺ unsigned char i=3,j=4; 5.语句“i=(j=3)+(k=4);”的含义是 求求两个赋值表达式“j=3”与“k=4”的和,并 将和值赋给变量 i ,语句执行后 i= 7 ,j= 3 ,k= 4 。 6.若有下列定义:
24. 函数 是 C51 程序的基本单位。 25.C51 程序中至少有一个 main 函数。 26.C51 程序中,语句由 分号(;)结尾。 27.C51 书写比较自由,一条语句可以 分多行 书写,也可以在一行中书写 多条 语句。 28.C51 程序中,注释有单行注释和多行注释两种形式,单行注释的形式是 // 注释 , 多行注释的形式是 /* 注释 */ 。 29.C51 程序中,标点符号要在 半角 状态录入。 30.Keil uVision2 中的存储模式有 Small、Compact、Large3 种模式,Small 存储模式 的特点是 所有变量都定义在 data 区内 ,Compact 存储模式的特点是 变量可以使用 pdata 区 ,Large 存储模式的特点是 变量可以位于 xdata 区内 。
0x00~0xff ,共 256 字节。
5.MCS-51 单片机的 data 区位于单片机的 片内 RAM 中,地址范围为 0x00~0x7f ,共
128 字节。
6.MCS-51 单片机有 4 组工作寄存器组,工作寄存器组区的地址范围是 0x00~0x1f ,
当前工作寄存器组用 R0~R7 8 个寄存器表示。
(a) 拉电流负载
(b)灌电流负载
18.P1 口输出具有 锁存 功能,能驱动 4 个 LSTTL 负载,输入具有 缓冲 功能,复位
后,特殊功寄存器 P1= 0xff 。
19.P1 口输出驱动级内部接有 上接电阻 ,接拉电流负载时,可以 不接上拉电阻 。
20.设 m 为 unsigned char 型变量,mybit 为 bit 型变量,请按下列要求编写程序段:
32.简述用 Keil uVision2 创建 Hex 文件的设置方法。 【解】略
33.用 C51 开发单片机应用程序时,R0~R7 一般不用绝对地址访问,简述在 Keil uVision2 中选择 R0~R7 不采用绝对地址访问的设置方法。 【解】其步骤如下:
第一步:用鼠标右键单击工程管理窗口中的“Target 1”,在弹出的快捷菜单中单击 “Option for Target ‘Target 1’”菜单项。
⑴将 m 中的数据从 P1 口输出。
⑵将 mybit 中的数据从 P1.2 口线输出。
⑶将 P1.5 口线置 1。
⑷将 P1.0 口线清 0。
⑸读 P1 口的输入状态,并保存至 m 中。
⑹读 P1.7 口线输入状态,并保存到 mybit 中。
【解】
⑴ sfr P1=0x90;
unLeabharlann Baiduigned char m;
3.MCS-51 单片机有 片内数据存储器(片内 RAM) 、 特殊功能寄存器 、 扩展数据存
储器 和 程序存储器 4 个存储空间。
4.对于标准的 MCS-51 单片机而言,idata 区是指 片内 RAM 地址范围为 0x00~0x7f 的
区域,共 128 字节,对于增强型 MCS-51 单片机(52 单片机)而言,idata 区的地址范围为
任务 2 显示开关量的输入状态
1.unsigned char 型变量占 1 个字节,值域是 0~255 ,data 区中最多只能定义 个 unsigned char 型变量。
2.C51 中,16 进制数的表示方法是 以 0x 开头的数字 ,与 0x12 等值的十进制数是 18 , 0x34L 是 长整型 数。
单片机应用技术(C 语言版)习题参考答案 作者:李文华(lizhuqing_123@163.com)
单片机应用技术(C 语言版) 课后习题参考答案
任务 1 控制 1 只发光二极管闪烁显示
1. EA 脚的功能是 控制程序存储器的选择 ,单片机使用片内程序存储器时,该引脚 应该 接+5V 高电平 。
2.单片机的 RST 引脚是 复位引脚 ,外接 复位 电路。
21.复位后,单片机使用第 0 组工作寄存器作当前工作寄存器组,R3 的地址为 0x03 。 22.复位后,SP 的值为 0x07 ,堆栈区为 片内 RAM0x07 以后的区域 ,若不重新定义 堆栈区,则第 1 个压入堆栈的数据存放的地址为 0x08 。 23.请画出 STC89C51 单片机的最小系统电路图。 【解】STC89C51 单片机的最小系统电路如下图所示:
第4页
单片机应用技术(C 语言版)习题参考答案 作者:李文华(lizhuqing_123@163.com)
⑶特殊功能寄存器 P0 的第 0 位 P0_0。 ⑷片内 RAM0x24 单元的第 4 位 down。 【解】 ⑴ sfr P0=0x80; sfr P1=0x90; sfr P2=0xa0; sfr P3=0xb0; ⑵ sfr16 RCAP2=0xca; ⑶法一: sfr P0=0x80; sbit P0_0=P0^0; 法二: sbit P0_0=0x80^0; 法三: sbit P0_0=0x80; //这里的 0x80 是 P0.0 的位地址,而不是 P0 口的端口地址 ⑷法一: sbit down=0x24^4; 法二: sbit down=0x24; //这里的 0x24 为 0x24 单元第 4 位的位地址 10.P0 端口既可以作 数据/地址总线 口使用,又可以作普通 I/O 端口使用。 11.在 单片机片外不扩展程序存储器,不扩展并行 RAM,也不扩展并行 I/O 芯片的 条 件下,P0 口作普通 I/O 口使用。 12.P0 口作输出端口时,P0 的输出驱动级 为漏极开路电路,输出极无上拉 电阻,接 拉电流负载时,需要 外接上拉电阻 ,接灌电流负载时,可以 不接上拉电阻 。 13.P0 口输出具有 锁存 功能,输入具有 缓冲 功能。 14.设 m 为 unsigned char 型变量,mybit 为 bit 型变量,请按下列要求编写程序段: ⑴将 m 中的数据从 P0 口输出。 ⑵将 mybit 中的数据从 P0.0 口线输出。 ⑶将 P0.3 口线置 1。 ⑷将 P0.5 口线清 0。 ⑸读 P0 口的输入状态,并保存至 m 中。 ⑹读 P0.0 口线输入状态,并保存到 mybit 中。 【解】 ⑴ sfr P0=0x80; unsigned char m; P0=m; ⑵ sfr P0=0x80; sbit P0_0=P0^0; bit mybit; P0_0=mybit; ⑶ sfr P0=0x80; sbit P0_3=P0^3; P0_3=1; ⑷ sfr P0=0x80;
第二步:在弹出的“Option for Target‘Target 1’”对话框中点击“C51”标签。 第三步:在“C51”标签中勾选“Don’t use absolute register accesses”多选钮。
第3页
单片机应用技术(C 语言版)习题参考答案 作者:李文华(lizhuqing_123@163.com)
第2页
单片机应用技术(C 语言版)习题参考答案 作者:李文华(lizhuqing_123@163.com)
31.Keil uVision2 中,代码的 ROM 大小有 Small、Compact、Large3 种模式,Small 模式的特点是 所有程序使用低 2KB 程序存储器空间 ,Compact 模式的特点是 单个函数 的代码量不能超过 2KB,整个程序可以使用 64KB 空间 ,Large 模式的特点是 可以使用全部 64KB 程序存储空间 。
区的特点是 每个字节的每一位都分配有位地址,可进行位访问 。
11.位地址 0x08 是片内 RAM 0x21 单元的 第 0 位,属于 bdata 区。
12.pdata 区是 xdata 区的一部分。
13.单片机通过 RD 、WR 引脚选择扩展 RAM,通过 PSEN 引脚选择程序存储器。
14.code 区是指单片机的 程序 存储区,code 区的作用是存放 程序代码和表格数据 。 15.至少要配备 时钟 电路、 复位 电路、 存储器 电路和 电源 电路,单片机才能独 立工作。 16.时钟电路的作用是 产生时钟信号 ,装配晶振时应该将晶振 尽可能地安装在 XTAL1、XTAL2 引脚附近 。 17.若单片机的 fosc = 12MHz,单片机的机器周期为 1μs 。 18.请画出单片机的时钟发生电路图。 【解】时钟发生电路如下图所示:
int i=0x1234; unsigned char j; 语句“j=i;”执行后,i= 0x1234 ,j= 0x34 。 7.若有下列定义: int i; unsigned char j=0x82; 语句“i=j;”执行后,i= 0x0082 。 8.若有下列定义: unsigned int i; char j=0x82; 语句“i=j;”执行后,i= 0xff82 ,j= 0x82 。 9.定义下列特殊功能寄存器和特殊位: ⑴特殊功能寄存器 P0、P1、P2、P3。 ⑵16 位特殊功能寄存器 RCAP2,RCAP2 的低字节地址为 0xca,高字节地址为 0xcb。