版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、单片机原理及接口技术课后习题答案第三章1、 指令:CPU 根据人的意图来执行某种操作的命令指令系统:一台计算机所能执行的全部指令集合机器语言:用二进制编码表示,计算机能直接识别和执行的语言汇编语言:用助记符、符号和数字来表示指令的程序语言高级语言:独立于机器的,在编程时不需要对机器结构及其指令系统有深入了解的通用性语言2、 见第 1 题3、 操作码目的操作 ,源操作4、寻址方式寻址空间立即数寻址程序存储器ROM直接寻址片内RAM低128B、特殊功能寄存器MOVDATA1,DATA2 直接寻址3字节2周期MOV74H,#78H;立即数寻址 32本后面的附录A9、MOV A,R0;(R0)=80H
2、A MOV R0,40H MOV 40H,A;(A)=8040H MOV R0,#35H ;35HR0最后结果(R=35H(A=80(32=08(40)=80H10、用直接寻址,位寻址,寄存器寻址11、只能采用寄存器间接寻址(用MOVX)12128寄存器寻址12813、采用变址寻址(用MOVC)14、压缩BCD 码在进行加法运算时应逢十进一,而计算机只将其当作十六进制数处理,此时得到的结果不正寄存器寻址工作寄存器R0-R7A、C、DPTR确。用DA A指令调整(加06H,60H,66H)15、用来进行位操作16、ANLA,#17H;83H17H=03HAORL17H,A;34H03H=37H1
3、7HXRL16、ANLA,#17H;83H17H=03HAORL17H,A;34H03H=37H17HXRLA,R0;03H37H=34HCPLA;34H 求反等于CBH变址寻址程序存储器(A+PC,A+DPTR)相对寻址程序存储器256B范围偏移量)所以(A)=CBHRAM20H-2FHSFR17(1)SETB ACC.0SETB E0H ;E0H的地址5、 SFRRAM: (2)CLR ACC.7寄存器间接寻址CLR ACC.66、 MOV A,40H ;直接寻址CLR MOV 寄存器寻址CLR MOV P1,#0F0H ;立即数寻址0F0P1(3)CLR MOVR0,30H;直接寻址 (
4、R0)CLR ACC.5 MOV DPTR,#3848H;立即数寻址3848HDPTRCLR ACC.4 MOV 40H,38H;直接寻址 (38H) 40HCLR ACC.3 MOVR0,30H;直接寻址 (30H) R018、MOV MOV26H,R6MOV25H,R5MOV24H,R4MOV23H,R3MOV22H,R2MOV26H,R6MOV25H,R5MOV24H,R4MOV23H,R3MOV22H,R2MOV21H,R1MOV20H,R0MOVA,R0;寄存器间接寻址 (R0) MOVP2,P1;直接寻址 (P1)P2(R=38(=40P0=38(P=(P2=0F0DPT=3848
5、(18=30(30=38,(38)=4040)=40(48)=38H注意:左边是内容,右边是单元19、MOV 7、 用直接寻址,位寻址,寄存器寻址MOV 8、MOV 2DH,22MOVA,DATA ;直接寻址2字节1周期20、CLR CMOVA,#DATA 立即数寻址 2字节1周期MOV A,#5DH;被减数的低8位AMOV R2,#B4H8R2SUBB A,R2;被减数减去减数,差MOV 30H,A;低8位结果30HMOV A,#6FH;被减数的高8位MOV R2,#13H;减数高8位R2SUBB A,R2;被减数减去减数,差MOV 31H,A;高8位结果30H注意:如果在你的程序中用到了进
6、位位,在程序开始的时候要记得清 0 进位位21(1)A10CJNE ,#0A,L1(A)与10比较,不等转 LJMP LABEL;相等转LABELL1JNCLABEL(A)大于1,转LABEL或者:CLR CSUBB JNCLABEL(2)A10CJNE ,#0A,L1(A)与10比较,不等转 RET;相等结束L1JNC LABEL(A)大于1,转 RET A)小于10,结束或者:CLR CSUBB JNCL1RETL1:JNZ RET(3)A10CJNE ,#0A,L1(A)与10比较,不等转 L2:LJMP LABEL;相等转LABELL1:JCL2(A)小于10,转 RET或者:CLR
7、CMOV R0,#20H;数据块首地址LOOP:MOV A,R0;待查找的数据CLR C;清进位位SUBB ;待查找的数据是0AAHJZL1;是,转L1INC R01下一个待查数据DJNZ 10,继续查找MOV 51H,#00H0,51HRETL1:MOV 51H,#01HRET26、MOV R2,#31H;数据块长度MOV R0,#20H;数据块首地址LOOP:MOV A,R0;待查找的数据JNZ L1;不为0,转INC 51H;为0,00H个数增1 R0地址增1,指向下一个待查数DJNZ 10,继续查找RET27、MOV DPTR,#SOURCE;源首地址MOV R0,#DIST;目的首地
8、址R0LOOP:MOVX A,DPTR;传送一个字符MOV R0,AINC DPTR;指向下一个字符INC R0CJNE A,#24H,LOOP字符吗?不是,传送下一个字符RET28、MOV ;取该数高8位A ANLA,#80H ;取出该数符号判JZ L1;是正数,转L1SUBB A,#0AHMOVA,R4;是负数,将该数低 8 位AJCLABELCPLA;低 8 位取反JZ LABELADDA,#01H;加 1RETMOVR4,A;低 8 位取反加 1 后R422(S)=23(P)=3412HMOVA,R3;将该数高 8 位A参看书上 80 页CPLA;高 8 位取反23(S=27(26=4
9、827=23(P=3456HADDCA,#00H81参看书上 79 页生的进位MOVR3,A;高 8 位取反加 1 后R324ACALL2KB。L1:RET在看这个题的时候同时看一下 AJMP 指令。同时考虑调29、CLRC;清进位位C用指令ACALL 和 LCALL 指令和RET 指令的关系。MOVA,31H;取该数低 8 位A25、MOV R2,#31H;数据块长度RLCA;带进位位左移 1 位MOVMOV RLCMOVMOV RLCMOV31H,AA,30H A30H,A30、MOVR2,#04HMOVR0,#30HMOVR1,#40HCLRCLOOP:MOVA,R08=41H( 100
10、3H ) =52H( 1004H ) =54H;带进位位左移 1 位;结果存回 30H;字节长度R2;一个加数首地址R0;另一个加数首地址R1;清进位位;取一个加数(1005H)=12H( 1006H ) =34H( 1007H ) =30H(1008H)=00H(1009H)=70H36、MOVR0,#40HMOV A,R0;98HAINCR0;41HR0ADDCA,R1;两个加数带进位位相加ADDA,R0;98H+(41H)=47HADA A;十进制调整INCR0MOV ;存放结果INC R0;指向下一个字节INC R1;DJNZ 10,继续查找RET31、MOV R2,#08H;数据块长
11、度MOV R0,#30H;数据块目的地址MOV DPTR,#2000H ;数据块源地址LOOP:MOVX DPTR;传送一个数据INCDPTRINCDPTR;指向下一个数据ADDINCR0;MOVDJNZR2,LOOP;数据块长度减 1,没传送CLR完,继续传送ADDCRET32 ;44(差)MOV ;22MOV R0,#0FH ;2143(中)MOV ;22MOV ;3 2(好)33(1)RAM50H51H0。(2)7A0A (大家可以看一下书上,对于立即数寻址的话,后面一个字节存放的是立即数) 7850 (第一个字节的后三位是寄存器,前一个条指令是010 也就是指的 R2R078,后一个字
12、节存放的是立即数) DAFC (56)34、INC R0 INC R0R0)=7FH INC R0INC DPTR INC DPTR (DPT=1100H INC DPTR DPTR=1101H351000=53H 1001H=54H (1002)MOVR0,A42HCLRAAADDC A,#0;进位位存入INC R0MOV R0,A43H40H,41H42H元,进位放在 43H R0=43()=(40)=98H41)=AF(42)=47(43=01H 37、MOVA,61H;F2HAMOVB,#02H;02HBMUL AB;F2HO2H=E4HA;积的低8位加上63H,A;结果送62HA;清
13、A;积的高8位加进位位MOV 64H,A;结果送64H61H2,862H63H864H=02H=01(61=F2(62=CC(63=B0,(64H)=02H39、MOV ORL A,#80H MOV XXH,A40(2)MOVA,XXHMOVXRL第五章1、什么是中断和中断系统?其主要功能是什么?答:当CPU 正在处理某件事情的时候,外部发生的某一CPU这种过程称为中断,实现这种功能的部件称为中断系 统。功能:生的事件作出及时的处理完全消除了CPU大提高了CPU实现实时控制2、试编写一段对中断系统初始化的程序,使之允许INT0,INT1,TO,串行口中断,且使 T0 中断为高优先级中断。解:M
14、OVMOV3、在单片机中,中断能实现哪些功能?答:有三种功能:分时操作,实时处理,故障处理4、89C51 共有哪些中断源?对其中端请求如何进行控制?()89C51有如下中断源01T0:0T1:1TX/RX:串行接口中断请求(2)通过对特殊功能寄存器TCONSCONIEIP 的各位进行置位或复位等操作,可实现各种中断控制功能 5、什么是中断优先级?中断优先处理的原则是什么? 答:中断优先级是CPU的断请求将被禁止如果同级的多个请求同时出现,则CPU求0016、说明外部中断请求的查询和响应过程。答:当CPU 执行主程序第KCPU中断主程序的执行并保存断点地址,然后转去响应中 CPU 在每个S5P2
15、S6 期间按优先级顺序查询中断标志, 如果查询到某个中断标志为 1,将在接下来的机器周期S1K+17、89C51 在什么条件下可响应中断? 答:有中断源发出中断请求中断中允许位EA=1.即CPU申请中断的中断源的中断允许位为 1,没有被屏蔽无同级或更高级中断正在服务当前指令周期已经结束RETIIEIP该指令以及紧接着的另一条指令已执行完毕8、简述 89C51 单片机的中断响应过程。CPU在每个机器周期S5P2 CPUS61,将在接下来的机器周期 S1 期间按优先级进行中断处理,中断系统通过硬件自动将相应的中断矢量地址装入 首先置位相应的中断“优先级生效”触发器,然后由硬件执行一条长调用指令,把
16、当前的 PC 值压入堆栈,以保护断点,再将相应的中断服务的入口地址送入CPU 在响应中断后会自动清除中断标志。9、在 89C51 内存中,应如何安排程序区?答:主程序一般从0030H 开始,主程序后一般是子程序及中断服务程序。在这个大家还要清除各个中断的中断矢量地址。10、试述中断的作用及中断的全过程。答:作用:对外部异步发生的事件作出及时的处理过程:中断请求,中断响应,中断处理,中断返回11、当正在执行某一个中断源的中断服务程序时,如果有新的中断请求出现,试问在什么情况下可响应新的中断请求?在什么情况下不能响应新的中断请求?()符合以下6 a)有中断源发出中断请求中断允许位EA=1CPU申请
17、中断的中断源的中断允许位为 1屏蔽 d)无同级或更高级中断正在被服务当前的指令周期已结束RETIIEIP以及紧接着的另一条指令已被执行完12、89C51 单片机外部中断源有几种触发中断请求的方法?如何实现中断请求?答:有两种方式:电平触发和边沿触发 在每个机器周期的S5P2部中断引脚的输入电平。若为低电平,使 IE1(IE0)置“1IE1(IE0 在每个机器周期S5P2平,接着下一个机器周期采样到外部中断请求为低电 平,则使 IE1(IE0)置IE1(IE0) 0。13、89C51 单片机有五个中断源,但只能设置两个中断优先级,因此,在中断优先级安排上受到一定的限制。试问以下几种中断优先顺序的
18、安排(级别由高到低)是否可能:若可能,则应如何设置中断源的中断级别:否则,请简述不可能的理由。 定时器 0,定时器 1,外中断 0,外中断 1,串行口中断。外部中断 00003H可以,MOV IP,#0AH定时器T0 中断000BH 串行口中断,外中断 0,定时器 0,外中断 1,外部中断 10013H定时器 1。 可以,MOV IP,#10H定时器T1 中断001BH 外中断 0,定时器 1,外中断 1,定时器 0,串串行口中断0023H行口中断。不可以,只能设置一级高级优先级,如果将 INT0,T1设置为高级,而T0 级别 高于 INT1. 外中断 0,外中断 1,串行口中断, 定时器 0
19、, 定时器 1 。 可以,MOV IP,#15H001。 不可以 外中断 0101 。 不可以 外中断 0,定时器 1,定时器 0,外中断 1,串行口中断。 可以,MOV IP,#09H14、89C510CPU外部中断类外部中断是由外部原因引起的,可以通过两个固定引脚,即外部中断 0 和外部中断 1 输入信号。0P3.2IT0CPUIE0=1。硬件复位。外部中断 1 请求信号,功能与用法类似外部中断0定时中断类当定时器/计数器中的计数结构发生计数溢出的,即表但在计数方式时,中断源可以由外部引入。 TF0:T0T0T0 请求标志定时器T1 溢出中断请求。功能与用法类似定时器T0串行口中断类串行口
20、中断是为串行数据的传送需要而设置的。串行中断请求也是在单片机芯片内部发生的,但当串行口作为接收端时,必须有一完整的串行帧数据从 RI 端引入芯片,才可能引发中断。RI 或 TI:串行口中断请求。当接收或发送一串帧数据时,使内部串行口中断请求标志RI 或 TI=1,并请求中断。响应后必须软件复位。CPU 响应中断时,中断入口地址如下: 中 断 源 入 口 地 址15、中断响应时间是否为确定不变的?为什么?答:中断响应时间不是确定不变的。由于CPU 不是在任何情况下对中断请求都予以响应的;此外,不同的情况对中断响应的时间也是不同的。下面以外部中断为例, 说明中断响应的时间。在每个机器周期的S5P2
21、TCON IE0CPULCAL2到开始执行中断服务程序的第一条指令,至少需要3 个机器周期,这是最短的响应时间。如果遇到中断受阻的情况,这中断响应时间会更长一 行,则附加的等待时间取决于正在进行的中断服务程 器周期,附加的等待时间为13 个机器周期;如果正在RETIIEIP5若系统中只有一个中断源,则响应时间为38 个机器周期。16护?答:因为一般主程序和中断服务程序都可能会用到累加器,PSWCPU 在进入中断服务程序后,用到上述寄存器时,就会破坏它原来存在寄因而在进入中断服务程序后,一般要先保护现场,然后再执行中断处理程序,在返回主程序以前再恢复现场。PSW 寄存器及其他一些与主程序有关的寄
22、存器压入堆栈。在保护现场和恢复现场 时,为了不使现场受到破坏或者造成混乱,一般规定此CPU17、清叙述中断响应的CPU作是一个CPU答:在中断响应中,CPU 要完成以下自主操作过程:a) 置位相应的优先级状态触发器,以标明所响应中断的优先级别 b) 中断源标志清零(TI、RI 除外)中断断点地址装入堆栈保护(不保护PSW)中断入口地址装入 PC址处在计算机内部,中断表现为 CPU 的微查询操作。89C51 CPU在每个机器周期的S6并按优先级管理规则处理同时请求的中断源,且在下一个机器周期的S1但是以下情况除外:CPU多机器周期指令中,还未执行到最后一个机器周期正在执行中断系统的SFR 操作,
23、如RETIIE、IP18应中断?有什么条件?答:在中断请求有效并开中断状况下,并不能保证立即CPU 89C51 单片机中,CPU 在每个机器周期的 S6 状态下,查询中断源,并按优先级管理规则处理同时请求的中断源,且在下一个机器周期的S1 状态中, 响应最高级中断请求。在以下情况下,还需要有另外的等待:CPU多机器周期指令中,还未执行到最后一个机器周期c)SFRRETIIE、IP第 6 章习题答案1、定时器模式 2 有什么特点?适用于什么场合?()模式2把TL0TL18TL0TF01TH0TL0TL08TH0(2)用于定时工作方式时间 溢出周期)为 ,用于计数工作方式时,最大计数长度( TH0
24、 初值=0)为28=256这种工作方式可省去用户软件重装初值的语句,并可产生相当精确定时时间,特别适于作串行波特率发生器。 2100KHZ 等宽矩形波, 12MHZ,请编程实现。答:T05:1BHT08FFHMOV TMOD,#00H设置定时器T0工作于模式MOVTL0,#1BH;设置5ms定时初值MOVTH0,#0FFHSETBTR0;启动T0LOOP:JBC TF0,L1;查询到定时时间到?时间到转SJMPLOOP;时间未到转LOOP,继续查询L1:MOVTL0,#1BH;重新置入定时初值MOVTH0,#0FFHCPLP1.0输出取反,形成等宽矩形SJMPLOOP;重复循环3、89C51
25、定时器有哪几种工作模式?有何区别?答:有四种工作模式:模式0,模式 1,模式 2,模式 30:8513/TL5THTHTF定时时间 t=(213-初值)振荡周期 12;计数长度位213=8192 个外部脉冲1:0THTL16t=(216荡周期12216=655362:TL0TL18TL8TL 计数溢出时不仅使TF01,THTL定时时间 t=(28-初值)振荡周期 12;计数长度位28=256 个外部脉冲3:对T0T1T03,TL0TH0TL0801 相同,可定时可计数。TH0T1TR1TF1,启动和关闭仅受TR1制。定时器T1T03T102。4、89C51 内部设有几个定时器/计数器?它们是由
26、哪些特殊功能寄存器组成?答:89C51 单片机内有两个 16 位定时器/计数器,即T0和 T1。T08TH0TL0T1TH1 和TL1 组成。5作计数器时,对外界计数频率有何限制?答:定时时间与定时器的工作模式,初值及振荡周期有关。作计数器时对外界计数频率要求最高为机器振荡频率的 1/24。6、简述定时器 4 种工作模式的特点,如何选择设定? 答:0:8513/TL5THTHTF定时时间 t=(213-初值)振荡周期 12;计数长度位213=8192 个外部脉冲TMODM1M0001:0THTL16t=(216荡周期12216=65536TMODM1M0012:TL0TL18TL8TL 计数溢
27、出时不仅使TF01,THTL定时时间 t=(28-初值)振荡周期 12;计数长度位28=256 个外部脉冲TMODM1M0103:对T0T1T03,TL0TH0TL080相同,可定时可计数。TH0T1TR1TF1,启动和关闭仅受TR1制。定时器T1T03T102。TMODM1M0117T03TR1T0T1T1C/T可以使T1T1T13,就会使T1811000计数器 1 转为定时工作方式,定时10ms6WHZ, 1解:T1 为定时器时初值:T1 为计数器时初值: 所以:L1:MOVTMOD,#50HT11MOVTH1,#0FCH置入计数初MOVTL1,#18HSETB TR1T1LOOP1:JB
28、C TF1,L2; 查询计数溢出?有溢出(1000)转L2SJMPLOOP1无溢出转LOOP1,继续查L2:CLR TR1关闭T1MOV TMOD,#10H;设置 T11MOVTH1,#0ECH置入定时10ms初MOVTL1,#78HSETBTR1T1LOOP2:JBCTF1,L110ms时间到,转L1SJMPLOOP2;时间未到,转LOOP2,继续查询9、一个定时器定时时间有限,如何实现两个定时器的串行定时以满足较长定时时间的要求?答:当一个定时器溢出时,设置另一个定时器的初值为0 开始定时。10、使用一个定时器,如何通过软硬件结合方法实现较长时间的定时?答:设定好定时器的定时时间,采用中断
29、方式用软件设11、89C51 定时器作定时和计数时其计数脉冲分别由谁提供?89C5112 P3.4P3.51289C51 定时器的门控信号GATE1何启动?答:只有 (或 )引脚为高电平且由软件使或11389C51fosc=6MHz, 请利用T0 和P1.0 50 300 s解:T02 s所以 作 300 s 定时时的初值:MOVTMOD,#02H设置定时器T0工作于模式L2:CLRP1.0;P1.0输出低电平MOVTH0,#6AH300 sMOVTL0,#6AHSETBTR0T0LOOP1:JBCTF0,L1;查询300 s时间到?时间到,转SJMPLOOP1 时间未到,转LOOP1,继续查
30、询L1:SETBP1.0;P1.0输出高电平CLRTR0T0MOVTH0,#0E7H300 sMOVTL0,# 0E7HSETBTR0; 启动T0LOOP2:JBCTF0,L2;查询50 s时间到?时间到,转L2 SJMPLOOP2时间未到转 继续查14、已知89C51单片机的fosc=12MHz, 用T1定时。编程由P1.0和P1.1引脚分别输出周期为 2ms和500 s的方波。解:采用模式 0 作 定时初值:所以 MOVR2,#04H;R2“250 s”计数器入初值4CLRP1.0;P1.0CLRP1.1;P1.1输出低电MOVTMOD,#00HL2:MOVTH1,#0F8H250 sMO
31、VTL1,#06HSETBTR1T1LOOP:JBCTF1,L1; 查询 250 s 时间到?时间到,转L1SJMPLOOP时间未到转继续查L1:CPLP1.1;P1.1输出取反,形成周期为500 sCLRTR1 ;关闭T1DJNZ 1msL2CPLP1.0 ;P1.0输出取反,形成周期为2ms方MOVR2,#04H重置 s”计数器初值4 LJMPL2重复循环1580316MHz0.1ms,1ms,10ms012解:(1)0.1ms模式 0:T0501110B=0EHT0811111110B=FEH模式 1: 模式 2:1ms模式 0:T0501100B=0CHT0811110000B=F0H
32、模式 1: 模式 2:在此情况下最长定时为510.1ms1010ms模式 0:T0511000B=18HT0801100011B=63H模式 1:模式 2:在此情况下最长定时为512 s,无法一次实现定时 10ms,可用 0.1ms 循环 100 次16、89C51 单片机的定时器在何种设置下可提供三个 8 位计数器定时器?这时,定时器1 可作为串行口波特率发 生 器 。 若 波 特 率 按9600b/s,4800b/s,2400b/s,1200b/s,600b/s,100b/s 来考虑,则此时可选用的波特率是多少(允许存在一定误差)?设fosc=12MHz。T03,T1238定时器。可选 1
33、00b/s17、试编制一段程序,功能为:当 P1.2 引脚的电平上跳时,对P1.1 的输入脉冲进行计数;当P1.2 引脚的电平下跳时,停止计数,并将计数值写入R6,R7。解:MOVTMOD,#05H;T0 为计数方式且工作于模1JNBP1.2,$P1.2跳MOVTH0,#00HP1.2初值MOVTL0,#00HSETBTR0T0JBP1.2,$P1.2跳CLRTR0T0MOVR7,TH0计数初值写入MOVR6,TL018、 设 fosc=12MHz。试编制一段程序,功能为:对定T0200 s并用查询 T0 溢出标志的方法,控制 P1.0 输出周期为2ms解:T0 作定时器时初值: 所以程序 1
34、:CLRP1.0;P1.0MOV R2,#05H;R2“200 1msMOV TMOD,#02H设定时器T0工作于模式L2:MOV TH0,#38H置入定时初值MOV TL0,#38HSETB TR0;启动T0LOOP:JBC TF0,L1200 s间到,转L1SJMP LOOP时间未到,转LOOP,继续查L1:CLRTR0关闭T0DJNZ R2,L2 s”1,1ms未到,转L2CPLP1.0;到 1ms,P1.02msMOVR2,#05H重置“200 s”计数器初LJMPL2重复循环程序 2:MAIN:MOV TMOD,#02H设定时器T0工作于模式CLRP1.0;P1.0输出低电平LOOP
35、1:MOV R2,#05H;R251msLOOP:MOV TH0,#38HMOV TL0,#38HSETB TR0;启动T0JNB TF0,$200 s继续查询CLRTR0T0DJNZ R2,LOOP 1ms未到,转LOOPCPLP1.0;到 1ms,P1.02msSJMPLOOP11911期的正脉冲。第七章1、什么是串行异步通信,它有哪些作用?答:在异步串行通信中,数据是一帧一帧(包括一个字符代码或一字节数据)传送的,每一帧的数据格式参考书。通信采用帧格式,无需同步字符。存在空闲位也是异步通信的特征之一。289C51么作用?答:89C51 单片机的串行接口由发送缓冲期SBUF,接收缓冲期SB
36、UF、输入移位寄存器、串行接口控制器SCON、定时器T1 构成的波特率发生器等部件组成。由发送缓冲期SBUFSBUF状态等均由串行接口控制寄存器 SCON 控制和指示。定T13、简述串行口接收和发送数据的过程。答:串行接口的接收和发送是对同一地址( 99H)两个物理空间的特殊功能寄存器 SBUF 进行读和写的。当向SBUF发“写”命令时(MOV SBUF,,即向缓SBUFTXD送完便使发送中断标志位TI=1。在满足串行接口接收中断标志位 RI(SCON.0)=0 的条件下,置允许接收位SBUFRI=1当发读 SBUF 命令时(MOV A, SBU,便由接收缓冲期SBUF89C51 内部总线送C
37、PU。489C51作方式的波特率如何确定?答:89C51 串行口有 4 种工作方式:方式(8位同步移位寄存器(10位异步收发方式(11位异步收发,方式(11位异步收发。 2,11方式 0:方式 0 的波特率fosc/12(波特率固定为振荡频率 1/12)方式 2:方式 2 波特率2SMOD/64fosc13:132SMOD/32(T1 溢出速率)如果 T1 采用模式 2 则:5、若异步通信接口按方式 3 传送,已知其每分钟传送3600 个字符,其波特率是多少?3600311位,则:波特率=(11b/字符)(3600 字符/60s)=660b/s 6、89C51 中 SCON 的SM2,TB8,
38、RB8 有何作用?答:89c51SCONSM223SM2=1,则允许多机通信。TB8923数据帧的标志位。RB89239 位数据放在RB8/数据标示位。7、设1,波特率为 并用查询串行口状态的方法,读出接收缓冲器的数据并回送到发送缓冲器。解:START:MOV SCON,#40H串行接口工作于方式MOV TMOD,#20H定时器T1工作于模式2MOV TH1,#0E8HMOV TL1,#0E8HSETB TR1T1MOV A,SBUFMOV SBUF,AJNBTI,$CLRTITISJMP $8、若晶振为 11.0592MHz,串行口工作与方式 1,波特4800b/sT1计数初值。解:MOV
39、TMOD,#20H定时器T1工作于模式MOV TH1,#0FAH赋定时器计数初值 MOV TL1,#0FAH9、为什么定时器T1 用作串行口波特率发生器时,常选用工作模式 2?若已知系统时钟频率和通信用的波特率,如何计算其初值?答:因为工作模式2需重装时间参数(计数初值0T1已知系统时钟频率fosc 和通信用的波特率fbaud,可得出定时器T1 模式 2 的初值10、若定时器 T1 设置成模式 2 作波特率发生器,已知fosc6MHz。求可能产生的最高和最低的波特率。解:最高波特率为T1 定时最小值时,此时初值为 255, 并且 SMOD=1,有:最高波特率为 T1 定时最大值时,此时初值为
40、0,并且SMOD=0,有:11、串行通信的总线标准是什么?有哪些内容?答:美国电子工业协会(EIA)口标准有RS-232C,RS-422,RS-423RS-485在异步串行通信中应用最广的标准总线是 RD-232C。它包括了按位串行传输的电气和机械方面的规定,如适用离(15m)或带调制解调的通信场合。采用 RS-422, RS-4851000m。12、简述单片几多机通信的原理。答:当一片 89C51(主机)与多片 89C51(从机)通信SM21.主机首先发送的一帧数据91,所有的从机接收到数据后,将其中第9 位装入RB89(RB8)的值来决定从机可否再接收主机的信息。若(RB8)=0,说明是数
41、据帧,则使接收中断标志位RI=0,信息丢失;若SBUFRI=1,中断所有从机,只有被寻址的目标从机清除SM(SM2=,以接收主机发来的一帧数据(点对点通信SM2=1. 1389C5111200b/s,以中断方式传送数据。请编写全双工通信程序。fosc=6.0MHZ9-2SMOD=0,T1F3H。程序如下:ORG0000HAJMP MAINORG0023H串行口的中断入口地AJMP SERVE转向中断服务程序ORG0040HMAIN: MOVSP,#60H设置堆栈指MOVSCON ,#50HMOVPCON MOVTMOD,#20HMOVMOVSETBTR1MOVR0 ,#20H置发送数据区首地M
42、OVR1 ,#40H;置接收数据区首地址MOVR7 ,#10H;置发送字节长度MOVR6 ,#10H;置接收字节长度SETB ESSETB EA;CPUMOVA ,R0;取第一个数据发送MOVSBUF ,A;发送第一个数据SJMP $;等待中断SERVE: JNBRI ,SENDCLR RIMOV A ,SBUF读出接收缓冲区内MOV R1 ,A读入接收缓冲区DJNZ R6 ,L1判断数据块发送完SJMP L2数据块接收完,转L2 L1:INCR1修改数据区指针L2:RETI中断返回SEND:CLRTI清除发送中断标DJNZ R7 ,L3判断数据块发送完否SJMP L4数据块接收完,转L4 L
43、3:MOVA ,R0取数据发MOVSBUF ,A发送数据INCR0L4:RETIEND1489C5131200b/s9解:ORG0000HAJMP MAINORG 0023H ;串行口的中断入口地址AJMP STOP ;转向中断服务程序ORG 0040H ; 主 程 序MAIN: MOV SP,#60HMOV TMOD,#20H MOV TH1,#0E8H MOV TL1,#0E8HSETB TR1MOV SCON ,#0D0H MOV PCON ,#00HMOVR0 ,#20H置发送数据区首地MOVR1 ,#40H;置接收数据区首地址SETB ESSETB EA;CPUMOVA ,R0MOV
44、C, PSW.0;PCCPLCMOVTB8 ,CMOVSBUF ,A;发送第一个数据SJMP$STOP: JNB RI SOUT ;TI=1,为发送中断CLR RIMOV A ,SBUF ;读出接收缓冲区内容MOV C ,PSW.0 ;PCCPL C ; 形 成 奇 校 验JC LOOP1 判断接收端的奇偶值转JNB RB8 ,LOOP2转SJMP ERROR 转 出 错 处 理LOOP1: JB RB8 ,LOOP2 ;C=1 , RB8=1, 转LOOP2SJMP ERROR LOOP2:MOV R1 ,A将接收数据送入接收数据INCR1修改数据区指针RETISOUT: CLRTI是发送中
45、断,清除发送中断标INCR0修改数据区指针MOVA ,R0MOVPSW.0, CCPLCMOVTB8 ,CMOVSBUF ,ARETI ERROR:15、某异步通信接口,其帧格式由1个起始位0,7个数据位,1 个奇偶校验位和 1 个停止位(1)组成。当该接口每分钟传送 1800 个字符时,试计算出传送波特率。解:该异步通信接口的帧格式为 10b/字符,当该接口每分钟传送 1800 个字符时:波特率=(10b/字符)(1800 字符/60s)=300b/s1613fosc定时器T12 的初值及SMODT12解:关系如下:当波特率为 110b/s,fosc6MHz,令SMOD=0,有: 17、设计
46、一个单片机的双机通信系统,并编写通信程 序。将甲机内部RAM 40H-4FH参考教材例题 7-121微处理器,RAM,ROM,以及 I/O 口,定时器,构成的微型计算机称为单片机。 2指令寄存器PC)指示出将要执行的下一条指令地8PCHPCL4KBROM87C5180C51ROMEPROM,89C514KBFLASHROM,51型的程序存储器容量是普通型的 2 倍。880C51256 字节数据存储器 RAM/SFR写的数4KB 程序存储器FLASHROM8 位并行I/OP0-P316系统, 一个全双工UART 的串行口I/O689C51片内程序存储器容量为4K开始,存放程序和表格常数,片外最多
47、可扩展 64KBROM 地址 空间分为数据存储器和程序存储器。 72561281281283作寄存器区(00H1FH,位寻址区(20H2FH)和用户 RAM128()使用的, 因此称之为特殊功能寄存器区内部程序存储器:在 8031 片内无程序存储器,8051 片内具有 4KB 掩模ROM,8751 片内具有 4KBEPROM。引脚是片内外程序存储器的选择信号。当 端保持程序计数器对于8052)时,将自动转向访问外部程序存储器。当 端保持低电平时,不管是否有内部程序存储器,则只访问外部程序存储器。由于 8031 片内没有程序存储器,所以8031RST 个时钟振荡周期)的高电平有效,完成复位,复位后,CPU 和系统都处于一个确定的初始状态,在这种P0P3FFH0。ALE/ :1/6,CPU8ALE 端是否有脉PSEN号有效时可读写片外或片外 接口。P0普I/O8/数据总线使用。P1FLASHROM 编程和校验是P1八位地址;只用作普通I/OP2P1I/O使用或高 8 位地址线使用时访问外部程序存储器和 位地址的外部数据存储器。P3P1 口增加了与非门和缓冲器;具有准双向I/O 41 11普林斯顿结构:一个地址对应唯一的存储单元,用同类访问指令。哈佛结构:程序存储器和数据存储器分
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 盐城市盐都区(2026年)辅警招聘公安基础知识考试题库及答案
- (2025年)白银市平川区社区网格员笔试考试题库及参考答案
- 2026年疾病控制卫生高级职称考试试题及答案
- 矿泉水资源开发与水资源管理的关系
- 纳雍县(2026年)公开遴选公务员笔试题及答案解析(A类)
- 古筝演奏基础与进阶技巧教程
- 2025年教育学心理学题库及答案
- 2025年事业单位招聘考试公共基础知识模拟试卷及答案
- 2025年贵州电子信息职业技术学院单招考试职业适应性测验近5年参考题库含答案解析
- 2025年内科学主治医师中级职称考试真题消化内科普通外科妇产科儿附答案
- 2026学校防范电信网络诈骗“无诈校园”建设工作方案(完整版)
- 2026时事政治必考试题库含答案
- 2026届高考政治一轮复习:统编版必修1~4+选择性必修1~3全7册必背考点提纲汇编
- 2025年组织生活会个人发言提纲存在问题及具体整改措施
- T/CECS 10143-2021高分子量高密度聚乙烯(HMWHDPE)双波峰缠绕结构壁排水管
- DL∕T 1616-2016 火力发电机组性能试验导则
- 公司危险化学品安全管理办法
- GB/T 26379-2011纺织品木浆复合水刺非织造布
- GB/T 13773.2-2008纺织品织物及其制品的接缝拉伸性能第2部分:抓样法接缝强力的测定
- 腰骶部疾病诊断及治疗
- 施工方案审批意见及修改回复单
评论
0/150
提交评论