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)D2.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)C3.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 <reg51.h>void delay(unsigned char i); //延时函数声明void main() //主函数{while(1){P1=0x55; //按状态1的方式点亮8个LEDdelay(200); //延时P1=0xaa; //按状态2的方式点亮8个LEDdelay(200); //延时}}void delay(unsigned char i) //延时函数参见任务1程序ex1_1.c(2)//xiti3_3_2.c——第三章习题3.3上机操作题(2)#include <reg51.h> //包含头文件REG51.Hvoid delay(unsigned char i); //延时函数声明void main() //主函数{unsigned char i,l,r;while(1){l=0x10; // 高4位灯的位置初值为00010000Br=0x08; // 低4位灯的位置初值为00001000Bfor(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 <reg51.h> //包含头文件REG51.Hvoid 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)D4.2 填空题(1)①定时器T0 ②定时器T1 ③定时器方式寄存器TMOD ④定时器控制寄存器TCON(2)GATE=0(3)TMOD=0x05(4)选择定时器T0/T1的工作方式(5)控制定时器的启动、停止,标志定时器的溢出和中断情况。
(6)定时控制寄存器TCON、串行口控制寄存器SCON、中断允许寄存器IE、中断优先权寄存器IP(7)外部中断0、定时器0、外部中断1、定时器1、串行口(8)电平触发方式(9)硬件自动清除、软件清除、硬件配合软件共同清除(10)04. 3答:当定时/计数器设置为定时工作方式时,计数器对内部机器周期计数,每过一个机器周期,计数器增1,直至计满溢出。
定时器的定时时间与系统的振荡频率紧密相关,如果单片机系统采用12M晶振,则计数周期为:,这是最短的定时周期,适当选择定时器的初值可获取各种定时时间。
当定时/计数器设置为计数工作方式时,计数器对来自输入引脚T0(P3.4)和T1(P3.5)的外部信号计数,外部脉冲的下降沿将触发计数,检测一个由1到0的负跳变需要两个机器周期,所以,最高检测频率为振荡频率的1/24。
计数器对外部输入信号的占空比没有特别的限制,但必须保证输入信号的高电平与低电平的持续时间在一个机器周期以上。
当需要准确计算时间时往往采用定时器的定时方式,而当要对一些外部事件计数时则采用定时器的计数方式。
4. 4答:软件定时是通过编写一段延时程序来实现定时,这段延时程序不完成任何操作,只是通过一些空操作浪费掉一段时间。
这样的软件定时往往浪费CPU的工作效率,并且定时不够准确,前面三章的各个任务中均采用了这种方法。
硬件定时是通过单片机的定时器来实现时间的计算,用户只需要对定时器的工作方式、初始值赋予合适的数值,启动定时器后,定时器将自动按照机器周期定时。
这种由定时器实现的定时方式,定时时间准确、CPU的工作效率高。
4.5答:MCS-51系列单片机的定时/计数器是增1计数器。
对于增1计数器,计数初值应等于最大计数值减去所需要的计数值。
而减1计数器,计数初值就等于所需要的计数值。
例如:假设需要计数50000次。
对于增1计数器的单片机,若采用方式1的定时器,最大计数值为65536,则初值应为:65536-50000=15536。
而对于减1计数器,则计数初值将为50000。
4.6答:在定时/计数器工作于方式1下,最大计数值为65536。
若晶振频率为6MHz,则一个机器周期为2μS,所以最短定时时间为2μS(计数初值为65535),最长定时时间为2μS×65536=131072μS(计数初值为0)4.7答:(2) delay()5.3答:不能,因为共阴极和共阳极数码管com段接的电平不一样,点亮段码所需的电平也不同。
应该将共阴极数码管的com端接至GND上,P1口和8个段之间接上非门。
5.4答:LED静态显示时各位数码管相对独立,公共端恒定接地(共阴极)或正电源(共阳极),每个数码管的8个字段分别与一个8位I/O口地址相连,适合于2个及其以下的数码管显示。
动态显示时各位数码管的段选线相应并联在一起,由一个8位的I/O口控制,各位的段选线由另外的I/O口控制。
5.5答:每次只能点亮一行。
其采用的为动态显示,具体原理为:从第一行开始点亮,每行点亮之间延时1ms,第八行结束后再从第一行开始循环显示。
利用人体的视觉驻留现象,所以看到的是一个稳定的图形,好像8行同时点亮。
5.6答:可以采用硬件和软件两种方式,硬件上可在键输出端加RS触发器或单稳态触发器构成去抖电路,软件上可以在检测到有按键按下时,执行一个10ms左右的延时程序,然后确认该键是否仍保持闭合状态的电平。
5.7答:独立式按键是直接用I/O口线构成的单个按键电路,其特点是每个按键单独占用一根I/O口线,适合于八键以下使用;矩阵式键盘由行线和列线组成,按键位于行、列线的交叉点上,在按键数量较多时,矩阵式键盘较之独立式按键键盘要节省很多I/O口,适合于八个键以上使用。
习题6答案6.1 单项选择题(1) D (2)C (3)A (4) A (5)B (6) D6.2 填空题(1)分辨率和建立时间(2)ILE、、、、(3)模拟,数字;数字,模拟6.3答:DAC0832与8051单片机接口时,主要有如下控制信号:ILE、/CS、/WR1、/WR2 、/XFER,作用分别是:(1):转入寄存器片选信号,低电平有效。
(2)ILE:输入寄存器的数据锁存允许信号,高电平有效。
(3):输入寄存器的数据写信号,低电平有效。
(4):DAC寄存器写信号,并启动转换。
低电平有效。
(5):数据向DAC寄存器传送控制信号,传送后即启动转换,低电平有效。