单片机课后习题答案(《单片机应用技术》C语言版)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MCS-51在通常应用情况下,使用振荡频率为的6MHz或12MHz的晶振,如果系统中使用了单片机的串行口通信,则一般采用振荡频率为11.059MHz的晶振。
1.11
答:
规定一个机器周期的宽度为12个振荡脉冲周期,因此机器周期就是振荡脉冲的十二分频。
当振荡脉冲频率为12 MHz时, 一个机器周期为1µs;当振荡脉冲频率为6 MHz时,一个机器周期为2 µs。
1.12
答:
(a)上电复位电路(b)按键复位电路
单片机常见的复位电路
图(a)为上电复位电路,它是利用电容充电来实现的。在接电瞬间,RST 端的电位与VCC相同,随着充电电流的减少,RST的电位逐渐下降。只要保证RST为高电平的时间大于两个机器周期,便能正常复位。
图(b)为按键复位电路。该电路除具有上电复位功能外,若要复位,只需按图(b)中的RESET键,此时电源VCC经电阻R1、R2分压,在RST端产生一个复位高电平。
习题2答案
2.1 单项选择题
(1)C (2)A (3)B (4)A (5)D
2.2
答:
单片机开发过程所用的设备与软件称为单片机开发系统或开发工具。
单片机开发系统包括计算机、单片机在线仿真器、开发工具软件、编程器等。连接方法如下图所示。
单片机开发系统连接方法示意图
2.3
答:单片机应用系统的开发过程如下:
设计电路图→制作电路板→程序设计→硬软件联调→程序下载→产品测试2.4
答:
1.在线仿真功能
在线仿真器(In Circuit Emulator,简称ICE)是由一系列硬件构成的设备,它能仿真用户系统中的单片机,并能模拟用户系统的ROM、RAM和I/O口。因此,在线仿真状态下,用户系统的运行环境和脱机运行的环境完全“逼真”。
2.调试功能
1)运行控制功能
开发系统应能使用户有效地控制目标程序的运行,以便检查程序运行的结果,对存在的硬件故障和软件错误进行定位。
2)单片机状态查看修改功能
当CPU停止执行程序运行后,开发系统允许用户方便地读出或修改目标系统资源的状态,以便检查程序运行的结果、设置断点条件以及设置程序的初始参数。任务2中图2.13给出了在Medwin调试环境下查看单片机内部资源的菜单。
3.程序编译功能
1) 程序设计语言
单片机程序设计语言包括机器语言、汇编语言和高级语言。
机器语言是单片机唯一能够识别的语言。
汇编语言具有使用灵活、实时性好的特点。目前,在实际项目开发中较少使用汇编语言。
高级语言通用性好,且具有较好的可读性和可移植性,是目前单片机编程语言的主流。
2) 程序编译
单片机开发系统能够提供源程序的编辑、编译和下载功能以及工程管理功能。
4.程序固化功能
编程器是完成这种任务的专用设备,它也是单片机开发系统的重要组成部分。
习题3 答案
3.1 单项选择题
(1) A (2) A (3) C (4)C (5)A
(6) B (7) D (8) D (9)A (10)A
(11)B (12)C (13)D (14)D (15)C
3.2 填空题
(1)P3口
(2)字节,位
(3)主函数main()
(4)sbit FLAG=P3^1;
(5)sfr
(6)顺序结构、选择结构和循环结构
(7)表达式加上分号“;”
(8)if,switch
(9)do-while,while
(10)无限次
(11)10000
(12)unsigned char
(13)变量在MCS-51硬件系统中所使用的存储区域
(14)'\0'
(15)程序存储器ROM中
3.3 上机操作题
(1)
//xiti3_3_1.c——第三章习题3.3上机操作题(1)
#include
void delay(unsigned char i); //延时函数声明
void main() //主函数
{
while(1){
P1=0x55; //按状态1的方式点亮8个LED
delay(200); //延时
P1=0xaa; //按状态2的方式点亮8个LED
delay(200); //延时
}
}
void delay(unsigned char i) //延时函数参见任务1程序ex1_1.c
(2)
//xiti3_3_2.c——第三章习题3.3上机操作题(2)
#include
void delay(unsigned char i); //延时函数声明
void main() //主函数
{
unsigned char i,l,r;
while(1){
l=0x10; // 高4位灯的位置初值为00010000B
r=0x08; // 低4位灯的位置初值为00001000B
for(i=0;i<4;i++){
P1=~(l|r); // 循环点亮灯
l<<=1; // 高4位灯的位置移动
r>>=1; // 低4位灯的位置移动
delay(200); //延时
}
}
}
void delay(unsigned char i) //延时函数参见任务1程序ex1_1.c
(3)
//xiti3_3_3.c——第三章习题3.3上机操作题(3)
#include
void delay(unsigned char i); //延时函数声明
void main() //主函数
{
unsigned char i;
unsigned char display[]={0x89, 0xff,0x86, 0xff,0xc7, 0xff,0xc7, 0xff,0xc0, 0xff};
while(1){
for(i=0;i<10;i++){
P1=display[i]; //显示字送P1口
delay(200); //延时
}
}
}
void delay(unsigned char i) //延时函数参见任务1程序ex1_1.c
习题4 答案
4.1 单项选择题
(1)B (2)A (3)C (4)A (5)A
(6)B (7)A (8)A (9)D (10)A
(11)C (12)C (13)A (14)D
4.2 填空题
(1)①定时器T0 ②定时器T1 ③定时器方式寄存器TMOD ④定时器控制寄存器TCON
(2)GATE=0
(3)TMOD=0x05
(4)选择定时器T0/T1的工作方式