单片机原理及应用第二版课后习题答案_第1页
单片机原理及应用第二版课后习题答案_第2页
单片机原理及应用第二版课后习题答案_第3页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第 1 章单片机概述参考答案1.1 答:微控制器 ,嵌入式控制器1.2 答:cpu、 存储器 、i/o口、总线1.3 答:c 1.4 答:b 1.5 答:微处理器 、微处理机和cpu 它们都是中央处理器的不同称谓,微处理器芯片本身不是计算机 。而微计算机 、单片机它们都是一个完整的计算机系统, 单片机是集成在一个芯片上的用于测控目的的单片微计算机。嵌入式处理器一般意义上讲,是指嵌入系统的单片机、dsp、嵌入式微处理器。目前多把嵌入式处理器多指嵌入式微处理器,例如 arm7、arm9 等。嵌入式微处理器相当于通用计算机中的 cpu。与单片机相比,单片机本身 (或稍加扩展 )就是一个小的计算机系统

2、, 可独立运行 ,具有完整的功能。 而嵌入式微处理器仅仅相当于单片机中的中央处理器。为了满足嵌入式应用的特殊要求 ,嵌入式微处理器虽然在功能上和标准微处理器基本是一样的,但在工作温度 、抗电磁干扰 、可靠性等方面一般都做了各种增强。1.6 答:mcs-51 系列单片机的基本型芯片分别:8031 、8051 和 8071 。它们的差别是在片内程序存储器上。 8031 无片内程序存储器、8051 片内有 4k 字节的程序存储器rom ,而8751 片内有集成有4k 字节的程序存储器eprom 。1.7 答:因为 mcs-51 系列单片机中的“mcs ” 是 intel公司生产的单片机的系列符号,而

3、51 系列单片机是指世界各个厂家生产的所有与8051的内核结构 、指令系统兼容的单片机。1.8 答:相当于 mcs-51 系列中的 87c51 ,只不过是at89s51芯片内的4k 字节 flash存储器取代了87c51 片内的 4k 字节的 eprom 。1.9 单片机体积小 、价格低且易于掌握和普与,很容易嵌入到各种通用目的的系统中,实现各种方式的检测和控制。单片机在嵌入式处理器市场占有率最高, 最大特点是价格低,体积小。dsp 是一种非常擅长于高速实现各种数字信号处理运算(如数字滤波 、fft、频谱分析等 )的嵌入式处理器 。由于对其硬件结构和指令进行了特殊设计,使其能够高速完成各种复杂

4、的数字信号处理算法 。广泛地用于通讯、 网络通信 、数字图像处理 ,电机控制系统,生物信息识别终端, 实时语音压解系统等。这类智能化算法一般都是运算量较大, 特别是向量运算、指针线性寻址等较多 ,而这些正是dsp 的长处所在 。与单片机相比, dsp 具有的实现高速运算的硬件结构与指令和多总线,dsp 处理的算法的复杂度和大的数据处理流量以与片内集成的多种功能部件更是单片机不可企与的。嵌入式微处理器的基础是通用计算机中的cpu,它的地址总线数目较多能扩展较大的存储器空间, 所以可配置实时多任务操作系统(rtos) 。rtos 是嵌入式应用软件的基础和开发平台。正由于嵌入式微处理器能运行实时多任

5、务操作系统,所以能够处理复杂的系统管理任务和处理工作 。因此 ,广泛地应用在移动计算平台、媒体手机 、工业控制和商业领域(例如 ,智能工控设备 、atm 机等 ) 、电子商务平台、信息家电 (机顶盒 、数字电视 )以与军事上的应用。1.10 广义上讲 , 凡是系统中嵌入了“ 嵌入式处理器” ,如单片机 、dsp、嵌入式微处理器,都称其为 “ 嵌入式系统 ” 。但多数人把“ 嵌入 ” 嵌入式微处理器的系统,称为 “ 嵌入式系统 ” 。目前“ 嵌入式系统 ” 还没有一个严格和权威的定义。 目前人们所说的“ 嵌入式系统 ” ,多指后者 。第 2 章 at89s51单片机的硬件结构1答:at89s51

6、单片机的片内都集成了如下功能部件:( 1)1 个微处理器 (cpu);( 2)128 个数据存储器 (ram )单元;( 3)4k flash程序存储器 ;( 4)4 个 8 位可编程并行i/o口(p0 口、p1 口、p2 口、p3 口);( 5)1 个全双工串行口;( 6)2 个 16 位定时器/ 计数器 ;( 7) 1 个看门狗定时器;( 8)一个中断系统,5 个中断源 ,2 个优先级 ;( 9)25 个特殊功能寄存器(sfr),( 10)1 个看门狗定时器。2答:当脚为高电平时,单片机读片内程序存储器(4k 字节 flash)中的内容 ,但在 pc 值超过 0fffh (即超出 4k 字

7、节地址x 围)时 ,将自动转向读外部程序存储器内的程序; 当脚为低电平时,单片机只对外部程序存储器的地址为0000h ffffh 中的内容进行读操作 ,单片机不理会片内的4k 字节的 flash程序存储器 。3答:2s4答:1 个机器周期等于12 个时钟振荡周期。5. 答 :64k 程序存储器空间中有5 个特殊单元分别对应于5 个中断源的中断服务程序入口地址 ,见下表 :表 5个中断源的中断入口地址入口地址中断源0003h 外部中断 0 ( )000bh 定时器 0 (t0) 0013h 外部中断 1 ( )001bh 定时器 1 (t1) 0023h 串行口6. 答 :28h ;88h。7答

8、:50h ;88h。8答:p 标志位的值为0。9答:( a)错 ;( b)错;( c)对;( d)对。10. 答:04h; 00h;0 组。11 答:(a) 对;(b) 对;(c) 错;(d) 对。12. 答:字节地址00h-1fh的单元可作为工作寄存器区。13 答:(a) 错;(b) 错;(c) 错;(d) 错。14 答: (c)。15. 答:pc;pc。16 答:64k 字节 。17 p0 口每位可驱动8 个 lsttl 输入 ,而 p1、p2、p3 口的每一位的驱动能力,只有 p0口的一半 。当 p0 口的某位为高电平时,可提供 400ma 的电流 ;当 p0 口的某位为低电平(0.45

9、v)时,可提供 3.2ma的灌电流 , 如低电平允许提高,灌电流可相应加大。所以 ,任何一个口要想获得较大的驱动能力,只能用低电平输出。18 答:按下复位按钮 。19. 答:(a) 对; (b) 对;( c)错;( d)错 。20. 答:(a) 对; (b) 对;( c)对;( d)错 。第 3 章 at89s51的指令系统1答:( 1)错 (2) 错(3)对(4)错(5)错(6)错(7)错(8)对( 9)错 (10 )对(11 )对(12 )错。2答:( a)对 (b) 对(c)错(d)错。3答:a,pc,dptr。4答:只能使用直接寻址方式。5答:操作码 ,操作数 ,操作码 。6. 答 :

10、1031h 。7答:程序 ,数据 。8答:地址 。9答:a 的内容与b 的内容互换 。10 答:( a)=50h ,( sp)=50h ,( 51h)=30h ,( 52h )=50h ,( pc) 5030h 11 答:( a)anl a,#87h (b)anl a, #0c3h (c)orl a , #0ch 12 答:( a)=0cbh。13 答:( a)=00h ,( r3)=0aah。14 答:( dph) =3ch,( dpl)=5fh,( sp)=50h 15 答:( sp)=62h ,( 61h)=30h ,( 62h)=70h 。16 答:mov r7,a push acc

11、mov a,b movx dptr ,a 17 答:( d)。18 答:( c)。19 答:基本型的51 子系列单片机,由于其片内ram的地址 x 围为 00h 7fh,而 80h ffh 为特殊功能寄存器区,而对特殊功能寄存器寻址,只能使用直接寻址方式。 对片内 ram寻址 ,当使用寄存器间接寻址是采用r0 或 r1 作为间接寻址的,因此 r0 或 r1 的内容不能超过 7fh。增强型的 52 子系列单片机,片内 ram的地址 x 围为 00h ffh,因此作为间接寻址寄存器的r0 或 r1 的内容就不受限制。第 4 章 at89s51汇编语言程序的设计与调试参考答案1答:伪指令是程序员发给

12、汇编程序的命令,只有在汇编前的源程序中才有伪指令,即在汇编过程中的用来控制汇编过程的命令。所谓 “ 伪” 是体现在汇编后,伪指令没有相应的机器代码产生 。常用伪指令与其功能如下:org ( origin )汇编起始地址命令;end(end of assembly)汇编终止命令;equ(equate )标号赋值命令 ;db(define byte)定义数据字节命令;dw (define word )定义数据字命令;ds(define storage)定义存储区命令;bit 位定义命令2答:手工汇编 :通过查指令的机器代码表(表 3-2 ), 逐个把助记符指令“ 翻译 ” 成机器代码 ,再进行调试

13、和运行。 这种人工查表 “ 翻译 ” 指令的方法称为“ 手工汇编 ” 。机器汇编 :借助于微型计算机上的软件( 汇编程序 ) 来代替手工汇编。通过在微机上运行汇编程序 ,把汇编语言源程序翻译成机器代码。反汇编 :将二进制的机器码程序翻译成汇编语言源程序的过程称为“ 反汇编 ” 。3答:从 1000h 开始的各有关存储单元的内容(16进制 ) 如下 :4d 41 49 4e 12 34 30 00 00 70 78 7f e4 f6 d8 fd 75 81 07 02 4在编写子程序时应注意以下问题:(1)子程序的第一条指令前必须有标号。(2)主程序调用子程序,有如下两条子程序调用指令:绝对调用

14、指令acall addr11。被调用的子程序的首地址与绝对调用指令的下一条指令的高 5 位地址相同 ,即只能在同一个2kb 区内 。长调用指令lcall addr16。addr16为直接调用的目的地址,被调用的子程序可放置在 64kb 程序存储器区的任意位置。(3)子程序结构中必须用到堆栈,用来保护断点和现场保护。(4)子程序返回时 ,必须以 ret 指令结束 。(5)子程序可以嵌套,但要注意堆栈的冲突。5答:参考程序如下:mov a,45h anl a,#0fh orl a,#0fh mov 45h,a 6答:a=80h ,sp=40h ,(41h)=50h,(42h)=80h ,pc=80

15、50h 7答:参考程序如下:start:mov r0,#30h mov r2,#20h loop: mov a,r0 cjne a,#0aah,next mov 51h,#01h ljmp exit next: inc r0 djnz r2,loop mov 51h,#00h exit: ret 8答:参考程序如下:start:mov 41h,#0 mov r0,#20h mov r2,#20h loop:mov a,r0 jnz next inc 41h next:i nc r0 djnz r2,loop ret 9答:参考程序如下:org 0100h mov r2, #20h 要比较的数据

16、字节数mov a , #21h mov r1 , a dec r2 mov a , r1 loop: mov r3,a dec r1 clr c subb a,r1 jnc loop1 mov a,r1 sjmp loop2 loop1: mov a,r3 loop2: djnz r2, loop mov r0,a ret 10 答:(1)sp=sp+1=61h (61h)=pc的低字节 =03h sp=sp+1=62h (62h)=pc的高字节=20h (2)pc=3456h (3)可以(4)2kb 2048 byte 11 答:可对程序做如下修改:org 0100h del: mov r7

17、, #200 del1: mov r6, #123 ; 将原来的立即数125 改为 123 del2: djnz r6, del2 nop ; 增加的指令djnz r7, del1 ret 程序修改后的延时时间为:1+(1+123*2+1+2)*200+2=50003us=50.003ms 第 5 章 at89s51的中断系统参考答案1答:0013h ;001bh 2答:串行口中断 ; 外部中断 1 3答:reti 指令在返回的同时清除相应的优先级触发器,以允许下次中断,而 ret 指令则没有这个操作。 除了这一点两条指令不同外,其它操作都相同。4答:d 5答:在一个单一中断的系统里,at89

18、s51单片机对外部中断请求的响应时间总是在38 个机器周期之间。在下述三种情况下,at89s51将推迟对外部中断请求的响应:(1)at89s51正在处理同级或更高优先级的中断。(2)所查询的机器周期不是当前正在执行指令的最后一个机器周期。(3)正在执行的指令是reti 或是访问ie 或 ip 的指令 。如果存在上述三种情况之一,at89s51将丢弃中断查询结果,将推迟对外部中断请求的响应。6答:d 7答:pc、pc、 程序存储器8答: 参考程序段如下:setb it1 setb ex1 setb ea 9答:( a)10 答:一个中断源的中断请求被响应,必须满足以下必要条件:(1)总中断允许开

19、关接通,即 ie 寄存器中的中断总允许位ea=1。(2)该中断源发出中断请求,即该中断源对应的中断请求标志为“1” 。(3)该中断源的中断允许位=1,即该中断被允许。(4)无同级或更高级中断正在被服务。11 答:( a)、(c)、( d)12 答:参见电路如图5-10 ,参考程序如下 :org 0000h ljmp main org 0013h ljmp int_ex1 org 0030h main: clr it0 ;采用电平触发,低电平有效中断setb ex1 ;允许外部中断1 setb ea ;插入一段用户程序wait: mov pcon,#01h ;单片机进入休眠方式等待中断nop l

20、jmp wait ; 以下为外部中断1 服务子程序int_ex1 :p1.2 ,next1 ;判断是不是3 号中断ljmp int_ir3 ;跳转到 3 号中断处理程序next1: p1.1 ,next2 ;判断是不是2 号中断ljmp int_ir2 ;跳转到 2 号中断处理程序next2: ljmp int_ir1 ;跳转到 1 号中断处理程序org 1000h int_ir3: 相应中断处理程序reti ;中断返回org 1100h int_ir2: 相应中断处理程序reti ;中断返回org 1200h int_ir1: 相应中断处理程序reti ;中断返回第 6 章 at89s51的

21、定时 / 计数器参考答案1答:( a)对 ;( b)错;( c)错;( d)错;2答:因为机器周期:所以定时器 / 计数器工作方式0 下,其最大定时时间为同样可以求得方式1 下的最大定时时间为262.144ms;方式 2 下的最大定时时间为1024ms 。3答:定时 / 计数器作定时时,其计数脉冲由系统振荡器产生的内部时钟信号12 分频后提供。 定时时间与时钟频率和定时初值有关。4答:由于确认1 次负跳变要花2 个机器周期 ,即 24 个振荡周期 ,因此外部输入的计数脉冲的最高频率为系统振荡器频率的1/24 。5答:定时器 / 计数器 t0 在计数和定时工作完成后,均采用中断方式工作。除了第一

22、次计数工作方式设置在主程序完成外,后面的定时或计数工作方式分别在中断程序完成, 用一标志位识别下一轮定时器/ 计数器 t0 的工作方式 。参考程序如下:org 0000h ljmp main org 000bh ljmp it0p main: mov tmod,#06h ; 定时器 / 计数器 t0 为计数方式2 mov tl0,#156;计数 100 个脉冲的初值赋值mov th0,#156 setb gate;打开计数门setb tr0;启动 t0, 开始计数setb et0;允许 t0 中断setb ea;cpu 开中断clr f0 ;设置下一轮为定时方式的标志位wait: ajmp w

23、ait it0p: clr ea;cpu 关中断f0,count ;f0=1 ,转计数方式设置mov tmod,#00h ;定时器 / 计数器 t0 为定时方式0 mov th0,#0feh ;定时 1ms 初值赋值mov tl0,#0ch setb ea reti count: mov tmod,#06h mov tl0,#156 setb ea reti 6. 答 :定时器 / 计数器的工作方式2 具有自动恢复初值的特点,适用于精确定时,比如波特率的产生 。7. 答 :根据题意 ,从 p1.0输出的矩形脉冲的高低电平的时间为10:1 ,则高低电平的时间分别为 363.63 s和 36.37

24、 s 。如果系统采用6mhz 晶振的话 ,t cy=2s , 因此高低电平输出取整,则约为 364s和 36s 。参考程序如下 :org 0000h ljmp main org 000bh ljmp it0p main: mov tmod,#02h ;定时器 / 计数器 t0 为定时方式2 mov tl0,#4ah ;定时 364s初值赋值setb tr0 ;启动 t0,开始计数setb et0 ;允许 t0 中断setb ea ;cpu 开中断setb p1.0 wait :ajmp wait it0p :clr ea clr p1.0 ;关中断mov r0,#9 dly: djnz r0,

25、dly ;延时 36smov tl0,#4ah ;定时 364s初值赋值setb p1.0 setb ea reti 8. 答 :方法 1,在第一个定时器的中断程序里关闭本定时器的中断程序,设置和打开另一个定时器 ;在另一个定时器的中断程序中关闭本定时中断,设置和打开另一个定时器。这种方式的定时时间为两个定时器定时时间的和。方法 2,一个作为定时器,在定时中断后产生一个外部计数脉冲(比如由 p1.0接产生 ), 另一个定时器工作在计数方式。这样两个定时器的定时时间为一个定时器的定时时间乘以另一个定时器的计数值。9. 答 :由 t1(p3.5)口控制定时器t1 的启动和关闭。10. 答:采用方式

26、1 定时工作方式。最大脉冲宽度为131.072ms。11. 答:将 p1.1的输入脉冲接入int0 ,即使用 t0 计数器完成对p1.1口的脉冲计数 。参考程序如下 :org 0000h ljmp main org 000bh ljmp it0p main: jnb p1.0,main mov tmod,#05h ;定时器 / 计数器 t0 为计数方式1 setb tr0 ;启动 t0 ,开始计数setb et0 ;允许 t0 中断setb ea ;cpu 开中断wait: p1.2,wait clr ea clr tr0 mov r1,th0 mov r0,tl0 ajmp $ it0p:

27、inc r2 reti 12. 答:thx 与 tlx (x=0,1)是由特殊功能寄存器构成的计数器,其内容可以随时用指令更改 ,更改后的新值是立即刷新。 但在读 thx、tlx 的值时 ,应该先读thx 值,后读 tlx ,再读 thx。若两次读得thx 相同 ,则可确定读得的内容正确。若前后两次读得的thx 有变化, 再重复上述过程。第 7 章 at89s51的串行口参考答案1答:方式 1。2答:相等的 。3答:a对; b对 ;c 错;d对;e对。4答:c 5答:c 6答:当接收方检测到rxd 端从 1 到 0 的跳变时就启动检测器,接收的值是3 次连续采样, 取其中 2 次相同的值 ,以

28、确认是否是真正的起始位的开始, 这样能较好地消除干扰引起的影响 ,以保证可靠无误的开始接受数据。7答:串行口有4 种工作方式 :方式 0、 方式 1、方式 2、方式 3;有 3 种帧格式 ,方式 2和 3 具有相同的帧格式;方式 0 的发送和接收都以fosc/12为固定波特率 ,方式 1 的波特率 =2smod/32 定时器 t1 的溢出率方式 2 的波特率 =2smod/64 fosc 方式 3 的波特率 =2smod/32 定时器 t1 的溢出率8答:字符 “b” 的 ascii码为 “42h” ,帧格式如下 :9答:因为定时器 / 计数器在方式2 下, 初值可以自动重装,这样在做串口波特

29、率发生器设置时,就避免了执行重装参数的指令所带来的时间误差。设定时器 t1 方式 2 的初值为 x,计算初值x 可采用如下公式:波特率 = 10 答:经计算 ,计数初值为fah,初始化程序如下:anl tmod,#0f0h ;屏蔽高 4 位orl tmod,#20h ;控制字mov th1,#0fah ;写入计数初值mov tl1,#0fah mov scon,#40h 11 答:见 7.3节的介绍 。12 答:见小节的介绍13 答:串口每秒钟传送的字符为:1800/60=30个字符 / 秒所以波特率为:30 个字符 / 秒 10位/ 个字符 =300b/s 14 答:串行口的方式0 为同步移

30、位寄存器输入输出方式, 常用于外接移位寄存器,以扩展并行 i/o口, 一般不用于两个mcs-51 之间的串行通信。该方式以 fosc/12的固定波特率从低为位到高位发送或接受数据。15 答:直接以 ttl 电平串行传输数据的方式的缺点是传输距离短,抗干扰能力差。因此在串行传输距离较远时,常采用 rs-232c 、rs-422a和 rs-485标准串行接口 。 主要是对传输的电信号不断改进,如 rs-232c传输距离只有几十米远,与直接以ttl 电平串行传输相比,采用了负逻辑 ,增大 “ 0”、“ 1”信号的电平差 。而 rs-422a和 rs-485都采用了差分信号传输, 抗干扰能力强,距离可

31、达 1000多米 。rs-422a为全双工 ,rs-485为半双工 。第 8 章 at89s51单片机扩展存储器的设计参考答案1答:程序 、数据 。2答:80h 。3答:片选 。4答:16kb 。5答:程序 、数据 。6答:2k,14 。7答:0fffh 。8答:( d)9答:本题主要考察对外部存储器的读、 写操作 ,只要记住正确使用movx指令就可以了。编程思路 :首先读取2001h 的值 ,保存在寄存器a 中, 将寄存器a 的高四位和低四位互换,再屏蔽掉低四位然后将寄存器a 的值保存到30h 中,然后再读取2002h的值 , 保存在寄存器a 中 ,屏蔽掉高四位,然后将寄存器a 的值与 30

32、h 进行或运算 ,将运算后的结果保存在2002h 中。org 0000h main :mov dptr,#2001h ;设置数据指针的初值movx a, dptr ;读取 2001h 的值swap a anl a, #0f0h ;屏蔽掉低四位mov 30h,a ;保存 a inc dptr ;指针指向下一个movx a, dptr ;读取 2002h 的值anl a, #0fh ;屏蔽掉高四位orl a, 30h ;进行拼装movx dptr ,a ;保存到 2002h end 10 答:本题主要考察对外部数据块的写操作; 编程时只要注意循环次数和movx指令的使用就可以了 。org 0000

33、h main :mov a,#0 ;送预置数给a mov r0,#0ffh ;设置循环次数mov dptr,#4000h ;设置数据指针的初值loop:movx dptr , a ;当前单元清零in c dptr ;指向下一个单元djnz r0,loop ;是否结束end 11 答:因为控制信号线的不同:外扩的 ram芯片既能读出又能写入,所以通常都有读写控制引脚,记为 oe* 和 we*。外扩ram的读 、写控制引脚分别与at89s51的 rd*和 wr*引脚相连 。外扩的 eprom在正常使用中只能读出,不能写入 ,故 eprom芯片没有写入控制引脚,只有读出引脚 ,记为 oe* ,该引脚

34、与at89s51单片机的psen* 相连 。12 答:图中采用了译码法。4 片地址分别为0000h-3fffh、4000h-7fffh、8000h-bfffh、c000h-ffffh 。13 答:(1)参见图 8-20或图 8-21 ,去掉一片 2764 。(2)指出该应用系统程序存储器空间和数据存储器空间各自的地址x 围。14 答:(1)a 组跨接端子的内部正确连线图(2)b 组跨接端子的内部正确连线图注意 :答案不唯一 ,还有其他连接方法,也可满足题目要求。第 9 章 at89s51扩展 i/o接口的设计参考答案1答:(a)错, 81c55 具有地址锁存功能;(b)错, 在 81c55 芯

35、片中 ,引脚 io/m*、a2、a1、 a0 决定端口地址和ram单元编址 ;(c)错, 82c55 不具有三态缓冲器;(d)错, 82c55 的 b 口只可以设置成方式0 和方式 1。2答:i/o端口简称i/o口,常指 i/o接口电路中具有端口地址的寄存器或缓冲器。i/o接口是指单片机与外设间的i/o接口芯片 ;i/o接口功能 :(1) 实现和不同外设的速度匹配; (2) 输出数据缓存;(3) 输入数据三态缓冲。3答:3 种传送方式 : (1) 同步传送方式:同步传送又称为有条件传送。当外设速度可与单片机速度相比拟时,常常采用同步传送方式。(2) 查询传送方式:查询传送方式又称为有条件传送

36、,也称异步传送。单片机通过查询得知外设准备好后,再进行数据传送。 异步传送的优点是通用性好, 硬件连线和查询程序十分简单,但是效率不高 。 (3) 中断传送方式:中断传送方式是利用at89s51本身的中断功能和i/o接口的中断功能来实现i./o数据的传送 。单片机只有在外设准备好后,发出数据传送请求,才中断主程序 , 而进入与外设进行数据传送的中断服务程序, 进行数据的传送。中断服务完成后又返回主程序继续执行。因此 ,中断方式可大大提高工作效率。4答:两种 。(1) 独立编址方式:独立编址方式就是i/o地址空间和存储器地址空间分开编址 。独立编址的优点是i/o地址空间和存储器地址空间相互独立,

37、界限分明 。但却需要设置一套专门的读写i/o的指令和控制信号。(2) 统一编址方式:这种方式是把i/o端口的寄存器与数据存储器单元同等对待, 统一进行编址 。统一编址的优点是不需要专门的i/o指令, 直接使用访问数据存储器的指令进行i/o操作 。at89s51单片机使用的是i/o和外部数据存储器ram统一编址的方式。5答: 82c55通过写入控制字寄存器的控制字的最高位来进行判断,最高位为1 时, 为方式控制字 ,最高位为0 时,为 c 口按位置位 / 复位控制字 。6答:本题主要考察对82c55 的 c 口的操作 。其方式控制字的最高位为0 时,低四位控装置对 c 口置复位 。 由题目可知方

38、式控制寄存器的地址为7fffh 。org 0100h main: mov dptr,#7fffh ;控制字寄存器地址7fffh 送 dptr mov a,#0eh ;将 pc7 置 0 movx dptr,a mov a,#09h ;将 pc4 置 1 movx dptr,a end 7答:当外设输入一个数据并送到pa7 pa0 上时 , 输入设备自动在选通输入线 a 向82c55 发送一个低电平选通信号,则把 pa7-pa0上输入的数据存入pa 口的输入数据缓冲/锁存器 ;然后使输入缓冲器输出线ibfa变成高电平 ,以通知输入设备,82c55 的 pa 口已收到它送来的输入数据。82c55

39、检测到联络线 a 由低电平变成了高电平、ibfa 为 1 状态和中断允许触发器intea 为 1 时,使输出线intra (pc3)变成高电平 , 向 at89s51发出中断请求 。(intea 的状态可由用户通过对pc4 的置位 / 复位来控制 。at89s51响应中断后 ,可以通过中断服务程序从pa 口的输入数据缓冲/ 锁存器读取外设发来的输入数据。当输入数据被 cpu 读走后 ,82c55撤销 intra 上的中断请求 ,并使 ibfa 变为低电平 ,以通知输入外设可以送下一个输入数据。8答:81c55 的端口有以下几种: 命令 / 状态寄存器 、pa 口、pb 口、pc 口、计数器的高

40、8位寄存器与低8 位寄存器以与ram单元 。 引脚 io/ ,a2、 a1、a0 决定端口地址。timerin是计数脉冲输入引脚,输入脉冲的上跳沿用于对81c55 片内的 14 位计数器减1。为计数器输出引脚。当 14 位计数器减为0 时就可以在该引线上输出脉冲或方波,输出的信号的波形与所选的计数器工作方式有关。9答:电路图可以参考图9-10 ,pa 口每一位接二极管的正极,二极管的负极接地。 pb 口每 1 位接一开关和上拉电阻,开关另一端直接接地。这样只需要将读到的pb 口的值送给pa口就可以满足题目要求了。org 0100h mian :mov a,#10000010b ;设置 pa 口

41、方式 0 输出 , pb 口方式 0 输入mov dptr,#0ff7fh ;控制口地址送dptr movx dptr,a ;送方式控制字mov dptr,#0ff7dh ;pb 口地址送 dptr movx a, dptr ;读入开关信息mov dptr,#0ff7ch ;pa 口地址送 dptr movx dptr,a ;pa 口的内容送pb 口点亮相应的二极管end 10 答:81c55 计数器的初值x 围是 :3fffh-2h 。当频率为4mhz,初值为 3fffh 时,最大定时时间为 :0.004096s 11 答:将 1mhz 的脉冲改变为10ms 的方波 ,实际上就是分频。分频前

42、后频率之比为100:1,这样只要将定时器初值设置为64h 就可以了 。(假设 i/o口地址为 7f00h-7f05h )start:mov dp tr,#7f04h ;指针指向计数器低8 位mov a,#64h ;送初值给 a movx dptr,a ;初值送给计数器低 8 位inc dptr ;指向计数器高8 位mov a,#40h ;计数器方波输出movx dpte,a mov dptr,#7f00h ;指向命令 / 状态口mov a,#0c2h ;设定控制字movx dpte,a ;启动计数器end 第 10 章 at89s51与键盘 、显示器 、拨盘 、打印机的接口设计参考答案1.答:

43、a max7219是专用显示器芯片,不用于键盘 ;b错:ch451 芯片也可用于控制键盘 ; c对 : busy 信号可作为查询信号或中断请求信号使用,但此时信号不用;e错:led 数码管的字型码是可以变的,例如表 10-1中的 “a” 段对应段码字节的最高位。“ dp”段对应段码字节的最低位,字型码就改变了。2.答:在按键的闭合和断开过程中,由于开关的机械特性,导致了按键抖动的产生。如果不消除按键的机械抖动,按键的状态读取将有可能出现错误。消除按键抖动一般是采用软件或硬件去抖。软件去抖的原理:在第一次检测到有键按下时,该键所对应的行线是为低电平 ,执行一端延时10ms 的子程序后 ,确认该行

44、线电平是否仍然为低电平,如果仍为低电平 ,则确认为该行确实有键按下。3.答:静态显示时 ,数据是分开送到每一位led 上的 。而动态显示则是数据是同时送到每一个 led 上,再根据位选线来确定是哪一位led 被显示 。静态显示亮度很高,但口线占用较多 。动态显示口线占用较少,适合用在显示位数较多的场合。4.答:80h( 共阴极 ); 7fh( 共阳极 )。5.答:按键设置在行、列线交点上 ,行、列线分别连接到按键开关的两端。行线通过上拉电阻接到 +5v 上,无按键按下时 ,行线处于高电平状态,而当有按键按下时,行线电平状态将由与此行线相连的列线的电平决定。列线的电平如果为低,则行线电平为低;

45、列线的电平如果为高,则行线的电平亦为高。将行 、列线信号配合起来并做适当的处理,才能确定闭合键的位置。6.答:先对 p1 口高四位送低电平,读取 p1 口低四位的值;再对 p1 口低四位送低电平,读取 p1 口高四位的值 ,将两次读到的值组合在一起就得到了按键的特征码,在根据特征码查找键值。keyin: mov p1,#0fh ;反转读键mov a,p1 anl a,#0fh mov b,a mov p1,#0f0h mov a,p1 anl a,#0f0h orl a,b cjne a,#0ffh,keyin1 ret ;未按键keyin1: mov b,a ;暂存特征码mov dptr,#

46、keycod ;指向特征码表mov r3,#0ffh ;顺序码初始化keyin2: inc r3 mov a,r3 movc a,a+dptr cjne a,b,keyin3 mov a,r3 ;找到 ,取顺序码ret keyin3: cjne a,#0ffh ,keyin2 ;未完 ,再查ret ;已查完 ,未找到 ,以未按键处理keycod: db 0e7h,0ebh,0edh,0eeh ;特征码表db 0d7h,0dbh,0ddh,0deh db 0b7h,0bbh,0bdh,0beh db 77h,7bh,7dh,7eh 7.答:( 1)编程扫描方式 :当单片机空闲时, 才调用键盘扫描

47、子程序,反复的扫描键盘,等待用户从键盘上输入命令或数据,来响应键盘的输入请求。(2)定时扫描工作方式:单片机对键盘的扫描也可用定时扫描方式,即每隔一定的时间对键盘扫描一次。(3)中断工作方式 :只有在键盘有键按下时,才执行键盘扫描程序并执行该按键功能程序, 如果无键按下 ,单片机将不理睬键盘。8.答:db0-db7 :数据线 ,单向传输 , 由单片机输入给打印机。stb(strobe): 数据选通信号 。在该信号的上升沿,数据线上的8 位并行数据被打印机读入机内锁存。busy:打印机忙状态信号。当该信号有效(高电平 )时,表示打印机正忙于处理数据。此时 ,单片机不得使stb 信号有效 ,向打印

48、机送入新的数据。ack:打印机的应答信号。 低电平有效 ,表明打印机已取走数据线上的数据。err:出错信号 。当送入打印机的命令格式出错时 ,打印机立即打印1 行出错信息 ,提示出错 。在打印出错信息之前。该信号线出现一个负脉冲,脉冲宽度为30us 。单片机与打印机相连时,分为直接相连(图 10-27)和通过扩展的并行i/o口 82c55 连接(图 10-28 )。 直接相连时 (图 10-27 ), 打印机在输入电路中有锁存器,在输出电路中有三态门控制 ,。没有读 、写信号 , 只有握手线 、busy(或), 用一根地址线来控制写选通信号 stb 和读取 busy 引脚状态 。图 10-28

49、所示为通过扩展的并行i/o口 82c55 连接的打印机接口电路 。采用查询法 ,即通过读与82c55 的 pc0 脚的相连的busy 状态 ,来判断送给打印机的一个字节的数据是否处理完毕。也可用中断法 (busy 直接与单片机的引脚相连)。9答:本程序采用外部中断来进行数据打印,先打印一个数据,当 busy 线从高电平变成低电平时 ,在打印下一个数据org 0000h ljmp main org 0003h ljmp in org 0030h main: setb ex0 ;允许外部中断setb it0 setb ea mov r0,#7fh ;控制口地址mov a,#81h ;控制字movx

50、 r0,a mov r1,#20h ;数据区首地址mov r2,#19 ;计数器mov a,r1 ;打印内容mov r0,#7ch ;a 口地址movx r0,a mov r0,#7fh mov a,#0eh movx ro,a ;pc70 mov a,#0fh movx r0,a ;pc7=1 sjmp $ in: djnz r2,ex ;20 个数据都结束了吗?inc r1 ;指向下一个数据mov a,r1 mov r0,#7ch movx r0,a mov r0,#7fh mov a,#0eh movx ro,a mov a,#0fh movx r0,a ex: reti 第 11 章

51、at89 s51 单片机与d/a 转换器 、 a/d 转换器的接口参考答案1答:由运算放大器构成的i/v转换电路2答:同步3答:( 1)错 ,d/a 转换器也要考虑“ 转换速度 ” 或“ 转换时间 ” 问题 , 即建立时间 ( 转换时间);( 2)对;( 3)错,是 d/a 转换器的分辨率;( 4)对。9.答:da 转换器的主要技术指标如下:分辨率 :da 转换器的分辨率指输入的单位数字量变化引起的模拟量输出的变化,是对输入量变化敏感程度的描述。建立时间 :建立时间是描述da 转换速度快慢的一个参数,用于表明转换速度。其值为从输入数字量到输出达到终位误差 (12)gb( 最低有效位 ) 时所需

52、的时间。转换精度 :理想情况下 ,精度与分辨率基本一致,位数越多精度越高。严格讲精度与分辨率并不完全一致 。只要位数相同,分辨率则相同 但相同位数的不同转换器精度会有所不同。当 dac 为二进制12 位,满量程输出电压为5v 时, 分辨率为 1.22 mv 10.答:ad 转换器的两个最重要指标:(1) 转换时间和转换速率- 转换时间ad 完成一次转换所需要的时间。转换时间的倒数为转换速率。 (2) 分辨率 -a d 转换器的分辨率习惯上用输出二进制位数或bcd 码位数表示 。11.答:量化误差是由于有限位数字且对模拟量进行量化而引起的;最大的量化误差为0.195% ;12.答:目前应用较广泛

53、的主要有以下几种类型:逐次逼近式转换器、双积分式转换器、 - 式 ad 转换器 。逐次逼近型ad 转换器 :在精度 、速度和价格上都适中,是最常用的 ad 转换器件 。双积分 ad 转换器 :具有精度高 、抗干扰性好 、价格低廉等优点,但转换速度慢,近年来在单片机应用领域中也得到广泛应用。 - 式 ad 转换器 :具有积分式与逐次逼近式adc 的双重优点 ,它对工业现场的串模干扰具有较强的抑制能力,不亚于双积分adc,它比双积分adc 有较高的转换速度。与逐次逼近式adc 相比,有较高的信噪比, 分辨率高 ,线性度好 ,不需要采样保持电路。13.答:对 dac 来说 , 分辨率反映了输出模拟电

54、压的最小变化量。而对于 adc 来说 ,分辨率表示输出数字量变化一个相邻数码所需输入模拟电压的变化量。量化误差是由adc 的有限分辨率而引起的误差,但量化误差只适用于adc, 不适用于 dac。 精度与分辨率基本一致 , 位数越多精度越高。严格讲精度与分辨率并不完全一致。只要位数相同 ,分辨率则相同 。但相同位数的不同转换器,精度可能会有所不同,例如由于制造工艺的不同。14.答: 接口电路可参见图11-20 。参考程序如下 :main :mov r0,#20h mov r1,#00h mov r2,#00h mov r3,#50 mov r8,#08h loop:mov dptr,#7ff8h

55、 loop1:movx dptr ,a mov r6,#0a h delay:nop nop nop djnz r6,delay movx a,dptr inc dptr mov r2,dpl mov dph,r0 mov dpl,r1 movx dptr ,a inc dptr mov r0,dph mov r1,dpl mov dph,#7fh mov dpl,r2 djnz r7,loop1 lcall delay1m ;延时 1 分钟 (子程序另外编写)djnz r3,loop 第 12 章单片机的串行扩展技术参考答案1答:系统连接简单:i2c总线系统的基本结构如图12-7 。i2c

56、总线系统直接与具有i2c总线接口的各种扩展器件(如存储器 、i/o芯片 、 a/d 、d/a 、键盘 、显示器 、日历 / 时钟 )连接 。i2c 总线对各器件寻址采用纯软件的寻址方法,无需片选线的连接,这样就大大简化了总线数量 ,系统各部件之间的连接只需两条线。数据传输速率较高:在标准 i2c普通模式下 , 数据的传输速率为100kbit/s,高速模式下可达 400kbit/s。2答: i2c总线的起始信号和终止信号都由主机发出,在起始信号产生后, 总线就处于占用状态 ;在终止信号产生后,总线就处于空闲状态。由图 12-9见起始信号和终止信号的规定。(1)起始信号 (s)。在 scl 线为高

57、电平期间,sda 线由高电平向低电平的变化表示起始信号, 只有在起始信号以后,其他命令才有效。(2)终止信号 (p)。在 scl 线为高电平期间,sda 线由低电平向高电平的变化表示终止信号。 随着终止信号的出现,所有外部操作都结束。3答:无论 i2c 总线上的数据传输方向由寻址字节中的数据传输方向位规定:寻址字节器件地址引脚地址方向位da3 da2 da1 da0 a2 a1 a0 r/ =1,表示主机接收(读 )。r/ =0, 表示主机发送 ( 写)。4答:单片机对i2c总线中的器件寻址采用软件寻址,主机在发送完起始信号后,立即发送寻址字节来寻址被控的从机,寻址字节格式如题3 所示 。7

58、位从机地址即为“ da3 、da2、da1、 da0 ”和“a2 、a1、a0”。其中 “da3 、da2、da1、da0 ”为器件地址 , 是外围器件固有的地址编码 ,器件出厂时就已经给定。“ a2 、a1、a0” 为引脚地址 ,由器件引脚a2、a1、 a0在电路中接高电平或接地决定(见图 12-12 ) 。5答:i2c总线数据传送时,传送的字节数(数据帧 ) 没有限制 ,每一字节必须为8 位长 。数据传送时 ,先传送最高位,每一个被传字节后面都须跟1 位应答位 (一帧数据共9 位),如图 12-10 。i2c总线在传送每一字节数据后都须有应答信号a,a 信号在第9 个时钟位上出现 ,a 信

59、号对应的时钟由主机产生。这时发方须在该时钟位上使sda 线处于高电平,以便收方在这一位上送出低电平的应答信号a。由于某原因收方不对主机寻址信号应答时,例如接收方正在进行其他处理而无法接收总线上的数据时 ,必须释放总线 ,将数据线置为高电平,而由主机产生一个终止信号以结束总线的数据传送 。当主机接收来自从机的数据时,接收到最后一个数据字节后,必须给从机发送一个非应答信号(), 使从机释放数据总线,以便主机发送一个终止信号,从而结束数据的传送。6答:依照下面的数据传送格式:s 从机地址0 a 数据a/ sr 从机地址 r 1 a 数据p 依次调用依照上述数据传送格式的小节中的各子程序。第 13 章

60、 at89s51单片机的应用设计与调试参考答案1答:a错; b错 ;c 对;d错(最小系统不能直接测量模拟信号)。2答:用户样机是以at89s51单片机为核心的应用系统, 没有对单片机中的程序进行检错调试的手段 ,也无法发现程序运行中的设计硬件的问题,也无法进行软件的开发( 如编辑 、汇编、 调试程序等 ), 因此 ,必须借助某种开发工具-仿真开发系统所提供的开发手段来解决上述问题 。3答:仿真开发系统由哪几部分组成? 目前国内大多使用通用机的仿真开发系统。主要由 pc 机、在线仿真器组成,有的还包含有用于程序烧录的编程器,在加上与上述配套的编辑软件、仿真调试软件 ,程序烧录软件等。此外还有独

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论