




已阅读5页,还剩38页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机原理及应用教程(第 2 版) 主编范立南 副主编李荃高李雪飞武刚 各章习题参考答案 第 1 章习题参考答案 1填空题 (1)随机存储器 RAM,只读存储器 ROM,输入/输出接口电路,定时器/计数器,串 行通信接口 (2)微控制器,单片微型计算机 (3)16 位机,32 位机,64 位机 (4)大容量高性能化,小容量低价格化,多品种化,I/O 接口功能的增强,功耗降低 (5)存储容量,运算速度,高可靠性,低功耗 2选择题 (1)B (2)C (3)A (4)B (5)C 3简答题 (1)单片机与微处理器的联系与区别: 微型计算机技术形成了两大分支:微处理器(MPU)和微控制器(MCU,即单片机)。 单片机原理及应用教程(第 2 版) 2 MPU是微型计算机的核心部件,它的性质决定了微型计算机的性能。通用型的计算机 已从早期的数值计算、数据处理发展到当今的人工智能阶段,它不仅可以处理文字、字符、 图形、图像等信息,而且还可以处理音频、视频等信息,并向多媒体、人工智能、虚拟现 实、网络通信等方向发展。它的存储容量和运算速度正在以惊人的速度发展,高性能的32 位、64位微型计算机系统正向大、中型计算机挑战。 MCU主要用于控制领域。由它构成的检测控制系统应该具有实时的、快速的外部响应 的功能,应该能迅速采集到大量数据,并在做出正确的逻辑推理和判断后实现对被控对象 参数的调整与控制。单片机直接利用了MPU 的发展成果,也发展了16 位、32 位、64 位 的机型,但它的发展方向是高性能、高可靠性、低功耗、低电压、低噪声和低成本。目前, 单片机仍然是以8 位机为主,16 位、32 位、64 位机并行发展的格局。单片机的发展主要 还是表现在其接口和性能不断满足多种多样检测对象的要求上,尤其突出表现在它的控制 功能上,用于构成各种专用的控制器和多机控制系统。 单片机与微型计算机的联系与区别: 从组成方面,微型计算机(通用机)通常将 CPU、RAM、 I/O 口、ROM 等部件以芯 片形式安装在主板上; 单片机则将上述部件被集成到单芯片中。 从功能方面,通用计算机擅长于数据运算、采集、处理、存储和传输;单片机的专长 则是测控,往往嵌入某个仪器/设备/系统中,使其达到智能化的效果。 (2) 集成度高、体积小;面向控制、功能强;抗干扰能力强;功耗低;使用方便;性 能价格比高;容易产品化;等等。 (3) 单片机内部一般包括中央处理器 CPU、随机存储器 RAM、只读存储器 ROM、输 入/输出接口电路、定时器/计数器以及串行通信接口等。 中央处理器 CPU 是单片机的核心部件,实现运算器、控制器的功能以及中断控制等; RAM 一般作为数据存储器,用来存储数据,暂存运行期间的数据、中间结果、堆栈、位 标志和数据缓冲等;ROM 一般作为程序存储器,用于存放应用程序;并行 I/O 口,使用上 不仅可灵活地选择输入或输出,还可作为系统总线或控制信号线,从而为扩展外部存储器 和 I/O 接口提供了方便;串行 I/O 用于串行通信;定时器/计数器用于产生定时脉冲,以实 现单片机的定时控制。 (4)由于单片机功能的飞速发展,它的应用范围日益广泛,已远远超出了计算机科学 的领域。小到玩具、信用卡,大到航天器、机器人,从实现数据采集、过程控制、模糊控 制等智能系统到人类的日常生活,现已广泛应用于国民经济的各个领域,主要包括工业过 程控制、智能仪表、机电一体化产品、智能化接口、家用电器等领域。 (5)MCS-51系列;AT89系列;PIC系列;M68HC11系列;MCS-96系列;8XC196KX 系列;MSP430系列;SPCE系列;M68300系列;SH系列;TX99/TX49系列单片机等。 各章习题参考答案 3 第 2 章习题参考答案 1填空题 (1)32,4,8,R0R7 (2)F0,PSW.5,D0H.5,D5H (3)地 (4)上电自动复位、手动按键复位、外接复位芯片 (5)8,4 (6)PC,16,不是 (7)1 (8)00H,00H,07H,0FFH 2. 选择题 (1)A (2)D (3)A (4)B (5)D (6)C (7)D 3简答题 (1)MCS-51 系列单片机的内部硬件结构主要包括中央处理器 CPU、程序存储器、 数据存储器、并行 I/O 口、串行 I/O 口、中断控制系统、定时器/计数器、时钟电路和布尔 处理器等。 中央处理器 CPU:包括运算器和控制器,是整个单片机的核心部件,主要负责控制、 指挥和调度整个单元系统协调工作,完成运算和控制输入输出功能等操作。 程序存储器:用于存放用户程序、原始数据或表格。 数据存储器:MCS-51系列单片机内部有256B的数据存储器。其中高 128B 被专用寄存器 占用,低 128B 能作为存储单元供用户使用,用于存放可读写的数据、运算的中间结果或 用户定义的字型表等。 并行 I/O 口:MCS-51 系列单片机共有 4 个 8 位并行接口,分别为 P0 口、P1 口、P2 口和 P3 口,用于以并行方式实现对外部设备扩展及与外部设备联络、通信、控制或数据 传输。 串行 I/O 口:用于与其他设备间进行串行数据传送。该串行口具有 4 种不同的工作方 式。既可以作为异步通信收发器与其他设备完成串行通信,也可以作为同步移位寄存器使 用,应用于需要扩展 I/O 接口的系统。 单片机原理及应用教程(第 2 版) 4 中断控制系统:可以处理外部中断、定时器/计数器中断和串行口中断,常用于实时控 制、故障处理、单片机系统与计算机或外设间的数据通信及人机对话等。 定时器/计数器:MCS-51 系列单片机有 2 个 16 位可编程定时器/计数器,在实际应用 中,既可对外部输入的脉冲信号进行计数(计数功能),又可以对系统的时钟脉冲进行计 数(定时功能)。 时钟电路:可以产生系统时钟信号。 布尔处理器:布尔处理器实际上是一个完整的 1 位微计算机,用户在编程时通过合理 地使用布尔处理器,可以提高程序的执行效率。 (2)把加到单片机 XTAL2 引脚上的定时信号的周期称为振荡周期,又称时钟周期, 一个状态周期又包含两个振荡周期,机器周期是单片机的基本操作周期,一个机器周期包 含 6 个状态周期,即 12 个振荡周期,指令周期是指 CPU 执行一条指令所需要的时间,某 条指令的执行周期由若干个机器周期构成。 当单片机时钟频率为 12MHz 时,振荡周期为 1/12s,时钟周期为 1/6s,机器周期 为 1s。 (3)MCS-51 单片机片内数据存储器可分为两个区:00H7FH 单元组成的低 128B 的 片内 RAM 区、80HFFH 单元组成的高 128B 的专用寄存器区。其中低 128B 的 RAM 区又 分为:00H1FH 单元为工作寄存器区、20H2FH 单元为寻址区以及 30H7FH 单元为用户 RAM 区。工作寄存器可作通用寄存器用,用户 RAM 区可作堆栈和数据缓冲用。专用寄存 器区又称特殊功能寄存器。 (4)工作寄存器共有 4 组,但程序每次只能选择 1 组作为当前工作寄存器组使用。 究 竟选择哪一组作为当前工作寄存器,由程序状态字 PSW 中的 RS1 和 RS0 两位来选择,当 RS1 RS0=00 时,选择第 0 组,当 RS1 RS0=01 时,选择第 1 组,当 RS1 RS0=10 时,选择 第 2 组,当 RS1 RS0=11 时,选择第 3 组。开机复位后,RS1 RS0 被初始化为 00,选第 0 组为当前工作寄存器,对应地址为 00H07H。 (5)当 CPU 响应中断或调用子程序时用堆栈保存断点地址,在中断返回或子程序返 回时从堆栈中恢复断点地址。用户也可以把一些重要数据压栈,需要时把数据从堆栈中弹 出。 在所有的堆栈操作中,用 SP 指示栈顶的位置。数据入栈时,先将堆栈指针 SP 的内容 加 1,然后将数据送入堆栈;数据出栈时,将 SP 所指向的内部 RAM 单元的内容弹出,再 将堆栈指针 SP 的内容减 1。 系统复位后 SP 的值为 07H。 为了避开内部 RAM 中使用频率较高的工作寄存器区和位 寻址区,一般堆栈区设置在 30H 以后的范围内。 各章习题参考答案 5 第 3 章习题参考答案 1填空题 (1)指令伪指令伪指令指令 (2)BAAB (3)子程序返回指令中断子程序返回指令 (4):; (5)0 地址 (6)后进先出,先进后出堆栈顶部1 2选择题 (1)B (2)C (3)D (4)D (5)C 3简答题 (1)MCS-51 系列单片机的指令系统中,主要有 以下 5 种寻址方式: 寄存器寻址,如:DECR0 JZrel 直接寻址,如:DEC20H MOVP0, A 寄存器间接寻址,如:MOVA, R0 立即寻址,如:ADDA, #10H 基址寄存器加变址寄存器间接寻址,如:MOVCA, A+PC MOVCA, A+DPTR (2)MCS-51 单片机的一个机器周期的时间等于 12 个振荡周期的时间,掌握了机器 周期,就可以知道执行一条指令所需要的时间,从而可以计算出一段程序执行时所需的时 间,还有定时器的定时时间的确定。 (3)其各位的定义如下。 PSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0 CACF0RS1RS0OV-P 1) 进位标志位 C(PSW.7): 在执行某些算术运算(如加减运算)、 逻辑运算(如移位操作) 指令时,可被硬件或软件置位和清零。它表示在加减运算过程中最高位是否有进位或借位。 若在最高位有进位(加法时) 或借位(减法时),则 C=1 ,否则 C=0 。 2) 辅助进位(或称半进位)标志位 AC(PSW.6) : 用于表示两个 8 位数运算时, 低 4 位 单片机原理及应用教程(第 2 版) 6 有无进(借)位的状况。 当低 4 位相加(或相减)时, 若 D3 位向 D4 位有进位(或借位), 则 AC=1, 否则 AC=0。在 BCD 码运算的十进制调整中要用到该标志。 3) 用户自定义标志位 F0(PSW.5):用户可根据自己的需要对 F0 赋予一定的含义, 并通过软件根据程序执行的需要对其进行置位或清零。 4) 工作寄存器组选择位 RS1 、RS0(PSW.4 、PSW.3):可用软件置位或清零,用于 选定当前使用的 4 个工作寄存器组中的某一组。 5) 溢出标志位 OV(PSW.2) :做加法或减法运算时,由硬件置位或清零,以指示运 算结果是否溢出。OV=1 反映运算结果超出了累加器的数值范围(无符号数的范围为 0 255,以补码形式表示一个有符号数的范围为-128+127)。进行无符号数的加法或减法运 算时,OV 的值与进位位 C 的值相同;进行有符号数的加法时,如最高位、次高位之一有 进位,或做减法时,如最高位、次高位之一有借位,OV 被置位,即 OV 的值为最高位和 次高位进位异或(C7 C6)的结果。执行乘法指令 MUL AB 也会影响 OV 标志,当乘积大 于 255 时 OV =1 ,否则 OV =0 ;执行除法指令 DIV AB也会影响 OV 标志,如 B 中 存放的除数为 0 ,则 OV=1,否则 OV=0。 6)PSW.1:传统 MCS-51 单片机,此位没有使用。 7) 奇偶标志位 P(PSW.0):在执行指令后,单片机根据累加器(A) 中含有 1 的个数自 动给该标志置位或清零。若 A 中 1 的个数为奇数,则 P=1 ,否则 P=0 。 (4)伪指令不是单片机执行的指令,它们放在汇编程序中,指示汇编器如何对源程序 进行汇编,经汇编后,伪指令不产生机器码。伪指令在汇编程序中是不可缺少的,对正确 编写程序及简化程序很重要。 4编程题 (1) ORG 0 MOV R0,#40H MOV 4BH,#0; mov r1,#10 CLR C MOV A,#0; L0:ADD A,R0 INC R0 JNC L1;无进位,跳转 INC 4BH L1:DJNZ R1,L0 MOV 4AH,A SJMP $ END (2) org 0 mov 30h,#11h 各章习题参考答案 7 mov 20h,30h cpl 7 cpl 6 clr 5 clr 4 setb 3 setb 2 mov 30h,20h end (3) org 0 start:mov r4,#8 d3:acall delay cpl p1.0 djnz r4,d3 cpl p1.1 ajmp start delay:mov r5,#12 d2:mov r6,#200 d1:mov r7,#103 djnz r7,$ djnz r6,d1 djnz r5,d2 ret end (4) org 0 start:jb p2.0, start; acall delay10ms jb p2.0,start jnb p2.0,$ st: mov r4,#8 d3:acall delay jb p2.0, st1; acall delay10ms jb p2.0,st1 jnb p2.0,$ ajmp start 单片机原理及应用教程(第 2 版) 8 st1:cpl p1.0 djnz r4,d3 cpl p1.1 ajmp st delay:mov r5,#12 d2:mov r6,#200 d1:mov r7,#103 djnz r7,$ djnz r6,d1 djnz r5,d2 ret delay10ms: mov r6,#41 d4:mov r7,#103 djnz r7,$ djnz r6,d4 ret end (5) org 0 start:cpl p3.1 acall delay10ms sjmp start delay10ms: d2:mov r6,#42 d1:mov r7,#103 djnz r7,$ djnz r6,d1 djnz r5,d2 ret end (6) org 0 mov a,#0 mov r0,a start:cjne a,#33,dis mov a,#0 各章习题参考答案 9 mov r0,a dis:mov dptr,#tab movc a,a+dptr mov p1,a acall delay inc r0 mov a,r0 sjmp start delay:mov r5,#12 d2:mov r6,#200 d1:mov r7,#103 djnz r7,$ djnz r6,d1 djnz r5,d2 ret tab:db 7fh,3fh,1fh,0fh,7,3,1,0 db 1,3,7,0fh,1fh,3fh,7fh,0 db 18h,3ch,7eh,3ch,18h,0,0ffh db 0e7h,0c3h,81h,0,81h,0c3h,0e7h,0ffh,0 end 5读程序 (1)ORG0000H MOVp0, #0FFH;将 P0 口设置为输入 LOOP:MOVA, p0;读取 P0 口状态 MOVp1, A;将 P0 口状态输出到 P1 口 LJMPLOOP;返回到读取 P0 口处 END 本程序段的作用为实时读取 P0 口状态,并将该口状态输出到 P1 口。 (2) (3)A 中的内容为 04H 1s 5 5s 6 5 3s 单片机原理及应用教程(第 2 版) 10 (4)(SP)= 77H,(75H)= 50H(76H)= 0(77H) = 0bfh (5)(30h) = 09h, (31h) = 1ah,(32h) = 2bh 各章习题参考答案 11 第 4 章习题参考答案 1填空题 (1)5,2,外部中断 0 和外部中断 1,3,定时器/计数器 0 中断、定时器/计数器 1 中 断和串行口中断 (2)PC (3)EA,EX0 (4)硬件,内部硬件 (5)96H (6)外部中断 1,串行口,定时器/计数器 T0,定时器/计数器 T1 2选择题 (1)D (2)A (3)B (4)C (5)B 3简答题 (1)中断源就是向 CPU 发出中断请求信号的来源,通常是计算机的某个外围设备, 也可能是某个单元电路等。 51 系列单片机有 5 个中断源,其中两个是外部中断源0INT和1INT,另外三个属于 内部中断,即定时器/计数器 T0 中断,定时器/计数器 T1 中断和串行口中断。 (2)在 51 单片机中外部中断有下降沿触发和低电平触发两种触发方式。 相同:两者均是用控制寄存器 TCON 来选择触发方式。IT0(IT1)被设置为 1,则选 择外部中断 0(外部中断 1)为下降沿触发方式,IT0(IT1)被设置为 0,则选择外部中断 0(外部中断 1)为低电平触发方式。 不同:当选用下降沿触发方式时,CPU 响应中断时会自动清除对应的中断标志位,当 选用低电平触发方式时,CPU 响应中断时不会自动清除对应的标志位,也不能使用软件清 除对应的标志位,必须用外电路及时撤销中断请求信号。 (3)单片机响应1INT中断时必须同时满足以下 5 个条件: 有中断源发出中断请求,即外部中断 1 的中断请求标志位 IE1 为 1,表示1INT请求 中断。 申请中断的中断源对应的中断允许控制位为 1, 即外部中断1INT的中断允许位 EX1 为 1,允许外部中断1INT中断。 中断总允许位 EA=1。 当前指令执行完。 若正在执行 RETI 中断返回指令或访问专用寄存器 IE 和 IP 的指令 单片机原理及应用教程(第 2 版) 12 时,CPU 执行完该指令和紧随其后的另一条指令后才会响应中断。 CPU 没有响应同级或高优先级的中断。 CPU 响应中断后,由硬件自动执行如下的功能操作: 保护断点,即把程序计数器 PC 的内容压入堆栈保护。 清除中断请求标志位 IE1。 把被响应的中断服务程序入口地址送入 PC,从而转向相应的中断服务程序执行。 中断返回时,从堆栈中弹出断点地址送入 PC。 4设计题 (1) ORG0000H LJMPSTART;复位入口 ORG0003H LJMPINT0IN;0INT入口 ORG000BH LJMPT0IN;T0 中断入口 ORG0013H LJMPINT1IN;1INT入口 ORG0023H LJMPRSIN;串行口中断入口 ORG0300H START:MOVTCON,#10H MOVIE,#9BH SETBPT0;T0 中断为高优先级 MOVTMOD,;设置 T0 工作方式 MOVTH0,;T0 赋初值 MOVTL0, (2) ORG0000H LJMPMAIN;转入主程序 ORG0003H LJMPINT0INT;转入外部中断 0 入口地址 MAIN:SETBIT0;定义0INT为下降沿触发 SETBEX0;开0INT中断 SETBEA;开中断 MOV30H,#07H;8 只二极管 MOVA,#0FEH;点亮第 1 只二极管 各章习题参考答案 13 LOOP1:MOVP1,A LCALLDELAY;调用延时子程序 RLA DJNZ30H,LOOP1;未显示到最高位,继续 INT0INT:PUSHA;保护现场 PUSH30H MOV30H,#0AH;闪烁 10 次 LOOP2:MOVA,#00H;8 只二极管全部点亮 MOVP1,A LCALLDELAY MOVA,#0FFH;8 只二极管全部熄灭 MOVP1,A LCALLDELAY DJNZ30H,LOOP2;未闪烁 10 次,继续 POP30H;恢复现场,继续逐个点亮操作 POPA RETI DELAY:MOVR5,#255;延时子程序 DEL0:MOVR6,#255 DEL1:DJNZR6,DEL1 DJNZR5,DEL0 RET END 单片机原理及应用教程(第 2 版) 14 第 5 章习题参考答案 1填空题 (1)4,3 (2)16.384ms (3)定时,计数 (4)13,16,8 (5)T1 2选择题 (1)C (2)D (3)A (4)B (5)B 3简答题 (1)51 单片机内设有 2 个定时器/计数器:定时器/计数器 0 和定时器/计数器 1,由 TH0,TL0,TH1,TL1,TMOD,TCON 特殊功能寄存器组成。 (2)由于单片机的晶振频率为 12MHz,机器周期为 1s,如果要通过对机器周期进行 计数来实现 1s 的定时,则计数次数为 1000000 次。这个计数次数超过了 16 位计数器的最 大计数值。于是提出两种方案。 方案 1:采用定时器硬件定时和软件计数的方式来实现长时间定时。使定时器 0 工作 在方式 1,得到 10ms 的定时间隔,再进行软件计数 100 次,便可实现 1 秒的定时。 方案 2:采用多个定时器/计数器复合使用的方法来完成。将定时器 T0 设定 10ms 的定 时间隔,当 T0 定时时间到时,把 P1.0 的输出取反,在把 P1.0 的输出信号加到定时器 T1 的计数脉冲输入端,作为定时器/计数器 T1 的计数输入信号,只要 T1 计数 50 次,便可实 现 1s 的定时。 (10ms+10ms)50=1000ms=1s 4设计题 (1) 该方波周期为 10ms,方波发生器应产生 5ms 等宽方波。选用定时器 T0 工作于模 式 0,则定时器 T0 计数初值为: C=2135ms/1s=3192 TL0=18HTH0=63H 由于定时器 T1 没有,所以 TMOD 寄存器的高 4 位均为 0,又 T0 工作于方式 0,定时 各章习题参考答案 15 方式,所以低 4 位也为 0,所以 TMOD 的内容为 00H 程序如下: ORG0100H AJMPSTART ORG0200H START:MOVSP, #60H;置堆栈指针 MOVTMOD, #00H;设置定时器 T0 工作于模式 0 LOOP:MOVTH0, #63H;设置定时器 T0 计数初值 MOVTL0, #18H SETBTR0;启动 T0 JNBTF0,$;5ms 时间到否?时间未到,等待 CLRTR0;关闭 T0 CLRTF0;清 TF0 CPLP1.0;输出取反,形成等宽方波 AJMPLOOP;重复循环 (2) 输出脉冲周期为 500s, 占空比为 3: 2, 所以输出矩形脉冲的高电平所占时间为 300s, 低电平所占时间为 200s。 又由于单片机的晶振频率为 6MHz,所以机器周期为 2s。 则高电平段定时计数为 300s/2s=150 次,低电平段定时计数为 200s/2s=100 次,所以可 以选择定时器 T0 工作于方式 0,则在高电平时间段,定时器 T0 的计数初值为 C1=213150=8042 TL0=0AHTH0=FBH 在低电平时间段,定时器 T0 的计数初值为 C2=213100=8092 TL0= 1CHTH0=FCH 程序如下: ORG0000H LJMPMAIN ORG000BH LJMPINT OEG3000H MAIN:MOVTMOD,#00H;定时器 0 工作于定时方式 0 MOVTH0,#0FCH;低电平时间段定时计数初值 MOVTL0,#1CH CLRP1.0;P1.0 先输出低电平 SETBTR0;启动定时器 T0 LOOP:SJMPLOOP;等待 单片机原理及应用教程(第 2 版) 16 INT:CLRTR0;停止计数 JBP1.0 ,INT2;如果之前P1.0输出高电平, 则转到INT2 INT1:SETBP1.0;P1.0 变为高电平 MOVTH0,#0FBH;高电平时间段定时计数初值 MOVTL0,#0AH SETBTR0 RETI INT2:CLRP1.0;P1.0 变为低电平 MOVTH0,#0FCH;低电平时间段定时计数初值 MOVTL0,#1CH SETBTR0 RETI 各章习题参考答案 17 第 6 章习题参考答案 1填空题 (1)同步传送,异步传送,异步 (2)起始位,数据 ,校验位,停止位 (3)单工,半双工,全双工 (4)相同 (5)慢 (6)工作方式 2,自动重装方式 (7)MOVSBUF , A 2选择题 (1)B (2)D (3)B (4)C 3简答题 (1)在异步通信中,数据或字符是一帧一帧地传送的。帧定义为一个字符的完整的通 信格式,一般也称为帧格式。在帧格式中,一个字符由 4 个部分组成:起始位、数据位、 奇偶校验位和停止位。首先是一个起始位“0”表示字符的开始;然后是 58 位数据,规定低 位在前,高位在后;接下来是奇偶校验位(该位可省略);最后是一个停止位“1”,用以表示 字符的结束,停止位可以是 1 位、1.5 位、2 位,不同的计算机规定有所不同。如图 6.3 所 示。 特点:由于异步通信每传送一帧有固定格式,通信双方只需按约定的帧格式来发送和 接收数据,所以,硬件结构比较简单;此外,它还能利用奇偶校验位检测错误。 按照数据传送的方向,串行通信可以分为单工方式、半双工方式和全双工方式。 (2) MSC-51 单片机的串行口主要由两个数据缓冲器 SBUF、一个输入移位寄存器、一 个串行控制寄存器 SCON 和一个波特率发生器 T1 等组成。 串行口数据缓冲器 SBUF 是可以直接寻址的专用寄存器。在物理上,一个作发送缓冲 器, 一个作接收缓冲器。 两个缓冲器共用一个口地址 99H, 由读写信号区分, CPU 写 SBUF 时为发送缓冲器,读 SBUF 时为接收缓冲器。接收缓冲器是双缓冲的,它是为了避免在接 收下一帧数据之前,CPU 未能及时响应接收器的中断,把上帧数据读走,而产生两帧数据 重叠的问题而设置的双缓冲结构。对于发送缓冲器,为了保持最大传输速率,一般不需要 双缓冲,这是因为发送时 CPU 是主动的,不会产生写重叠的问题。 特殊功能寄存器 SCON 用来存放串行口的控制和状态信息。T1 作串行口的波特率发 生器,其波特率是否增倍可由特殊功能寄存器 PCON 的最高位控制。 单片机原理及应用教程(第 2 版) 18 (3) 单片机串行接口的 4 种工作方式,分别是方式 0、方式 1、方式 2、方式 3。 在工作方式 0 下, SBUF 作为同步移位寄存器。 数据由芯片的 RXD/P3.0 引脚进行发送 和接收,移位同步脉冲由 TXD/P3.1 引脚输出。发送/接收的是 8 位数据。低位在先,顺序 发送。 在工作方式 1 时,串行接口被设置为波特率可变的 8 位异步通信接口。引脚 TXD/P3.1 发送数据、RXD/P3.0 接收数据,为全双工接收/发送方式。在方式 1 时,发送/接收一帧信 息共 10 位:1 位起始位(0)、8 位数据位(D0D7)和一位停止位(1)。 串行接口工作于方式 2 时,被定义为 9 位异步通信接口。发送数据由 TXD(P3.1)引脚 输出, 接收数据由 RXD(P3.0)引脚引入。 其发送/接收一帧信息为 11 位, 其中 1 位起始位(0)、 8 位数据位(先低位后高位)、1 位可编程位(1 或 0)、1 位停止位。 方式 3 为波特率可变的 9 位异步通信方式,除了波特率有所区别之外,其余方式都与 方式 2 相同。 (4)方式 0 其波特率是固定的,为fosc(振荡频率)的 1/12。方式 1 其波特率取决于定时 器 T1 的溢出率和特殊功能寄存器 PCON 中 SMOD 的值,即方式 1 的波特率=(2SMOD/32) 定时器 T1 的溢出率。方式 2 的波特率=(2SMOD/64)fosc。方式 3 的波特率=(2SMOD/32)定时 器 T1 的溢出率。 (5) 1)接收数据的过程 在进行通信时,当CPU允许接收时(即SCON的REN位置1时),外界数据通过引脚 RXD(P3.0)串行输入, 数据的最低位首先进入输入移位器, 一帧接收完毕再并行送入缓冲器 SBUF中,同时将接收中断标志位RI置位,向CPU发出中断请求。CPU响应中断后,并用软 件将RI位清除同时读走输入的数据(MOV A,SBUF)。接着又开始下一帧的输入过程。重复 直至所有数据接收完毕。 2)发送数据的过程 CPU要发送数据时,即将数据并行写入发送缓冲器SBUF中(MOV SBUF,A),同时启 动数据由TXD(P3.1)引脚串行发送,当一帧数据发送完即发送缓冲器空时,由硬件自动将发 送中断标志位TI置位,向CPU发出中断请求。CPU响应中断后,用软件将TI位清除,同时 又将下一帧数居写入SBUF中重复上述过程直到所有数据发送完毕。 4编程题 (1) ORG0000H LJMPSTART ORG0023H LJMPSER;设定串口中断向量,指向串口中断服务程序 ;-主程序Start- ORG0100H START: MOVTMOD, #20H;设定T1, 定时方式2 MOVTL1 , #0E8H;T1初值 各章习题参考答案 19 MOVTH1 , #0E8H;T1重装值波特率1.2K SETBTR1;启动T1 MOVSCON, #50H;串口方式1 MOVR0, #00H;待发送数据首地址低8位 MOVR1, #34H;待发送数据首地址高8位 MOVR2, #00H;数据接收区首地址低8位 MOVR3, #44H;数据接收区首地址高8位 SETBEA;总中断开关打开 SETBES;串口中断开关打开 LCALLSEND;乙机程序无此句 SJMP$;等待 ;-主程序End- ;-发送子程序- SEND: MOVDPL , R0 MOVDPH , R1;设定首地址 MOVR7, #0FFH;计数器初值 LOOP1:MOVXA, DPTR ;读入数据 MOVC, P;校验位 ANLA, #7FH JNCPIS ORLA, #80H;保证A首位=P,实现校验 PIS:MOVSBUF, A;输出 CLRTI;清中断 INCDPTR;地址指针+1 DECR7;计数器-1 JNCLOOP1;未达到数据末尾,继续循环 RET ;- ;-串口中断服务- SER:MOVA, SBUF;接收 MOVC, P ANLC, A.7 MOV01H, C CPLC ANLC, A.7 ORLC, 01H;校验 JCERROR ANLA, #7FH;删除校验位 MOVDPL , R2 单片机原理及应用教程(第 2 版) 20 MOVDPH , R3;设定首地址 MOVXDPTR, A;储存数据 INCR2;指针+1 CLRRI;清中断 ERROR: NOP RET ;- END (2) ORG0000H LJMPSTART ;-主程序 Start- ORG0100H START:MOVSCON, #00H; 设置串行口方式 0 MOVA , #01H LOOP: MOVSBUF , A; 启动串行口发送数据 JNBTI , $; 等待一帧发送结束 CLRTI; 清串行口中断标志 RLA; 指向下一个数据 LACALLDELAY;延时 0.5S SJMPLOOP;循环交替点亮 ;-主程序 End- ;-延时子程序- DELAY: MOVR6 ,#200;设定外循环次数 DEL1:MOVR7, #125;设定内循环次数 DEL:DJNZR7 , DEL;执行内循环 DJNZR6 , DEL1;执行外循环 RET ;- END (3) ORG0000H LJMPSTART ;-主程序Start- ORG0100H START:MOVTMOD, #20H;设定T1, 方式2 MOVTL1, #0FDH;T1初值 MOVTH1 , #0FDH;T1重装值波特率9.6K SETBTR1;启动T1 各章习题参考答案 21 MOVSCON, #50H;串口方式1 MOVR0, #30H;待发送数据首地址 LCALL SEND SJMP$;等待 ;-主程序End- ;-发送子程序- SEND:MOVR7, #0FH;计数器初值 LOOP1:MOVXA, R0;读入数据 MOVC, P;校验位 ANLA , #7FH JNCPZE1 ORLA , #80H;保证A首位=P,实现校验 PZE1:MOVSBUF, A;输出 CLRTI;清中断 INCR0;地址指针+1 DECR7;计数器-1 JNCLOOP1;未达到数据末尾,继续循环 RET ;- END 单片机原理及应用教程(第 2 版) 22 第 7 章习题参考答案 1填空题 (1)CPU地址锁存器程序存储器振荡电路复位电路 (2)P0P2P0分时 (3)ALEPSEN (4)ALEP3.6P3.7 (5)线选法地址译码法 (6)151200 2简答题 (1) 在进行系统扩展时, 必须要考虑为满足系统应用要求, 扩展具有什么功能的硬件, 并据此,选择相应的芯片;此外,当扩展这些芯片时,CPU 的 I/O 口还有多少可以使用, 以及选择的芯片是否可以采购到,是否能够满足长期供货要求等。 扩展后,硬件成本相应提高,同时,电路板也要增加尺寸,还有就是工作量加大。 (2)8255 有 3 个 8 位并行 I/O 口,分别为 PA,PB,PC 口。 要根据具体应用的要求,对端口进行设置工作方式。即初始化芯片。 (3)8155 片内有 256 个字节的 RAM,2 个 8 位并行 I/O 口,1 个 6 位并行 I/O 口, 还 有一个 14 位的定时/计数器。 对片内寄存器进行操作时,首先要选中该芯片,即使该芯片的片选端为 0,然后,要 使芯片的 IO/M 端为 1,最后,在地址线上,根据 8155 的要求,给出相应地址即可。 (4)以总线形式进行系统扩展时,通常要用到地址锁在器 74LS373,其有 8 位的数据 输入端,8 位的数据输出端,一个使能端,一个控制端,当控制端为 0,使能端为 1 时, 数 据输出端的状态随输入端变化,当使能端为 0 时,则输入端的状态被锁在到输出端,此时 不论输入端如何变化,输出端均保持不变,并保持使能端为 0 前的状态。如果将输入端接 到 CPU 的 P0 口,使能端接到 CPU 的 ALE 端,则当 CPU 访问外部程序或数据存贮器时, P0 口输出地址数据,并在 ALE 引脚出现一个正跳变,将低 8 位地址锁存到 74LS373 的 输出端,这就实现了地址锁存。 (5)查 74LS273 手册,得知,其输出为高电平时,引脚的驱动能力为 0.4mA,输出为 低电平时,引脚的驱动能力为 8mA,而发光管点亮时,其电流要达到 1mA 以上,所以, 高电平是不能正常驱动的,应当改为低电平驱动,即低电平时,点亮发光管。 3设计与编程题 (1)硬件电路,请参考图 7-36,并将 CPU 的复位与 8155 的复位接到一起,CPU 的 复位及振荡电路,EA 端等,参见图 7-3,最后,将 CPU 的 ALE,接到 8155 的 TIME IN 引 脚。晶振采用 32768hz。因此,ALE 引脚的频率约为 5461.33hz,其周期为 183s。8155 采 用连续方波的工作形式,则 8155 的初值为 100000/183 546。 各章习题参考答案 23 据硬件连接,可知:8155 的命令器的地址为 7FF8,定时器低 8 位的地址为 7FFC,定 时器高 6 位的地址为 7FFD。 ORG 0 MOV DPTR,#7FFC; MOV A,#22h MOVX DPTR,A INC DPTR MOV A,#42 MOVX DPTR,A MOV DPTR #7FF8 MOV A,#0C0; MOVX DPTR,A SJMP $ END (2) 参照图 7-44,晶振电路参见图 7-3,采用 6Mhz。但是,将 CPU 输出的 ALE 信号, 经 10 分 频 后 , 再 接 入 8253 的 CLK0 上 , 则 CLK0 上 的 时 钟 周 期 为 10 微 秒 。 GATE0,GAET1,GATE2 接+5V;OUT0 接 CLK1,OUT1 接 CLK2,最终,OUT0 输出 1Khz, OUT1 输出 100Hz,OUT2 输出 10Hz。 程序如下: ORG 0 MOV DPTR,#7FF3 MOV A,#4; MOVX DPTR,A MOV A,#44H MOVX DPTR,A MOV A,#84; MOVX DPTR,A MOV DPTR #7FF0 MOV A, #100 MOVX DPTR,A INC DPTR MOV A,#10 MOVX DPTR,A INC DPTR MOV A,#1 MOVX DPTR,A SJMP $ END (3) 如右图,可扩展两 P2.7 28 P0.7 32 P0.6 33 P0.5 34 P0.4 35 P0.3 36 P0.2 37 P0.1 38 P0.0 39 P3.6/WR 16 P3.7/RD 17 ALE 30 U1 89C51 1D 3 2D 4 3D 7 4D 8 5D 13 6D 14 7D 17 8D 18 1Q 2 2Q 5 3Q 6 4Q 9 5Q 12 6Q 15 7Q 16 8Q 19 GND 10 OE 1 VCC 20 G 11 U274LS373 +5V GND D0 D1 D2 D3 D4 D5 D6 D7 D0 D1 D2 D3 D4 D5 D6 D7 1D 3 2D 4 3D 7 4D 8 5D 13 6D 14 7D 17 8D 18 1Q 2 2Q 5 3Q 6 4Q 9 5Q 12 6Q 15 7Q 16 8Q 19 GND 10 OE 1 VCC 20 G 11 U2 74LS373 +5V GND D0 D1 D2 D3 D4 D5 D6 D7 单片机原理及应用教程(第 2 版) 24 片 74LS373,实现题目要 求。 这种电路,要求上电时,进行初始化设置, CLR P3.7 CLR P3.6 将 A 的值,输出到向上面的 373 时的程序: MOV P0,A SETB P3.7 NOP CLR P3.7 将 A 的值,输出到向下面的 373 时的程序: MOV P0,A SETB P3.6 NOP CLR P3.6 (4)图中 CPU 的型号为 STC12C5404, 其与 8031 兼容,但其内部资源较 8031 丰富。 主机与分机的该部分电路相同。 (5)8255 的电路,可以采用图 7-27,现以该图,实现题中要求。程序如下: 以字节形式输出状态 ORG 0 MOV DPTR.#7FF3;命令口 MOV A,#80H MOVX DPTR,A MOV A.0,FALG0 MOV A.1,FALG1 Y1 11.0592 C2 22PC122P R3 1K GND Vcc 8 GND 5 RO 1 RE 2 DE 3 DI 4 B 7 A 6 U2 MAX483 GND D2D3 D1 L1 220uh L2 220uh +5V P00 2 P01 6 P02 19 P03 22 P10/ADC0 16 P11/ADC1 17 P12/ADC2 18 P13/ADC3 20 P14/ADC4 21 P15/ADC5 23 P16/ADC6 24 P17/ADC7 25 P20 26 P21 27 P22 29 P23 30 P24 10 P25 11 P26 13 P27 14 P30/RXD 32 P31/TXD 1 P32/INT0 5 P33/INT1 7 P34 8 P35 9 P37 15 RST 31 XTAL1 4 XTAL2 3VCC 28 GND12 U1 STC12C5204 R13 10K R14 10K A B GND 各章习题参考答案 25 MOV A.2,FALG2 MOV A.3,FALG3 MOV A.4,FALG4 MOV A.5,FALG5 MOV A.6,FALG6 MOV A.7,FALG7 DEC DPTR MOVX DPTR,A 以位操作的形式输出状态 ORG 0 MOV DPTR.#7FF3;命令口 MOV A,#80H MOVX DPTR,A MOV DPTR.#7FF3;命令口 MOVA,#1 JB FLAG0,ST0 CLR A.0 ST0: MOVX DPTR,A MOVA,#3 JB FLAG0,ST1 CLR A.0 ST1: MOVX DPTR,A MOVA,#5 JB FLAG0,ST2 CLR A.0 ST2: MOVX DPTR,A MOVA,#7 JB FLAG0,ST3 CLR A.0 ST3: MOVX DPTR,A MOVA,#9 JB FLAG0,ST4 CLR A.0 ST4: MOVX DPTR,A MOVA,#0BH JB FLAG0,ST5 CLR A.0 ST5: MOVX DPTR,A 单片机原理及应用教程(第 2 版) 26 MOVA,#0DH JB FLAG0,ST6 CLR A.0 ST6: MOVX DPTR,A MOVA,#0FH JB FLAG0,ST7 CLR A.0 ST7: MOVX DPTR,A 各章习题参考答案 27 第 8 章习题参考答案 1填空题 (1)瞬间抖动5-10 (2)动态静态 (3)模数ADC数模DAC (4)变化越多越高越高位数 (5)50延时发光亮度不足 2选择题 (1)A (2)D (3)C (4)D 3简答题 (1)利用 P0 口做键盘,则要求 P0 口成为输
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 毕业论文查重修改
- 江西省水务集团有限公司2025年第二批社会招聘【25人】考试备考题库及答案解析
- 2025老师劳动合同范本
- 2025年采购合同变更官方范本
- 2025浙江省旅游投资集团人才招聘17人(第四批)考试模拟试题及答案解析
- 关于XX纪念白求恩教案教学设计
- 法语专业毕业论文音乐
- 投资分红合同
- 专业毕业论文有用吗现在
- 体育专业毕业论文方向
- 医务人员职业暴露与防护讲课
- 全过程造价咨询服务的质量承诺及保证措施
- 体适能评定理论与方法课件
- GB/T 44625-2024动态响应同步调相机技术要求
- 三级物联网安装调试员技能鉴定考试题及答案
- DB1507∕T 107-2024 奶牛乳房炎防治技术规范
- 景区旅游基础设施配套项目清单
- 《胃癌腹膜转移诊治中国专家共识(2023版)》解读
- YBT 189-2014 连铸保护渣水分含量(110℃)测定试验方法
- 星巴克劳动合同范本
- 07J912-1变配电所建筑构造
评论
0/150
提交评论