单片机原理及应用试题.ppt_第1页
单片机原理及应用试题.ppt_第2页
单片机原理及应用试题.ppt_第3页
单片机原理及应用试题.ppt_第4页
单片机原理及应用试题.ppt_第5页
已阅读5页,还剩65页未读 继续免费阅读

下载本文档

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

文档简介

单片机原理及应用练习题,第一章基础知识第二章MCS-51结构及引脚第三章MCS-51指令系统第四章汇编语言程序设计第五章MCS-51片内接口第六章MCS-51系统扩展第七章单片及应用设计实例,第一章基础知识,1写出-120的原码、反码、补码的16进制值。,答案:120=1111000B120-120原码01111000B(78H)11111000(F8H)反码01111000B(78H)10000111(87H)补码01111000B(78H)10001000(88H),2.十进制数105,化成二进制数是_,化成十六进制数是_。,答案:01101001,69,3.十进制数-43,在八位计算机中的表示_。,答案:10101011,4.将八进制数75615转换成二进制数是。,答案:111101.110001101,6.将十进制数06875转换成二进制数是。,答案:01011,5.将十六进制数BA45转换为二进制数是_。,答案:101110100100.0101,7.与二进制01010100对应的十进制数是。,答案:84,第二章MCS-51结构及引脚,1什么是单片机?其主要特点是什么?,答案:单片机具有体积小、可靠性高、控制功能强、使用方便、性能价格比高、容易产品化等特点。,2.MCS-51系列的典型产品8051、8751和8031的区别是什么?,答案:8051、8751和8031均为8位单片机,其内部结构是基本相同的。其不同为:8051内部有4KBROM,8751内部有4KBEPROM,而8031内部无程序存储器。,3单片机主要应用在什么领域?,答案:单片机主要应用在:智能仪表、机电一体化、实时控制、分布式多机系统、家用电器等,对各个行业的技术改造和产品的更新换代起重要的推动作用。,4.单片机包括哪两种复位方式?在单片机应用系统中为何需要系统复位?,答案:单片机可通过上电自动复位和人工复位,使CPU和系统中的其他部件都处于一个确定的初始状态,并从这个状态开始工作。,答案:64K字节程序存储器空间(0-0FFFFH)立即寻址和基寄存器加变址寄存器间接寻址256字节内部RAM空间(0-0FFH)、(00-7FH)寄存器间接寻址和直接寻址,(80-8FH)寄存器间接寻址128字节内部特殊功能寄存器空间(80-0FFH)直接寻址,位寻址空间(0-0FFH)位寻址64K字节数据存储器空间(0-0FFFFH)寄存器间接寻址,5什么是指令周期?8051的指令周期一般由几个机器周期构成?,答案:CPU取出一条指令至该指令执行完所需要的时间称为指令周期。大多数8051指令执行时间为一个机器周期或两个机器周期。,68051的一个机器周期包括几个状态、几个时钟周期(振荡器频率)?机器周期与时钟周期(振荡器频率)的关系是怎样的?,答案:一个机器周期由六个状态组成,每个状态为二个时钟周期,即一个机器周期由六个状态构成,所以一个机器周期T=12/f0sc,7MCS-51的存储器空间分为哪些部分(五个独立的存储空间的划分)?各空间的寻址范围、寻址方式是什么?,字节地址20H2FH既可作为普通的字节寄存器,也可作为位寻址区,每个字节均可分为8个可位寻址的存储元(bit,位),此区间128个存储元按位另外统一编址(即位地址),分别从00H7FH,常用来存放实际控制中的各种状态信息。字节地址30H7FH普通的字节寄存器,常用来存放临时数据,又称数据缓冲区。其中最高端的若干字节常用于教学开发机各LED数码管的数据缓冲区,配合监控程序中的显示模块使用。例如江苏启东厂的教学开发机就是将7EH79H这6个存储单元当做LED显示缓冲区,无论用户,预制内容是BGD码还是七段代码,都可以在监控程序中找到对应的显示模块,通过调用来完成用户所需的数值显示。片内高端l28字节的RAM区只有21个字节有效,这21个字节既有地址,又有各自独特的名称,且用途各异,因此称为特殊功能寄存器(SFR)空间,其中凡字节地址能被8整除的SFR均可实现位寻址,其也有独立的位地址,且编号规律与低端位寻址区不同,与各自所在SFR字节地址相关。,10内部RAM低128B从功能和用途方面,可划分为哪三个区域?,答案:工作寄存器区、位寻址区、堆栈和数据缓冲区,118051内部RAM有几组工作寄存器?每组工作寄存器有几个工作寄存器?寄存器组的选择由什么决定?,答案:01FH为四组工作寄存器区,寄存器组的选择由PSW中的RS1、RS0两位决定,每组有8个工作寄存器R0R7。,12什么是特殊功能寄存器?分布在哪里?,答案:8051内部的I/O口锁存器以及定时器、串行口、中断等各种控制积存器和状态积存器都称为特殊功能积存器。分布在80HFFH的地址空间。,138051的外部RAM和I/O口是如何编址的?其寻址空间在哪里?,答案:是统一编址的,均在64KB的外部数据存储器空间,CPU对它们具有相同的操作功能。,14MCS-51的程序存储器的寻址空间是多少?如何区别片内程序存储器和片外程序存储器的?,答案:为64K字节。若接VCC,则程序PC的值在0至0FFFFH之间时,CPU取指令时访问内部的程序存储器,PC的值大于0FFFH时,访问外部的程序存储器;若接VSS,则内部的程序存储器被忽略,CPU总是从外部的程序存储器中取指令。,158051的位寻址区在哪里?位寻址空间是多少?,答案:内部RAM的202FH为位寻址区,这16个单元的每一位(16*8)都有一个位地址,它们占据位地址空间的07FH。,16什么是SP?什么是堆栈?,答案:SP是堆栈指针,指出栈顶位置。后进先出的缓冲器称为堆栈。,178051的堆栈开辟在什么地方?其堆栈指针是什么?复位后堆栈指针初值是多少?一般将SP设置为多少?,答案:堆栈设在307FH的范围内。SP是堆栈指针。复位后是07H。一般设置为6FH。,188051的数据缓冲区一般在什么地方?,19.在计算机中,为什么要采用多级结构的存储器系统?它的应用是建立在程序的什么特性之上的?,答案:为了缓解主存储器读写速度慢,不能满足CPU运行速度需要的矛盾,另一方面又要解决主存储器容量小,存不下更多规模更大的程序与更多的数据难题,当前计算机系统中,广泛采用了多级结构的存储器体系结构,建立在程序运行的局部性原理之上。,答案:在内部的07FH,除了实际用到的工作寄存器、位标志和堆栈区以外的单元,都可以作为数据缓冲器使用,存放输入的数据或运算的结果。,第三章MCS-51指令系统,1什么是指令?什么是指令系统?什么是伪指令?,答案:指令是指示计算机执行某种操作的命令,指令是以一组二进制码表示的,称为机器指令。计算机只能识别和执行机器指令。通常把一台计算机所能执行的全部指令的集合称为指令系统。伪指令也称为汇编命令,大多数伪指令汇编时不产生机器语言指令,仅提供汇编控制信息。,2什么是总线?总线有哪些分类?,答案:总线是计算机中各个功能部件之间传送信息的公用通道,是连接各个功能部件并为它们服务的一组信息传递导线,总线可分为单向总线和双向总线,并行总线和串行总线,若按传递信息的属性不同,可分为地址总线、数据总线和控制总线。,3立即寻址,其操作数是在存储器中。这句话是否正确?,答案:错误。操作数是在程序存储器中。,4.一条指令通常由哪两部分组成?指令的操作码一般有几种组织方式?各自应用在什么场合?各自的缺点是什么?,答案:一条指令由操作码和操作数地址码两部分组成。对操作码的组织与编码有以下三种:,5.计算机指令字中要用的操作数一般来自那些部件?如何在指令中表示这些操作数的地址?通常使用那些寻址方式?,答案:(1)CPU内部的同用寄存器:给出用到的寄存器编号,寄存器内容可以是运算用的数据或操作数地址。(2)外围设备(接口)中的一个寄存器:用设备编号或设备入出端口地址或设备映像地址表示(3)内存储器的一个存储单元:存储单元地址寻址方式:立即数寻址、直接寻址、寄存器寻址、寄存器间接寻址、变址寻址、相对寻址、基地址寻址、间接寻址、堆栈寻址,6.什么是形式地址?简述对变址寻址、相对寻址、基地址寻址应在指令中给出些什么信息?如何得到相应的实际(有效)地址?各自有什么样的主要用法?,答案:表示在指令中的操作数地址称为形式地址。(1)变址寻址:应在指令中给出一个数值(称为变址偏移量)及一个寄存器(称为变址寄存器)的编号。实际地址(又称有效地址)=变址寄存器的内容+变址偏移量主要用于处理数组型数据。(2)相对寻址:应在指令中给出一个数值(称为相对寻址偏移量)实际地址(又称有效地址)=程序计数器PC的内容+相对寻址偏移量主要用于相对转移指令。(3)基地址寻址:应在指令中给出一个寄存器(称为基址寄存器)的编号。实际地址(又称有效地址)=程序中的地址+基址寄存器主要用于多道程序或浮动地址程序定位存储器空间。,答案:寄存器寻址:在指令字中直接给出操作数所在的通用寄存器的编号寄存器间接寻址:在寄存器中给出的不是一个操作数,而是操作数地址。,7.寄存器寻址和寄存器间接寻址的区别?,说明下列指令中源操作数采用的寻址方式。,MOVR5,R7MOVA,55HMOVA,55HJMPA+DPTRMOV30H,CMOVA,R0MOVXA,R0,寄存器寻址方式,直接寻址方式,立即寻址方式,变址寻址方式,位寻址方式,间接寻址方式,间接寻址方式,判断以下各条指令是否正确(LL1和PROC为标号)(1)MOVR0,R7()(2)XCHDA,30H()(3)MOVXA,R3()(4)ADDA,R7()(5)SUBR1,R2()(6)ANL36H,#99H()(7)MOVC,ACC.0()(8)ORLP1.0,C()(9)JBC20H.0,LL1()(10)LCALLPROC(),下列各条指令其源操作数的寻址方式是什么?各条指令单独执行后,A中的结果是什么?设(60H)=35H,(A)=19H,(R0)=30H,(30H)=0FH,(DPTR)=2000H,(2000H)=AAH,(2019H)=23H(1)MOVA,#48H(2)ADDA,60H(3)ANLA,R0(4)XCHDA,R0(5)MOVXA,DPTR(6)MOVA,R0(7)MOVCA,A+DPTR,(A)=48H立即寻址,(A)=4EH直接寻址,(A)=09H寄存器间接寻址,(A)=1FH,(30H)=09H寄存器间接寻址,(A)=0AAH寄存器间接寻址,(A)=30H寄存器寻址,(A)=23H基变址寻址,阅读下列程序段,写出每条指令执行后的结果,并说明此程序段完成什么功能?(1)MOVR1,#30H;(R1)=MOVA,#64H;(A)=ADDA,#47H;(A)=DAA;(A)=MOVR1,A;(R1)=(2)阅读程序:若(A)=80H,(R0)=17H,(17H)=34H,执行下列程序段后,(A)=?ANLA,#17H(A)=ORL17H,A(17H)=XRLA,R0(A)=CPLA(A)=,30H,64H,0ABH,11H,30H,(30H)=11H,00H,34H,34H,0CBH,设(A)=0FH,(R0)=30H内部RAM(30H)=0AH,(31H)=0BH(32H)=0CH请写出在执行各条列指令后,所示单元的内容MOVA,R0;(A)=MOVR0,32H;(30H)=MOV32H,A;(32H)=MOVR0,#31H;(R0)=MOVA,R0;(A)=,第四章汇编语言程序设计,将内部RAM的40H4FH单元置初值A0HAFH。(用循环程序),MOVR7,#10HMOVA,#0A0HMOVR0,#40HLOOP:MOVR0,AINCAINCR0DJNZR7,LOOPRET,MOVDPTR,#2000HMOVXA,DPTRXCHA,BMOVDPTR,#3000HMOVXA,DPTRXCHA,BMOVXDPTR,AMOVDPTR,#2000HXCHA,BMOVXDPTR,ARET,题目:试编程实现外部RAM2000H单元的内容与3000H单元内容互换。,题目:编写程序,把外部RAM1000H10FFH区域内的数据逐个搬到从2000H开始的区域。,MOVDPL,#00HMOVR7,#0FFHLOOP:MOVDPH,#10HMOVXA,DPTRMOVDPH,#20HMOVXDPTR,AINCDPL;此题中DPL可公用DJNZR7,LOOPEND,题目:分析下面个程序段中指令的执行结果(1)MOVSP,#50HMOVA,#0F0HMOVB,#0FHPUSHACC;(SP)=;(51H)=PUSHB;(SP)=;(52H)=POPB;(SP)=;(B)=POPACC;(SP)=;(A)=,(2)MOVA,#30HMOVB,#0AFHMOVR0,#31HMOV30H,#87HXCHA,R0;(A)=;(R0)=SWAPA;(A)=,题目:编写一循环程序,求出内部RAM20H单元二进制数中含1的个数,并将结果存入21H单元。,MOV21H,#00HMOVA,20HMOVR7,#08HLOOP:RLCA;左循环一位,最高位到CJNCNEXT;C为0INC21H;C为1,21H内容1NEXT:DJNZR7,LOOPEND,题目:编写一循环程序,查找内部RAM30H50H单元中出现FFH个数,并将查找搭结果存入51H单元。,MOVR0,#30H;数据区首地址MOVR7,#20H;数据个数MOV51H,#00H;先设只有0个0ffhLOOP:MOVA,R0INCR0CJNEA,#0FFH,NEXT;比较,不等于0ffh转NEXT;等于0ffh,继续执行INC51HNEXT:DJNZR7,LOOPEND,题目:查表程序设计,1.用DPTR查表(查09平方表)1000C083TA:PUSHDPH1002C082PUSHDPL1004902000MOVDPTR,#TAB100793MOVCA,A+DPTR1008D082POPDPL100AD083POPDPH100C22RETORG2000HTAB:DB00H,01H,04H,09H200000200101200204200309,题目:用PC查表(查09平方表),ORG1000H1000C083TA:ADDA,#01H;#01H为偏移量100283MOVCA,A+PC100322RET100400DB00H,01H,04H,09H100501END100604100709偏移量表首地址(查表指令下一条指令地址)1004H1003H01H,题目:循环程序设计,延时50ms程序DEL:MOVR7,#200DEL1:MOVR6,#125DEL2:DJNZR6,DEL2;125*2=250usDJNZR7,DEL1;0.25ms*20050msRET使用12MHz晶振时,一个机器周期为1us,执行DJNZ指令为2us,加其他指令的时间(25012)*200150.301ms,题目:计算几个数据的和,例题:对内部RAM50h开始的10个无符号数求和。,源程序:,ADD1:MOVR7,#10;循环次数n10MOVR3,#0;存放结果的高8位MOVR4,#0;存放结果的低8位MOVR0,#50H;求和的数据存放在从内部RAM50h开始的;单元中,。注意:(50h)?不知道LOOP:MOVA,R4;ADDA,R0;(R4)+(5?H)AMOVR4,A;结果送回R4CLRA;ADDCA,R3;把进位位C加到高8位去MOVR3,AINCR0;为下一轮循环作准备DJNZR7,LOOPEND,解释:,高8位低8位(R3)(R4)+(50h)C(A),MOVA,R4ADDA,R0MOVR4,A,CLRAADDCA,R3MOVR3,A,(50h)中是什么,不知道,不能用ADDA,50H,题目:分支程序设计,基本分支程序:(1)若(A)14H,转NEXT,否则继续执行,(A)14H相当于(A)14H相当于(A)15H,CJNEA,#15H,LOOPLOOP:JNCNEXT,CJNEA,#14H,LOOPLOOP:JNCNEXT,CJNEA,#14H,LOOPLOOP:JCNEXT,CJNEA,#data,rel;(A)=#data,继续Cy0(A)#data,转Cy0(A)#data,转Cy1特点:只有时,Cy1,例1:按下面公式编写程序,x为无符号数,存在20h单元y存放在21h单元。,ORG0030HMOVA,20HCJNEA,#21H,LOOP1LOOP1:JCNEXT1CJNEA,#40H,LOOP2LOOP2:JNCNEXT2MOVB,#2MULABAJMPNEXT2NEXT1:CPLANEXT2:MOV21H,AEND最终结果存在21h中,题目:分支程序例,题目:分支程序例,从内部RAM22h单元开始存有一个无符号数数据块,长度n存于21h中。求出数据块中的最小数,存于20h中。,ORG0030HMOVR0,#22H;数据块起始地址MOVR1,21H;数据个数nMOV20H,#0FFH;最大数LOOP:MOVA,R0;取新数INCR0;为取下一个新数作准备CJNEA,20H,LOOP1;与原最大数比较LOOP1:JNCNEXT;大,原最小数保留MOV20H,A;小,改变最小数NEXT:DJNZR1,LOOP;循环END,FRT:MOVA,40H;取行李重量G放在40HMOVR3,AMOVB,#03H;M=G3MULABMOVR2,A;暂存3G在R2MOVA,R3;取回GCJNEA,#06H,L1;G5?L1:JCWETC;是,转至WETCSUBBA,#05H;否则M=3G+2(G-5)RLCAADDA,R2WETC:MOV41H,A;最后结果M存41Hend,题目:行李计价:当G5,M=G3;当G5,M=G3+(G-5)(5-3),题目:散转程序设计,根据R7中的内容,转向各个子程序。R70,转入Prog0R71,转入Prog1R72,转入Prog2R7n,转入Progn,ORG0030HJUMP1:MOVDPTR,#TABCLRAMOVA,R7ADDA,R7AJMPA+DPTRORG0100HTAB:AJMPProg0AJMPProg1AJMPProg2,*AJMP即把PC指向子程序的起始地址;*R7x2是AJMPA+DPTR的机器码匹配;此处n127;*如用LJMPA+DPTR,则R7x3,程序还要作相应修改。,题目:数制转换程序设计,例:8位二进制转换成BCD码。(用十进制表达的二进制码),;程序名:BINBCD1;功能:0FFH内的二进制数转换为BCD数;入口:A存要转换的二进制数;出口:R0存放BCD数百、十、个位数的地址BINBCD1:MOVB,#100DIVABMOVR0,AINCR0MOVA,#10XCHA,B;(A)原(B),(B)=10DIVABMOVR0,AINCR0XCHABMOVR0,ARET,题目:设内部RAM(30H)=5AH,(5AH)=40H,(40H)=00H,端口P1=7FH,请注释每条指令执行后的结果MOVR0,#30H;(R0)=MOVA,R0;(A)=MOVR1,A;(R1)=MOVB,R1;(B)=MOVR1,P1;(5AH)=MOVA,P1;(A)=MOV40H,#20H;(40H)=MOV30H,40H;(30H)=,题目:阅读程序,指出程序功能,MOVR0,#31HMOVR3,#3MOVR1,#00HMOVR2,#00HLOOP:MOVXA,R0;取一个加数ADDCA,R2;单字节数MOVR2,A;和低位送R2JNCLOOP1;无进位转移INCR1;有进位高位加1LOOP1:INCR0;指向下一单元DJNZR3,LOOP;次数减1,不为0转移,功能:存储在外部数据存储器31H开始的3个字节数相加,结果低字节送R2,高字节送R1。,第五章MCS-51片内接口,1.通用可编程接口的作用是什么?各自的功能是什么?,答案:(1)命令寄存器:存放CPU发来的控制命令。(2)状态寄存器:供CPU通过读操作来了解设备的运行状态。(3)数据缓冲器:解决CPU与输入输出设备运行速度不匹配的矛盾。(4)处理中断请求、屏蔽和判优等逻辑线路,外设可申请中断,CPU可屏蔽中断及判断优先级。,3.计算机中有哪些常用的输入输出控制方式?各自的优缺点是什么?,2.开中断,关中断,中断屏蔽是何含义?他们的作用是什么?,答案:开中断:中断允许触发器置“1”,关中断:中断允许触发器清“0”中断屏蔽:中断屏蔽触发器置1,答案:(1)程序直接控制方式指在用户程序中直接使用I/O指令完成输入输出操作,它是由CPU通过查询设备的运行状态,来控制数据传送过程。缺点:严重影响系统运行性能。,(2)程序中断传送方式由被读写的设备主动“报告”CPU它是否已进入准备好状态,这样,CPU就不必花费时间去循环测试,大大解脱了CPU在执行输入/输出过程中的负担,从而提高了系统的总体运行性能(3)直接存储器存取方式主要用于快速设备和主存储器成批交换数据的场合,把数据的传输过程交由一块专用的接口卡(DMA接口)来控制,让DMA卡代替CPU控制在快速设备与主存储器之间直接传输数据,每传输一个数据只需一个总线周期即可。(4)I/O通道控制方式使用从属于CPU的、专用于处理I/O操作的处理器(通道)协助CPU完成输入输出操作的运行方式。(5)外围处理机输入出方式主要用于大型高性能的计算机系统中,是使用微、小型通用计算机协助处理机完成输入输出操作。,4.简述一次中断处理的完整过程?,答案:(1)中断请求:是由中断源发出并送给CPU的控制信号,由中断源设备通过置“1”设置在接口卡上的中断触发器完成。中断屏蔽触发器置“1”,表示要屏蔽该设备的中断请求(2)中断响应条件:当CPU接到中断请求信号时,如果下面几个条件都具备,就会响应中断请求。允许中断(允许中断触发器为“1”状态)。CPU结束一条指令的执行过程。新请求的中断优先级更高(3)中断处理包括:关中断:保证在此之后的一小段时间内CPU不能响应新的中断请求。保存断点(PC的内容,程序状态字的内容)判别中断源:找到中断服务程序的入口地址开中断执行中断服务程序关中断恢复现场,恢复断点开中断返回断点,58051应用系统只设置一个中断优先级。定时器T0中断和串行口的TI中断同时产生,CPU响应哪一个中断?为什么?若CPU已经在响应串行口TI中断,又有T0中断申请产生,问CPU是否会暂停对TI中断的响应而转去响应T0中断?为什么?答案:响应T0中断,原因外部中断INT0最高定时器/计数器T0外部中断INT1定时器/计数器T1串行口的中断RI/TI。最低会,原因同前。,68051应用系统有二个中断优先级,其中串行口的RI中断设置为高优先级,定时器T1设置为低优先级。若CPU正在响应RI中断,现在T1产生中断,问T1中断是否可以打断正在响应的RI中断?为什么?,答案:不能。原因CPU先处理RI高优先级中断,8若8051的晶振频率fosc为6MHZ,定时器/计数器T0工作在工作方式1,要求产生10ms定时,写出定时器的方式控制字和计数初值(分别写出TH0与TL0值)。,7.设8031晶振频率fosc为6MHZ,利用定时器T0方式2,产生500ms定时。使P1。0每隔500ms产生一次跳变。(即输出周期为1ms的方波。)编写定时器T0的初始化程序和方波实现程序。,答案:a=6程序:MOVTMOD,#2MOVTH0,#6MOVTL0,#6SETBTR0MOVIE,#82HCPLP1.0RET,答案:TMOD:#01H;TH0:3CH;TL0:0B0H方式0:a=213-T*fosc/12高8位低5位0000方式1:a=216-T*fosc/12高8位低8位0110方式2:a=28-T*fosc/12相同0220,9.SBUF的含义及作用是什么?,答案:SBUF串行口缓冲寄存器是可直接寻址的专用寄存器。它对应两个寄存器,一个发送寄存器,一个接收寄存器,CPU写SBUF,就是修改发送寄存器;读SBUF,就是读接收寄存器。,10“MCS-51有一个全双工的同步串行通信接口”,这句话是否正确?,错误:有一个全双工的异步串行通信接口,11MCS-51的串行口有几种工作方式?,答案:串行口控制器SCON有四种工作模式:模式0下,串行口作为同步移位寄存器,其波特率是固定的为fosc/12,其中fosc是振荡器频率。模式1下,传输的是10位信息:1位起始位(0),8位数据(低位在先)和1位停止位(1),由TXD发送,由RXD接收,波特率可变,取决于定时器1或2的溢出速度。模式2和模式3下,发送和接收得都是11位数据:1位起始位(0),8位数据(低位在先),1位可编程位(第9数据位)和1位停止位(1)。,12“由于MCS-51的串行口的数据发送和接收缓冲器都是SBUF,所以其串行口不能同时发送和接收数据,即不是全双工的串行口。”这句话是否正确?如果不正确,错在哪里?,错误:串行口可以同时发送和接收数据,是全双工的串行口,13“8051串行口的波特率可以由定时器T0的溢出率决定。”这句话是否正确?,错误:由T1的溢出率决定,14波特率加倍位SMOD的作用是什么?,答案:串行口中模式0下的波特率是固定的为fosc/12,模式2的波特率是fosc/32或fosc/64,取决于POCN寄存器的SMOD位的值,若SMOD=0波特率为fosc/64,若SMOD=1波特率为fosc/32。,15.MCS-51定时器/计数器的四种工作方式?,1.定时工作方式0方式0是13位计数结构的工作方式,其计数器由TH0全部8位和TL0的低5位构成。当TL0的低5位计数溢出时,向TH0进位,而全部13位计数溢出时,则向计数溢出标志位TF0进位。在方式0下,当为计数工作方式时,计数值的范围是18192(213)当为定时工作方式时,定时时间的计算公式为:(213计数初值)晶振周期12或(213计数初值)机器周期其时间单位与晶振周期或机器周期相同(ms)。例题:当某单片机系统的外接晶振频率为6MHz,该系统的最小定时时间为:213(2131)1/(6106)1221062(ms)最大定时时间为:(2130)1/(6106)121638410616384(ms)或:最小定时单位21316384(ms),第六章MCS-51系统扩展,1.DMA传输方式的优点是什么?DMA接口中通常应包括那些逻辑部件?各自的功能是什么?,答案:优点:速度快,不须CPU参与,满足高速I/O设备的要求,有利于CPU发挥效率DMA接口包括:(1)主存地址计数器:存放读写主存用到的主存地址。(2)数据数量计数器:存放传送数据的数量。(3)DMA的控制状态逻辑,用于修改主存地址计数器和数据数量计数器,指定传送功能,协调CPU和DMA信号的配合与同步。(4)DMA请求触发器:接收并记忆设备送来的请求传送的信号。(5)数据缓冲寄存器:用于存放高速设备与主存之间交换的数据。(6)中断机构:与通用接口中的中断逻辑电路的组成完全相同。,2.DMA控制传送一批数据,从使用总线的角度区分,有那两种主要运行方式?各自的优缺点是什么?,答案:(1)独占总线方式:从传送第一个字节开始直到这批数据传输完成的整个过程,DMA都把住总线不放,使总线只为本DMA使用。缺点:CPU和其它DMA等busmasters都要停止运行,影响系统运行效率。(2)周期挪用方式优点:即实现了I/O传送,又较好的发挥了内存和CPU的效率,3.解释下列术语,总线周期:,通常指的是通过总线完成一次内存读写操作或完成一次输入输出设备的读写操作所必需的时间。,同步传输控制:,(同步通信:)在总线上传送数据时,通信双方使用同一个时钟信号进行同步。,MOVA,#01HLOOP:MOVP1,AACALLDELYRLASJMPLOOPRETDELY:MOVR1,#50LOOP2:MOVR2,#25;T=2us*2*25*50=5msLOOP1:DJNZR2,LOOP1;6MHZ:2us12MHZ:1usDJNZR1,LOOP2RET,4.在8031的P1口接8个共阴极LED显示器,请编程实现每隔5ms点亮一个LED显示器,循环点亮8个LED,从P1.0所接LED开始点亮,同一时刻只有一个LED亮。设fosc=6MHZ.,要求:延时用软件实现,延时程序DELAY为子程序,并画出接线图。,5.用三片6264构成单片机的数据存储区,地址译码采用全地址译码法。,6.使用定时/计数器0以工作方式2实现定时,在P1.0输出周期为200s的连续方波。已知晶振频率fosc=6MH。求计数初值,方式控制字,编制相应程序.(查询方式),计数初值X=256-50=206=0CEHTMOD=02H,MOVIE,#00HMOVTMOD#02HMOVTH0,#0CEHMOVTL0,#0CEHSETTR0LOOP:JBCTF0,LOOP1AJMPLOOPLOOP1:CPLP1.0AJMPLOOP,7.数据通信的传输方式?,答案:常用于数据通信的传输方式有单工、半双工、全双工和多工方式。单工方式:数据仅按一个固定方向传送。因而这种传输方式的用途有限,常用于串行口的打印数据传输与简单系统间的数据采集。半双工方式:数据可实现双向传送,但不能同时进行,实际的应用采用某种协议实现收/发开关转换。全双工方式:允许双方同时进行数据双向传送,但一般全双工传输方式的线路和设备较复杂。多工方式:以上三种传输方式都是用同一线路传输一种频率信号,为了充分地利用线路资源,可通过使用多路复用器或多路集线器,采用频分、时分或码分复用技术,即可实现在同一线路上资源共享功能,我们盛之为多工传输方式。,8.串行数据通信的传输速率?,答案:串行数据传输速率有两个概念,即每秒转送的位数bps(Bitpersecond)和每秒符号数波特率(Bandrate),在具有调制解调器的通信中,波特率与调制速率有关。,MCS-51的串行口和控制寄存器,串行数据通信两种形式,异步通信:在这种通信方式中,接收器和发送器有各自的时钟,它们的工作是非同步的,异步通信用一帧来表示一个字符,其内容如下:一个起始位,仅接着是若干个数据位,图2是传输45H的数据格式。同步通信:同步通信格式中,发送器和接收器由同一个时钟源控制,为了克服在异步通信中,每传输一帧字符都必须加上起始位和停止位,占用了传输时间,在要求传送数据量较大的场合,速度就慢得多。同步传输方式去掉了这些起始位和停止位,只在传输数据块时先送出一个同步头(字符)标志即可。同步传输方式比异步传输方式速度快,这是它的优势。但同步传输方式也有其缺点,即它必须要用一个时钟来协调收发器的工作,所以它的设备也较复杂。,第七章单片机及应用设计实例,1.设某单片机系统的外接晶振频率为6MHz,使用定时器1以方式0产生周期为500ms的等宽正方波连续脉冲,并由P1.0输出。以查询方式完成。,解题:计算计数初值欲产生500ms的等宽正方波脉冲,只需在P1.0端以250ms为周期交替输出高低电平即可实现,为此定时时间应为250ms。使用6MHz晶振,根据上例的计算,可知一个机器周期为2ms。方式0为13位计数结构。设待求的计数初值为X,则:(213-X)210-625010-6求解得:X213(2502)8067。十六进制表示,高8位为FCH,放入TH1,即TH1FCH;低5位为03H。放入TL1,即TL103H。,由定时器控制寄存器TCON中的TR1位控制定时的启动和停止TR11启动,TR10停止。,程序设计:MOVTMOD,00H;设置T1为工作方式0MOVTH1,OFCH;设置计数初值MOVTL1,03HMOVIE,00H;禁止中断LOOP:SETBTR1;启动定时JBCTF1,LOOP1;查询计数溢出AJMPLOOPLOOP1:MOVTH1,FCH;重新设置计数初值MOVTL1,03HCLRTF1;计数溢出标志位清0CPLP1.0;输出取反AJMPLOOP;重复循环,2.定时器/计数器与中断综合应用举例题(1):时钟计时程序设计。,MCS-51单片机实现时钟计时显示的基本方法首先要计算计数初值时钟计时的关键问题是秒的产生,因为秒是最小时钟单位,但使用MMCS-51的定时器/计数器进行定时,即使按工作方式,其最大定时时间也只能达到131毫秒,离1秒还差好远。为此,我们把秒计时用硬件定时和软件计数相结合的方法实现,即:把定时器的定时时间定为125毫秒,这样当计数溢出8次就可得到1秒,而8次计数可用软件方法实现。为得到125ms定时,我们可使用定时器/计数器0,以工作方式进行,当设定单片机为6MHz晶振,设计数初值为X,则有如下等式:(216X)2us125000us计算得计数初值X3036,二进制表示为0000101111001101,十六进制表示为0BCDH。,定时器定时采用中断方式完成,以便于通过中断服务程序进行溢出次数(每次125毫秒)的累计,计满8次即得到秒计时。通过在程序中的数值累加和数值比较来实现从秒到分和从分到时的计时设置时钟显示及显示缓冲区假定时钟时间在六位LED数码管(LED5LED0)上进行显示(时、分、秒各占两位)。为此,要在内部RAM中设置显示缓冲区,共6个单元(79H7EH),与数码管的对应关系为:LED57EH、LED47DH、LED37CH、LED27BH、LED17AH、LED079H。即显示缓冲区从左向右依次存放时、分、秒的数值。假定已有LED显示程序为SMXS可供调用,ORG8000HSTART:AJMPMAINORG800BHAJMPPITOORG8100HMAIN:MOVSP,60H;确立堆栈区MOVR0,79H;显示缓冲区首地址MOVR7,06H;显示位数ML1:MOVR0,#00H;显示缓冲单元清0INCR0DJNZR7,ML1MOVTMOD,01H;定时器0,工作方式MOVTL0,0CDH;装计数器初值MOVTH0,0BH,SETB8CH;TR0置1,定时开始SETBAFH;EA置1,中断总允许SETBA9H;ET0置1,定时器0中断允许MOV30H,08H;要求的计数溢出次数,即循环次数ML0:LCALLSMXS;调用显示子程序SJMPML0PITO:PUSHPSW;中断服务程序,现场保护PUSHACCSETBPSW

温馨提示

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

评论

0/150

提交评论