单片机课后部分答案_第1页
单片机课后部分答案_第2页
单片机课后部分答案_第3页
单片机课后部分答案_第4页
单片机课后部分答案_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

1、1.12写出下列各十进制数在八位微型计算机中的原码、反码和补码形式。 X=+38 X=+76 X=-54 X=-115 X=-42解: X原=X反=X补=00100110 B; X原=X反=X补=01001100 B X原=10110110B,X反=11001001B,X补=11001010B X原=11110011B,X反=10001100B,X补=10001101B X原=10101010B,X反=11010101B,X补=11010110B1.13已知原码如下,写出其反码和补码。 X原=01011001B X原=11011001B X原=00101110B X原=1111100B解: X

2、原=X反=X补=01011001 B; X原=11011001B, X反=10100110B,X补=10100111B1.14先把下列各数转换成二进制数,然后按补码运算规则求出X+Y补及其真值。 X=+46,Y=+55 X=+78, Y=+15 X=-51,Y=+97 X=+112, Y=-83解: X 补=00101110B,Y补=00110111B;X+Y补=01100101B=+101D X 补=01001110B,Y补=00001111B;X+Y补=01011101B=+93D X 补=11001101B,Y补=01100001B;X+Y补=00101110B=+46D X 补=011

3、10000B,Y补=10101101B;X+Y补=00011101B=+29D1.15已知X和Y的补码,计算X+Y补和X-Y补,并判断运算结果是否有溢出。 X补=10011011B X补=00100110B X补=10110001B Y补=11100011B Y补=00010111B Y补=10001110B解: X+Y补=1 01111110B,C7C6=10=1,结果溢出; -Y补= 00011101B,X-Y补=0 10111000B,C7C6=00=0,结果无溢出; X+Y补=0 00111101B,C7C6=00=0,结果无溢出; -Y补=11101001B,X-Y补=1 00001

4、111B,C7C6=11=0,结果无溢出; X+Y补=1 00111111B,C7C6=10=1,结果溢出; -Y补= 01110010B,X-Y补=1 00100011B,C7C6=11=0,结果无溢出;第2章 2.1, 8051单片机内部结构主要有哪些部件组成?它们的主要功能各是什么? 答:8051单片机内部结构主要有:(1)中央处理器CPU,是单片机的核心,完成运算和控制功能;(2)内部数据存储器(256字节),前面128个单元00H7FH存储内部数据,后面128个单元80HFFH被专用寄存器占用,用来实现对片内各部件进行管理、控制、监视;(3)程序计数器PC,是一个16位专用寄存器,其

5、内容为下一条执行指令的地址;(4)内部程序存储器ROM(4K),用于存储程序、原始数据、表格等;(5)4个并行I/O口(8位),实现数据的并行输入输出;(6)串行通信口,实现单片机和其他数据设备之间的串行数据传送;(7)2个定时器/计数器(16位),实现定时或计数功能;(8)中断控制系统,共5个中断源,分高低两个优先级;(9)一个片内振荡器和时钟电路,为单片机产生时钟脉冲序列;(10)总线,用于连接各个部件和单片机系统的扩展。3. 8051单片机的引脚/VPP、RST/VPD、ALE/和的功能分别是什么? 答:片内外ROM选择端,ROM的寻址范围为64KB,而AT89C51内部只有4KB RO

6、M,当不够用时可在外扩展ROM。当/EA信号为低电平时,指访问外部ROM;当/EA为高电平时,则先访问内部ROM,当PC值超过4KB时自动转向外部ROM中执行。RST:复位信号,当此引脚上的信号出现至少两个机器周期的高电平将使单片机复位。ALE:地址锁存控制信号,当系统扩展时,ALE用于控制把P0口输出的低8位地址送入锁存器存起来,以实现低位地址和数据的分时传送。:外部ROM的读选通信号,在访问外部ROM时,每个机器周期两次PSEN有效(低电平),但在此期间内,每当访问外部数据存储器时,这两次有效的PSEN将不出现。第5章5.9 已知单片机晶振频率为6MHz,要求使用T1定时50ms,工作在方

7、式1,允许中断,试计算初值并编写初始化程序。答: 计算定时器T1的初值已知晶振频率为6MHz,则机器周期为12/fosc2µs使用T1定时功能,工作在方式1,定时时间为50ms,则T1的初值为: 所以T1的初值为:TH1=9EH,TL1=58H。 定时/计数器方式寄存器TMOD的设置 要求用T1定时、工作在方式1、软启动,所以TMOD寄存器应按如下设置:T1T0GATE M1 M0 GATE M1 M0 0001××××所以TMOD=10H。 允许T1中断,中断允许寄存器IE设置如下: T1的初始化程序如下:MOVTMOD, #10H;置定时器

8、1工作方式1MOVTH1,#9EH;送初值MOVTL1,#58HMOVIE,#88H;开中断SETBTR1;启动定时器5.12 设MCS-51单片机时钟为12MHz,请利用内部定时器T1编写从P1.1引脚输出3ms矩形波的程序,要求占空比为2:1(高电平2ms,低电平1ms)。答:要求矩形波周期3ms,占空比2:1,就是在一个周期中,高电平2ms,低电平1ms 定时器T1工作在方式1,其方式寄存器TMOD为: 计算初值:机器周期12/fosc1µs对1ms定时,初值X1为:X1655361000/164536FC18H对2ms定时,初值X2为:X2655362000/163536F8

9、30H 中断允许寄存器IE为: 程序如下:ORG0000HLJMPSTARTORG001BHLJMPBRT1ORG0030HSTART:MOVTMOD,#10HMOVTH1,#0F8HMOVTL1,#30HMOVIE,#88HSETBTR1SETBP1.1LOOP:SJMPLOOPORG0100HBRT0:MOVC,P1.1JCNEXTMOVTH1,#0F8HMOVTL1,#30HSJMPCOMNEXT:MOVTH1,#0FCHMOVTL1,#18HCOM:CPLP1.1RETIEND5.13 已知晶振频率为6MHz,设计程序使P1.4和P1.5外接灯自动轮流点亮,间隔时间为0.5s。答:要求

10、间隔0.5s轮流点亮两个灯,则定时器需要定时0.5s,这个值已经超过了定时器的最大定时时间。为此,可采用定时器定时与软件计数相结合的方法来解决问题。本题用定时器T0,每隔0.1s中断1次,向CPU申请中断,用R0计中断的次数。当R0计到5次中断时,则0.5秒时间到,轮流点亮两个只发光二极管。 定时/计数器方式寄存器TMOD的设置 要求用T0定时、工作在方式1、软启动,所以TMOD寄存器应按如下设置:T1T0GATE M1 M0 GATE M1 M0 ××××0001所以TMOD=01H。 计算定时器T0的初值已知晶振频率为6MHz,则机器周期为12/fo

11、sc2µs采用定时功能工作方式1,定时时间为100ms,则T0的初值为: 所以T0的初值为:TH0=3CH,TL0=B0H。 当T0定时到向CPU申请中断,所以T0应开中断,中断允许寄存器IE设置如下: 程序如下:ORG0000HLJMPSTARTORG000BH ;T0中断入口LJMPBKT0ORG0100HSTART: SETBP1.4;点亮1个LED灯CLRP1.5MOVR0,#05H ;设置中断次数5次MOVTMOD, #01H;置定时器0工作方式1MOVTH0,#3CH;送初值MOVTL0,#0B0HMOVIE,#82H;开中断SETBTR0;启动定时器LOOP: CJNE

12、R0,#00H, NEXT;R00则转NEXTMOVR0,#05H ;否则1s延时到,重置R0CPLP1.4CPLP1.5NEXT: SJMPLOOPORG0300HBKT0:DECR0MOVTH0,#3CH;重置初值MOVTL0,#0B0HRETIEND 第6章6.5 试用线选法画出8031对二片2764的连线图,并详细列出基本地址范围和重叠地址范围。答:8031通过P2.7和P2.6两根口线分别选通二片2764的接线图如图所示:上图程序存储器扩展系统中各片2764的地址范围见下表,其中P2.5脚悬空,取不同值时可得重叠地址范围如表所列。2764编号A15A14A13A12 A11A10 A

13、9 A8 A7 A6 A5 A4 A3 A2 A1 A0重叠地址范围1#2764(P2.7=0)0 1 × 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 × 1 1 1 1 1 1 1 1 1 1 1 1 14000H5FFFH6000H7FFFH2#2764(P2.6=0)1 0 × 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 × 1 1 1 1 1 1 1 1 1 1 1 1 18000H9FFFHA000HBFFFH 当悬空脚P2.5取0时的地址范围即为基本地址范围,即1#2764的基本地址范围为4000H5FFFH,

14、2#2764的基本地址范围为8000H9FFFH。6.9 MCS-51单片机P1口的P1.0P1.7分别通过反相器接8个发光二极管。要求编写程序,每当外中断1有中断请求信号输入时,点亮的发光二极管向右移一位,试编写程序。答:依题意,51单片机I/O接口电路如下图所示:程序如下:ORG0000HLJMP MAINORG0013H ;INT1中断入口LJMPBREAK1ORG0030HMAIN:SETBIT1 ;置下降沿触发方式SETB EA SETB EX1MOVP1, #80H;先点亮VL7 WAIT:NOPSJMPWAITORG0100H ;中断服务程序 BREAK1: RR A ;每中断1

15、次,灯右移1位 MOV P1, ARETI END6.12 用8255A扩展MCS-51单片机的I/O接口,若8255A的A口用作输入,每一位外接一个开关;C口用作输出,每一位通过反相器接一个发光二极管。要求当A口开关闭合(低电平)时C口对应位发光二极管点亮,画出接口电路,列出8255A各I/O口地址并编写程序。答: 51单片机与8255A接口电路如下图所示: 依题意,8255A的A口和C口都工作于方式0,且A口用作输入,C口用作输出,则方式控制字设置如下: 根据硬件连接,8255A各I/O口地址如下表所列,其中A15(P2.7)必须取0,才能选中8255A,而A14A8可任意取,此处均取“1

16、”。8255A端口A15A14A13A12 A11A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0十六进制地址A口0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 07F00HB口0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 17F01HC口0 1 1 1 1 1 1 1 0 0 0 0 0 0 1 07F02H控制口0 1 1 1 1 1 1 1 0 0 0 0 0 0 1 17F03H 由于某开关闭合时对应的引脚是逻辑“0”,而要点亮发光管应该输出逻辑“1”,因此从A口输入的开关状态需要取反后再从C口输出,才能对应点亮外接发光二极管,程序如下:OR

17、G0500HMAIN:MOV DPTR, #7F03H ;DPTR控制口地址MOV A, #90H;方式控制字MOVX DPTR, A ;8255A控制字INPA:MOVDPTR, #7F00H ;指向8255的A口MOVX A, DPTR; A 8255的A口CPLA;取反MOV DPTR, #7F02H;指向8255的C口MOVX DPTR, A;8255的C口 AMOV R7, #20;延时DEL0:MOV R6, #0FFHDEL1:DJNZ R6, DEL1DJNZ R7, DEL0SJMP INPAEND7.4 说明静态显示和动态显示的特点?答:静态显示是指LED显示器显示某一字符

18、时,相应的发光二极管恒定导通或恒定截止。这种显示方式要求各位显示块的公共端恒定接地(共阴极)或接正电源(共阳极)。每个显示块的8个段选线分别与一个8位并行I/O口的8位口线相接,I/O口只要有段码输出,相应字符就被显示出来,并保持不变。直到I/O口输出新的段码。动态显示是一位一位地轮流点亮各位显示器,这种逐位点亮显示器的方式称为位扫描。这种显示方式要求各位显示器的段选线应并联在一起,由一个8位的IO口控制;各位的位选线(公共阴极或阳极)由另外的口线控制。该方式显示时,各位显示器轮流选通,要使其稳定显示必须采用扫描方式,即在某一时刻只选通一位显示器,并送出相应的段码,进行适当延时(延时时间约为1

19、5ms),接着选通另一位显示器,并送出相应的段码,如此循环往复,即可使各位显示器显示相应的字符。只要循环时间足够短,利用人眼的视觉暂留效应,就可以给人同时显示的感觉。7.11 请用AT89C51单片机的P1口设计一个3×3的键盘电路,并编写相应的键盘程序。答:ORG 0030HKEYSCAN:ACALLKSCAN;查有没有键按下JZGORET;A=0表示没有键按下,返回LCALLDELAY10ms;有键按下,延时10ms(DELAY10ms略)。ACALLKSCAN;再查有没有键按下JZGORET;A=0表示没有键按下,返回ACALLKEYSUM;有键按下,扫描确定键值RL ARL

20、A;键值×4;主要考虑FTAB 以下指令LCALL(3字节)和RET(1字节)的总字节数为4MOVDPTR, #FTABJMPA+DPTR;散转,执行所按键相应功能子程序GORET:RETFTAB:LCALLFUNC0;调用0号键功能子程序RETLCALLFUNC1;调用1键功能子程序RETLCALLFUNC8;调用8键功能子程序RETLCALLERRSUB;键值为9,异常处理RET;KSCAN为判断有无键按下子程序,表示有键按下KSCAN:MOVP1, #0F8H;行线置低电平,列线置输入态MOVA, P1;读列线数据CPLA;A取反ANLA, #0F8H;屏蔽行线RET;返回,表

21、示有键按下;KEYSUM为求键值子程序,键值在A中KEYSUM:MOVR6, #00H;R6存放每行最左键的键值,初始清零MOVR7, #0FEH;准备扫描第0行LOOP:MOVP1,R7;逐行输出0扫描MOVA, P1;读列线数据JBACC.3, L1;第0列无键按下,转查第1列MOVA, #0;第0列有键按下,SJMPKSOLVE;转求键值L1:JBACC.4, L2;第1列无键按下,转查第2列MOVA, #1;第1列有键按下,SJMPKSOLVE;转求键值L2:JBACC.5, NEXT;4列均无键按下,本行扫描结束MOVA, #2;第3列有键按下,SJMPKSOLVE;转求键值NEXT

22、:MOVA, R7;准备扫描下一行JNBACC.2,ERR;扫描完未读到键值,异常处理RLA;R7循环左移一位MOVR7,A;得到下一行行扫描字ADDR6, #3;得到下一行首键键值SJMPLOOP;转LOOP,扫描下一行ERR:MOVA, #9;键值赋9,表示出错!RETKSOLVE:ADDA,R6;得键值PUSHACC;键值进栈暂存WAIT:ACALLKSCAN;查按键释放否?防止重复执行键功能JNZWAIT;没有释放,等待POPACC;键值出栈RET8.3 什么是D/A转换器,它有哪些主要指标?简述其含义?答:1) D/A转换器的基本原理实际上是把输入数字量中的每位都按其权值分别转换成模拟量,并通过运算放大器求和相加,即“按权展开,然后相加”,实现数模转换。 2) 它有以下主要指标:分辨率,其含义是D/A转换器能分辨的最小输出电压增量,常为满量程的倍。转换精度,其含义是D/A转换器实际输出值和理论值的接近程度。偏移误差,其含义是输入数字量为0时,输出模拟量对0的偏移值。线性度,其含义是D/A转换器实际转换特性和理想直线间的最大偏差。8.4 什么是A/D转换器,它有哪些主要指标?简述其含义?答:1)A/D转换器是一种能把输入模拟电压或电流变成与它成正比的数字量,即能把被控对象的各种模拟信息变成计算机可以识别的数字信息。 2) 它有以下

温馨提示

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

评论

0/150

提交评论