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

下载本文档

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

文档简介

1、单片机原理及应用练习题第一章 基础知识第二章 MCS-51结构及引脚第三章 MCS-51指令系统第四章 汇编语言程序设计第五章 MCS-51片内接口第六章 MCS-51系统扩展第七章 单片及应用设计实例第一章 基础知识 1写出写出-120的原码、反码、补码的的原码、反码、补码的16进制值。进制值。答案: 120=1111000B 120 -120 原码01111000B(78H) 11111000(F8H) 反码01111000B(78H) 10000111(87H) 补码01111000B(78H) 10001000(88H)2.2.十进制数十进制数105,化成二进制数是,化成二进制数是_,

2、化成十六进,化成十六进 制数是制数是_。 答案:01101001 , 693.3.十进制数十进制数-43,在八位计算机中的表示在八位计算机中的表示_。答案:101010114.4.将八进制数将八进制数7575615615转换成二进制数是转换成二进制数是。 答案:111101.110001101 6.6.将十进制数将十进制数0 068756875转换成二进制数是转换成二进制数是 。答案:01011 5.5.将十六进制数将十六进制数BA4BA45 5转换为二进制数是转换为二进制数是 _。答案:101110100100.0101 7.7.与二进制与二进制0101010001010100对应的十进制数

3、是对应的十进制数是。 答案:84 第二章 MCS-51结构及引脚 1什么是单片机?其主要特点是什么?什么是单片机?其主要特点是什么? 答案:单片机具有体积小、可靠性高、控制功能强、使用方便、性能价格比高、容易产品化等特点。2.2.MCS-51系列的典型产品系列的典型产品8051、8751和和8031的区别是什么?的区别是什么? 答案:8051、8751和8031均为8位单片机,其内部结构是基本相同的。其不同为:8051内部有4KBROM,8751内部有4KBEPROM,而8031内部无程序存储器。3单片机主要应用在什么领域?单片机主要应用在什么领域?答案:单片机主要应用在:智能仪表、机电一体化

4、、实时控制、分布式多机系统、家用电器等,对各个行业的技术改造和产品的更新换代起重要的推动作用。4.4.单片机包括哪两种复位方式?在单片机应用系统中为何需要系统复位单片机包括哪两种复位方式?在单片机应用系统中为何需要系统复位?答案:单片机可通过上电自动复位和人工复位,使CPU和系统中的其他部件都处于一个确定的初始状态,并从这个状态开始工作。答案: 64K字节程序存储器空间(0-0FFFFH)立即寻址和基寄存器加变址寄存器间接寻址256字节内部RAM空间(0-0FFH)、(00-7FH)寄存器间接寻址和直接寻址,(80-8FH)寄存器间接寻址128字节内部特殊功能寄存器空间(80-0FFH)直接寻

5、址,位寻址空间(0-0FFH)位寻址64K字节数据存储器空间(0-0FFFFH)寄存器间接寻址5什么是指令周期?什么是指令周期?8051的指令周期一般由几个机器周期构成?的指令周期一般由几个机器周期构成?答案:CPU取出一条指令至该指令执行完所需要的时间称为指令周期。大多数8051指令执行时间为一个机器周期或两个机器周期。68051的一个机器周期包括几个状态、几个时钟周期(振荡器频的一个机器周期包括几个状态、几个时钟周期(振荡器频率)?机器周期与时钟周期(振荡器频率)的关系是怎样的?率)?机器周期与时钟周期(振荡器频率)的关系是怎样的?答案:一个机器周期由六个状态组成,每个状态为二个时钟周期,

6、即一个机器周期由六个状态构成,所以一个机器周期T=12/ f0sc7MCS-51的存储器空间分为哪些部分(五个独立的存储空间的的存储器空间分为哪些部分(五个独立的存储空间的划分)?各空间的寻址范围、寻址方式是什么?划分)?各空间的寻址范围、寻址方式是什么?8. 8. 片内低端片内低端 128 字节的数据空间能用采存放和执行程序吗?字节的数据空间能用采存放和执行程序吗?它们究竟有什么用途?它们究竟有什么用途?答案:能存放,但不能执行!片内数据 RAM 用处非常大,大到离了它几乎无法执行指令的地步! 只要定义为“数据存储”的空间;无论位于片内还是片外,肯定不能执行指令,因为程序空间的地址选通信号(

7、 PSEN )根本就没接到这里来!但是,若把程序代码当微普通数据放人数据区暂存(注意,仅仅是存放!)也没什么不可以,只是别试图运行它,除非把 PSEN 选通信号预先接到数据存储器芯片的片选端上。可真要如此接线,此数据空间的性质也就演变成为程序空间了。 片内低端 128 字节的数据 RAM 分为 3 个地址区间,各有不同用途,请参见图 1-1 。但也可作为普通寄存器使用,其中: 字节地址 00H 1FH 分配给 4 组通用寄存器,每组寄存器名称相同,都是 R0 R7 ; 4 组 Rn 不能同时使用,当前选择使用哪一组 Rn ,要由 PSW 的 RS1 和 RS0 两位来决定。 字节地址 20H

8、2FH 既可作为普通的字节寄存器,也可作为位寻址区,每个字节均可分为 8 个可位寻址的存储元( bit ,位),此区间 128 个存储元按位另外统一编址(即位地址),分别从 00H 7FH ,常用来存放实际控制中的各种状态信息。 字节地址 30H 7FH 普通的字节寄存器,常用来存放临时数据,又称数据缓冲区。其中最高端的若干字节常用于教学开发机各 LED 数码管的数据缓冲区,配合监控程序中的显示模块使用。例如江苏启东厂的教学开发机就是将 7EH 79H 这 6 个存储单元当做 LED 显示缓冲区,无论用户,预制内容是 BGD 码还是七段代码,都可以在监控程序中找到对应的显示模块,通过调用来完成

9、用户所需的数值显示。 片内高端 l28 字节的 RAM 区只有 2 1 个字节有效,这 21 个字节既有地址,又有各自独特的名称,且用途各异,因此称为特殊功能寄存器( SFR )空间,其中凡字节地址能被 8 整除的 SFR 均可实现位寻址,其也有独立的位地址,且编号规律与低端位寻址区不同,与各自所在 SFR 字节地址相关。9. 9. 程序状态字程序状态字 PSW 中各个状态位是从哪里得到的?其中两个未安中各个状态位是从哪里得到的?其中两个未安排的自定义位排的自定义位 (PSW.5 和和 PSW.2) 用户能任意使用吗?用户能任意使用吗? 答案: PSW 又称标志寄存器,主要用来存放指令执行过程

10、中产生的各种特殊信息,这些信息分别来自于: PSW.7(C 标志 ) 来自运算器最近一次算术运算操作,表示运算结果有无进 ( 借 ) 位? PSW.6(AC 标志 ) 来自运算器最近一次算术运算操作,表示运算结果的低 4 位与高 4 位之间有无进位? PSW.4 和 PSW.3( 工作寄存器选择 ) 来自用户指令,由用户指定当前即将选用哪组通用寄存器? PSW.2 ( OV 标志)来自运算器最近一次算术运算操作,表示运算结果有无溢出? PSW.0 ( P 标志)来自最近一次涉及对累加器 A 的操作指令 ( 包括传送操作 ) ,表示操作后 A 中的数据有奇数个“ 1 ”吗? 至于 PSW 中两个

11、未安排的未 PSW.5(F0) 和 PSW.2(F1) ,用户可以视其为普通存储元( bit 位)而单独使用,例如在编程是用来存放某些二态信息。 10内部内部RAM低低128B从功能和用途方面,可划分为哪三个区域从功能和用途方面,可划分为哪三个区域?答案:工作寄存器区、位寻址区、堆栈和数据缓冲区 118051内部内部RAM有几组工作寄存器?每组工作寄存器有几个工作有几组工作寄存器?每组工作寄存器有几个工作寄存器?寄存器组的选择由什么决定?寄存器?寄存器组的选择由什么决定?答案: 01FH为四组工作寄存器区,寄存器组的选择由PSW中的RS1、RS0两位决定,每组有8个工作寄存器R0 R7。12什

12、么是特殊功能寄存器?分布在哪里?什么是特殊功能寄存器?分布在哪里?答案: 8051内部的I/O口锁存器以及定时器、串行口、中断等各种控制积存器和状态积存器都称为特殊功能积存器。分布在80HFFH的地址空间。138051的外部的外部RAM和和I/O口是如何编址的?其寻址空间在哪里?口是如何编址的?其寻址空间在哪里?答案:是统一编址的,均在64KB的外部数据存储器空间,CPU对它们具有相同的操作功能。14MCS-51的程序存储器的寻址空间是多少?如何区别片内程序存的程序存储器的寻址空间是多少?如何区别片内程序存储器和片外程序存储器的?储器和片外程序存储器的?答案:为64K字节。若 接VCC,则程序

13、PC的值在0至0FFFFH之间时,CPU取指令时访问内部的程序存储器,PC的值大于0FFFH时,访问外部的程序存储器;若 接VSS,则内部的程序存储器被忽略,CPU总是从外部的程序存储器中取指令。158051的位寻址区在哪里?位寻址空间是多少?的位寻址区在哪里?位寻址空间是多少?答案:内部RAM的202FH为位寻址区,这16个单元的每一位(16*8)都有一个位地址,它们占据位地址空间的07FH。16什么是什么是SP?什么是堆栈?什么是堆栈?答案: SP是堆栈指针,指出栈顶位置。后进先出的缓冲器称为堆栈。178051的堆栈开辟在什么地方?其堆栈指针是什么?复位后堆栈指的堆栈开辟在什么地方?其堆栈

14、指针是什么?复位后堆栈指针初值是多少?一般将针初值是多少?一般将SP设置为多少?设置为多少?答案:堆栈设在307FH的范围内。SP是堆栈指针。复位后是07H。一般设置为6FH。188051的数据缓冲区一般在什么地方?的数据缓冲区一般在什么地方?19. 19. 在计算机中,为什么要采用多级结构的存储器系统?它在计算机中,为什么要采用多级结构的存储器系统?它的应用是建立在程序的什么特性之上的?的应用是建立在程序的什么特性之上的? 答案:为了缓解主存储器读写速度慢,不能满足CPU运行速度需要的矛盾,另一方面又要解决主存储器容量小,存不下更多规模更大的程序与更多的数据难题,当前计算机系统中,广泛采用了

15、多级结构的存储器体系结构,建立在程序运行的局部性原理之上。答案:在内部的07FH,除了实际用到的工作寄存器、位标志和堆栈区以外的单元,都可以作为数据缓冲器使用,存放输入的数据或运算的结果。第三章 MCS-51指令系统 1什么是指令?什么是指令系统?什么是伪指令?什么是指令?什么是指令系统?什么是伪指令?答案: 指令是指示计算机执行某种操作的命令,指令是以一组二进制码表示的,称为机器指令。计算机只能 识别和执行机器指令。通常把一台计算机所能执行的全部指令的集合称为指令系统。伪指令也称为汇编命令,大多数伪指令汇编时不产生机器语言指令,仅提供汇编控制信息。2什么是总线?总线有哪些分类?什么是总线?总

16、线有哪些分类?答案: 总线是计算机中各个功能部件之间传送信息的公用通道,是连接各个功能部件并为它们服务的一组信息传递导线,总线可分为单向总线和双向总线,并行总线和串行总线,若按传递信息的属性不同,可分为地址总线、数据总线和控制总线。3立即寻址,其操作数是在存储器中。这句话是否正确?立即寻址,其操作数是在存储器中。这句话是否正确?答案:错误。操作数是在程序存储器中。4.一条指令通常由哪两部分组成?指令的操作码一般有几种组织方一条指令通常由哪两部分组成?指令的操作码一般有几种组织方式?各自应用在什么场合?各自的缺点是什么?式?各自应用在什么场合?各自的缺点是什么? 答案:一条指令由操作码和操作数地

17、址码两部分组成。对操作码的组织与编码有以下三种: 5.5.计算机指令字中要用的操作数一般来自那些部件?如何在指令中表计算机指令字中要用的操作数一般来自那些部件?如何在指令中表示这些操作数的地址?通常使用那些寻址方式?示这些操作数的地址?通常使用那些寻址方式? 答案:(1)CPU内部的同用寄存器:给出用到的寄存器编号,寄存器内容可以是运算用的数据或操作数地址。(2)外围设备(接口)中的一个寄存器:用设备编号或设备入出端口地址或设备映像地址表示(3)内存储器的一个存储单元:存储单元地址寻址方式:立即数寻址、直接寻址、寄存器寻址、寄存器间接寻址、变址寻址、相对寻址、基地址寻址、间接寻址、堆栈寻址6.

18、6.什么是形式地址?简述对变址寻址、相对寻址、基地址寻址应在指什么是形式地址?简述对变址寻址、相对寻址、基地址寻址应在指令中给出些什么信息?如何得到相应的实际(有效)地址?各自有什令中给出些什么信息?如何得到相应的实际(有效)地址?各自有什么样的主要用法?么样的主要用法? 答案: 表示在指令中的操作数地址称为形式地址。 (1)变址寻址:应在指令中给出一个数值(称为变址偏移量)及一个寄存器(称为变址寄存器)的编号。 实际地址(又称有效地址)=变址寄存器的内容+变址偏移量 主要用于处理数组型数据。 (2)相对寻址:应在指令中给出一个数值(称为相对寻址偏移量) 实际地址(又称有效地址)=程序计数器P

19、C的内容+相对寻址偏移量 主要用于相对转移指令。 (3)基地址寻址:应在指令中给出一个寄存器(称为基址寄存器)的编号。 实际地址(又称有效地址)=程序中的地址+基址寄存器 主要用于多道程序或浮动地址程序定位存储器空间。 答案:寄存器寻址:在指令字中直接给出操作数所在的通用寄存器的编号寄存器间接寻址:在寄存器中给出的不是一个操作数,而是操作数地址。7.7.寄存器寻址和寄存器间接寻址的区别寄存器寻址和寄存器间接寻址的区别? ? 说明下列指令中源操作数采用的寻址方式。说明下列指令中源操作数采用的寻址方式。 MOV R5,R7MOV A,55HMOV A,55HJMP A+DPTRMOV 30H,CM

20、OV A,R0MOVX A,R0寄存器寻址方式寄存器寻址方式 直接寻址方式直接寻址方式立即寻址方式立即寻址方式变址寻址方式变址寻址方式位寻址方式位寻址方式间接寻址方式间接寻址方式间接寻址方式间接寻址方式 判断以下各条指令是否正确(判断以下各条指令是否正确(LL1和和PROC为标号)为标号)(1)MOV R0,R7 ()(2)XCHD A,30H ()(3)MOVX A,R3 ()(4)ADD A,R7 ()(5)SUB R1,R2 ()(6)ANL 36H,#99H () (7)MOV C,ACC.0 ()(8)ORL P1.0,C ()(9)JBC 20H.0,LL1 ()(10)LCALL

21、 PROC () 下列各条指令其源操作数的寻址方式是什么?各条指令单独执行下列各条指令其源操作数的寻址方式是什么?各条指令单独执行后,后,A中的结果是什么?设(中的结果是什么?设(60H)=35H,(,(A)=19H,(,(R0)=30H,(,(30H)=0FH,(,(DPTR)=2000H,(,(2000H)=AAH,(2019H)=23H(1)MOV A,#48H (2)ADD A,60H(3)ANL A,R0(4)XCHD A,R0(5)MOVX A,DPTR(6)MOV A,R0 (7)MOVC A,A+DPTR(A)=48H 立即寻址立即寻址(A)=4EH 直接寻址直接寻址(A)=0

22、9H 寄存器间接寻址寄存器间接寻址(A)=1FH,(,(30H)=09H寄存器间接寻址寄存器间接寻址(A)=0AAH寄存器间接寻址寄存器间接寻址(A)=30H寄存器寻址寄存器寻址(A)=23H基变址寻址基变址寻址阅读下列程序段,写出每条指令执行后的结果,并说明此程序段阅读下列程序段,写出每条指令执行后的结果,并说明此程序段完成什么功能?完成什么功能?(1)MOV R1,#30H ;(R1)= MOV A,#64H ;(A)= ADD A,#47H ;(A)= DA A ;(A)= MOV R1,A ;(R1)=(2)阅读程序:若()阅读程序:若(A)=80H,(,(R0)=17H,(,(17H

23、)=34H,执行下列程序段后,(执行下列程序段后,(A)=? ANL A,#17H (A)= ORL 17H,A (17H)= XRL A,R0 (A)= CPL A (A)= 30H 64H 0ABH 11H 30H ,(30H)= 11H 00H34H34H0CBH设 (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)=

24、第四章 汇编语言程序设计将 内 部将 内 部 R A M 的的 4 0 H 4 F H 单 元 置 初 值单 元 置 初 值A0HAFH。(用循环程序)。(用循环程序)MOV R7,#10H MOV A,#0A0H MOV R0,#40HLOOP: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 题目:题目:试编程实现外

25、部试编程实现外部RAM2000HRAM2000H单元的内容与单元的内容与3000H3000H单元内容互换。单元内容互换。 题目:题目:编写程序编写程序,把外部把外部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) MO

26、V 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 2

27、1H,#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 30HRAM 30H50H50H单元单元中出现中出现FFHFFH个数个数, ,并将查找搭结果存入并将查找搭结果存入51H51H单元。单元。 MOV R0, #30H ;数据区首地址 MOV R7, #20H ;数据个数 MOV 51H,#00H ;先设只有0个0ffh LOOP: MOV A, R0

28、INC R0 CJNE A,#0FFH,NEXT ;比较,不等于0ffh转NEXT ;等于0ffh,继续执行 INC 51H NEXT: DJNZ R7,LOOP END 题目:题目:查表程序设计查表程序设计1. 用DPTR查表(查09平方表)1000 C083 TA: PUSH DPH1002 C082 PUSH DPL1004 902000 MOV DPTR, #TAB1007 93 MOVC A, A+DPTR1008 D082 POP DPL100A D083 POP DPH100C 22 RET ORG 2000H TAB: DB 00H, 01H, 04H, 09H2000 00

29、2001 012002 042003 09 题目:题目:用用PC查表(查查表(查09平方表)平方表) ORG 1000H1000 C083 TA: ADD A, #01H ; # 01H 为偏移量1002 83 MOVC A, A+PC1003 22 RET 1004 00 DB 00H, 01H, 04H, 09H1005 01 END1006 041007 09偏移量表首地址(查表指令下一条指令地址) 1004H 1003H 01H 题目:题目:循环程序设计循环程序设计 延时50ms程序 DEL: MOV R7, #200 DEL1: MOV R6, #125 DEL2: DJNZ R6,

30、 DEL2 ;125*2=250us DJNZ R7, DEL1 ; 0.25ms*20050ms RET 使用12MHz晶振时,一个机器周期为1us, 执行DJNZ指令为2us,加其他指令的时间 (25012)*200150.301ms niixy1 题目:题目:计算几个数据的和计算几个数据的和例题:对内部RAM 50h开始的10个无符号数求和。源程序:源程序:ADD1: MOV R7, #10 ;循环次数n10 MOV R3, #0 ;存放结果的高8位 MOV R4, #0 ;存放结果的低8位 MOV R0, #50H ;求和的数据存放在从内部RAM 50h开始的 ;单元中,。注意:(50

31、h)?不知道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, ACLR A ADDC A, R3 MOV R3, A(50h)中是什么,不知道,)中是什么,不知道, 不能用不能用ADD A,50H 题目:题目:分支程序设计分支程序设计基本分

32、支程序:(1)若(A) 14H, 转NEXT, 否则继续执行 (A) 14H相当于(相当于(A) 14H相当于(相当于(A) 15H CJNE A, #15H, LOOPLOOP: JNC NEXT CJNE A, #14H, LOOPLOOP: JNC NEXT CJNE A, #14H, LOOPLOOP: JC NEXT CJNE A,#data,rel;(A)=#data,继续,继续 Cy0(A)#data, 转转 Cy0(A)#data, 转转 Cy1特点:只有时,特点:只有时,Cy1例例1:按下面公式编写程序,:按下面公式编写程序, x为无符号数,存在为无符号数,存在20h单单元元

33、 y存放在存放在21h单元。单元。 ORG 0030H MOV A, 20H CJNE A, #21H, LOOP1LOOP1: JC NEXT1 CJNE A, #40H, LOOP2LOOP2: JNC NEXT2 MOV B, #2 MUL AB AJMP NEXT2NEXT1: CPL ANEXT2: MOV 21H, A END最终结果存在最终结果存在 21h中中204020240 xxxxxxy 题目:题目:分支程序例分支程序例 题目:题目:分支程序例分支程序例 从内部RAM 22h单元开始存有一个无符号数数据块,长度n存于21h中。求出数据块中的最小数,存于20h中。 ORG 0

34、030H 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取新数 yn10?yyNNENDFRT: MOV A,40H ;取行李重量G放在40H MOV R3,A MOV B,#03H;M=G3 MUL AB MOV R2

35、,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,R2WETC: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 0

36、030HJUMP1: MOV DPTR, #TAB CLR A MOV A, R7 ADD A, R7 AJMP A+DPTR ORG 0100HTAB: AJMP Prog0 AJMP Prog1 AJMP Prog2 *AJMP 即把PC指向子程序的起始地址;*R7 x 2 是AJMP A+DPTR的机器码匹配;此处 n127;*如用LJMP A+DPTR,则R7 x 3, 程序还要作相应修改。处理 0处理 1处理 nR7= ?01n 题目:题目:数制转换程序设计数制转换程序设计例:8位二进制转换成BCD码。(用十进制表达的二进制码);程序名:BINBCD1;功能: 0FFH内的二进制数转

37、换为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

38、 ;(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,LOO

39、P ;次数减1,不为0转移 功能功能: 存储在外部数据存储器存储在外部数据存储器31H开始的开始的3个字节数相加,结果低字节送个字节数相加,结果低字节送R2,高字节送高字节送R1。第五章 MCS-51片内接口1.1.通用可编程接口的作用是什么?各自的功能是什么?通用可编程接口的作用是什么?各自的功能是什么? 答案:(1)命令寄存器:存放CPU发来的控制命令。(2)状态寄存器:供CPU通过读操作来了解设备的运行状态。(3)数据缓冲器:解决CPU与输入输出设备运行速度不匹配的矛盾。(4)处理中断请求、屏蔽和判优等逻辑线路,外设可申请中断,CPU可屏蔽中断及判断优先级。3.3.计算机中有哪些常用的输

40、入输出控制方式?各自的优缺点是什么?计算机中有哪些常用的输入输出控制方式?各自的优缺点是什么?2.2.开中断,关中断,中断屏蔽是何含义?他们的作用是什么?开中断,关中断,中断屏蔽是何含义?他们的作用是什么? 答案:开中断:中断允许触发器置“1”,关中断:中断允许触发器清“0”中断屏蔽:中断屏蔽触发器置1答案:(1)程序直接控制方式指在用户程序中直接使用I/O指令完成输入输出操作,它是由CPU通过查询设备的运行状态,来控制数据传送过程。缺点:严重影响系统运行性能。(2)程序中断传送方式由被读写的设备主动“报告”CPU它是否已进入准备好状态,这样,CPU就不必花费时间去循环测试,大大解脱了CPU在

41、执行输入/输出过程中的负担,从而提高了系统的总体运行性能(3)直接存储器存取方式主要用于快速设备和主存储器成批交换数据的场合,把数据的传输过程交由一块专用的接口卡(DMA接口)来控制,让DMA卡代替CPU控制在快速设备与主存储器之间直接传输数据,每传输一个数据只需一个总线周期即可。(4)I/O通道控制方式使用从属于CPU 的、专用于处理I/O操作的处理器(通道)协助CPU完成输入输出操作的运行方式。 (5)外围处理机输入出方式主要用于大型高性能的计算机系统中,是使用微、小型通用计算机协助处理机完成输入输出操作。4.4.简述一次中断处理的完整过程?简述一次中断处理的完整过程?答案:(1)中断请求

42、:是由中断源发出并送给CPU的控制信号,由中断源设备通过置“1”设置在接口卡上的中断触发器完成。中断屏蔽触发器置“1”,表示要屏蔽该设备的中断请求(2)中断响应条件:当CPU接到中断请求信号时,如果下面几个条件都具备,就会响应中断请求。允许中断(允许中断触发器为“1”状态)。CPU结束一条指令的执行过程。新请求的中断优先级更高(3)中断处理 包括:关中断:保证在此之后的一小段时间内CPU不能响应新的中断请求。保存断点(PC的内容,程序状态字的内容)判别中断源:找到中断服务程序的入口地址开中断执行中断服务程序关中断恢复现场,恢复断点开中断返回断点5 8051应用系统只设置一个中断优先级。定时器应

43、用系统只设置一个中断优先级。定时器T0中断和串行口的中断和串行口的TI中断同时产生,中断同时产生,CPU响应哪一个中断?为什么?若响应哪一个中断?为什么?若CPU已经在响应串行已经在响应串行口口TI中断,又有中断,又有T0中断申请产生,问中断申请产生,问CPU是否会暂停对是否会暂停对TI中断的响应中断的响应而转去响应而转去响应T0中断?为什么?中断?为什么?答案:响应答案:响应T0中断,原因外部中断中断,原因外部中断INT0 最高最高 定时器定时器/计数器计数器T0 外部中断外部中断INT1 定时器定时器/计数器计数器T1 串行口的中断串行口的中断RI/TI。 最低最低 会,原因同前。会,原因

44、同前。 68051应用系统有二个中断优先级,其中串行口的应用系统有二个中断优先级,其中串行口的RI中断设置为高中断设置为高优先级,定时器优先级,定时器T1设置为低优先级。若设置为低优先级。若CPU正在响应正在响应RI中断,现在中断,现在T1产生中断,问产生中断,问T1中断是否可以打断正在响应的中断是否可以打断正在响应的RI中断?为什么?中断?为什么?答案:不能。原因CPU先处理RI高优先级中断8若若8051的晶振频率的晶振频率fosc为为6MHZ,定时器,定时器/计数器计数器T0工作在工作方式工作在工作方式1,要求产生要求产生10ms定时,写出定时器的方式控制字和计数初值(分别写出定时,写出定

45、时器的方式控制字和计数初值(分别写出TH0与与TL0值)。值)。7.7.设设80318031晶振频率晶振频率foscfosc为为6MHZ6MHZ,利用定时器,利用定时器T0T0方式方式2 2,产生,产生500ms500ms定时。使定时。使P1P1。0 0每隔每隔500ms500ms产生一次跳变。(即输出周期产生一次跳变。(即输出周期为为1ms1ms的方波。)编写定时器的方波。)编写定时器T0T0的初始化程序和方波实现程序。的初始化程序和方波实现程序。答案: a=6程序: MOV TMOD,#2 MOV TH0,#6 MOV TL0,#6 SETB TR0 MOV IE,#82H CPL P1.

46、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 9. SBUF的含义及作用是什么?的含义及作用是什么? 答案:SBUF串行口缓冲寄存器是可直接寻址的专用寄存器。它对应两个寄 存器,一个发送寄存器,一个接收寄存器,CPU写SBUF,就是修改发送寄存器;读SBUF,就是读接收寄存器。10“MCS-51有一个全双工的同步串行通信接口有一个全双工的同步串行通信接口”,这句话是

47、否正确?,这句话是否正确?错误:有一个全双工的异步串行通信接口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的串行口的数据发送和接

48、收缓冲器都是的串行口的数据发送和接收缓冲器都是SBUF,所,所以其串行口不能同时发送和接收数据,即不是全双工的串行口。以其串行口不能同时发送和接收数据,即不是全双工的串行口。”这这句话是否正确?如果不正确,错在哪里?句话是否正确?如果不正确,错在哪里? 错误:串行口可以同时发送和接收数据,是全双工的串行口13“8051串行口的波特率可以由定时器串行口的波特率可以由定时器T0的溢出率决定。的溢出率决定。”这句这句话是否话是否正确?正确?错误:由T1的溢出率决定 14波特率加倍位波特率加倍位SMOD的作用是什么?的作用是什么? 答案:串行口中模式0下的波特率是固定的为fosc/12,模式2的波特率

49、是fosc/32或fosc/64,取决于POCN寄存器的SMOD位的值,若SMOD=0波特率为fosc/64,若 SMOD=1波特率为fosc/32。15.MCS-5115.MCS-51定时器定时器/ /计数器的四种工作方式计数器的四种工作方式? ?1. 定时工作方式0 方式0是13位计数结构的工作方式,其计数器由TH0全部8位和TL0的低5位构成。当TL0的低5位计数溢出时,向TH0进位,而全部13位计数溢出时,则向计数溢出标志位TF0进位。 在方式0下,当为计数工作方式时,计数值的范围是18192(213)当为定时工作方式时,定时时间的计算公式为:(213计数初值)晶振周期12 或 (21

50、3计数初值)机器周期其时间单位与晶振周期或机器周期相同(ms)。例题:当某单片机系统的外接晶振频率为6MHz,该系统的最小定时时间为: 213(2131)1/(6106)1221062(ms)最大定时时间为: (2130)1/(6106)121638410616384(ms)或: 最小定时单位21316384(ms)第六章 MCS-51系统扩展1.DMA1.DMA传输方式的优点是什么?传输方式的优点是什么?DMADMA接口中通常应包括那些逻辑部件?接口中通常应包括那些逻辑部件?各自的功能是什么?各自的功能是什么?答案:优点:速度快,不须CPU参与,满足高速I/O设备的要求,有利于CPU发挥效率

51、DMA接口包括:(1)主存地址计数器:存放读写主存用到的主存地址。(2)数据数量计数器:存放传送数据的数量。(3)DMA的控制状态逻辑,用于修改主存地址计数器和数据数量计数器,指定传送功能,协调CPU和DMA信号的配合与同步。(4)DMA请求触发器:接收并记忆设备送来的请求传送的信号。(5)数据缓冲寄存器:用于存放高速设备与主存之间交换的数据。(6)中断机构:与通用接口中的中断逻辑电路的组成完全相同。2.DMA2.DMA控制传送一批数据,从使用总线的角度区分,有那两种主要运控制传送一批数据,从使用总线的角度区分,有那两种主要运行方式?各自的优缺点是什么?行方式?各自的优缺点是什么? 答案:(1

52、)独占总线方式:从传送第一个字节开始直到这批数据传输完成的整个过程,DMA都把住总线不放,使总线只为本DMA使用。缺点:CPU和其它DMA等bus masters都要停止运行,影响系统运行效率。(2)周期挪用方式优点:即实现了I/O传送,又较好的发挥了内存和CPU的效率3.3.解释下列术语解释下列术语总线周期: 通常指的是通过总线完成一次内存读写操作或完成一次输通常指的是通过总线完成一次内存读写操作或完成一次输入输出设备的读写操作所必需的时间。入输出设备的读写操作所必需的时间。同步传输控制:(同步通信:)在总线上传送数据时,通信双方使用同(同步通信:)在总线上传送数据时,通信双方使用同一个时钟

53、信号进行同步。一个时钟信号进行同步。 MOV A,#01HLOOP: MOV P1,A ACALL DELY RL A SJMP LOOP RETDELY: MOV R1,#50LOOP2:MOV R2,#25 ; T=2us*2*25*50=5msLOOP1:DJNZ R2,LOOP1 ;6MHZ:2us 12 MHZ:1us DJNZ R1,LOOP2 RET 4.4.在在80318031的的P1P1口接口接8 8个共阴极个共阴极LEDLED显示器,请编程实现每隔显示器,请编程实现每隔5ms 5ms 点亮一个点亮一个LEDLED显示器,循环点亮显示器,循环点亮8 8个个LEDLED,从,从

54、P1.0P1.0所接所接LEDLED开始点开始点亮,同一时刻只有一个亮,同一时刻只有一个LED LED 亮。设亮。设foscfosc=6MHZ.=6MHZ.,要求:延时用,要求:延时用软件实现,延时程序软件实现,延时程序DELAYDELAY为子程序,并画出接线图。为子程序,并画出接线图。5. 5. 用三片用三片62646264构成单片机的数据存储区构成单片机的数据存储区, ,地址译码采用全地址译码法。地址译码采用全地址译码法。6.6.使用定时使用定时/ /计数器计数器0 0以工作方式以工作方式2 2实现定时实现定时, ,在在P1.0P1.0输出周期为输出周期为200s200s的连续方波。已知晶

55、振频率的连续方波。已知晶振频率foscfosc=6MH=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.7.数据通信的传输方式数据通信的传输方式? ?答案:常用于数据通信的传输方式有单工、半双工、全双工和多工方式。 单工方式:数据仅按

56、一个固定方向传送。因而这种传输方式的用途有限,常用于串行口的打印数据传输与简单系统间的数据采集。 半双工方式:数据可实现双向传送,但不能同时进行,实际的应用采用某种协议实现收/发开关转换。 全双工方式:允许双方同时进行数据双向传送,但一般全双工传输方式的线路和设备较复杂。 多工方式:以上三种传输方式都是用同一线路传输一种频率信号,为了充分地利用线路资源,可通过使用多路复用器或多路集线器,采用频分、时分或码分复用技术,即可实现在同一线路上资源共享功能,我们盛之为多工传输方式。8.8.串行数据通信的传输速率串行数据通信的传输速率? ?答案:串行数据传输速率有两个概念,即每秒转送的位数bps(Bit

57、 per second)和每秒符号数波特率(Band rate),在具有调制解调器的通信中,波特率与调制速率有关。MCS-51的串行口和控制寄存器的串行口和控制寄存器 串行数据通信两种形式串行数据通信两种形式异步通信: 在这种通信方式中,接收器和发送器有各自的时钟,它们的工作是非同步的,异步通信用一帧来表示一个字符,其内容如下:一个起始位,仅接着是若干个数据位,图2是传输45H的数据格式。 同步通信: 同步通信格式中,发送器和接收器由同一个时钟源控制,为了克服在异步通信中,每传输一帧字符都必须加上起始位和停止位,占用了传输时间,在要求传送数据量较大的场合,速度就慢得多。同步传输方式去掉了这些起

58、始位和停止位,只在传输数据块时先送出一个同步头(字符)标志即可。 同步传输方式比异步传输方式速度快,这是它的优势。但同步传输方式也有其缺点,即它必须要用一个时钟来协调收发器的工作,所以它的设备也较复杂。 第七章 单片机及应用设计实例1.1.设某单片机系统的外接晶振频率为设某单片机系统的外接晶振频率为6MHz6MHz,使用定时器,使用定时器1 1以方式以方式0 0产生产生周期为周期为500ms500ms的等宽正方波连续脉冲,并由的等宽正方波连续脉冲,并由P1.0P1.0输出。以查询方式完成。输出。以查询方式完成。解题:计算计数初值 欲产生500ms的等宽正方波脉冲,只需在P1.0端以250ms为

59、周期交替输出高低电平即可实现,为此定时时间应为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停止。 程序设计:MOV TMOD,00H ;设置T1为工作方式0MOV TH1,OFCH ;设置计数初值MOV TL1,03HMOV IE,00H ;禁止中断LOOP

60、: SETB TR1 ;启动定时JBC TF1,LOOP1 ;查询计数溢出AJMP LOOPLOOP1:MOV TH1,FCH ;重新设置计数初值MOV TL1,03HCLR TF1 ;计数溢出标志位清0CPL P1.0 ;输出取反AJMP LOOP ;重复循环 2.2.定时器定时器/ /计数器与中断综合应用举例计数器与中断综合应用举例题(1):时钟计时程序设计。MCS-51单片机实现时钟计时显示的基本方法 首先要计算计数初值 时钟计时的关键问题是秒的产生,因为秒是最小时钟单位,但使用MMCS-51的定时器/计数器进行定时,即使按工作方式,其最大定时时间也只能达到131毫秒,离1秒还差好远。为

温馨提示

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

评论

0/150

提交评论