单片机原理及应用试题

上传人:e****s 文档编号:243660417 上传时间:2024-09-28 格式:PPT 页数:70 大小:474KB
返回 下载 相关 举报
单片机原理及应用试题_第1页
第1页 / 共70页
单片机原理及应用试题_第2页
第2页 / 共70页
单片机原理及应用试题_第3页
第3页 / 共70页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单片机原理及应用练习题,第一章 根底知识,第二章 MCS-51结构及引脚,第三章 MCS-51指令系统,第四章 汇编语言程序设计,第五章 MCS-51片内接口,第六章 MCS-51系统扩展,第七章 单片及应用设计实例,第一章 根底知识,1,写出,-120,的原码、反码、补码的,16,进制值。,答案: 120=1111000B,120 -120,原码01111000B78H 11111000F8H,反码01111000B78H 1000011187H,补码01111000B78H 1000100088H,2.,十进制数105,化成二进制数是_,化成十六进 制数是_。,答案:01101001 , 69,3.,十进制数-43,在八位计算机中的表示_。,答案:10101011,4.,将八进制数75615转换成二进制数是。,答案,:,111101,.,110001101,6.将十进制数06875转换成二进制数是 。,答案:01011,5.,将十六进制数BA45转换为二进制数是,_,_。,答案,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的存储器空间分为哪些局部五个独立的存储空间的划分?各空间的寻址范围、寻址方式是什么?,8.,片内低端 128 字节的数据空间能用采存放和执行程序吗?它们究竟有什么用途?,答案:,能存放,但不能执行!片内数据 RAM 用处非常大,大到离了它几乎无法执行指令的地步!,只要定义为“数据存储”的空间;无论位于片内还是片外,肯定不能执行指令,因为程序空间的地址选通信号( PSEN )根本就没接到这里来!但是,若把程序代码当微普通数据放人数据区暂存(注意,仅仅是存放!)也没什么不可以,只是别试图运行它,除非把 PSEN 选通信号预先接到数据存储器芯片的片选端上。可真要如此接线,此数据空间的性质也就演变成为程序空间了。,片内低端 128 字节的数据 RAM 分为 3 个地址区间,各有不同用途,请参见图 1-1 。但也可作为普通寄存器使用,其中:,字节地址 00H 1FH 分配给 4 组通用寄存器,每组寄存器名称相同,都是 R0 R7 ; 4 组 Rn 不能同时使用,当前选择使用哪一组 Rn ,要由 PSW 的 RS1 和 RS0 两位来决定。,字节地址 20H 2FH 既可作为普通的字节存放器,也可作为位寻址区,每个字节均可分为 8 个可位寻址的存储元 bit ,位,此区间 128 个存储元按位另外统一编址即位地址,分别从 00H 7FH ,常用来存放实际控制中的各种状态信息。,字节地址 30H 7FH 普通的字节存放器,常用来存放临时数据,又称数据缓冲区。其中最高端的假设干字节常用于教学开发机各 LED 数码管的数据缓冲区,配合监控程序中的显示模块使用。例如江苏启东厂的教学开发机就是将 7EH 79H 这 6 个存储单元当做 LED 显示缓冲区,无论用户,预制内容是 BGD 码还是七段代码,都可以在监控程序中找到对应的显示模块,通过调用来完成用户所需的数值显示。,片内高端 l28 字节的 RAM 区只有 2 1 个字节有效,这 21 个字节既有地址,又有各自独特的名称,且用途各异,因此称为特殊功能存放器 SFR 空间,其中凡字节地址能被 8 整除的 SFR 均可实现位寻址,其也有独立的位地址,且编号规律与低端位寻址区不同,与各自所在 SFR 字节地址相关。,9.,程序状态字 PSW 中各个状态位是从哪里得到的?其中两个未安排的自定义位 (PSW.5 和 PSW.2) 用户能任意使用吗?,答案:,PSW 又称标志寄存器,主要用来存放指令执行过程中产生的各种特殊信息,这些信息分别来自于:,PSW.7(C 标志 ) 来自运算器最近一次算术运算操作,表示运算结果有无进 ( 借 ) 位?,PSW.6(AC 标志 ) 来自运算器最近一次算术运算操作,表示运算结果的低 4 位与高 4 位之间有无进位?,PSW.4 和 PSW.3( 工作寄存器选择 ) 来自用户指令,由用户指定当前即将选用哪组通用寄存器?,PSW.2 ( OV 标志)来自运算器最近一次算术运算操作,表示运算结果有无溢出?,PSW.0 ( P 标志)来自最近一次涉及对累加器 A 的操作指令 ( 包括传送操作 ) ,表示操作后 A 中的数据有奇数个“ 1 ”吗?,至于 PSW 中两个未安排的未 PSW.5(F0) 和 PSW.2(F1) ,用户可以视其为普通存储元( bit 位)而单独使用,例如在编程是用来存放某些二态信息。,10内部RAM低128B从功能和用途方面,可划分为哪三个区域?,答案:工作存放器区、位寻址区、堆栈和数据缓冲区,118051内部RAM有几组工作存放器?每组工作存放器有几个工作存放器?存放器组的选择由什么决定?,答案: 01FH为四组工作存放器区,存放器组的选择由PSW中的RS1、RS0两位决定,每组有8个工作存放器R0 R7。,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.计算机指令字中要用的操作数一般来自那些部件?如何在指令中表示这些操作数的地址?通常使用那些寻址方式?,答案:1CPU内部的同用存放器:给出用到的存放器编号,存放器内容可以是运算用的数据或操作数地址。,2外围设备接口中的一个存放器:用设备编号或设备入出端口地址或设备映像地址表示,3内存储器的一个存储单元:存储单元地址,寻址方式:立即数寻址、直接寻址、存放器寻址、存放器间接寻址、变址寻址、相对寻址、基地址寻址、间接寻址、堆栈寻址,6.什么是形式地址?简述对变址寻址、相对寻址、基地址寻址应在指令中给出些什么信息?如何得到相应的实际有效地址?各自有什么样的主要用法?,答案:,表示在指令中的操作数地址称为形式地址。,1变址寻址:应在指令中给出一个数值称为变址偏移量及一个存放器称为变址存放器的编号。,实际地址又称有效地址=变址存放器的内容+变址偏移量,主要用于处理数组型数据。,2相对寻址:应在指令中给出一个数值称为相对寻址偏移量,实际地址又称有效地址=程序计数器PC的内容+相对寻址偏移量,主要用于相对转移指令。,3基地址寻址:应在指令中给出一个存放器称为基址存放器的编号。,实际地址又称有效地址=程序中的地址+基址存放器,主要用于多道程序或浮动地址程序定位存储器空间。,答案:,存放器寻址:在指令字中直接给出操作数所在的通用存放器的编号,存放器间接寻址:在存放器中给出的不是一个操作数,而是操作数地址。,7.存放器寻址和存放器间接寻址的区别?,说明以下指令中源操作数采用的寻址方式。,MOV R5,R7,MOV A,55H,MOV A,55H,JMP A+DPTR,MOV 30H,C,MOV A,R0,MOVX A,R0,存放器寻址方式,直接寻址方式,立即寻址方式,变址寻址方式,位寻址方式,间接寻址方式,间接寻址方式,判断以下各条指令是否正确LL1和PROC为标号,1MOV R0,R7 ,2XCHD A,30H ,3MOVX A,R3 ,4ADD A,R7 ,5SUB R1,R2 ,6ANL 36H,#99H ,7MOV C,ACC.0 ,8ORL P1.0,C ,9JBC 20H.0,LL1 ,10LCALL PROC ,以下各条指令其源操作数的寻址方式是什么?各条指令单独执行后,A中的结果是什么?设60H=35H,A=19H,R0=30H,30H=0FH,DPTR=2000H,2000H=AAH,2021H=23H,1MOV A,#48H,2ADD A,60H,3ANL A,R0,4XCHD A,R0,5MOVX A,DPTR,6MOV A,R0,7MOVC A,A+DPTR,(A)=48H 立即寻址,A=4EH 直接寻址,A=09H 存放器间接寻址,A=1FH,30H=09H存放器间接寻址,A=0AAH存放器间接寻址,A=30H存放器寻址,A=23H基变址寻址,阅读以下程序段,写出每条指令执行后的结果,并说明此程序段完成什么功能?,1MOV R1,#30H ;R1=,MOV A,#64H ;A=,ADD A,#47H ;A=,DA A ;A=,MOV R1,A ;R1=,2阅读程序:假设A=80H,R0=17H,17H=34H,执行以下程序段后,A=?,ANL A,#17H A=,ORL 17H,A 17H=,XRL A,R0 A=,CPL A A=,30H,64H,0ABH,11H,30H ,(30H= 11H,00H,34H,34H,0CBH,设 (A)=0FH , (R0)=30H,内部RAM (30H)=0AH, (31H)=0BH (32H)=0CH,请写出在执行各条列指令后,所示单元的内容,MOV A,R0 ;(A)=,MOV R0,32H ;(30H)=,MOV 32H, A ;(32H)=,MOV R0,#31H ;(R0)=,MOV A, R0 ;(A)=,第四章 汇编语言程序设计,将内部RAM的40H4FH单元置初值A0HAFH。用循环程序,MOV R7,,#10,H,MOV A,,#0A0,H,MOV R0,,#40,H,LOOP,:,MOV R0,A,INC A,INC R0,DJNZ R7,LOOP,RET,MOV DPTR, #2000H,MOVX A,DPTR,XCH A,B,MOV DPTR,#3000H,MOVX A,DPTR,XCH A,B,MOVX DPTR,A,MOV DPTR,#2000H,XCH A,B,MOVX DPTR,A,RET,题目:,试编程实现外部RAM2000H单元的内容与3000H单元内容互换。,题目:,编写程序,把外部RAM 1000H10FFH区域,内的数据逐个搬到从2000H开始的区域。,MOV DPL,#00H,MOV R7, #0FFH,LOOP: MOV DPH,#10H,MOVX A, DPTR,MOV DPH,#20H,MOVX DPTR,A,INC DPL ;此题中DPL可公用,DJNZ R7,LOOP,END,题目:,分析下面个程序段中指令的执行结果,(1) MOV SP,#50H,MOV A,#0F0H,MOV B,#0FH,PUSH ACC ;(SP)=,;(51H)=,PUSH B ;(SP)=,;(52H)=,POP B ;(SP)=,;(B)=,POP ACC ;(SP)=,;(A)=,(2) MOV A , #30H,MOV B , #0AFH,MOV R0, #31H,MOV 30H,#87H,XCH A , R0 ;(A)=,;(R0)=,SWAP A ;(A)=,题目:,编写一循环程序,求出内部RAM 20H单元二进制数中含1的个数,并将结果存入21H单元。,MOV 21H,#00H,MOV A, 20H,MOV R7, #08H,LOOP: RLC A ;左循环一位,最高位到C,JNC NEXT ;C为0,INC 21H ;C为1,21H内容1,NEXT: DJNZ R7,LOOP,END,题目:,编写一循环程序,查找内部RAM 30H,50H单元中出现FFH个数,并将查找搭结果存入51H单元。,MOV R0, #30H ;数据区首地址,MOV R7, #20H ;数据个数,MOV 51H,#00H ;先设只有0个0ffh,LOOP: MOV A, R0,INC R0,CJNE A,#0FFH,NEXT ;比较,不等于0ffh转NEXT,;等于0ffh,继续执行,INC 51H,NEXT: DJNZ R7,LOOP,END,题目:,查表程序设计,1. 用DPTR查表查09平方表,1000 C083 TA: PUSH DPH,1002 C082 PUSH DPL,1004 902000 MOV DPTR, #TAB,1007 93 MOVC A, A+DPTR,1008 D082 POP DPL,100A D083 POP DPH,100C 22 RET,ORG 2000H,TAB: DB 00H, 01H, 04H, 09H,2000 00,2001 01,2002 04,2003 09,题目:用PC查表查09平方表,ORG 1000H,1000 C083 TA: ADD A, #01H ; # 01H 为偏移量,1002 83 MOVC A, A+PC,1003 22 RET,1004 00 DB 00H, 01H, 04H, 09H,1005 01 END,1006 04,1007 09,偏移量表首地址查表指令下一条指令地址,1004H 1003H,01H,题目:,循环程序设计,延时50ms程序,DEL: MOV R7, #200,DEL1: MOV R6, #125,DEL2: DJNZ R6, DEL2 ;125*2=250us,DJNZ R7, DEL1 ; 0.25ms*20050ms,RET,使用12MHz晶振时,一个机器周期为1us,,执行DJNZ指令为2us,加其他指令的时间,25012*200150.301ms,题目:,计算几个数据的和,例题:对内部RAM 50h开始的10个无符号数求和。,源程序:,ADD1: MOV R7, #10 ;循环次数n10,MOV R3, #0 ;存放结果的高8位,MOV R4, #0 ;存放结果的低8位,MOV R0, #50H ;求和的数据存放在从内部RAM 50h开始的,;单元中,。注意:50h?不知道,LOOP: MOV A, R4 ;,ADD A, R0 ;R4)+(5?H)A,MOV R4, A ; 结果送回R4,CLR A ;,ADDC A, R3 ; 把进位位C加到高8位去,MOV R3, A,INC R0 ; 为下一轮循环作准备,DJNZ R7, LOOP,END,解释:,高8位 低8位,(R3) (R4),+ (50h),C (A),MOV A, R4 ADD A, R0 MOV R4, A,CLR A,ADDC A, R3,MOV R3, A,50h中是什么,不知道,,不能用ADD A,50H,题目:,分支程序设计,根本分支程序:,1假设A 14H, 转NEXT, 否那么继续执行,A 14H,相当于A 14H,相当于A 15H,CJNE A, #15H, LOOP,LOOP: JNC NEXT, ,CJNE A, #14H, LOOP,LOOP: JNC NEXT, ,CJNE A, #14H, LOOP,LOOP: JC NEXT, ,CJNE A,#data,rel;,(A)=#data,继续 C,y,0,(A)#data, 转 C,y,0,(A)#data, 转 C,y,1,特点:只有时,C,y,1,例1:按下面公式编写程序,,x为无符号数,存在20h单元,y存放在21h单元。,ORG 0030H,MOV A, 20H,CJNE A, #21H, LOOP1,LOOP1: JC NEXT1,CJNE A, #40H, LOOP2,LOOP2: JNC NEXT2,MOV B, #2,MUL AB,AJMP NEXT2,NEXT1: CPL A,NEXT2: MOV 21H, A,END,最终结果存在 21h中,题目:,分支程序例,题目:,分支程序例,从内部RAM 22h单元开始存有一个无符号数数据块,长度n存于21h中。求出数据块中的最小数,存于20h中。,ORG 0030H,MOV R0, #22H ;数据块起始地址,MOV R1, 21H ;数据个数n,MOV 20H,#0FFH ; 最大数,LOOP: MOV A, R0 ; 取新数,INC R0 ; 为取下一个新数作准备,CJNE A, 20H, LOOP1 ; 与原最大数比较,LOOP1:JNC NEXT ; 大,原最小数保存,MOV 20H, A ; 小,改变最小数,NEXT: DJNZ R1, LOOP ;循环,END,初始化,y x,y x,取新数 y,n10?,y,y,N,N,END,FRT: MOV A,40H ;取行李重量G放在40H,MOV R3,A,MOV B,#03H;M=G3,MUL AB,MOV R2,A;暂存3 G在R2,MOV A,R3;取回G,CJNE A,#06H,L1;G5 ?,L1: JC WETC;是,转至WETC,SUBB A,#05H;否那么M=3G+2(G-5),RLC A,ADD A,R2,WETC:MOV 41H,A ;最后结果M存41H,end,题目:,行李计价:当G5,M=G3; 当G5,M=G3+(G-5)(5-3),题目:,散转程序设计,根据R7中的内容,转向各个子程序。,R70,转入Prog0,R71,转入Prog1,R72,转入Prog2,R7n,转入Progn,ORG 0030H,JUMP1: MOV DPTR, #TAB,CLR A,MOV A, R7,ADD A, R7,AJMP A+DPTR,ORG 0100H,TAB: AJMP Prog0,AJMP Prog1,AJMP Prog2,*AJMP 即把PC指向子程序的起始地址;,*R7 x 2 是AJMP A+DPTR的机器码匹配;此处 n127;,*如用LJMP A+DPTR,那么R7 x 3, 程序还要作相应修改。,处理 0,处理 1,处理 n,R7= ?,0,1,n,题目:,数制转换程序设计,例:8位二进制转换成BCD码。(用十进制表达的二进制码,;程序名:BINBCD1,;功能: 0FFH内的二进制数转换为BCD数,;入口: A存要转换的二进制数,;出口: R0 存放BCD数 百、十、个位数的地址,BINBCD1: MOV B, #100,DIV AB,MOV R0, A,INC R0,MOV A, #10,XCH A, B ;(A)原B,(B)=10,DIV AB,MOV R0, A,INC R0,XCH AB,MOV R0, A,RET,题目:,设内部RAM (30H)=5AH,(5AH)=40H,(40H)=00H,端口P1=7FH,请注释每条指令执行后的结果,MOV R0,#30H ;(R0)=,MOV A, R0 ;(A)=,MOV R1, A ;(R1)=,MOV B, R1 ;(B)=,MOV R1, P1 ;(5AH)=,MOV A, P1 ;(A)=,MOV 40H, #20H ;(40H)=,MOV 30H, 40H ;(30H)=,题目:,阅读程序,指出程序功能,MOV R0,#31H,MOV R3,#3,MOV R1,#00H,MOV R2,#00H,LOOP: MOVX A,R0 ;取一个加数,ADDC A, R2 ;单字节数,MOV R2, A ;和低位送R2,JNC LOOP1 ;无进位转移,INC R1 ;有进位高位加1,LOOP1: INC R0 ;指向下一单元,DJNZ R3,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控制在快速设备与主存储器之间直接传输数据,每传输一个数据只需一个总线周期即可。,4I/O通道控制方式,使用附属于CPU 的、专用于处理I/O操作的处理器通道协助CPU完成输入输出操作的运行方式。,5外围处理机输入出方式,主要用于大型高性能的计算机系统中,是使用微、小型通用计算机协助处理机完成输入输出操作。,4.简述一次中断处理的完整过程?,答案:1中断请求:,是由中断源发出并送给CPU的控制信号,由中断源设备通过置“1设置在接口卡上的中断触发器完成。中断屏蔽触发器置“1,表示要屏蔽该设备的中断请求,2中断响应,条件:当CPU接到中断请求信号时,如果下面几个条件都具备,就会响应中断请求。允许中断允许中断触发器为“1状态。CPU结束一条指令的执行过程。,新请求的中断优先级更高,3中断处理 包括:,关中断:保证在此之后的一小段时间内CPU不能响应新的中断请求。,保存断点PC的内容,程序状态字的内容,判别中断源:找到中断效劳程序的入口地址,开中断执行中断效劳程序,关中断恢复现场,恢复断点,开中断返回断点,5 8051应用系统只设置一个中断优先级。定时器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,程序: MOV TMOD,#2,MOV TH0,#6,MOV TL0,#6,SETB TR0,MOV IE,#82H,CPL P1.0,RET,答案: TMOD:#01H;TH0:3CH;TL0:0B0H,方式0:a=213-T*fosc/12 高8位 低5位 00 00,方式1:a=216-T*fosc/12 高8位 低8位 01 10,方式2: a=28-T*fosc/12 相同 02 20,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下,当为计数工作方式时,计数值的范围是18192213,当为定时工作方式时,定时时间的计算公式为:,213计数初值晶振周期12 或 213计数初值机器周期,其时间单位与晶振周期或机器周期相同ms。,例题:当某单片机系统的外接晶振频率为6MHz,该系统的最小定时时间为:,21321311/61061221062ms,最大定时时间为:,(21301/6106121638410616384ms,或: 最小定时单位21316384ms,第六章 MCS-51系统扩展,1.DMA传输方式的优点是什么?DMA接口中通常应包括那些逻辑部件?各自的功能是什么?,答案:,优点:速度快,不须CPU参与,满足高速I/O设备的要求,有利于CPU发挥效率,DMA接口包括:,1主存地址计数器:存放读写主存用到的主存地址。,2数据数量计数器:存放传送数据的数量。,3DMA的控制状态逻辑,用于修改主存地址计数器和数据数量计数器,指定传送功能,协调CPU和DMA信号的配合与同步。,4DMA请求触发器:接收并记忆设备送来的请求传送的信号。,5数据缓冲存放器:用于存放高速设备与主存之间交换的数据。,6中断机构:与通用接口中的中断逻辑电路的组成完全相同。,2.DMA控制传送一批数据,从使用总线的角度区分,有那两种主要运行方式?各自的优缺点是什么?,答案:,1独占总线方式:,从传送第一个字节开始直到这批数据传输完成的整个过程,DMA都把住总线不放,使总线只为本DMA使用。,缺点:CPU和其它DMA等bus masters都要停止运行,影响系统运行效率。,2周期挪用方式,优点:即实现了I/O传送,又较好的发挥了内存和CPU的效率,3.解释以下术语,总线周期:,通常指的是通过总线完成一次内存读写操作或完成一次输入输出设备的读写操作所必需的时间。,同步传输控制:,同步通信:在总线上传送数据时,通信双方使用同一个时钟信号进行同步。,MOV A,#01H,LOOP: MOV P1,A,ACALL DELY,RL A,SJMP LOOP,RET,DELY: MOV R1,#50,LOOP2:MOV R2,#25 ; T=2us*2*25*50=5ms,LOOP1:DJNZ R2,LOOP1 ;6MHZ:2us 12 MHZ:1us,DJNZ R1,LOOP2,RET,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=0CEH,TMOD=02H,MOV IE,#00H MOV TMOD #02H,MOV TH0,#0CEH,MOV TL0,#0CEH,SET TR0,LOOP:JBCTF0,LOOP1,AJMP LOOP,LOOP1:CPL P1.0,AJMP LOOP,7.数据通信的传输方式?,答案:常用,于数据通信的传输方式有单工、半双工、全双工和多工方式。,单工方式:数据仅按一个固定方向传送。因而这种传输方式的用途有限,常用于串行口的打印数据传输与简单系统间的数据采集。,半双工方式:数据可实现双向传送,但不能同时进行,实际的应用采用某种协议实现收/发开关转换。 全双工方式:允许双方同时进行数据双向传送,但一般全双工传输方式的线路和设备较复杂。,多工方式:以上三种传输方式都是用同一线路传输一种频率信号,为了充分地利用线路资源,可通过使用多路复用器或多路集线器,采用频分、时分或码分复用技术,即可实现在同一线路上资源共享功能,我们盛之为多工传输方式。,8.串行数据通信的传输速率?,答案:串行数据传输速率有两个概念,即每秒转送的位数bpsBit per second和每秒符号数波特率Band rate,在具有调制解调器的通信中,波特率与调制速率有关。,MCS-51的串行口和控制存放器,串行数据通信两种形式,异步通信: 在这种通信方式中,接收器和发送器有各自的时钟,它们的工作是非同步的,异步通信用一帧来表示一个字符,其内容如下:一个起始位,仅接着是假设干个数据位,图2是传输45H的数据格式。,同步通信: 同步通信格式中,发送器和接收器由同一个时钟源控制,为了克服在异步通信中,每传输一帧字符都必须加上起始位和停止位,占用了传输时间,在要求传送数据量较大的场合,速度就慢得多。同步传输方式去掉了这些起始位和停止位,只在传输数据块时先送出一个同步头字符标志即可。,同步传输方式比异步传输方式速度快,这是它的优势。但同步传输方式也有其缺点,即它必须要用一个时钟来协调收发器的工作,所以它的设备也较复杂。,第七章 单片机及应用设计实例,1.设某单片机系统的外接晶振频率为6MHz,使用定时器1以方式0产生周期为500ms的等宽正方波连续脉冲,并由P1.0输出。以查询方式完成。,解题:计算计数初值,欲产生500ms的等宽正方波脉冲,只需在P1.0端以250ms为周期交替输出上下电平即可实现,为此定时时间应为250ms。使用6MHz晶振,根据上例的计算,可知一个机器周期为2ms。方式0为13位计数结构。设待求的计数初值为X,那么:,213-X210-625010-6,求解得:,X21325028067。十六进制表示,高8位为FCH,放入TH1,即TH1FCH;低5位为03H。放入TL1,即TL103H。,由定时器控制存放器TCON中的TR1位控制定时的启动和停止,TR11启动,TR10停止。,程序设计:,MOV TMOD,00H ;设置T1为工作方式0,MOV TH1,OFCH ;设置计数初值,MOV TL1,03H,MOV IE,00H ;禁止中断,LOOP: SETB TR1 ;启动定时,JBC TF1,LOOP1 ;查询计数溢出,AJMP LOOP,LOOP1:MOV TH1,FCH ;重新设置计数初值,MOV TL1,03H,CLR TF1 ;计数溢出标志位清0,CPL P1.0 ;输出取反,AJMP LOOP ;重复循环,2.定时器/计数器与中断综合应用举例,题(1):时钟计时程序设计。,MCS-51单片机实现时钟计时显示的根本方法, 首先要计算计数初值,时钟计时的关键问题是秒的产生,因为秒是最小时钟单位,但使用MMCS-51的定时器/计数器进行定时,即使按工作方式,其最大定时时间也只能到达131毫秒,离1秒还差好远。为此,我们把秒计时用硬件定时和软件计数相结合的方法实现,即:把定时器的定时时间定为125毫秒,这样当计数溢出8次就可得到1秒,而8次计数可用软件方法实现。 为得到125ms定时,我们可使用定时器/计数器0,以工作方式进行,当设定单片机为6MHz晶振,设计数初值为X,那么有如下等式:,216X2us125000us,计算得计数初值X3036,,二进制表示为,十六进制表示为0BCDH。, 定时器定时采用中断方式完成,以便于通过中断效劳程序进行溢出次数每次125毫秒的累计,计满8次即得到秒计时。, 通过在程序中的数值累加和数值比较来实现从秒到分和从分到时的计时, 设置时钟显示及显示缓冲区,假定时钟时间在六位LED数码管LED5LED0上进行显示时、分、秒各占两位。为此,要在内部RAM中设置显示缓冲区,共6个单元79H7EH,与数码管的对应关系为:,LED57EH、LED47DH、LED37CH、LED27BH、LED17AH、LED079H。,即显示缓冲区从左向右依次存放时、分、秒的数值。, 假定已有LED显示程序为SMXS可供调用,ORG 8000H,START:AJMP MAIN,ORG 800BH,AJMP PITO,ORG 8100H,MAIN:MOV SP, 60H ;确立堆栈区,MOV R0, 79H ;显示缓冲区首地址,MOV R7, 06H ;显示位数,ML1:MOV R0, #00H ;显示缓冲单元清0,INC R0,DJNZ R7, ML1,MOV TMOD, 01H ;定时器0,工作方式,MOV TL0, 0CDH ;装计数器初值,MOV TH0, 0BH,SETB 8CH ;TR0置1,定时开始,SETB AFH ;EA置1,中断总允许,SETB A9H ;ET0置1,定时器0中断允许,MOV 30H, 08H ;要求的计数溢出次数,即循环次数,ML0:LCALL SMXS ;调用显示子程序,SJMP ML0,PITO:PUSH PSW ;中断效劳程序,现场保护,PUSH ACC,SETB PSW.3 ;RS1RS0=01,选1组通用存放器,MOV TL0, 0CDH ;计数器重新加载,MOV TH0, 0BH,MOV A, 30H ;循环次数减1,DEC A,MOV 30H, A,JNZ RET0 ;不满8次,转RET0返回,MOV 30H, 08H ;满8次,开始计时操作,MOV R0, 7AH ;秒显示缓冲单元地址,ACALL DAAD1 ;秒加1,MOV A, R2 ;加1后秒值在R2中,XRL A, 60H ;判是否到60秒,JNZ RET0
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 幼儿教育


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!