单片机原理及接口技术第三版梅丽凤王艳编著的习题解答课后答案_第1页
单片机原理及接口技术第三版梅丽凤王艳编著的习题解答课后答案_第2页
单片机原理及接口技术第三版梅丽凤王艳编著的习题解答课后答案_第3页
单片机原理及接口技术第三版梅丽凤王艳编著的习题解答课后答案_第4页
单片机原理及接口技术第三版梅丽凤王艳编著的习题解答课后答案_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

1、单片机原理及接口技术第三版梅丽凤王艳秋编著的习题解答课后答案(1)103f单片机原理及接口技术第三版梅丽凤王艳秋编著的习题解答课后答案 第1章 绪论 1-1解答:第一台计算机的研制目的是为了计算复杂的数学难题。它的特点是:计算机字长为12位,运算速度为5 000次/s,使用18 800个电子管,1 500个继电器,占地面积为150 m2,重达30 t,其造价为100多万美元。它的诞生,标志着人类文明进入了一个新的历史阶段。1-2解答:单片微型计算机简称单片机。一个完整的单片机芯片至少有中央处理器(cpu)、随机存储器(ram)、只读存储器(rom)、定时/计数器及i/o接口等部件。1-3解答:

2、单片机的发展大致经历了四个阶段:第一阶段(19701974年),为4位单片机阶段;第二阶段(19741978年),为低中档8位单片机阶段;第三阶段(19781983年),为高档8位单片机阶段;第四阶段(1983年至今),为8位单片机巩固发展阶段及16位单片机、32位单片机推出阶段。 1-4解答:intel公司的mcs-48系列、mcs-51系列、mcs-96系列产品;motorola公司的6801、6802、6803、6805、68hc11系列产品;zilog公司的z8、super8系列产品;atmel公司的at89系列产品;fairchild公司的f8和3870系列产品;ti公司的tms70

3、00系列产品;ns公司的ns8070系列产品;nec公司的com87(pd7800)系列产品;national公司的mn6800系列产品;hitachi公司的hd6301、hd63l05、hd6305。1-5解答:(1)8031/8051/8751三种型号,称为8051子系列。8031片内没有rom,使用时需在片外接eprom。8051片内含有4kb的掩模rom,其中的程序是生产厂家制作芯片时烧制的。8751片内含有4kb的eprom,用户可以先用紫外线擦除器擦除,然后再利用开发机或编程器写入新的程序。(2)8032a/8052a/8752a是8031/8051/8751的增强型,称为8052

4、子系列。其中片内rom和ram的容量比8051子系列各增加一倍,另外,增加了一个定时/计数器和一个中断源。(3)80c31/80c51/87c51bh是8051子系列的chmos工艺芯片,80c32/80c52/87c52是8052子系列的chmos工艺芯片,两者芯片内的配置和功能兼容。1-6解答:8052子系列片内rom和ram的容量比8051子系列各增加一倍,另外,增加了一个定时/计数器和一个中断源。1-7解答:at89系列单片机是美国atmel公司的8位flash单片机产品。它的最大特点是在片1-8解答:高档型单片机有at89s51、at89s52、at89s53和at89s8252等型

5、号,其中at89s51有4kb可下载flash存储器,at89s52、at89s8252有8kb可下载flash存储器,at89s53有12kb可下载flash存储器。第2章 mcs-51系列单片机的结构及原理2-1解答:mcs-51单片机由8个部件组成:中央处理器(cpu),片中断系统:可以实现分时操作、实时处理、故障处理等功能。特殊功能寄存器(sfr):反映单片机的运行状态,包含了单片机在运行中的各种状态字和控制字,以及各种初始值。2-2解答: ea引脚是片2-3解答:在mcs-51单片机中,除p3口具有第二功能外,还有3条控制线具有第二功能。 p3口的第二功能:p3.0rxd:串行数据接

6、收端p3.1txd:串行数据发送端p3.20int:外部中断0申请输入端p3.31int:外部中断1申请输入端p3.4t0:定时器0计数输入端p3.5t1:定时器1计数输入端p3.6wr:外部ram写选通p3.7rd:外部ram读选通3条控制线的第二功能:aleprog:片resetvpd:备用电源。vcc掉电期间,此引脚可接备用电源,以保持eavpp:片内eprom编程电源。在对片内具有eprom的芯片进行编程时,此引脚用于施加21v 编程电源。2-4解答:mc103fs-51单片机的内部存储空间分为数据存储器和程序存储器。内部数据存储器:共256字节单元,包括低128个单元和高128个单元

7、。低128字节又分成3个区域:工作寄存器区(00h1fh),位寻址区(20h2fh)和用户ram区(30h7fh)。高128字节是供给特殊功能寄存器使用的,因此称之为特殊功能寄存器区。内部程序存储器:在8031片内无程序存储器,8051片内具有4kb掩模rom,8751片内具有4kbeprom。2-5解答:mcs-51单片机提供了4组工作寄存器,对于当前工作寄存器组的选择,是通过psw中的rs1和rs0来进行选择。具体关系如下表: rs1 rs0 当前寄存器组0 0 第0组工作寄存器0 1 第1组工作寄存器1 0 第2组工作寄存器1 1 第3组工作寄存器 2-6解答:内部ram低128个单元按

8、用途分成3个区域:工作寄存器区(00h1fh),位寻址区(20h2fh)和用户ram区(30h7fh)。2-7解答:dptr是数据指针寄存器,是一个16位寄存器,用来存放16位存储器的地址,以便对外部数据存储器ram中的数据进行操作。dptr由高位字节dph和低位字节dpl组成。2-8解答:所谓堆栈,顾名思义就是一种以“堆”的方式工作的“栈”。堆栈是在p1口p3口比p1口增加了与非门和缓冲器;具有准双向i/o功能和第二功能。上述4个端口在作为输入口使用时,应注意必须先向端口写“1”。2-11解答:指令周期:执行一条指令所需要的时间。机器周期:cpu完成一个基本操作所需要的时间。状态:振荡脉冲经

9、过二分频后,得到的单片机的时钟信号。拍:振荡脉冲的周期。当晶振频率为12mhz时,一个机器周期为1s;当晶振频率为8mhz时,一个机器周期为3s。2-12解答:在时钟电路工作后,只要在单片机的reset引脚上出现24个时钟震荡脉冲(两个机器周期)以上的高电平,单片机就能实现复位。复位后,cpu和系统都处于一个确定的初始状态,在这种状态下,所有的专用寄存器都被赋予默认值,除sp=07h,p0p3口为ffh外,其余寄存器均为0。2-13解答:8051单片机应用系统的电压检测电路监测到电源下降时,触发外部中断,在中断服务子程序中将外部ram中的有用数据送入<操作码> 操作

10、数 ;注释3-3解答:mcs-51系列单片机提供了7种寻址方式:(1)立即寻址:操作数在指令中直接给出,立即数前面有“#”。(2)直接寻址:在指令中直接给出操作数地址。对应片(6)相对寻址:只在相对转移指令中使用。对应片内、片外的r103fom空间。(7)位寻址:对可寻址的位单独进行操作。对应位寻址区20h2fh单元的128位和字节地址能被8整除的特殊功能寄存器的相应位。3-4解答:直接寻址方式。3-5解答:寄存器间接寻址方式。3-6解答:立即寻址方式,直接寻址方式,寄存器寻址方式,寄存器间接寻址方式,位寻址方式。 3-7解答:变址寻址方式3-8解答:对于8052单片机3-9解答:外部数据传送

11、指令有6条:movx a,dptr movx dptr,amovx a,ri movx ri,amovc a,a+dptr movc a,a+pc(1)movx a,r1 movx a,dptr都是访问片外ram,但二者寻址范围不同。前1条指令是对片外ram低256个单元的“读”操作。后1条指令是对片外ram64kb空间的“读”操作。(2)movx a,dptr movx dptr,a访问空间相同,但数据传送方向不同。前1条指令是对片外ram64kb空间的“读”操作。后1条指令是对片外ram64kb空间的“写”操作。(3)mov r0,a movx r0,a二者访问的空间不同。前1条指令是对片

12、3-11解答:(1)由于在工作寄存器与工作寄存器之间不能直接传送数据,所以需要借助累加器a。 mov a,r1mov r0,a(2)片外ram向片r1,#60hmovx a,r1mov r0,a(3) mov r1,#60hmovx a,r1mov 40h,a(4)片外数据不能直接送入片外单元,需要先将片外数据读入累加器,然后再送到片外。 mov dptr,#1000hmovx a,dptrmov r1,#40hmovx r1,a(5)rom中的数据需要使用查表指令才能读出来,所以此题不能使用一般的传送指令从rom中读数据。mov dptr,#2000hmov a,#00hmovc a,a+d

13、ptrmov r2,a(6) mov dptr,#2000hmov a,#00hmovc a,a+dptrmov 40h,a(7) mov dptr,#2000hmov a,#00hmovc a,a+dptrmov dptr,#0200hmovx dptr,a3-12解答:片外ram与片dptr,#1000hmovx a,dptrxch a,60hmovx dptr,a3-13解答:本题需要采用查表指令。org 0200hmov dptr,#tabmov a,r7movc a,a+dptr org 0300htab: db 0,1,4,9,16,25,36,49,64,813-14解答:(1)

14、结果:(a)(r1),(a)=40h,(r1)=5bh,(psw)=81h(2)结果:(a)(40h),(a)=c3h,(40h)=5bh,(psw)=80h(3)结果:(a)(r1),(a)=c3h,(r1)=(40h)=5bh,(psw)=80h(4)结果:(a)03(r1)03,(a)=53h,(r1)=(40h)=cbh,(psw)=80h(5)结果:(a)03(a)47,(a)=b5h,(psw)=81h(6)结果:a(a)+(r1),(a)=9bh,(psw)=05h(7)结果:a(a)+(40h),(a)=1eh,(psw)=80h(8)结果:a(a)+40h,(a)=9bh,(

15、psw)=05h(9)结果:a(a)+(40h)+cy,(a)=1fh,(psw)=81h(10)结果:a(a)-(40h)-cy,(a)=97h,(psw)=85h(11)结果:a(a)- 40h - cy,(a)=1ah,(psw)=01h3-15解答:(1)该组指令执行后(a)=00h,不影响cy位。(2)该组指令执行后(a)=00h,影响cy位。说明:单独执行inc指令,只影响奇偶标志位p,不影响半进位标志位ac和进位位cy位。执行add指令后,将影响cy、ac和p位。3-16解答:本题涉及的是16位数的减法运算,首先应让低8位相减,然后让高8位带着借位相减。注意:应在低8位相减前将进

16、位位cy清空0。clr cmov a,#56hsubb a,#78hmov r0,amov a,#23hsubb a,#45hmov r1,a3-17解答:a(a)23h,(a)=03h42h(42h)(a),(42h?103f?37ha(a)(r0),(a)=34ha(a),(a)=cbh结果:(a)=cbh3-18解答:(1) mov dptr,#1000hmovx a,dptrcpl amovx dptr,a(2) mov r0,#60hmovx a,r0anl a,#3fhxrl a,#03h movx r0,a3-19解答:da a指令的作用是对a中刚进行的两个bcd码的加法结果进行

17、修正,即继续使bcd码加法运算的结果保持为bcd码。使用时,da a指令只能使用在加法指令后,即add指令和addc指令。 3-20解答:mov dptr,#1000hmovx a,dptrmov b,#10mul abmov 30h,amov 31h,bmov dptr,#2000hmovx a,dptrmov b,#32mul abadd a,30hmov 30h,amov a,baddc a,31hmov 31h,a3-21解答:mov r7,#10mov dptr,#block1mov r0,#block2loop: movx a,dptrmov r0,ainc dptrinc r0d

18、jnz r7,loop3-22解答:mov a,#01hloop: mov p0,arl alcall delaysjmp loopdelay: mov r7,#00hdelay1: mov r6,#00hdjnz r6,$djnz r7,delay1ret3-23解答:orl c,11hmov 11h,cmov c,p1.0orl c,10h anl c,11hmov p1.0,c3-24解答:(1)正确。(2)错误。原因:清零指令只能用于累加器acc和位操作,而本题中e0h只能是字节地址(位地址的范围是00h7fh),所以该条指令错误。(3)错误。原因:acc是直接字节地址,不能用于清零指

19、令。(4)正确。acc.0是一个位,可以应用到清零指令中。(5)正确。(6)错误。原因:取反指令只能用于累加器acc和位操作,而本题中e0h只能是字节地址(位地址的范围是00h7fh),所以该条指令错误。(7)错误。原因:acc是直接字节地址,不能用于取反指令。(8)正确。acc.0是一个位,可以应用到取反指令中。3-25解答:anl a,borl a,cmov f,c3-26解答:指令ljmp addr16是长转移指令,指令中提供了16位目的地址,寻址范围是64kb。指令ajmp addr11是绝对转移指令,指令中11位目的地址,其中a7a0在第二字节,a10a8则占据第一字节的高3位,寻址

20、范围是与pc当前值(本指令所在地址+本条指令所占用的字节数2)在同一个2k的区域p1,#0cah ;p1cah,p1=cah=11001010bmov a,#56h ;a56h,a=56h=01010110bjb p1.2,l1 ;若p1.2=1,则转移至l1jnb acc.3,l2 ;若acc.3=0,则转移至l2l1: l2: 执行完本段程序后将转移至l2,因为p1.2=0,acc.3=0,所以转至l2。(2) mov a,#43h ;a43h,a=43h=01000011bjb acc.2,l1 ;若acc.2=1,则转移至l1jbc acc.6,l2 ;若acc.6=1,则转移至l2,

21、同时将acc.6清零l1: l2: 执行完本段程序后将转移至l2,因为acc.2=0,acc.6=1,所以转至l2,并且将acc.6清零。 3-28解答:(1)mov a,p1cpl aanl a,#0f0hswap amov p1,a (2):loop: jnb p1.4,l1 ;jnb p1.5,l2 ;jnb p1.6,l3 ;jnb p1.7,l4 ;ljmp loop ;l1: mov p1,#01h ;ljmp loop ;l2: mov p1,#02h ;ljmp loop ;l3: mov p1,#03h ;ljmp loop ;l4: mov p1,#04h ;ljmp lo

22、op ;第4章 汇编语言程序设计4-1解答:org 0100hmov a,21hadd a,23hmov 25h,amov a,20haddc a,22hmov 24h,aret4-2解答:org 0200hmov a,51hmov b,#20mul abmov 53h,amov 52h,bmov a,50hmov b,#3mul abadd a,53hmov 53h,amov a,baddc a,52hmov 52h,aret4-3解答: org 0300h mov a,datacjne a,#20,lop1 lop1: jc lop3cjne a,#50,lop2 lop2: jc lop

23、4 mov b,#1ljmp lop5lop3: mov b,#2 ljmp lop5lop4: mov b,#5 lop5: mul abmov func,a ret4-4解答:org 0400hmov a,mun+1 jnb acc.7,loop clr cmov a,numsubb a,#01h cpl amov num,amov a,#num+1 x a暂存a<20?a<50?2b5b1ba×baafunc保存结果 开始返回ynyn 题图4-1 习题4-3流程图 103fsubb a,#00hcpl amov num+1,a loop: ret4-

24、5解答:org 0500hmov dptr,#jptab mov a,r2 rl ajmp a+dptrjptab: ajmp key0 ajmp key1 ajmp key2 ajmp key15 key0: key1: key2: key15: 4-6解答:org 0600h mov r0,#40hmov dptr,#2000h mov r7,#21h loop: mov a,r0 movx dptr,a inc r0inc dptrdjnz r7,loop ret4-7解答:org 0700hmov dptr,#data mov r7,#10loop: movx a,dptr orl a

25、,#80h movx dptr,a inc dptrdjnz r7,loop ret4-8解答:org 0800hmov dptr,#3000h mov r0,#30hmov r7,#7loop: movx a,dptr mov r0,a inc dptrinc dptrinc r0djnz r7,loop ret4-9解答:org 0900hmov dptr,#1000h mov r1,#30h mov r7,#31hloop: movx a,dptr mov r1,a clr amovx dptr,a inc dptrinc r1djnz r7,loop ret4-10解答:org 0a0

26、0hmov r1,#dat1 mov dptr,#dat2 mov r6,#10h loop1: mov a,r1 cjne a,#0dh,loop2 ljmp loop3loop2: movx dptr,a inc r1inc dptrdjnz r6,loop1 loop3: ret4-11解答:org 0b00hmov dptr,#3000h mov r7,#100 mov one,#00h mov two,#00h mov three,#00h lop1: movx a,dptr jz lop2jnb acc.7,lop3 inc threeljmp lop4 lop2: inc two

27、 ljmp lop4 lop3: inc one lop4: inc dptr djnz r7,lop1 ret4-12解答:org 0c00h mov r0,#50h mov a,#00h mov r7,#10 lop: add a,r0 inc r0djnz r7,lop mov b,#10 div abmov 5ah,a ret4-13解答:org 0d00h mov r0,#40h mov a,r0 mov r7,#47 loop: inc r0 mov 30h,r0 cjne a,30h,chk chk: jc loop1 mov a,r0loop1: djnz r7,loop mo

28、v min,a ret4-14解答:org 0e00hstart: mov r0,#40h mov r7,#19 clr 00hloop: mov a,r0 mov 30h,a inc r0mov 31h,r0 clr csubb a,r0jnc next mov r0,30hdec r0mov r0,31h inc r0setb 00hnext: djnz r7,loop jb 00h,start mov r0,#40hmov dptr,#2000h mov r7,#20 lop1: mov a,r0 movx dptr,a inc r0inc dptrdjnz r7,lop1 ret4-1

29、5解答:org 0f00hmov dptr,#2000h mov r7,#100loop1: movx a,dptr cjne a,#44h,loop2 mov 30h,dpl mov 31h,dphmov dptr,#20a0h mov a,30h movx dptr,a inc dptrmov a,31h movx dptr,a ljmp loop3loop2: inc dptr djnz r7,loop1 loop3: ret4-16解答:org 1000h mov r0,#30h mov r1,#50h mov r7,#20 lop1: mov a,r0 cjne a,#0ah,lop

30、2 lop2: jnc lop3 add a,#30h ljmp lop4lop3: add a,#37h lop4:,a mov r1inc r0inc r1djnz r7,lop1 ret4-17解答:org 1100h mov r0,#40h mov r1,#60h mov r7,#nlop1: mov a,r0 cjne a,#41h,lop2 lop2: jnc lop3 clr csubb a,#30h ljmp lop4 lop3: clr c subb a,#37h lop4: mov r1,a inc r0inc r1djnz r7,lop1 ret4-18解答:org 12

31、00hmov dptr,#2000h mov r0,#30h mov r7,#5lop1: movx a,dptr anl a,#0fh add a,#30h mov r0,a inc r0movx a,dptr anl a,#0f0h swap aadd a,#30h mov r0,a inc r0inc dptrdjnz r7,lop1mov dptr,#2005h mov r0,#30h mov r7,#10lop2: mov a,r0 movx dptr,ainc r0inc dptrdjnz r7,lop2 ret4-19解答: org 1300h mov103fdptr,#2000

32、h mov r0,#30h mov r7,#10lop1: movx a,dptr clr csubb a,#30h mov r0,a inc dptrmovx a,dptr clr csubb a,#30h swap aorl a,r0 mov r0,a inc dptr inc r0djnz r7,lop1mov dptr,#3000h mov r0,#30h mov r7,#10 lop2: mov a,r0 movx dptr,a inc r0inc dptrdjnz r7,lop2 ret4-20解答: org 1400h mov a,40h mov b,a mul abmov 31

33、h,a mov a,30h mov b,a mul abclr csubb a,31hmov 30h,a ret4-21解答:org 1500hmov a,#80hloop: mov p1,alcall delrr asjmp loopdel: mov r7,#100del1: mov r6,#198djnz r6,$djnz r7,del1ret4-22解答:org 1600hmov a,#55hloop: mov p1,alcall delrl asjmp loopdel: mov r7,#250del1: mov r6,#198djnz r6,$djnz r7,del1ret第5章 定时

34、/计数器5-1解答:51系列单片机的 点 模式0。tlx中低5位与thx中的8位构成13位计数器。计满溢出时,13位计数器回零。 1模式1。tlx与thx构成16位计数器。计满溢出时,16位计数器回零。1 模式2。8位自动重装载的定时/计数器,每当计数器tlx溢出时,thx中的 模式3。对定时器0,分成2个8位计数器,对于定时器1,停止计数。 15-3解答:51系列单片机的t0和t1在模式0中,使用了tlx中低5位与thx中的8位构成13位计数器,tlx中的高3位弃之未用。5-4解答:对于t1,设置为模式3,将使它停止计数并保持原有的计数值,其作用如同使tr1=0,因此,没有什么实质意义。对于

35、t0,设置为模式3时,16位计数器被分成两个互相独立的8位计数器tl0和th0,其中tl0利用了定时/计数器0本身的一些控制位:t/c、gate、tr0、0int和tf0。它既可以按照计数方式工作,也可以按照定时方式工作。而th0被规定只可用作定时器方式,借用了t1的控制位tr1和tf1。5-5解答:(tmod)=27h=00100111b此时,t1工作于模式2,定时方式(即波特率发生器方式)。t1工作于模式3,tl0和th0同为计数方式。5-6解答:单片机系统复位后(tmod)=00h,即t0工作在模式0,使用的是tl0的低5位和th0构成13位定时/计数器,由于(th0)=06h,(tl0

36、)=00h,所以定时的初值为:x=0000011000000b=192假设系统晶振频率为6mhz,机器周期t=2s,则定时时间为:定时值=(m-x)t=(213-192)×2s=16000s=16ms5-7解答:org 0000hljmp startorg 0200hstart: mov tmod,#20hmov tl1,#231setb tr1loop: setb p1.2mov th1,#81lop1: jbc tf1,lop2sjmp lop1lop2: clr p1.2mov th1,#231lop3: jbc tf1,loopsjmp lop3end5-8解答:org 00

37、00hljmp startorg 0300hstart: mov tmod,#51hloop: clr tr0mov tl1,#18h mov th1,#0e0hsetb tr1lop1: jbc tf1,lop2sjmp lop1lop2: clr tr1mov tl0,#18hmov th0,#0e0hsetb tr0lop3: jbc tf0,loopsjmp lop3end5-9解答:tf0为定时/计数器t0的溢出标志位。tf1为定时/计数器t1的溢出标志位。tf2为定时/计数器t2的溢出中断标志位。exf2为定时/计数器t2的外部触发中断标志位。当定时/计数器t0或t1溢出时tf0或

38、tf1由硬件置1,使用查询方式时,此位做状态位供查询,查询有效后需由软件清零;使用中断方式时,此位做中断申请标志位,进入中断服务后被硬件自动清零。当定时/计数器t2计数溢出或外部触发时,tf2或exf2置1,并申请中断,但该两位只能靠软件清除。5-10解答:rclk为接收时钟选择位,靠软件置位或清除,用以选择定时/计数器2或1做串行口接收波特率发生器。tclk为发送时钟选择位,靠软件置位或清除,用以选择定时/计数器2或1做串行口发送波特率发生器。如果两者都被清零,则t2工作在定时/计数器方式。此时当2t/c=0时,th2和tl2计的?103f腔髦?期数,做定时器使用;当2t/c=1时,计数脉冲

39、来自t2(p1.0)引脚,th2和tl2做外部信号脉冲计数用。5-11解答:52系列单片机的t0、t1和t2对外来脉冲进行计数时,t0的外来脉冲引入引脚为p3.4;t1的外来脉冲引入引脚为p3.5;t2的外来脉冲引入引脚为p1.0。5-12解答: 2rl/cp为捕获或重装载标志,由软件设置或清除。当2rl/cp=1时选择捕获功能,这时若 exen2=1,且t2ex端的信号负跳变时,发生捕获操作,即把th2和tl2的 =ffeeh即t2的重复装载常数为:th2=0ffh,tl2=0eeh第6章 串行接口61解答:计算机与外界信息交换的基本方式可分为并行通信与串行通信:并行通信是数据的各位同时传送

40、,并行通信的特点是传送速度快,但不适用长距离传输;串行通信是数据的各位依次逐位传送,串行通信的特点是传送速度较慢,但传输距离较长。并行通信适合近距离的cpu之间或设备之间快速进行数据交换;串行通信适合长距离的cpu之间或设备之间进行数据交换,或近距离的慢速数据交换。62解答:异步通信依靠起始位、停止位、保持通信同步。特点是数据在线路上的传送不连续,传送时,字符间隔不固定,各个字符可以是连续传送,也可以间断传送,这完全取决于通信协议或约定。 串行异步通信的数据帧格式如图6-1:一位起始位“0”电平;其后是5位、6位、7位或8位数据位,低位在前,高位在后;后面是一位奇偶校验位;最后是停止位“1”电

41、平。 图6-1 异步通信的数据帧格式63 解答:串行通信有3种数据传送形式单工方式:数据传送是单向的。半双工方式:数据传送是双向的,在同一时间只能做一个方向的传送。全双工方式:数据传送是双向的,即可同时发送,又可同时接收。a b a单工方式a b b半双工方式a b c全双工方式 图6-2串行通信数据传送3种形式64解答:波特率表示每秒传输的二进制数据位数。fb11×2502750 其波特率应为2750bps。65解答:mcs-51单片机串行口有4种工作模式,由串行控制寄存器scon 中的sm0、sm1 两位组合来确定。模式0是同步位移寄存器方式,用于i/o口的串、并转换。模式1是8

42、位异步通信方式,桢格式10位,波特率可变,用于双机通信。模式2是9位异步通信方式,桢格式11位,波特率固定,用于多机通信。模式3是9位异步通信方式,桢格式11位,波特率可变,用于多机远距离通信。 模式1、2、3的区别主要表现在桢格式和波特率两个方面。66解答:模式0的波特率固定:fosc/12模式2的波特率固定:fosc/n(n=64或32)模式1、3的波特率可变:t1溢出率/n(n=32或16)起始位 0d1d2 3 4 5 6 7奇偶校验位停止位 67解答:定时器t1模式2是自动装载初值模式,波特率精度高。若已知系统晶振频率、通信选用的波 特率,其初值 波特率*384)1mod(256+?

43、=sfxosc68解答:mcs-51单片机串行口的模式0是同步位移寄存器方式,用于i/o口的串、并转换。扩展并行i/o口时,需要对串行控制寄存器scon进行初始化设置;串行口需外接移位寄存器,串行口的txd端作为同步时钟端,rxd作为串行数据的i/o端。69解答:多机通信时,主机发送的信息可传送到各个从机,而各从机发送的信息只能被主机接收,利用scon中的tb8/rb8和sm2可实现多机通信。多机通信过程:所有从机在初始化时置sm2=1,都处于只能接收主机发送的地址桢(rb8=1)。主机发送地址桢(tb8=1),指出接收从机的地址。所有从机接收到主机发送的地址桢后,与自身地址相比较,相同则置s

44、m2=0;相异则保持sm2=1不变。主机发送数据桢(tb8=0),由于指定的从机已将sm2=0,能接收主机发送的数据桢,而其它从机仍置sm2=1,对主机发送的数据桢不予理睬。被寻址的从机与主机通信完毕,重置sm2=1,恢复初始状态。610 解答:串行口工作在模式2,确定smod1。未规定波特率,定时器初值任取,但两机要保持一致。 甲机发送子程序:txda:mov tmod, #20h ;置t1定时器工作方式2mov tl1, #0fdh ;置初值mov th1, #0fdh ;置初值setb tr1 ;启动t1mov scon, #90h ;置串口方式2,允许接收,且sm2=0 mov pco

45、n, #80h ;置smod=1(smod不能位操作)clr es ;禁止串行中断mov dptr, #2200h ;指发103f送数据区首地址mov r2, #51h ;指发送数据长度trsa:movx a, dptr ;读一个数据mov c,pmov tb8,c ;置校验位mov sbuf, a ;发送jnb ti, $ ;等待一桢数据发送完毕clr ti ;清发送中断标志inc dptr ;指向下一字节单元djnz r2, trsa ;判数据发完否?未完继续ret ;乙机接收子程序:rxdb:mov tmod, #20h ;置t1定时器工作方式2mov tl1, #0fdh ;置初值mo

46、v th1, #0fdh ;置初值setb tr1 ;启动t1 mov scon, #90h ;置串行方式2,允许接收,且sm2=0mov pcon, #80h ;置smod=1(smod不能位操作)clr es ;禁止串行中断mov dptr, #1400h ;置接收数据区首地址mov r2, #51h ;置接收数据长度setb ren ;启动接收setb f0 ;先置出错标志f0为1。rdsb:jnb ri, $ ;等待一桢数据接收完毕clr ri ;清接收中断标志mov a, sbuf ;读接收数据movx dptr, a ;存接收数据mov c,rb8anl c,pjc rdsb2 ;

47、都是1,则正确mov c,rb8orl c,pjnc rdsb2 ;都是0,则正确ljmp rxdbd ;出错rdsb2:inc dptr ;指向下一数据存储单元djnz r2, rdsb ;判数据接收完否?未完继续clr f0 ;正确接收,则清除出错标志f0rxdbd:ret ;第7章 中断系统71解答:mcs-51系统有0int 、t0、1int 、t1和串行口共五个中断源;0int和1int的中断标志是ie0和ie1,在电平方式下,当外部中断输入信号是低电平时,由硬件置1;在边沿方式下,当外部中断输入信号是下降沿时,由硬件置1;定时计数器溢出中断t0和t1的中断标志位是tf0和tf1,当定时/计数器产生溢出时,该位由硬件置1;串行口中断标志是ti或ri,当单片机接收到或发送完一帧数据后,由硬件置1。外部中断0int和1int的电平方式,无法清除,需采取硬件和软件相结合的方

温馨提示

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

评论

0/150

提交评论