单片机原理、接口技术及应用课后答案—黄建新_第1页
单片机原理、接口技术及应用课后答案—黄建新_第2页
单片机原理、接口技术及应用课后答案—黄建新_第3页
单片机原理、接口技术及应用课后答案—黄建新_第4页
单片机原理、接口技术及应用课后答案—黄建新_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

1、作业题及答案第1章1.9 完成下列数制的转换。(1)1011.1101b( 11.8125 )d( b.d )h (2)110.101b( 6.625 )d( 6.a )h(3)166.25( 10100110.0100 )b( a6.4 )h(4)1011011.101b( 5b.a )h( 1001 0001.0110 0010 0101 )bcd(5)100001100011.01000101bcd( 863.45 )d1.10 写出下列真值对应的原码、反码和补码。 (1)1100110b 【1100110b】原码=66h【1100110b】反吗=66h【1100110b】补码=66h

2、(2)1000100b 【1000100b】原码=c4h【1000100b】反码=bbh【1000100b】补码=bch (3)86 【86】原码=d6h【86】反码=a9h【86】补码=aah1.11写出下列机器数分别作为原码、反码和补码时,其表示的真值分别是多少?(1)01101110b +110(6eh)(2)10110101b-53(35h), -74(-4ah), -75(-4bh)1.12 已知x和y的真值,试分别计算xy补和xy补,并指出是否产生溢出(设补码均用8位二进制表示)。 (1)x1000100b,y0010010bx补=01000100b, y补=11101110bxy

3、补: 0100 0100 1110 1110 1 0011 0010c7=1,c6=1,相同, 所以无溢出。 0100 0100 0001 0010 0101 0110xy补 c7=0,c6=0,相同, 所以无溢出。(2)x1100001b,y1000010b xy补:有溢出xy补无溢出(3)x1101001b,y1010101b xy补:有溢出xy补:无溢出1.13 用十六进制写出下列字符的ascii码。 (1)nba nba=4e4241h (2)hello!2009 hello!2009=48454c4c4f2132303039h第2章2.6 80c51单片机的信号有何功能?在使用80c

4、31和89c51单片机时,信号应如何处理?答:是访问外部程序存储器选通信号。当其为低电平时,对rom的读操作限定为外部存储器;当其为高电平时,对rom的读操作是从内部开始的,当pc值大于内部程序存储器地址范围时,cpu自动转向读外部程序存储器。 80c31单片机片内无rom,应将引脚固定接低电平,以迫使系统全部执行片外程序存储器程序。89c51单片机应将引脚接+5v电源。2.9 系统复位后,cpu使用哪一组工作寄存器?它们的地址是什么?如何改变当前工作寄存器组?答:系统复位后,cpu使用0组寄存器,它们的地址分别是:r0-r7:00h07h. 可以通过改变psw寄存器的psw.4和psw.3两

5、位的值来改变工作寄存器组。2.10 80c51单片机具有很强的布尔(位)处理功能?共有多少单元可以位寻址?采用布尔处理有哪些优点?答:是的,80c51单片机具有很强的布尔处理功能,在内部ram区20h2fh的16个单元都可以位寻址;同时21个特殊功能寄存器中还有部分特殊功能寄存器可以位寻址。 布尔(位)处理机,是80c5l系列单片机的突出优点之一,给“面向控制”的实际应用带来了极大的方便。布尔(位)处理机借用进位标志cy作为位累加器,在布尔运算中,cy是数据源之一,又是运算结果的存放处,位数据传送的中心。布尔(位)处理机指令系统中有专门进行位处理的指令集,利用位逻辑操作功能进行随机逻辑设计,可

6、把逻辑表达式直接变换成软件执行,方法简便,免去了过多的数据往返传送、字节屏蔽和测试分支,大大简化了编程,节省了存储器空间,加快了处理速度,增强了实时性能。还可实现复杂的组合逻辑处理功能。所有这些,特别适用于某些数据采集、实时测控等应用系统。2.12 单片机的复位方法有哪两种?复位后各寄存器及ram中的状态如何?答:按键复位和外部脉冲复位。 单片机复位后,21个寄存器中,sp=07h,p0p3均为ffh,sbuf为不定值,其余均为0.2.13 80c51单片机的、xtal1和xtal2引脚各有何作用?单片机时钟电路分别采用内部和外部振荡方式时,xtal1和xtal2引脚应如何连接?答:是片外程序

7、存储器选通信号,低电平有效。(片外数据存储器读选通),输出,低电平有效。(片外数据存储器写选通),输出,低电平有效。xtal1和xtal2内部振荡方式:在80c51芯片内部有一个高增益反相放大器,其输入端为芯片引脚xtall,其输出端为引脚xtal2。当使用芯片内部时钟时,这两根引线用于外接石英晶体和微调电容。外部振荡方式:把外部已有的时钟信号引入单片机内。该方式适宜用来使单片机的时钟信号与外部信号保持同步。外部振荡信号由xtal1引入,xtal2端悬空不用。第3章3.7用指令实现下述功能。(1)内部ram30h单元内容送r0。mov r0,30h(2)将立即数10h送入内部ram30h单元。

8、mov 30h,#10h(3)r0内容送入r1。mov a,r0mov r1,a(4)内部ram30h单元内容送外部ram30h单元。mov r0,#30hmov a,r0movx r0,a(5)外部ram3000h单元内容送内部ram30h单元。mov dptr,#3000hmovx a,dptrmov 30h,a(6)rom3000h单元内容送内部ram30h单元。mov dptr,#3000hmov a,#00hmovc a,(a+dptr)mov 30h,a3.8已知内部ram中,(30h)40h,(40h)50h,(50h)5ah,(5ah)60h,rom中(125ah)88h,试分

9、析下面程序的运行结果,并指出每条指令的源操作数寻址方式。 mov a,50h;直接寻址 mov r0,a;寄存器寻址 mov p1,0f0h;立即寻址 mov r0,30h;直接寻址 mov dptr,1200h;立即寻址 movx dptr,a;寄存器寻址 movc a,adptr;变址寻址 mov 40h,50h;直接寻址 mov p2,p1;直接寻址程序执行后,p2=f0h ; (40h)= 5ah ;(a)=88h ;(1200h)=5ah; (5ah)=40h3.9设(r1)31h,内部ram31h的内容为68h,32h单元的内容为60h,(a)10h。请指出运行下面的程序后各单元内

10、容的变化。 mov a,r1;(a)=68h mov r1,32h;(31h)60h mov 32h,a;(32h)=68h mov r1,45h;(r1)=45h程序前3条指令将内部ram31h和32h单元内容互换。3.10 已知当前pc值为2000h,用两种方法将rom207fh单元中的常数送入累加器a。(1)mov dptr,#207fhmov a,#00hmovc a,a+dptr(2)mov a,#7chmovc a,a+pc3.16 已知延时程序为 delay:mov r0,0a0h loop1:mov r1,0ffh loop2:nopdjnz r1,loop2djnz r0,l

11、oop1 若系统的晶振频率为12mhz,请指出该延时子程序的延时时间。机器周期数delay:mov r0,0a0h1 loop1:mov r1,0ffh1 loop2:nop1djnz r1,loop22djnz r0,loop12由于晶振频率为12mhz,1m=1s该程序延时时间为:【1+(1+2)*255+2】*160+1=122.881ms第4章4.13编写程序将内部ram40h60h单元清0mov r7,#21hmov r0,#40hloop:mov r0,#00hinc r0djnz r7,loopsjmp $4.15 编程将外部ram的1000h1fff区域的数据送到2000h2f

12、ffh区域。org 0100hmov dptr,#1000hmovr7,#10hll1:movr6,#00hll:movxa,dptrmovb,amova,dphadda,#10hmovdph,amova,bmovxdptr,amova,dphclrcsubba,#10hmovdph,aincdptrdjnzr6,ll incdphdjnzr7,ll1sjmp$4.16已知一内部ram以block1和block2为起始地址的存储区中分别有5字节无符号被减数和减数(低位在前,高位在后。请编写减法子程序令它们相减,并把差放入以block1为起始地址的存储单元。block1 equ 30h bloc

13、k2 equ 40h org 0000h ljmp startstart:mov r0,#block1 mov r1,#block2 mov r7,#1 lp:mov r6,#5 clr c lp1:mov a,r0 subb a,r1 mov r0,a inc r0 inc r1 djnz r6,lp1 djnz r7,lp sjmp $ end4.17 从内部ram20h单元开始存有一组带符号数,其个数已存放在1fh单元中。要求统计出大于0、等于0和小于0的数的数目,并把统计结果分别存放在one、two、three三个单元中。one equ 1ehtwo equ 1dh three equ

14、 1ch org 0000h ljmp startstart:mov one,#00h mov two,#00h mov three,#00h mov r0,#20h mov r7,1fhloop3: mov a,r0 inc r0 jz loop1 jb acc.7,loop2 inc one sjmp haltloop1: inc twosjmp haltloop2: inc threehalt: djnz r7,loop3 sjmp $4.18 设内部ram30h单元有两个非零的bcd数,请编写求两个bcd数的积,并将积以压缩型bcd数形式送入31h单元的程序。 org 0000hmov

15、a, 30hanla, #0f0hswapamovb, amova, 30hanla, #0fhmula, bmovb, #0ahdivabswap aorla, bmov31h, asjmp$4.20 编制绝对值函数程序。绝对值函数方程如下: 假设x存于30h单元,y存于40h单元。x 及y均为补码数. x equ 30h y equ 40h org 0000h ljmp startstart: mov a,x jz loop jnb acc.7,loop cpl a add a,#01h loop: mov y,a sjmp $ end4.21 试编写统计数据区长度的程序,设数据区从内ra

16、m30h开始,该数据区以0结束,统计结果送人2fh中。且数据区结束字符,也计入统计数据区的长度中去. org 0000h ljmp start start:mov r0,#30h mov r7,#00h loop:mov a,r0 inc r0 inc r7 cjne a,#00h,loop mov 2fh, r7 sjmp $4.23巳知r7中为2位十六进制数,试编程将其转换为ascii码,存人内部ram 31h、32h中(低字节在前)。英文字母为大写.org 0000h ljmp start start:mov sp,#60h mov a,r7 lcall bcdascii mov 31h

17、,a mov a,r7 swap a lcall bcdascii mov 32h,asjmp $ bcdascii:anl a,#0fh cjne a,#10,loop loop: jc ad30h add a,#07h ad30h:add a,#30h ht: ret end解法2 org 0000h ljmp startstart: mov dptr,#tab mov a,r7 anl a,#0fh movc a,a+dptr mov 31h,a mov a,r7 anl a,#0f0h swap a movc a,a+dptr mov 32h,a sjmp $ tab:db30h,31

18、h,32h,33h,34h,35h,36h,37h,38hdb 39h,41h,42h,43h,44h,45h,46h end4.24设在ma和mb单元中有两个补码形式的8位二进制带符号数。请编写求两数之和并把它放在suml和sumh单元(低8位在suml单元)的子程序。提示:在两个8位二进制带符号数相加时,其和很可能会超过8位数所能表示的范围,从而需要采用16位数形式来表示。因此,在进行加法时、可以预先把这两个加数扩张成16位二进制补码形式,然后对它完成双字节相加。org 0000hljmp startstart:mov a,ma jb acc.7,lla mov r7,#00h sjmp

19、llllla: mov r7,#0ffhlll: mov a,mb jb acc.7,llb mov r6,#00h sjmp laddllb: mov r6,#0ffhladd:mov a,ma add a,mb mov suml,a mov a,r6 addc a,r7 mov sumh,a sjmp$4.25 设外部ram1000h10ffh数据区中的数均为无符号数。试编写程序,找出该区域中的数的最大值,并放人内部ram30h单元中。movdptr,#1000hmovr7,#00h;计数器movb,#00h;放中间结果l1:movx a, dptrcjnea, b, l2l2:jcl3m

20、ovb, a; b中放大值l3:incdptrdjnzr7, l1mov30h, bsjmp$4.28 已知a、b、c均为09的整数,试编程求解表达式y=(a-b)2+(b-c)2+(c-a)2的值 aa equ 31h bb equ 32h cc equ 33h y equ 34h org 0000h ljmp start start:mov sp,#60h mov a,aa clr c subb a,bb acall chunci mov r6,a mov a,bb clr c subb a,cc acall chunci add a,r6 mov r6,a mov a,cc clr c

21、subb a,aa acall chunci add a,r6 mov r6,a mov y,r6sjmp $chunci:jnb acc.7,sqr cpla adda,#01h sqr: add a,#01h movc a,a+pc retsqrtab:db 0,1,4,9,16,25,36,49,64,814.29 从内部ram的score单元开始放有16位同学某门课程的考试成绩,试编程求平均成绩,存入average单元。 org 0100hmovr5,#00hmovr6,#00hmovr0,#scoremovr7,#16ll:mova,r0adda,r5movr5,amova,r6ad

22、dca,#00hmovr6,aincr0djnzr7,llmovr4,#04hll1:clrcmova,r6rrcamovr6,amova,r5rrcamovr5,adjnzr4,ll1movaverage,r5sjmp$第5章5.8 80c51外扩rom时,为什么p0口要接一个8位锁存器,而p2口却不接?答:p0口既作为地址线传送地址的低8位,又要作为数据线传送8位数据,只能分时用做地址线,故p0口输出的低8位地址数据必须用锁存器锁存。锁存器的锁存控制信号为引脚ale输出的控制信号。p2口只用作地址高8位。5.9 若要设计一个32k×8位的外ram存储器,分别采用2114(1k&#

23、215;4位)和6264(8k×8位)芯片,各需多少块存储芯片?答:2114芯片需要:(8/4)*(32/1)=64片 6264芯片需要:32/8=4片5.12 80c51扩展2片6264存储器芯片,试用p2.6、p2.7对其片选,并指出它们的地址范围。答:地址范围:6264(1)10*0 0000 0000 0000 0000 1 1111 1111 1111 11118000h9fffh6264(2) 01*0 0000 0000 0000 0000 1 1111 1111 1111 11114000h5fffh第6章6.1 输入/输出信息有哪几种?答:通过接口传送的信息包括数据

24、信息、状态信息和控制信息。6.2 什么是接口?接口应具有哪些功能?接口是将外设连接到总线上的一组逻辑电路的总称。功能:1. 地址译码与设备选择2. 缓冲锁存数据3. 信息的输入输出4. 信息转换6.7 什么是中断源?80c51有哪些中断源?cpu响应中断时,其入口地址是什么?答:能引起中断的外部设备或内部原因称为中断源,包括外部中断源和内部中断源。80c51中有5个中断源: (1)(p3.2):外部中断0。 (2) (p3.3):外部中断1。(3)tf0(p3.4):定时器/计数器t0溢出中断。(4)tf1(p3.5):定时器/计数器t1溢出中断。(5)rx,tx:串行中断入口地址:外部中断0

25、():0003h定时器/计数器0(t0):000bh外部中断1():0013h定时器/计数器1(t1):001bh串行口(ri、ti):0023h定时器计数器2(t2)(仅80c52有):002bh6.11 80c51的外部中断有哪几种触发方式?如何选择?答:有电平触发方式和边沿触发方式。通过对icon寄存器的d0位it0和d2位it1置位或清0实现。该为为0,为低电平触发方式,该位为1,为下降沿触发方式。第7章7.8 8255a各端口可以工作在几种方式下?当端口 a工作在方式2时,端口b和c工作于什么方式下?答:8255a共有三种工作方式:方式0、方式1和方式2。其中a口可以工作在方式0、方

26、式1和方式2,b口可以工作在方式0、方式1,而c口只能工作在方式0。在a口工作在方式2时,b口可以工作在方式0或方式1。c口高5位为a口提供联络信号,c口低3位可作为输入输出线使用或用作b口方式1之下的控制线。7.9 某8255a芯片的地址范围为7f80h7f83h,工作于方式0,a口、b口为输出口。c口低4位为输入,高4位为输出,试编写初始化程序。mov dptr,#7f83hmov a,#1000 0001bmovx dptr, a7.11 8255a的方式控制字和c口按位置位/复位控制字都可以写入8255a的同一控制寄存器,8255a是如何区分这两个控制字的?答:看控制字的最高位d7,如

27、果该位的值为“1”,则认为是方式控制字;反之,则认为是c口置位/复位控制字。7.12 编写程序,采用8255a的c口按位置位/复位控制字,将pc7置0,pc4置1,(已知8255a各端口的地址为7ffch-7fffh)。mov dptr,#7fffhmov a,#0ehmovx dptr,amov dptr,#7fffhmov a,#09hmovx dptr,a7.13 设8255a接到系统中,端口a、b、c及控制口地址分别为220h、221h、222h及223h,工作在方式0,试编程将端口b的数据输入后,从端口c输出,同时,将其取反后从端口a输出。mov dptr,#223hmov a,#8

28、2hmovx dptr,amov dptr,#221hmovx a,dptrinc dptrmovx dptr,acpl amov dptr,#220hmovx dptr,asjmp $第8章8.3 定时器t1用于对外部脉冲计数,每计满1000个脉冲后使内部ram 60h单元内容加一,要求t1以方式1中断实现,tr1启动。解:计数常数为:tc216100064536fc18h,由于采用t1方式1 计数方式,故方式控制字为:0101 0000b50h程序如下:org 0000hajmp mainorg 001bh ljmp t1intorg 0200hmain:mov tmod,50hmovth1,0fchmovtl1,18hsetb et1setbeasetbtr1sjmp$org0800ht1int:inc 60hmovth1,0fchmovtl1,18hreti8.4 利用定时器t0方式2产生一个5khz的方波,已知晶振频率为12mh

温馨提示

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

评论

0/150

提交评论