单片机原理及应用试题.ppt

上传人:cl****1 文档编号:569933890 上传时间:2024-07-31 格式:PPT 页数:70 大小:531KB
返回 下载 相关 举报
单片机原理及应用试题.ppt_第1页
第1页 / 共70页
单片机原理及应用试题.ppt_第2页
第2页 / 共70页
单片机原理及应用试题.ppt_第3页
第3页 / 共70页
单片机原理及应用试题.ppt_第4页
第4页 / 共70页
单片机原理及应用试题.ppt_第5页
第5页 / 共70页
点击查看更多>>
资源描述

《单片机原理及应用试题.ppt》由会员分享,可在线阅读,更多相关《单片机原理及应用试题.ppt(70页珍藏版)》请在金锄头文库上搜索。

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.1100011016.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)直接寻址,位寻址空间(0-0F

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

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

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

8、28个存储元按位另外统一编址(即位地址),分别从00H7FH,常用来存放实际控制中的各种状态信息。字节地址30H7FH普通的字节寄存器,常用来存放临时数据,又称数据缓冲区。其中最高端的若干字节常用于教学开发机各LED数码管的数据缓冲区,配合监控程序中的显示模块使用。例如江苏启东厂的教学开发机就是将7EH79H这6个存储单元当做LED显示缓冲区,无论用户,预制内容是BGD码还是七段代码,都可以在监控程序中找到对应的显示模块,通过调用来完成用户所需的数值显示。片内高端l28字节的RAM区只有21个字节有效,这21个字节既有地址,又有各自独特的名称,且用途各异,因此称为特殊功能寄存器(SFR)空间,

9、其中凡字节地址能被8整除的SFR均可实现位寻址,其也有独立的位地址,且编号规律与低端位寻址区不同,与各自所在SFR字节地址相关。9. 9. 程序状态字程序状态字PSW中各个状态位是从哪里得到的?其中两个未安中各个状态位是从哪里得到的?其中两个未安排的自定义位排的自定义位(PSW.5和和PSW.2)用户能任意使用吗?用户能任意使用吗?答案:PSW又称标志寄存器,主要用来存放指令执行过程中产生的各种特殊信息,这些信息分别来自于:PSW.7(C标志)来自运算器最近一次算术运算操作,表示运算结果有无进(借)位?PSW.6(AC标志)来自运算器最近一次算术运算操作,表示运算结果的低4位与高4位之间有无进

10、位?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内部

11、内部RAM有几组工作寄存器?每组工作寄存器有几个工作有几组工作寄存器?每组工作寄存器有几个工作寄存器?寄存器组的选择由什么决定?寄存器?寄存器组的选择由什么决定?答案:01FH为四组工作寄存器区,寄存器组的选择由PSW中的RS1、RS0两位决定,每组有8个工作寄存器R0R7。12什么是特殊功能寄存器?分布在哪里?什么是特殊功能寄存器?分布在哪里?答案:8051内部的I/O口锁存器以及定时器、串行口、中断等各种控制积存器和状态积存器都称为特殊功能积存器。分布在80HFFH的地址空间。138051的外部的外部RAM和和I/O口是如何编址的?其寻址空间在哪里?口是如何编址的?其寻址空间在哪里?答案:

12、是统一编址的,均在64KB的外部数据存储器空间,CPU对它们具有相同的操作功能。14MCS-51的程序存储器的寻址空间是多少?如何区别片内程序存的程序存储器的寻址空间是多少?如何区别片内程序存储器和片外程序存储器的?储器和片外程序存储器的?答案:为64K字节。若接VCC,则程序PC的值在0至0FFFFH之间时,CPU取指令时访问内部的程序存储器,PC的值大于0FFFH时,访问外部的程序存储器;若接VSS,则内部的程序存储器被忽略,CPU总是从外部的程序存储器中取指令。158051的位寻址区在哪里?位寻址空间是多少?的位寻址区在哪里?位寻址空间是多少?答案:内部RAM的202FH为位寻址区,这1

13、6个单元的每一位(16*8)都有一个位地址,它们占据位地址空间的07FH。16什么是什么是SP?什么是堆栈?什么是堆栈?答案:SP是堆栈指针,指出栈顶位置。后进先出的缓冲器称为堆栈。178051的堆栈开辟在什么地方?其堆栈指针是什么?复位后堆栈指针的堆栈开辟在什么地方?其堆栈指针是什么?复位后堆栈指针初值是多少?一般将初值是多少?一般将SP设置为多少?设置为多少?答案:堆栈设在307FH的范围内。SP是堆栈指针。复位后是07H。一般设置为6FH。188051的数据缓冲区一般在什么地方?的数据缓冲区一般在什么地方?19. 19. 在计算机中,为什么要采用多级结构的存储器系统?它在计算机中,为什么

14、要采用多级结构的存储器系统?它的应用是建立在程序的什么特性之上的?的应用是建立在程序的什么特性之上的? 答案:为了缓解主存储器读写速度慢,不能满足CPU运行速度需要的矛盾,另一方面又要解决主存储器容量小,存不下更多规模更大的程序与更多的数据难题,当前计算机系统中,广泛采用了多级结构的存储器体系结构,建立在程序运行的局部性原理之上。答案:在内部的07FH,除了实际用到的工作寄存器、位标志和堆栈区以外的单元,都可以作为数据缓冲器使用,存放输入的数据或运算的结果。第三章 MCS-51指令系统1什么是指令?什么是指令系统?什么是伪指令?什么是指令?什么是指令系统?什么是伪指令?答案:指令是指示计算机执

15、行某种操作的命令,指令是以一组二进制码表示的,称为机器指令。计算机只能识别和执行机器指令。通常把一台计算机所能执行的全部指令的集合称为指令系统。伪指令也称为汇编命令,大多数伪指令汇编时不产生机器语言指令,仅提供汇编控制信息。2什么是总线?总线有哪些分类?什么是总线?总线有哪些分类?答案:总线是计算机中各个功能部件之间传送信息的公用通道,是连接各个功能部件并为它们服务的一组信息传递导线,总线可分为单向总线和双向总线,并行总线和串行总线,若按传递信息的属性不同,可分为地址总线、数据总线和控制总线。3立即寻址,其操作数是在存储器中。这句话是否正确?立即寻址,其操作数是在存储器中。这句话是否正确?答案

16、:错误。操作数是在程序存储器中。4.一条指令通常由哪两部分组成?指令的操作码一般有几种组织方一条指令通常由哪两部分组成?指令的操作码一般有几种组织方式?各自应用在什么场合?各自的缺点是什么?式?各自应用在什么场合?各自的缺点是什么?答案:一条指令由操作码和操作数地址码两部分组成。对操作码的组织与编码有以下三种:5.5.计算机指令字中要用的操作数一般来自那些部件?如何在指令中表计算机指令字中要用的操作数一般来自那些部件?如何在指令中表示这些操作数的地址?通常使用那些寻址方式?示这些操作数的地址?通常使用那些寻址方式? 答案:(1)CPU内部的同用寄存器:给出用到的寄存器编号,寄存器内容可以是运算

17、用的数据或操作数地址。(2)外围设备(接口)中的一个寄存器:用设备编号或设备入出端口地址或设备映像地址表示(3)内存储器的一个存储单元:存储单元地址寻址方式:立即数寻址、直接寻址、寄存器寻址、寄存器间接寻址、变址寻址、相对寻址、基地址寻址、间接寻址、堆栈寻址6.6.什么是形式地址?简述对变址寻址、相对寻址、基地址寻址应在指什么是形式地址?简述对变址寻址、相对寻址、基地址寻址应在指令中给出些什么信息?如何得到相应的实际(有效)地址?各自有什令中给出些什么信息?如何得到相应的实际(有效)地址?各自有什么样的主要用法?么样的主要用法? 答案:表示在指令中的操作数地址称为形式地址。(1)变址寻址:应在

18、指令中给出一个数值(称为变址偏移量)及一个寄存器(称为变址寄存器)的编号。实际地址(又称有效地址)=变址寄存器的内容+变址偏移量主要用于处理数组型数据。(2)相对寻址:应在指令中给出一个数值(称为相对寻址偏移量)实际地址(又称有效地址)=程序计数器PC的内容+相对寻址偏移量主要用于相对转移指令。(3)基地址寻址:应在指令中给出一个寄存器(称为基址寄存器)的编号。实际地址(又称有效地址)=程序中的地址+基址寄存器主要用于多道程序或浮动地址程序定位存储器空间。答案:寄存器寻址:在指令字中直接给出操作数所在的通用寄存器的编号寄存器间接寻址:在寄存器中给出的不是一个操作数,而是操作数地址。7.7.寄存

19、器寻址和寄存器间接寻址的区别寄存器寻址和寄存器间接寻址的区别? ?说明下列指令中源操作数采用的寻址方式。说明下列指令中源操作数采用的寻址方式。MOVR5,R7MOVA,55HMOVA,55HJMPA+DPTRMOV30H,CMOVA,R0MOVXA,R0寄存器寻址方式寄存器寻址方式直接寻址方式直接寻址方式立即寻址方式立即寻址方式变址寻址方式变址寻址方式位寻址方式位寻址方式间接寻址方式间接寻址方式间接寻址方式间接寻址方式判断以下各条指令是否正确(判断以下各条指令是否正确(LL1和和PROC为标号)为标号)(1)MOVR0,R7()(2)XCHDA,30H()(3)MOVXA,R3()(4)ADD

20、A,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,R

21、0(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;

22、(A)=MOVR1,A;(R1)=(2)阅读程序:若(阅读程序:若(A)=80H,(,(R0)=17H,(,(17H)=34H,执行下列程序段后,(执行下列程序段后,(A)=?ANLA,#17H(A)=ORL17H,A(17H)=XRLA,R0(A)=CPLA(A)=30H64H0ABH11H30H,(30H)=11H00H34H34H0CBH设 (A)=0FH , (R0)=30H内部RAM (30H)=0AH, (31H)=0BH (32H)=0CH请写出在执行各条列指令后,所示单元的内容 MOV A,R0 ;(A)= MOV R0,32H ;(30H)= MOV 32H, A ;(32H

23、)= MOV R0,#31H ;(R0)= MOV A, R0 ;(A)= 第四章 汇编语言程序设计将将 内内 部部 RAM的的 40H4FH单单 元元 置置 初初 值值A0HAFH。(。(用循环程序)用循环程序)MOVR7,#10HMOVA,#0A0HMOVR0,#40HLOOP:MOVR0,AINCAINCR0DJNZR7,LOOPRETMOVDPTR,#2000HMOVXA,DPTRXCHA,BMOVDPTR,#3000HMOVXA,DPTRXCHA,BMOVXDPTR,AMOVDPTR,#2000HXCHA,BMOVXDPTR,ARET 题题目目:试试编编程程实实现现外外部部RAM20

24、00HRAM2000H单单元元的的内内容容与与30003000H H单元内容互换。单元内容互换。 题目:题目:编写程序编写程序,把外部把外部RAM1000H10FFH区域区域内的数据逐个搬到从内的数据逐个搬到从2000H开始的区域。开始的区域。MOVDPL,#00HMOVR7,#0FFHLOOP:MOVDPH,#10HMOVXA,DPTRMOVDPH,#20HMOVXDPTR,AINCDPL;此题中DPL可公用DJNZR7,LOOPEND题目:题目:分析下面个程序段中指令的执行结果分析下面个程序段中指令的执行结果(1) MOV SP,#50H MOV A,#0F0H MOV B,#0FH PU

25、SH 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单元。单元。MOV21H,#00HMOVA,20HMOVR7,#08HLOOP:RLCA;左循

26、环一位,最高位到CJNCNEXT;C为0INC21H;C为1,21H内容1NEXT:DJNZR7,LOOPEND 题目:题目:编写一循环程序编写一循环程序, ,查找内部查找内部RAM 30HRAM 30H50H50H单元单元中出现中出现FFHFFH个数个数, ,并将查找搭结果存入并将查找搭结果存入5151H H单元。单元。 MOVR0,#30H;数据区首地址MOVR7,#20H;数据个数MOV51H,#00H;先设只有0个0ffhLOOP:MOVA,R0INCR0CJNEA,#0FFH,NEXT;比较,不等于0ffh转NEXT;等于0ffh,继续执行INC51HNEXT:DJNZR7,LOOP

27、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 2001 012002 042003 09 题目:题目:用用PC查表(查查表(查09平方表)平方表) ORG 1000H1000 C083 TA: ADD A, #

28、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, DEL2 ;125*2=250us DJNZ R7, DEL1 ; 0.25ms*20050ms RET 使用12MHz晶振时,一个机器周期为1us, 执行DJN

29、Z指令为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 ; 把进

30、位位C加到高8位去 MOV R3, A INC R0 ; 为下一轮循环作准备 DJNZ R7, LOOP END解释:解释: 高8位 低8位 (R3) (R4) + (50h) C (A)MOVA,R4ADDA,R0MOVR4,ACLRAADDCA,R3MOVR3,A(50h)中是什么,不知道,中是什么,不知道,不能用不能用ADDA,50H 题目:题目:分支程序设计分支程序设计基本分支程序:(1)若(A) 14H, 转NEXT, 否则继续执行 (A)14H相当于(相当于(A)14H相当于(相当于(A)15HCJNEA,#15H,LOOPLOOP:JNCNEXTCJNEA,#14H,LOOPLO

31、OP:JNCNEXTCJNEA,#14H,LOOPLOOP:JCNEXTCJNE A,#data,rel;(A)=#data,继续继续 Cy0(A)#data, 转转 Cy0(A)#data, 转转 Cy1特点:只有时,特点:只有时,Cy1例例1:按下面公式编写程序,:按下面公式编写程序, x为无符号数,存在为无符号数,存在20h单单元元 y存放在存放在21h单元。单元。 ORG 0030H MOV A, 20H CJNE A, #21H, LOOP1LOOP1: JC NEXT1 CJNE A, #40H, LOOP2LOOP2: JNC NEXT2 MOV B, #2 MUL AB AJM

32、P NEXT2NEXT1: CPL ANEXT2: 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 NE

33、XT ; 大,原最小数保留 MOV 20H, A ; 小,改变最小数NEXT: DJNZ R1, LOOP ;循环 END初始化yxyx取新数yn10?yyNNENDFRT: 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,R2WETC:MOV 41H,A ;最后结果M存41H end 题目:题目:行李计价:行李计价:

34、 当当G5,M=G3;当当G5,M=G3+(G-5)(5-3) 题目:题目:散转程序设计散转程序设计根据根据R7中的内容,转向各个子程序。中的内容,转向各个子程序。 R70,转入转入Prog0 R71,转入转入Prog1 R72,转入转入Prog2 R7n,转入转入Progn ORG 0030HJUMP1: MOV DPTR, #TAB CLR A MOV A, R7 ADD A, R7 AJMP A+DPTR ORG 0100HTAB: AJMP Prog0 AJMP Prog1 AJMP Prog2 *AJMP即把PC指向子程序的起始地址;*R7x2是AJMPA+DPTR的机器码匹配;此处

35、n127;*如用LJMPA+DPTR,则R7x3,程序还要作相应修改。处理0处理1处理nR7=?01n 题目:题目:数制转换程序设计数制转换程序设计例: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 RE

36、T题目:题目:设内部设内部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;单字节数MOV

37、R2,A;和低位送R2JNCLOOP1;无进位转移INCR1;有进位高位加1LOOP1:INCR0;指向下一单元DJNZR3,LOOP;次数减1,不为0转移功能功能:存储在外部数据存储器存储在外部数据存储器31H开始的开始的3个字节数相加,结果低字节送个字节数相加,结果低字节送R2,高字节送高字节送R1。第五章 MCS-51片内接口1.1.通用可编程接口的作用是什么?各自的功能是什么?通用可编程接口的作用是什么?各自的功能是什么?答案:(1)命令寄存器:存放CPU发来的控制命令。(2)状态寄存器:供CPU通过读操作来了解设备的运行状态。(3)数据缓冲器:解决CPU与输入输出设备运行速度不匹配的

38、矛盾。(4)处理中断请求、屏蔽和判优等逻辑线路,外设可申请中断,CPU可屏蔽中断及判断优先级。3.3.计算机中有哪些常用的输入输出控制方式?各自的优缺点是什么?计算机中有哪些常用的输入输出控制方式?各自的优缺点是什么?2.2.开中断,关中断,中断屏蔽是何含义?他们的作用是什么?开中断,关中断,中断屏蔽是何含义?他们的作用是什么? 答案:开中断:中断允许触发器置“1”,关中断:中断允许触发器清“0”中断屏蔽:中断屏蔽触发器置1答案:(1)程序直接控制方式指在用户程序中直接使用I/O指令完成输入输出操作,它是由CPU通过查询设备的运行状态,来控制数据传送过程。缺点:严重影响系统运行性能。(2)程序

39、中断传送方式由被读写的设备主动“报告”CPU它是否已进入准备好状态,这样,CPU就不必花费时间去循环测试,大大解脱了CPU在执行输入/输出过程中的负担,从而提高了系统的总体运行性能(3)直接存储器存取方式主要用于快速设备和主存储器成批交换数据的场合,把数据的传输过程交由一块专用的接口卡(DMA接口)来控制,让DMA卡代替CPU控制在快速设备与主存储器之间直接传输数据,每传输一个数据只需一个总线周期即可。(4)I/O通道控制方式使用从属于CPU的、专用于处理I/O操作的处理器(通道)协助CPU完成输入输出操作的运行方式。(5)外围处理机输入出方式主要用于大型高性能的计算机系统中,是使用微、小型通

40、用计算机协助处理机完成输入输出操作。4.4.简述一次中断处理的完整过程?简述一次中断处理的完整过程?答案:(1)中断请求:是由中断源发出并送给CPU的控制信号,由中断源设备通过置“1”设置在接口卡上的中断触发器完成。中断屏蔽触发器置“1”,表示要屏蔽该设备的中断请求(2)中断响应条件:当CPU接到中断请求信号时,如果下面几个条件都具备,就会响应中断请求。允许中断(允许中断触发器为“1”状态)。CPU结束一条指令的执行过程。新请求的中断优先级更高(3)中断处理包括:关中断:保证在此之后的一小段时间内CPU不能响应新的中断请求。保存断点(PC的内容,程序状态字的内容)判别中断源:找到中断服务程序的

41、入口地址开中断执行中断服务程序关中断恢复现场,恢复断点开中断返回断点58051应用系统只设置一个中断优先级。定时器应用系统只设置一个中断优先级。定时器T0中断和串行口的中断和串行口的TI中断同时产生,中断同时产生,CPU响应哪一个中断?为什么?若响应哪一个中断?为什么?若CPU已经在响应串行已经在响应串行口口TI中断,又有中断,又有T0中断申请产生,问中断申请产生,问CPU是否会暂停对是否会暂停对TI中断的响应而中断的响应而转去响应转去响应T0中断?为什么?中断?为什么?答案:响应答案:响应T0中断,原因外部中断中断,原因外部中断INT0最高最高定时器定时器/计数器计数器T0外部中断外部中断I

42、NT1定时器定时器/计数器计数器T1串行口的中断串行口的中断RI/TI。最低最低会,原因同前。会,原因同前。68051应用系统有二个中断优先级,其中串行口的应用系统有二个中断优先级,其中串行口的RI中断设置为高中断设置为高优先级,定时器优先级,定时器T1设置为低优先级。若设置为低优先级。若CPU正在响应正在响应RI中断,现在中断,现在T1产生中断,问产生中断,问T1中断是否可以打断正在响应的中断是否可以打断正在响应的RI中断?为什么?中断?为什么?答案:不能。原因CPU先处理RI高优先级中断8若若8051的的晶晶振振频频率率fosc为为6MHZ,定定时时器器/计计数数器器T0工工作作在在工工作

43、作方方式式1,要要求求产产生生10ms定定时时,写写出出定定时时器器的的方方式式控控制制字字和和计计数数初初值值(分分别别写写出出TH0与与TL0值)。值)。7.7.设设80318031晶晶振振频频率率foscfosc为为6 6MHZMHZ,利利用用定定时时器器T0T0方方式式2 2,产产生生500500msms定定时时。使使P1P1。0 0每每隔隔500500msms产产生生一一次次跳跳变变。(即即输输出出周周期期为为1 1msms的方波。)编写定时器的方波。)编写定时器T0T0的初始化程序和方波实现程序。的初始化程序和方波实现程序。答案:a=6程序:MOVTMOD,#2MOVTH0,#6M

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

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

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

47、式2的波特率是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

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

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

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

51、钟信号进行同步。MOVA,#01HLOOP:MOVP1,AACALLDELYRLASJMPLOOPRETDELY:MOVR1,#50LOOP2:MOVR2,#25;T=2us*2*25*50=5msLOOP1:DJNZR2,LOOP1;6MHZ:2us12MHZ:1usDJNZR1,LOOP2RET4.4.在在80318031的的P1P1口口接接8 8个个共共阴阴极极LEDLED显显示示器器,请请编编程程实实现现每每隔隔5 5ms ms 点点亮亮一一个个LEDLED显显示示器器,循循环环点点亮亮8 8个个LEDLED,从从P1.0P1.0所所接接LEDLED开开始始点点亮亮,同同一一时时刻刻只

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

53、初值, ,方式控制字方式控制字, ,编制编制相应程序相应程序.(.(查询方式查询方式) ) 计数初值X=256-50=206=0CEHTMOD=02HMOVIE,#00HMOVTMOD#02HMOVTH0,#0CEHMOVTL0,#0CEHSETTR0LOOP:JBCTF0,LOOP1AJMPLOOPLOOP1:CPLP1.0AJMPLOOP7.7.数据通信的传输方式数据通信的传输方式? ?答案:常用于数据通信的传输方式有单工、半双工、全双工和多工方式。单工方式:数据仅按一个固定方向传送。因而这种传输方式的用途有限,常用于串行口的打印数据传输与简单系统间的数据采集。半双工方式:数据可实现双向传

54、送,但不能同时进行,实际的应用采用某种协议实现收/发开关转换。全双工方式:允许双方同时进行数据双向传送,但一般全双工传输方式的线路和设备较复杂。多工方式:以上三种传输方式都是用同一线路传输一种频率信号,为了充分地利用线路资源,可通过使用多路复用器或多路集线器,采用频分、时分或码分复用技术,即可实现在同一线路上资源共享功能,我们盛之为多工传输方式。8.8.串行数据通信的传输速率串行数据通信的传输速率? ?答案:串行数据传输速率有两个概念,即每秒转送的位数bps(Bitpersecond)和每秒符号数波特率(Bandrate),在具有调制解调器的通信中,波特率与调制速率有关。MCS-51的串行口和

55、控制寄存器的串行口和控制寄存器串行数据通信两种形式串行数据通信两种形式异步通信:在这种通信方式中,接收器和发送器有各自的时钟,它们的工作是非同步的,异步通信用一帧来表示一个字符,其内容如下:一个起始位,仅接着是若干个数据位,图2是传输45H的数据格式。同步通信:同步通信格式中,发送器和接收器由同一个时钟源控制,为了克服在异步通信中,每传输一帧字符都必须加上起始位和停止位,占用了传输时间,在要求传送数据量较大的场合,速度就慢得多。同步传输方式去掉了这些起始位和停止位,只在传输数据块时先送出一个同步头(字符)标志即可。同步传输方式比异步传输方式速度快,这是它的优势。但同步传输方式也有其缺点,即它必

56、须要用一个时钟来协调收发器的工作,所以它的设备也较复杂。第七章 单片机及应用设计实例1.1.设某单片机系统的外接晶振频率为设某单片机系统的外接晶振频率为6 6MHzMHz,使用定时器使用定时器1 1以方式以方式0 0产生周产生周期为期为500500msms的等宽正方波连续脉冲,并由的等宽正方波连续脉冲,并由P1.0P1.0输出。以查询方式完成。输出。以查询方式完成。解题:计算计数初值欲产生500ms的等宽正方波脉冲,只需在P1.0端以250ms为周期交替输出高低电平即可实现,为此定时时间应为250ms。使用6MHz晶振,根据上例的计算,可知一个机器周期为2ms。方式0为13位计数结构。设待求的

57、计数初值为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;计数溢出

58、标志位清0CPLP1.0;输出取反AJMPLOOP;重复循环2.2.定时器定时器/ /计数器与中断综合应用举例计数器与中断综合应用举例题(1):时钟计时程序设计。MCS-51单片机实现时钟计时显示的基本方法首先要计算计数初值时钟计时的关键问题是秒的产生,因为秒是最小时钟单位,但使用MMCS-51的定时器/计数器进行定时,即使按工作方式,其最大定时时间也只能达到131毫秒,离1秒还差好远。为此,我们把秒计时用硬件定时和软件计数相结合的方法实现,即:把定时器的定时时间定为125毫秒,这样当计数溢出8次就可得到1秒,而8次计数可用软件方法实现。为得到125ms定时,我们可使用定时器/计数器0,以工作

59、方式进行,当设定单片机为6MHz晶振,设计数初值为X,则有如下等式:(216X)2us125000us计算得计数初值X3036,二进制表示为0000101111001101,十六进制表示为0BCDH。定时器定时采用中断方式完成,以便于通过中断服务程序进行溢出次数(每次125毫秒)的累计,计满8次即得到秒计时。通过在程序中的数值累加和数值比较来实现从秒到分和从分到时的计时设置时钟显示及显示缓冲区假定时钟时间在六位LED数码管(LED5LED0)上进行显示(时、分、秒各占两位)。为此,要在内部RAM中设置显示缓冲区,共6个单元(79H7EH),与数码管的对应关系为:LED57EH、LED47DH、

60、LED37CH、LED27BH、LED17AH、LED079H。即显示缓冲区从左向右依次存放时、分、秒的数值。假定已有LED显示程序为SMXS可供调用ORG8000HSTART:AJMPMAINORG800BHAJMPPITOORG8100HMAIN:MOVSP,60H;确立堆栈区MOVR0,79H;显示缓冲区首地址MOVR7,06H;显示位数ML1:MOVR0,#00H;显示缓冲单元清0INCR0DJNZR7,ML1MOVTMOD,01H;定时器0,工作方式MOVTL0,0CDH;装计数器初值MOVTH0,0BHSETB8CH;TR0置1,定时开始SETBAFH;EA置1,中断总允许SETB

61、A9H;ET0置1,定时器0中断允许MOV30H,08H;要求的计数溢出次数,即循环次数ML0:LCALLSMXS;调用显示子程序SJMPML0PITO:PUSHPSW;中断服务程序,现场保护PUSHACCSETBPSW.3;RS1RS0=01,选1组通用寄存器MOVTL0,0CDH;计数器重新加载MOVTH0,0BHMOVA,30H;循环次数减1DECAMOV30H,AJNZRET0;不满8次,转RET0返回MOV30H,08H;满8次,开始计时操作MOVR0,7AH;秒显示缓冲单元地址ACALLDAAD1;秒加1MOVA,R2;加1后秒值在R2中XRLA,60H;判是否到60秒JNZRET

62、0;不到,转RETO返回ACALLCLR0;到60秒显示缓冲单元清0MOVR0,7CH;分显示缓冲单元地址ACALLDAAD1;分加1MOVA,R2XRLA,60H;判是否到60分JNZRET0ACALLCLR0;到60分,分显示缓冲单元清0MOVR0,7EH;时显示缓冲单元地址ACALLDAAD1;时加1MOVA,R2XRLA,24H;判是否到24时JNZRET0ACALLCLR0;到24时,时显示缓冲单元清0RET0:POPACC;现场恢复POPPSWRETI;中断返回DAAD1:MOVA,R0;加1子程序,十位数送ADECR0SWAPA;十位数占高4位ORLA,R0;个位数占低4位ADD

63、A,01H;加1DAA;十进制调整MOVR2,A;全值暂存R2中ANLA,0FH;屏蔽十位数,取出个位数MOVR0,A;个位值送显示缓冲单元MOVA,R2INCR0ANLA,F0H;屏蔽个位数取出十位数SWAPA;使十位数占低4位MOVR0,A;十位数送显示缓冲单元RET;返回CLR0:CLRA;清缓冲单元子程序MOVR0,A;十位数缓冲单元清0DECR0MOVR0,A;个位数缓冲单元清0题题(2):用:用8051串行口外接串行口外接CD4094扩展扩展8位并行输出口,如图所示,位并行输出口,如图所示,8位并行位并行口的各位都接一个发光二极管,要求发光管呈流水灯状态。口的各位都接一个发光二极管

64、,要求发光管呈流水灯状态。串行口方式串行口方式0的的数据传送可采用中断方式,也可采用查询方式,无论哪种方式,都要借助于数据传送可采用中断方式,也可采用查询方式,无论哪种方式,都要借助于TI或或RI标志。串行发送时,可以靠标志。串行发送时,可以靠TI置位(发完一帧数据后)引起中断申请,置位(发完一帧数据后)引起中断申请,在中断服务程序中发送下一帧数据,或者通过查询在中断服务程序中发送下一帧数据,或者通过查询TI的状态,只要的状态,只要TI为为0就就继续查询,继续查询,TI为为1就结束查询,发送下一帧数据。在串行接收时,则由就结束查询,发送下一帧数据。在串行接收时,则由RI引引起中断或对起中断或对

65、RI查询来确定何时接收下一帧数据。无论采用什么方式,在开始查询来确定何时接收下一帧数据。无论采用什么方式,在开始通讯之前,都要先对控制寄存器通讯之前,都要先对控制寄存器SCON进行初始化。在方式进行初始化。在方式0中将,将中将,将00H送送SCON就可以了。就可以了。ORG2000HSTART:MOVSCON,#00H;置串行口工作方式0MOVA,#80H;最高位灯先亮CLRP1.0;关闭并行输出(避象传输过程中,各LED的暗红现象)OUT0:MOVSBUF,A;开始串行输出OUT1:JNBTI,OUT1;输出完否CLRTI;完了,清TI标志,以备下次发送SETBP1.0;打开并行口输出ACA

66、LLDELAY;延时一段时间RRA;循环右移CLRP1.0;关闭并行输出JMPOUT0;循环org0000HAJMPSTARTORG30HSTART:MOVSP,#5fh;MOVTMOD,#20h;T1:工作模式2MOVPCON,#80h;SMOD=1MOVTH1,#0FDH;初始化波特率(参见表)MOVSCON,#50h;StandardUARTsettingsMOVR0,#0AAH;准备送出的数SETBREN;允许接收SETBTR1;T1开始工作WAIT:MOVA,R0CPLAMOVR0,AMOVSBUF,ALCALLDELAYJBCTI,WAIT1;如果TI等于1,则清TI并转WAIT1AJMPWAITWAIT1:JBCRI,READ;如果RI等于1,则清RI并转READAJMPWAIT1READ:MOVA,SBUF;将取得的数送P1口MOVP1,ALJMPWAITDELAY:;延时子程序MOVR7,#0ffHDJNZR7,$RETEND

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号