2022年《单片机教材》习题参考答案 .pdf

上传人:C****o 文档编号:35801659 上传时间:2022-08-23 格式:PDF 页数:22 大小:303.47KB
返回 下载 相关 举报
2022年《单片机教材》习题参考答案 .pdf_第1页
第1页 / 共22页
2022年《单片机教材》习题参考答案 .pdf_第2页
第2页 / 共22页
点击查看更多>>
资源描述

《2022年《单片机教材》习题参考答案 .pdf》由会员分享,可在线阅读,更多相关《2022年《单片机教材》习题参考答案 .pdf(22页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、优秀学习资料欢迎下载习题 1 答案1.1 单项选择题(1) A (2)C (3)A (4) A (5)A (6) A (7)C (8)C (9) D (10)C 1.2 填空题(1)硬件系统、软件系统(2)时钟、复位(3)XTAL1 、XTAL2 、 RST、 EA(4) 片内数据存储器、片内程序存储器、片外数据存储器、片外程序存储器(5)时钟电路(6)程序存储器(7)工作寄存器组、位寻址区、用户RAM 区(8)1us、2us (9)上电复位电路、按键复位电路(10)2、高1.3 答:单片微型计算机是指集成在一个芯片上的微型计算机,它的各种功能部件,包括CPU(Central Processi

2、ng Unit ) 、随机存取存储器RAM (Random Access Memory ) 、只读存储器ROM (Read-only Memory ) 、基本输入 /输出 (Input/Output ,简称 I/O)接口电路、定时器/计数器等都制作在一块集成芯片上,构成一个完整的微型计算机,可以实现微型计算机的基本功能。单片机应用系统是以单片机为核心,配以输入、输出、显示、控制等外围电路和软件,能实现一种或多种功能的实用系统。单片机应用系统是由硬件和软件组成的,硬件是应用系统的基础,软件则是在硬件的基础上对其资源进行合理调配和使用,从而完成应用系统所要求的任务,二者相互依赖, 缺一不可。1.4

3、 答:P3 口各引脚与第二功能表引脚第二功能信号名称P3.0 RXD 串行数据接收P3.1 TXD 串行数据发送P3.2 0INT外部中断 0 申请P3.3 1INT外部中断 1 申请P3.4 T0 定时 /计数器 0 的外部输入P3.5 T1 定时 /计数器 1 的外部输入P3.6 WR外部 RAM 写选通P3.7 RD外部 RAM 读选通1.5 答:片内RAM 低 128 单元的配置如下:名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 1 页,共 22 页 -

4、- - - - - - - - 优秀学习资料欢迎下载地 址功能30H 7FH 数据缓冲区20H 2FH 位寻址区( 00H7FH )18H 1FH 第 3 组工作寄存器( R7R0)10H 17H 第 2 组工作寄存器( R7R0)08H 0FH 第 1 组工作寄存器( R7R0)00H 07H 第 0 组工作寄存器( R7R0)寄存器常用于存放操作数及中间结果等;内部 RAM 的 20H2FH 单元, 既可作为一般RAM 单元使用,进行字节操作,也可以对单元中每一位进行位操作;在内部RAM 低 128单元中,通用寄存器占去了32 个单元,位寻址区占去了16 个单元,剩下80 个单元,这就是供

5、用户使用的一般RAM 区,其单元地址为30H7FH。片内 RAM 高 128 单元安排有21 个特殊功能寄存器,其他空闲单元用户不能使用。1.6 答:有 21 个可寻址的特殊功能寄存器,它们不连续地分布在片内RAM 的高 128 单元中,尽管其中还有许多空闲地址,但用户不能使用。另外还有一个不可寻址的特殊功能寄存器,即程序计数器PC,它不占据RAM 单元,在物理上是独立的。在可寻址的21 个特殊功能寄存器中,有11 个寄存器不仅可以字节寻址,也可以进行位寻址。1.7 答:程序状态字是一个8 位寄存器,用于存放程序运行中的各种状态信息。其中有些位的状态是根据程序执行结果,由硬件自动设置的,而有些

6、位的状态则由软件方法设定。PSW 的位状态可以用专门指令进行测试,也可以用指令读出。PSW 的各位定义下表所示。PSW 位定义位地址D7H D6H D5H D4H D3H D2H D1H D0H 位名称CY AC F0 RS1 RS0 OV F1 P CY(PSW.7) :进位标志位。CY 是 PWS 中最常用的标志位,其功能有两个:一是存放算术运算的进位标志,在进行加或减运算时,如果操作结果最高位有进位或借位,则CY由硬件置“ 1” ,否则被清“ 0” ;二是在位操作中,作累加位使用。位传送、位与位或等位操作,操作位之一固定是进位标志位。AC(PSW.6) :辅助进位标志位。在进行加或减运算

7、中,若低4 位向高 4 位进位或借位, AC 由硬件置“ 1” ,否则被清“ 0” 。在 BCD 码调整中也要用到AC 位状态。F0(PSW.5) :用户标志位。这是一个供用户定义的标志位,需要利用软件方法置位或复位,用来控制程序的转向。RS1 和 RS0(PSW.4,PSW.3) :工作寄存器组选择位。它们被用于选择CPU 当前使用的通用寄存器组。通用寄存器共有4 组,其对应关系如下表所示。工作寄存器组选择RS1 RS0 寄存器组片内 RAM 地址0 0 第 0 组00H07H 0 1 第 1 组08H0FH 1 0 第 2 组10H17H 1 1 第 3 组18H1FH 这两个选择位的状态

8、是由软件设置的,被选中的寄存器组即为当前通用寄存器组。但当单片机上电或复位后,RS1 RS0=00。名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 2 页,共 22 页 - - - - - - - - - 优秀学习资料欢迎下载OV(PSW.2) :溢出标志位。在带符号数加减运算中,OV=1 表示加减运算超出了累加器 A 所能表示的符号数有效范围(-128 +127) ,即产生了溢出,因此运算结果是错误的; OV=0 表示运算正确,即无溢出产生。在乘法运算中,OV=1

9、 表示乘积超过255,即乘积分别在B 与 A 中;否则, OV=0,表示乘积只在A 中。在除法运算中,OV=1 表示除数为0,除法不能进行;否则,OV=0 ,除数不为0,除法可正常进行。F1(PSW.1) :保留未使用。P (PSW.0) :奇偶标志位。 P标志位表明累加器A 中内容的奇偶性,如果A 中有奇数个“ 1” ,则 P 置“ 1” ,否则置“ 0” 。凡是改变累加器A 中内容的指令均会影响P 标志位。此标志位对串行通信中的数据传输有重要的意义。在串行通信中常采用奇偶校验的办法来校验数据传输的可靠性。1.8 答:0003H002AH 这 40 个单元被均匀地分为5 段,作为 5 个中断

10、源的中断地址区。其中:0003H000AH 外部中断0 中断地址区000BH 0012H 定时器 /计数器 0 中断地址区0013H001AH 外部中断1 中断地址区001BH 0022H 定时器 /计数器 1 中断地址区0023H002AH 串行中断地址区中断响应后,按中断种类,自动转到各中断区的首地址去执行程序。因此在中断地址区中理应存放中断服务程序。但通常情况下,8 个单元难以存下一个完整的中断服务程序,因此通常也是从中断地址区首地址开始存放一条无条件转移指令,以便中断响应后,通过中断地址区,再转到中断服务程序的实际入口地址。1.9 答:当需要扩展存储器时,低8 位地址 A7A0 和 8

11、 位数据 D7D0 由 P0 口分时传送,高8 位地址 A15A8 由 P2 口传送。因此,只有在没有扩展片外存储器的系统中,P0 口和 P2口的每一位才可作为双向I/O端口使用。1.10 答:单片机晶振电路一般地,电容C1 和 C2 取 30pF 左右,晶体的振荡频率范围是1.2MHz 12 MHz 。如果名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 3 页,共 22 页 - - - - - - - - - 优秀学习资料欢迎下载晶体振荡频率高,则系统的时钟频率也

12、高,单片机运行速度也就越快。MCS-51 在通常应用情况下,使用振荡频率为的6MHz 或 12MHz 的晶振,如果系统中使用了单片机的串行口通信,则一般采用振荡频率为11.059MHz 的晶振。1.11 答:规定一个机器周期的宽度为12 个振荡脉冲周期,因此机器周期就是振荡脉冲的十二分频。当振荡脉冲频率为12 MHz 时, 一个机器周期为1 s;当振荡脉冲频率为6 MHz 时,一个机器周期为2 s。1.12 答:(a) 上电复位电路(b) 按键复位电路单片机常见的复位电路图( a)为上电复位电路,它是利用电容充电来实现的。在接电瞬间,RST 端的电位与 VCC 相同, 随着充电电流的减少,RS

13、T 的电位逐渐下降。只要保证 RST 为高电平的时间大于两个机器周期,便能正常复位。图( b)为按键复位电路。该电路除具有上电复位功能外,若要复位,只需按图(b)中的 RESET 键,此时电源VCC 经电阻 R1、R2 分压,在RST 端产生一个复位高电平。习题 2 答 案2.1 单项选择题(1)C ( 2)A (3)B (4) A (5)D 2.2 答:单片机开发过程所用的设备与软件称为单片机开发系统或开发工具。单片机开发系统包括计算机、单片机在线仿真器、开发工具软件、 编程器等。连接方法如下图所示。名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整

14、理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 4 页,共 22 页 - - - - - - - - - 优秀学习资料欢迎下载单片机开发系统连接方法示意图2.3 答:单片机应用系统的开发过程如下:设计电路图制作电路板程序设计硬软件联调程序下载产品测试2.4 答:1. 在线仿真功能在线仿真器( In Circuit Emulator ,简称 ICE)是由一系列硬件构成的设备,它能仿真用户系统中的单片机,并能模拟用户系统的ROM 、RAM 和 I/O 口。因此,在线仿真状态下,用户系统的运行环境和脱机运行的环境完全“逼真”。2. 调试功能1) 运行控制功能开发

15、系统应能使用户有效地控制目标程序的运行,以便检查程序运行的结果,对存在的硬件故障和软件错误进行定位。2) 单片机状态查看修改功能当 CPU 停止执行程序运行后,开发系统允许用户方便地读出或修改目标系统资源的状态,以便检查程序运行的结果、设置断点条件以及设置程序的初始参数。任务2 中图 2.13给出了在Medwin 调试环境下查看单片机内部资源的菜单。3. 程序编译功能1) 程序设计语言单片机程序设计语言包括机器语言、汇编语言和高级语言。机器语言是单片机唯一能够识别的语言。汇编语言具有使用灵活、实时性好的特点。目前,在实际项目开发中较少使用汇编语言。高级语言通用性好,且具有较好的可读性和可移植性

16、,是目前单片机编程语言的主流。 2) 程序编译单片机开发系统能够提供源程序的编辑、编译和下载功能以及工程管理功能。4. 程序固化功能编程器是完成这种任务的专用设备,它也是单片机开发系统的重要组成部分。习题 3 答案3.1 单项选择题名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 5 页,共 22 页 - - - - - - - - - 优秀学习资料欢迎下载(1) A (2) A (3) C (4)C (5) A (6) B (7) D (8) D (9)A (10)

17、A (11)B (12)C (13) D (14)D (15)C 3.2 填空题(1)P3 口(2)字节,位(3)主函数main() (4)sbit FLAG=P31; (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 de

18、lay(unsigned char i); /延时函数声明void main() /主函数 while(1)P1=0 x55; /按状态 1 的方式点亮8 个 LEDdelay(200); /延时P1=0 xaa; /按状态 2 的方式点亮8 个 LEDdelay(200); /延时 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 6 页,共 22 页 - - - - - - - - - 优秀学习资料欢迎下载void delay(unsigned char i) /

19、延时函数参见任务1 程序 ex1_1.c (2)/xiti3_3_2.c 第三章习题3.3 上机操作题(2)#include /包含头文件REG51.H void delay(unsigned char i); /延时函数声明void main() /主函数 unsigned char i,l,r; while(1) l=0 x10; / 高 4位灯的位置初值为00010000B r=0 x08; / 低 4位灯的位置初值为00001000B for(i=0;i4;i+) P1=(l|r); / 循环点亮灯l=1; / 低 4位灯的位置移动delay(200); /延时 void delay(

20、unsigned char i) /延时函数参见任务1 程序 ex1_1.c (3)/xiti3_3_3.c 第三章习题3.3 上机操作题(3)#include /包含头文件REG51.H void delay(unsigned char i); /延时函数声明void main() /主函数 unsigned char i; unsigned char display=0 x89, 0 xff,0 x86, 0 xff,0 xc7, 0 xff,0 xc7, 0 xff,0 xc0, 0 xff; while(1) for(i=0;i10;i+) P1=displayi; /显示字送 P1

21、口名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 7 页,共 22 页 - - - - - - - - - 优秀学习资料欢迎下载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)

22、定时器T0 定时器T1 定时器方式寄存器TMOD 定时器控制寄存器TCON (2)GATE=0 (3)TMOD=0 x05 (4)选择定时器T0/T1 的工作方式(5)控制定时器的启动、停止,标志定时器的溢出和中断情况。(6)定时控制寄存器TCON、串行口控制寄存器SCON、中断允许寄存器IE、中断优先权寄存器IP (7)外部中断0、定时器0、外部中断1、定时器1、串行口(8)电平触发方式(9)硬件自动清除、软件清除、硬件配合软件共同清除(10)0 4. 3 答:当定时 /计数器设置为定时工作方式时,计数器对内部机器周期计数,每过一个机器周期,计数器增1,直至计满溢出。定时器的定时时间与系统的

23、振荡频率紧密相关,如果单片机系统采用12M 晶振,则计数周期为:s112/110121T6,这是最短的定时周期,适当选择定时器的初值可获取各种定时时间。当定时 /计数器设置为计数工作方式时,计数器对来自输入引脚T0(P3.4)和 T1(P3.5)的外部信号计数, 外部脉冲的下降沿将触发计数,检测一个由1 到 0 的负跳变需要两个机器周期, 所以, 最高检测频率为振荡频率的1/24。计数器对外部输入信号的占空比没有特别的限制,但必须保证输入信号的高电平与低电平的持续时间在一个机器周期以上。当需要准确计算时间时往往采用定时器的定时方式,而当要对一些外部事件计数时则采用定时器的计数方式。4. 4 答

24、:软件定时是通过编写一段延时程序来实现定时,这段延时程序不完成任何操作,只是通过一些空操作浪费掉一段时间。这样的软件定时往往浪费CPU 的工作效率,并且定时不够名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 8 页,共 22 页 - - - - - - - - - 优秀学习资料欢迎下载准确,前面三章的各个任务中均采用了这种方法。硬件定时是通过单片机的定时器来实现时间的计算,用户只需要对定时器的工作方式、初始值赋予合适的数值,启动定时器后, 定时器将自动按照机器周期定

25、时。这种由定时器实现的定时方式,定时时间准确、CPU 的工作效率高。4.5 答:MCS-51系列单片机的定时/ 计数器是增1 计数器。对于增 1 计数器,计数初值应等于最大计数值减去所需要的计数值。而减 1 计数器,计数初值就等于所需要的计数值。例如: 假设需要计数50000 次。对于增 1 计数器的单片机,若采用方式1 的定时器, 最大计数值为65536,则初值应为:655365000015536。而对于减 1 计数器,则计数初值将为50000。4.6 答:在定时 / 计数器工作于方式1 下,最大计数值为65536。若晶振频率为6MHz ,则一个机器周期为2 S,所以最短定时时间为2S(计数

26、初值为65535) ,最长定时时间为2S 65536 131072S(计数初值为0)4.7 答:定时 /计数器的4 种工作方式由方式寄存器TMOD 中的 M1 、 M0来进行选择,具体如下:M1 M0 工 作 方 式功 能 说 明0 0 方 式 0 13 位计数器0 1 方 式 1 16 位计数器1 0 方 式 2 自动再装入8 位计数器1 1 方 式 3 定时器 0:分成两个8 位计数器定时器 1:停止计数4.8 答:中断是通过硬件来改变CPU 的运行方向。 计算机在执行程序的过程中,当出现 CPU 以外的某种情况, 由服务对象向CPU 发出中断请求信号,要求 CPU 暂时中断当前程序的执行

27、而转去执行相应的处理程序,待处理程序执行完毕后,再继续执行原来被中断的程序。这种程序在执行过程中由于外界的原因而被中间打断的情况称为“中断”。调用中断服务程序的过程类似于调用子程序,其区别在于调用子程序在程序中是事先安排好的;而何时调用中断服务程序事先却无法确定,因为“中断”的发生是由外部因素决定的,程序中无法事先安排调用指令,因此,调用中断服务程序的过程是由硬件自动完成的。中断的特点:分时操作、实时处理、故障处理4.9 答:MCS-51系列单片机有5 个中断源,分别是外部中断0、定时器0、外部中断1、定时器1、串行口。它们的优先级别通过寄存器IP 实现。4.10 答:外部中断有低电平触发和下

28、降沿触发两种方式。通过定时器控制寄存器TCON 中的 IT0 、IT1 来选择和设定。名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 9 页,共 22 页 - - - - - - - - - 优秀学习资料欢迎下载IT1 为1INT 中断触发方式控制位,当 IT1 = 0,外部中断 1 控制为电平触发方式。当 IT1 = 1,外部中断1 控制为下降沿触发方式。4.11 答:常用的中断函数定义语法如下:void 函数名()interrupt n 其中 n 为中断类型号,

29、C51 编译器允许031 个中断, n 取值范围031。习题 5 答案5.1 单项选择题(1) C (2) A (3) C (4) B (5) B (6) D (7) B (8) C (9) A 5.2 (1) ledk (2) delay() 5.3 答:不能,因为共阴极和共阳极数码管com 段接的电平不一样, 点亮段码所需的电平也不同。应该将共阴极数码管的com 端接至 GND 上, P1 口和 8 个段之间接上非门。5.4答:LED 静态显示时各位数码管相对独立,公共端恒定接地(共阴极)或正电源(共阳极),每个数码管的8 个字段分别与一个8位 I/O 口地址相连, 适合于 2 个及其以下

30、的数码管显示。动态显示时各位数码管的段选线相应并联在一起,由一个 8 位的 I/O 口控制, 各位的段选线由另外的I/O 口控制。5.5答:每次只能点亮一行。其采用的为动态显示,具体原理为:从第一行开始点亮,每行点亮之间延时1ms,第八行结束后再从第一行开始循环显示。利用人体的视觉驻留现象,所以看到的是一个稳定的图形,好像8行同时点亮。5.6 答:可以采用硬件和软件两种方式,硬件上可在键输出端加RS 触发器或单稳态触发器构成去抖电路,软件上可以在检测到有按键按下时,执行一个10ms 左右的延时程序,然后确认该键是否仍保持闭合状态的电平。5.7答:独立式按键是直接用I/O 口线构成的单个按键电路

31、,其特点是每个按键单独占用一根I/O口线,适合于八键以下使用;矩阵式键盘由行线和列线组成,按键位于行、 列线的交叉点上,在按键数量较多时,矩阵式键盘较之独立式按键键盘要节省很多I/O 口, 适合于八个键以上使用。习题 6 答案名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 10 页,共 22 页 - - - - - - - - - 优秀学习资料欢迎下载6.1 单项选择题(1) D (2)C (3)A (4) A (5)B (6) D 6.2 填空题(1)分辨率和建立

32、时间(2)ILE 、CS、1WR、2WR、 XFER(3)模拟,数字;数字,模拟6.3 答:DAC0832与 8051 单片机接口时, 主要有如下控制信号:ILE、/CS、/WR1 、/WR2 、/XFER,作用分别是:(1) CS:转入寄存器片选信号,低电平有效。(2)ILE :输入寄存器的数据锁存允许信号,高电平有效。(3)1WR :输入寄存器的数据写信号,低电平有效。(4)2WR:DAC 寄存器写信号,并启动转换。低电平有效。(5) XFER :数据向DAC 寄存器传送控制信号,传送后即启动转换,低电平有效。ADC0809与 8051 单片机接口时 , 控制信号主要有:ALE、START

33、 、EOC 、OE 。作用分别是:(1)ALE :地址锁存允许信号在ALE 上升沿, ADDA 、ADDB 、ADDC 地址状态被送入地址锁存器中。(2)START:转换启动信号。START 上跳沿时,所有内部寄存器清0;START 下跳沿时,开始进行A/D 转换;在A/D 转换期间, START 应保持低电平。(3) OE: 输出允许信号。 用于控制三态输出锁存器向单片机输出转换得到的数据。OE=0,输出数据线呈高电阻;OE=1,输出转换得到的数据。(4)EOC转换结束状态信号。启动转换后,系统自动设置EOC=0,转换完成后,EOC=1。该状态信号既可作为查询的状态标志,又可以作为中断请求信

34、号使用。6.4答:所谓单缓冲方式就是使0832 的两个输入寄存器中有一个处于直通方式,而另一个处于受控的锁存方式,或者两个输入寄存器同时受相同的信号控制的方式。在实际应用中, 如果只有一路模拟量输出, 或虽有几路模拟量但并不要求同步输出的情况,就可采用单缓冲方式。所谓双缓冲方式,就是把DAC0832 的两个锁存器都接成受控锁存方式。6.5 答: 判断 A/D 转换是否结束一般可采用3 种方式,即EOC 信号和单片机相连可有3 种方式:延时方式: EOC悬空,启动转换后,延时100s 后读入转换结果。查询方式: EOC接单片机端口线,查得EOC 变高,读入转换结果,作为查询信号。中断方式: RO

35、C 经非门接单片机的中断请求端,转换结束作为中断请求信号向单片机提出中断申请,在中断服务中读入转换结果。其中延时方式和查询方式均占用单片机CPU,即在这段时间,CPU 只能做延时或查询的工作,而采用中断方式时,CPU 可先执行主程序,一旦产生中断,才去处理数据接收的工作,使得CPU 利用率较前面两种要高。6.6答:(1)周期为25ms的锯齿波发生器C语言源程序如下:#include 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 11 页,共 22 页 - - -

36、- - - - - - 优秀学习资料欢迎下载#include #define DA0832 XBYTE0 x7fff #define uchar unsigned char #define uint unsigned int uchar i; void delay_100us() TH1=0 xff; / 置定时器初值0 xff9c ,即 65436 ,定时 0.1ms TL1=0 x9c; TR1=1; / 启动定时器1 while(!TF1); / 查询计数是否溢出,即定时0.1ms 时间到, TF1=1 TF1=0; / 0.1ms 时间到,将定时器溢出标志位TF 清零 void mai

37、n(void) TMOD=0 x10; / 置定时器1 为方式 1 while(1) for(i=0;i=255;i+) /形成锯齿波输出值,最大255 DA0832=i; /D/A 转换输出delay_100us(); (2)周期为50ms的三角波 C 语言源程序如下:名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 12 页,共 22 页 - - - - - - - - - 优秀学习资料欢迎下载#include #include #define DA0832 XB

38、YTE0 x7fff #define uchar unsigned char #define uint unsigned int uchar i,j; void delay_100us() TH1=0 xff; /置定时器初值0 xff9c ,即 65436 ,定时 0.1ms TL1=0 x9c; TR1=1; / 启动定时器1 while(!TF1); / 查询计数是否溢出,即定时0.1ms 时间到, TF1=1 TF1=0; / 0.1ms 时间到,将定时器溢出标志位TF 清零 void main(void) TMOD=0 x10; / 置定时器1 为方式 1 while(1) for(

39、i=0;i=0;j-)/形成三角波输出值,最大255 DA0832=j; /D/A 转换输出名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 13 页,共 22 页 - - - - - - - - - 优秀学习资料欢迎下载delay_100us(); (3)周期为50ms的方波 C 语言源程序如下:#include #include #define DA0832 XBYTE0 x7fff #define uchar unsigned char #define uint

40、 unsigned int uchar i,j; void delay_25ms() TH1=0 x9e; / 置定时器初值TL1=0 x58; TR1=1; / 启动定时器1 while(!TF1); / 查询计数是否溢出,即定时25ms 时间到, TF1=1 TF1=0; / 25ms 时间到,将定时器溢出标志位TF 清零 void main(void) TMOD=0 x10; / 置定时器1 为方式 1 while(1) DA0832=255; /形成方波输出值,最大255 ,D/A转换输出delay_25ms(); 名师归纳总结 精品学习资料 - - - - - - - - - - -

41、 - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 14 页,共 22 页 - - - - - - - - - 优秀学习资料欢迎下载DA0832=0; /D/A 转换输出delay_25ms(); 6.7 答:在选定转换通道后,ADC0809工作的主要有以下几个步骤:1启动 A/D 转换,给START 引脚一个下降沿;2ALE信号与 START 信号一般连接在一起,这样使得在ALE信号的前沿写入地址信号,紧接着在其后沿就启动转换;3查询 EOC引脚状态, EOC 引脚由 0 变 1,表示 A/D 转换过程结束;4允许读数,将OE引脚设置为

42、1 状态。5读取 A/D 转换结果,从ADC0809的外部地址读取其转换结果。习题 7 答案7.1 单项选择题(1) A (2)B (3)D (4) C (5)B (6) C (7)B (8)C (9) C (10)A (11) C (12)D (13)A 7.2 答:在异步通信中,数据是不连续传送的,数据通常是以字符为单位组成字符帧传送的。字符帧由发送端一帧一帧地发送,每一帧数据是低位在前,高位在后, 通过传输线被接收端一帧一帧地接收。 发送端和接收端可以由各自独立的时钟来控制数据的发送和接收,这两个时钟彼此独立,互不同步。异步通信的字符帧格式分为无空闲位帧格式和有空闲位帧格式。7.3 答:

43、T1 的溢出率取决于单片机定时器T1 的计数速率和定时器的预置值。当定时器T1 做波特率发生器使用时,通常是工作在模式2,即自动重装载的8 位定时器, 此时 TL1 作计数用,自动重装载的值在TH1内。设计数的预置值(初始值)为X,那么每过256-X 个机器周期,定时器溢出一次。为了避免溢出而产生不必要的中断,此时应禁止T1中断。7.4 答:名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 15 页,共 22 页 - - - - - - - - - 优秀学习资料欢迎下

44、载参考程序如下:#include #define uchar unsigned char code uchar tab=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6D,0 x7D,0 x07,0 x7f,0 x6f; uchar send=0 x04,0 x03,0 x02,0 x01,0 x08,0 x07,0 x06,0 x05; int i,t; / 延时函数,当t 取值 12000 时,若晶振fosc=12MHz,大约延时1s void delay(t) for(i=0;it;i+) ; main() unsigned char i,j,k,m; SCON=0

45、x00; / 串行口工作方式 while(1) for(i=0;i6;i+) SBUF=(tabsendi); / 发送第 i 个数据while(TI=0); / 等待发送是否完成TI=0; / TI清 0 delay(12000) ; for(m=6;m12;m+) SBUF=(tabsendm); / 发送第 i 个数据while(TI=0); / 等待发送是否完成TI=0; / TI清 0 delay(12000) ; 7.5 答:名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - -

46、- - - - 第 16 页,共 22 页 - - - - - - - - - 优秀学习资料欢迎下载参考程序如下:甲机发送发送子程序参考如下: #include #include #include #include #include #define uchar unsigned char uchar FREQ; /* 定时器计数变量*/ void main(void) / 以下是设置中断和定时器EA=1; PT0=1; ET0=1; TCON=0 x08; TMOD=0 x21; / 定时器 0 为产生 10ms 的中断,定时器1 为 9600bit/s 的波特率发生器TH0=-10000/2

47、56; TL0=-10000%256; TL1=0 xfd; TH1=0 xfd; SCON=0 xd8; /串行口方式3 发送PCON=0 x00; TR1=1; / 开定时器TR0=1; TI=1; 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 17 页,共 22 页 - - - - - - - - - 优秀学习资料欢迎下载while(1) / 定时器 0 的中断服务程序,向串口发送“A”数据void intsvr1(void) interrupt 1 / 重

48、新装入定时器0 的初值;TH0=-10000/256; TL0=-10000%256; FREQ=FREQ+1; / 定时器 T0 的低四位赋值if (FREQ=100) / 1 秒判断 FREQ=0; printf(A); / 发送字符 乙机接收子程序参考如下:#include #define uchar unsigned char void main(void) uchar astring; /在 11.059MHz晶振下 ,设置串行口波特率为9600bit/s ,用串行口方式3 接收TMOD=0 x20; TH1=0 xfd; TL1=0 xfd; TR1=1; SCON=0 xdb;

49、PCON=0 x00; while(1) while(RI=0); RI=0; astring=SBUF; lcd_display(); /液晶显示参考前面章节程序 7.6 答:参考程序如下:#include #define INBUF_LEN 4 /数据长度名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 18 页,共 22 页 - - - - - - - - - 优秀学习资料欢迎下载unsigned char inbuf1INBUF_LEN; unsigned c

50、har checksum,count3; bit read_flag= 0 ; /串行口初始化函数:init_serialcomm/函数功能:串行口初始化,设置波特率为4800bit/s, 允许串口中断/形式参数:无/返回值:无void init_serialcomm( void ) SCON = 0 x50 ; /SCON: 串行口方式1,允许接收TMOD |= 0 x20 ; /设置定时器1 为方式 2 定时PCON |= 0 x80 ; /SMOD=1; TH1 = 0 xf4 ; / 波特率 4800bit/s, fosc=11.0592MHzTL1 = 0 xf4 ; IE = 0

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com