单片机原理与应用-赵德安_第1页
单片机原理与应用-赵德安_第2页
单片机原理与应用-赵德安_第3页
单片机原理与应用-赵德安_第4页
单片机原理与应用-赵德安_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

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

文档简介

单片机原理与应用第1章微机基础知识考试知识点:1、各种进制之间的转换〔1〕各种进制转换为十进制数方法:各位按权展开相加即可。〔2〕十进制数转换为各种进制方法:整数部分采用“除基取余法”,小数部分采用“乘基取整法”。〔3〕二进制数与十六进制数之间的相互转换方法:每四位二进制转换为一位十六进制数。2、带符号数的三种表示方法〔1〕原码:机器数的原始表示,最高位为符号位〔0‘+’1‘-’〕,其余各位为数值位。〔2〕反码:正数的反码与原码相同。负数的反码把原码的最高位不变,其余各位求反。〔3〕补码:正数的补码与原码相同。负数的补码为反码加1。原码、反码的表示范围:-127~+127,补码的表示范围:-128~+127。3、电脑中使用的编码〔1〕BCD码:每4位二进制数对应1位十进制数。〔2〕ASCII码:7位二进制数表示字符。0~9的ASCII码30H~39H,A的ASCII码41H,a的ASCII码61H。考试复习题:1、求十进制数-102的补码〔以2位16进制数表示〕,该补码为。2、123=B=H。3、只有在________码表示中0的表示是唯一的。4、真值-0000000B的反码为5、+1000110B的反码是;其补码为。;-0110011B的补码是。6、10101.101B转换成十进制数是〔〕。〔A〕46.625〔B〕23.625(C)23.62(D)21.6257、3D.0AH转换成二进制数是〔〔A〕111101.0000101B〕。(B)111100.0000101B(C)111101.101B(D)111100.101B8、73.5转换成十六进制数是〔〕。〔A〕94.8H9、十进制29的二进制表示为原码〔〕A11100010B10101111C0001110110、-49D的二进制补码为.()A11101111B11101101C0001000(B)49.8H(C)111H(D)49HD00001111D1110110011、已知某数的BCD码为0111010101000010则其表示的十进制数值为〔〕a〕7542Hb〕7542c〕75.42Hd〕75.42第2章MSC-51单片机的硬件结构考试知识点:1、80C51单片机的内部逻辑结构单片机是把CPU、存储器、输入输出接口、定时/计数器和时钟电路集成到一块芯片上的微型电脑,主要由以下几个部分组成。〔1〕中央处理器CPU包括运算器和控制器。运算电路以ALU为核心,完成算术运算和逻辑运算,运算结果存放于ACC中,运算结果的特征存放于PSW中。控制电路是单片机的指挥控制部件,保证单片机各部分能自动而协调地工作。程序计数器PC是一个16位寄存器,PC的内容为将要执行的下一条指令地址,具有自动加1功能,以实现程序的顺序执行。〔2〕存储器分类:随机存取存储器RAM:能读能写,信息在关机后消失。可分为静态RAM〔SRAM〕和动态RAM〔DRAM〕两种。只读存储器:信息在关机后不会消失。掩膜ROM:信息在出厂时由厂家一次性写入。可编程PROM:信息由用户一次性写入。可擦除可编程EPROM:写入后的内容可由紫外线照射擦除。电可擦除可编程EEPROM:可用电信号进行清除和改写。存储容量:存储容量指存储器可以容纳的二进制信息量,M位地址总线、N位数据总线的存储器容量为2M×N位。80C51单片机的存储器有内部RAM〔128B,高128B为专用寄存器〕、外部RAM〔64KB〕、内部ROM〔4KB掩膜ROM〕、外部ROM〔64KB〕。〔3〕输入输出接口4个8位并行I/O口〔P0、P1、P2、P3〕〔4〕其它资源一个全双工串行口、5个中断源、2个16位的定时/计数器、时钟电路。2、80C51单片机的信号引脚〔1〕电源部分:VCC接+5V、VSS接地。〔2〕时钟电路部分:XTAL1和XTAL2接晶振。1个机器周期=6个状态=12个拍节6MHZ的晶体机器周期2us,12MHZ的晶体机器周期1us。〔3〕I/O口部分:P0——8位数据总线/地址总线低8位、P1——用户口、P2——地址高8位、P3——第二功能。〔4〕控制部分:地址锁存控制信号ALE,用于控制把P0口输出的低8位地址送入锁存器锁存地起来。外部程序存储器读选通信号PSEN,低电平有效,以实现外部ROM单元的读操作。访问程序存储器控制信号EA,低电平时只读外部ROM,高电平时先读内部ROM,再读外部ROM。复位信号RST,当输入的复位信号延续2个机器周期以上高电平时即为有效。复位值:PC=0000H,SP=07H,P0=0FFH。3、内部RAM的基本结构与功能80C51的内部数据存储器低128单元区,称为内部RAM,地址为00~7FH。〔1〕寄存器区〔00~1FH〕共分为4组,组号依次为0、1、2、3,每组有8个寄存器,在组中按R7~R0编号。由PSW中RS1、RS0位的状态组合来决定哪一组。〔2〕位寻址区〔20H~2FH〕可对单元中的每一位进行位操作,16个字节单元共128个可寻址位,位地址为00~7FH。位起始地址D0=〔字节地址-20H〕*8〔3〕用户RAM区〔30H~7FH〕堆栈、缓冲区堆栈是在内部RAM中开辟的,最大特点就是“后进先出”的数据操作原则。两项功能:保护断点和保护现场。两种操作:进栈和出栈。SP堆栈指针,它的内容就是堆栈栈顶单元的地址。4、专用寄存器〔内部数据存储器高128单元〕〔1〕累加器A〔ACC〕〔2〕寄存器B〔3〕程序状态字PSWCY——进位标志位,最高位的进位或借位。AC——半进位标志位,低4位向高4位的进位或借位。OV——溢出标志位,同符号数相加,结果为异符号,有溢出;异符号数相减,结果和减数符号相同,有溢出。P——A中1的个数,奇数个P=1,偶数个P=0。〔4〕数据指针DPTR:80C51中惟一一个供用户使用的16位寄存器。高8位DPH,低8位DPL。考试复习题:1、80C51单片机的(a〕P0b〕P12、单片机应用程序一般存放在〔a〕RAMb〕ROMc〕寄存器3、CPU主要的组成部部分为〔a〕运算器、控制器b〕加法器、寄存器c〕运算器、寄存器d〕运算器、指令译码器)口的引脚,还具有外中断、串行通信等第二功能。c〕P2d〕P3〕d〕CPU〕4、80C51是〔a〕16〕位的单片机b〕4c〕8d〕准165、80C51复位后,PC与SP的值为〔a〕0000H,00Hb〕0000H,07H〕c〕0003H,07Hd〕0800H,00H6、80C51单片机中既可位寻址又可字节寻址的单元是〔a〕20Hb〕30Hc〕00Hd〕70H7、PSW=18H时,则当前工作寄存器是()A.0组B.1组C.2组D.3组〕8、MCS—51单片机外部有40个引脚,其中,地址锁存允许控制信号引脚是〔〕〔A〕ALE〔B〕〔C〕〔D〕RST9、PC中存放的是()A.下一条指令的地址B.当前正在执行的指令C.当前正在执行指令的地址D.下一条要执行的指令10、MCS-51单片机的堆栈区应建立在〔〕。A.片内数据存储区的低128字节单元B.片内数据存储区C.片内数据存储区的高128字节单元D.程序存储区11、MCS-51单片机有片内ROM容量〔〕A.4KBB.8KBC.128BD.256B12、MCS-51单片机的RS1,RS0=11时,当前寄存器R0—R7占用内部RAM()单元。A.00H—07HB.08H—0FHC.10H—17HD.18H—1FH13、单片机即一个芯片的电脑,此芯片上包括五部分:运算器、_________、________、输入部分、________。14、半导体存储器分成两大类和,其中具有易失性,常用于存储。15、在MCS—51单片机内部RAM中,字节地址范围是20H~2FH的区域称为而字节地址范围是30H~7FH的一段区域称为。16、MCS-51系列单片机内部数据存储器,即内RAM中位寻址区的地址范围是。内R0M中寻址区的地址范围是工作寄存器区的地址范围是。17、假设由程序设定RS1、RS0=01,则工作寄存器R0~R7的直接地址为______。18、MCS—5l单片机的堆栈区只可设置在,堆栈寄存器5P是位寄存器。19、P0、P1、P2、P3四个均是___位的____口(填“串行”还是“并行”),其中P0的功能是______________________;P2口的功能是___________;而_________是双功能口;______是专门的用户口。20、程序状态标志字寄存器PSW中的PSW.7的含义是21、当MCS-51引脚信号有效时,表示从P0口稳定地送出了低8位地址.22、当EA接地时,MCS-51单片机将从______的地址0000H开始执行程序。23、1个机器周期=个状态,1个状态=;PSW.0的含义是。个拍节。24、MCS51系列单片机的内部资源有哪些?说出8031、8051和8751的区别。25、简述累加器的ACC的作用。26、80C51的振荡周期、机器周期、指令周期是如何分配的?当晶振频率为6MHz时,一个机器周期为多少微秒?27、开机复位后,CPU使用的是哪组工作寄存器?它们的地址是什么?CPU如何确定和改变当前工作寄存器组?28、80C51单片机片内256B的数据存储器分为哪几个区?分别作什么用?29、80C51单片机的程序存储器和数据存储器共处同一地址空间,为什么不会发生总线冲突?第3章单片机指令系统考试知识点:1、寻址方式〔1〕立即寻址〔#data,#data16〕例:MOVA,#00H〔2〕直接寻址〔direct〕内部RAM:00~7FH、特殊功能寄存器例:MOVA,00H〔3〕寄存器寻址〔A、B、Rn、DPTR〕〔4〕寄存器间接寻址〔@Ri、@DPTR〕例:MOVXA,@DPTR〔5〕变址寻址〔@A+DPTR,@A+PC〕例:MOVCA,@A+DPTR〔6〕位寻址〔bit〕20~2FH:00~7FH、特殊功能寄存器例:MOVC,00H〔7〕相对寻址〔rel〕例:JZrel2、数据传送类指令〔1〕内部RAM数据传送指令MOV目的,源;目的→源交换指令:XCHA,direct/Rn/@Ri;A和源交换XCHDA,@Ri;只换低4位SWAPA;A的高低4位交换注意:A作目的操作数会影响P。PUSHdirectPOPdirect〔2〕外部RAM数据传送指令MOVXA,@Ri/@DPTR;外部地址内容→AMOVX@Ri/@DPTR,A;A→外部地址内容〔3〕ROM数据传送指令MOVCA,@A+DPTR/@A+PC;查表指令3、算术运算指令〔1〕加法指令ADD/ADDCA,#data/direct/Rn/@Ri;会影响CY、AC、OV、PINCA/direct/Rn/@Ri/DPTR;加1,PDAA;十进制调整,大于9加6〔2〕减法指令SUBBA,#data/direct/Rn/@Ri;会影响CY、AC、OV、PDECA/direct/Rn/@Ri;减1〔3〕乘除指令MULAB;(A)*(B)→BA,会影响CY=0,OV,PDIVAB;(A)/(B)的商→A,余数→B4、逻辑运算及移动指令〔1〕逻辑运算指令ANL/ORL/XRLA,#data/direct/Rn/@RiANL/ORL/XRLdirect,A/#data与→清0,或→置1,异或→取反CLR/CPLA;清0和取反〔2〕移位指令RL/RR/RLC/RRCA注意:每左移一位相当于乘2,每右移一位相当于除2,带进位的移会影响CY和P。5、控制转移类指令〔1〕无条件转移指令LJMPaddr16;addr16→PC,64KBAJMPaddr11;(PC)+2→PC,addr11→PC10~0,2KBSJMPrel;(PC)+2+rel→PC,256BJMP@A+DPTR;(A)+(DPTR)→PC,64KB〔2〕条件转移指令累加器A判0转移指令JZrel;A为0JNZrel;A不为0比较不相等转移指令CJNEA/Rn/@Ri,#data,relCJNEA,direct,rel注意:第一操作数和第二操作数不相等,程序转移,假设第一大于第二,CY=0,第一小于第二,CY=1。第一操作数和第二操作数相等,程序顺序执行,CY=0。减1不为0转移指令DJNZRn/direct,rel;〔Rn/direct〕-1不为0,程序转移。〔3〕调用和返回指令LCALLaddr16;(PC)+3→PC,先入低8位,再入高8位,addr16→PCACALLaddr11;(PC)+2→PC,先入低8位,再入高8位,addr11→PC10~0RET;先出高8位,再出低8位6、位操作类指令〔1〕位传送指令MOVC,bitMOVbit,C〔2〕位赋值指令CLRC/bitSETBC/bit〔3〕位逻辑运算指令ANL/ORLC,bit或/bitCPLC/bit注意:实现逻辑表达式〔4〕位控制转移指令JCrel;〔CY〕=1JNCrel;〔CY〕=0JBbit,rel;(bit)=1JNBbit,rel;(bit)=0JBCbit,rel;(bit)=1,转移,清0考试复习题:1、以下指令中不影响标志位CY的指令有〔〕。a〕ADDA,20Hb〕CLRAc〕RRCAd〕INCA2、当需要从MCS-51单片机程序存储器取数据时,采用的指令为〔〕。a〕MOVA,@R1b〕MOVCA,@A+DPTRd〕MOVXA,@DPTRc〕MOVXA,@R03、以下哪条指令是正确的〔〕a〕PUSHR2b〕ADDR0,Ac〕MOVXA@DPTRd〕MOV@R0,A4、MOVXA,@R0指令中,源操作数采用〔〕寻址方式,指令作用在〔〕区间。〔A〕寄存器,外部数据存储器〔B〕直接,程序存储器〔C〕寄存器间接,内部数据存储器〔D〕寄存器间接,外部数据存储器5、在中断服务程序中,至少应有一条〔〕A、传送指令B、转移指令C、加法指令D、中断返回指令6、要用传送指令访问80C51外部RAM,它的指令助记符应是〔〕A、MOVB、MOVXC、MOVCD、MOVD7、执行LCALL4000指令时,80C51所完成的操作是〔〕A、保护PCB、PC←4000HC、保护现场D、PC+3入栈,PC←4000H8、以下运算中对溢出标志OV没有影响或不受OV影响的运算是〔〕A、逻辑运算B、符号数加减法运算C、乘法运算D、除法运算9、必须进行十进制调整的十进制运算〔〕A、只有加法B、有乘法和除法C、有加法和减法D、只有减法10、指令AJMP的跳转范围是〔〕A、256BB、1KBC、2KBD、4KB11、执行PUSHACC指令,80C51完成的操作是〔〕A、SP←(SP)+1(SP)←(ACC)B、(SP)←(ACC)SP←(SP)-1C、SP←(SP)-1(SP)←(ACC)D、(SP)←(ACC)SP←(SP)+112、A7H和5BH两个立即数相加后,和为〔〕,〔CY〕是〔〕。〔A〕1CH,013、假设〔A〕=86H,〔PSW〕=80H,则执行RRCA指令后〔〕〔A〕C3H(B)B3H(C)0DH(D)56H(B)C1H,0(C)02H,1(D)C1H,114、如果〔P0〕=65H,则当CPLP0.2SETBCMOVP0.4,C执行后〔P0〕=〔〕〔A〕61H(B)75H15、80C51单片机中,将累加器A中的数送入外RAM的40H单元,可执行的指令〔〕。(C)71H(D)17H(A)MOVR1,40HMOVX@R1,A(C)MOVX40H,AMOVX@R1,A16、ORG2000HLACLL3000HORG3000H(B)MOVR1,#40HMOVXR1,A(D)MOVR1,#40HRET上边程序执行完RET指令后,PC=〔〕A.2000HB.3000HC.2003HD.3003H17、JNZREL指令的寻址方式是〔〕A.立即寻址B.寄存器寻址C.相对寻址D.位寻址18、下面哪条指令产生信号()A.MOVXA,@DPTRB.MOVCA,@A+PCC.MOVCA,@A+DPTRD.MOVX@DPTR,A19、MOVXA,@DPTR指令中源操作数的寻址方式是()A.寄存器寻址B.寄存器间接寻址C.直接寻址D.立即寻址20、已知累加器A的数值为98H,它与0FAH相加,相加后会影响标志位CY、AC和OV位。各个位的值是〔〕。(A)0、0、0(B)1、0、121、ORG0003HLJMP2000H(C)1、1、1(D)1、1、0ORG000BHLJMP3000H当CPU响应外部中断0后,PC的值是()A.0003HB.2000HC.000BHD.3000H22、假定设置堆栈指针SP的值为37H,在进行子程序调用时把断点地址进栈保护后,SP的值为〔〕A、36HB、37HC、38HD、39H23、要把P0口高4位变0,低4位不变,应使用指令()A.ORLP0,#0FHB.ORLP0,#0F0HC.ANLP0,#0F0HD.ANLP0,#0FH24、MCS-51执行完MOVA,#08H后,PSW的哪一位被置位()A.CYB.F0C.OVD.P25、对于指令JNB12H,$,其操作码为80H,其操作数〔即偏移量〕为______。26、JZe的操作码地址为1000H,e=20H,它的转移目的地址为。27、执行以下程序段后,(P1)=_______。MOVP1,#5DHCPLP1.1CPLP1.2CLRP1.6SETBP1.728、执行以下程序段后,(A)=_______,(CY)=____。MOVA,#C5HRLA29、以下程序段执行后,(R0)=_______,(7EH)=____,(7FH)=_______。MOVR0,#7EHMOV7EH,#0FFHMOV7FH,#40H1NC@R01NCR01NC@R030、已知(SP)=60H,子程序SUBTRN的首地址为0345H,现执行位于0123H的ACALLSUBTRN双字节指令后,(PC)=___,(61H)=_______,(62H)=____。31、ORLA,#0F0H是将A的高4位置1,而低4位。32、SJMPe的指令操作码地址为0050H,e=65H,那么它的转移目的地址为。33、假定〔A〕=0FBH,〔B〕=12H。执行指令:DIVAB后,CY的内容为,OV的内容为。34、假定〔SP〕=40H,(39H)=30H,〔40H〕=60H。执行以下指令:POPDPHPOPDPL后,DPTR的内容为,SP的内容是。35、以下各条指令其源操作数的寻址方式是什么?各条指令单独执行后,A中的结果是什么?设〔60H〕=35H,〔A〕=19H,〔R0〕=30H,〔30H〕=0FH。〔1〕MOVA,#48H〔2〕ADDA,60H〔3〕ANLA,@R0;寻址方式:;寻址方式:;寻址方式:〔A〕=〔A〕=〔A〕=36、〔A〕=3BH,执行ANLA,#9EH指令后,〔A〕=〔CY〕=37、JNZREL为2B指令,放于1308H,转移目标地址是134AH,求偏移量REL=38、假设〔A〕=C3H,〔R0〕=AAH,执行ADDA,R0后,〔A〕=〔CY〕=〔OV〕=〔AC〕=39、假设〔A〕=50H,〔B〕=A0H,执行MULAB后,〔A〕=〔B〕=〔CY〕=〔OV〕=40、SJMP0E7H为2B指令,放于F010H,目标地址=41、判断以下各条指令是否正确〔LL1和PROC为标号〕〔10分〕〔1〕MOVX@R0,B〔2〕MOVA,30H〔3〕MOVXA,30H〔4〕ADDCA,R7〔5〕SUBA,R2〔6〕ANL#99H,36H〔7〕MOVC,ACC.0〔8〕ORLP1.0,P3.1〔9〕JBCP0,LL1〔10〕ACALLPROC42、判断指令(或伪指令)正误(1).MOV20H,R1〔〕(3).CLRA〔〕(2).ADDCA,2030H〔〕(4).MOVX40H,#30H〔〕(6).MOVC@A+PC,A〔〕(8).DJNZ#data,rel〔〕(5).ORG3000H〔〕(7).MOVXA,2000H〔〕(9).INC@R5〔〕(10).DECDPTR(12).SWAPR1〔〕〔〕(11).MOVR1,@R2〔〕(13).SETB2000H〔〕(14).JZA,LOOP〔〕(15)DAR2()43、设(A)=38H,R0=28H,(28H)=18H,执行以下程序后,〔A〕=ORLA,#27HANLA,28HXCHDA,@R0CPLA44、设(A)=38H,(20H)=49H,PSW=00H,(B)=02H,填写以下中间结果。SETBCADDCA,20H(A)=(CY)=(AC)=RLCA(A)=(CY)=(P)=(A)=(B)=(OV)=MULAB45、假设(10H)=0FFH,(11H)=00H,(12H)=0FFH,(13H)=00H,写出每一步指令运行结果MOVA,10HANLA,#01HMOVA,11HORLA,#01HMOVA,12HXRLA,#01HMOVA,13HXRLA,#0AA(A)=(A)=,,(A)=(A)=(A)=,,,(A)=(A)=(A)=,,,(10H)=,(11H)=,(12H)=,(13H)=46、MOV30H,#60HMOVR0,#60HMOVA,30HMOVB,AMOV@R0,B(A)=,(R0)=,(B)=,47、MOVSP,#60HMOVA,#01HMOVB,#02HPUSHA(A)=,,(B)=(SP)=(SP)=,PUSHB,POPAPOPB(60H)=,48、假设PSW=00H,当执行完下面三条语句后,PSW应为多少?MOVA,#0FBHMOVPSW,#10HADDA,#7FH49、已知〔R0〕=20H,(20H)=10H,(P0)=30H,(R2)=20H,执行如下程序段后(40H)=MOV@R0,#11HMOVA,R2ADDA,20HMOVPSW,#80HSUBBA,P0XRLA,#45HMOV40H,A50、设在31H单元存有#23H,执行下面程序:MOVA,31HANLA,#0FHMOV41H,AMOVA,31HANLA,#0F0HSWAPAMOV42H,A则(41H)=(42H)=51、假设PSW=00,执行以下程序后,PSW的各位状态如何?MOVA,#0FBHMOVPSW,#10HADDA,#7FHCYACOVPOFRS152、位地址为M、N、Y,程序如下:MOVC,MANLC,MOVY,CMOVC,MANLC,NORLCYMOVY,C求程序功能表达式:53、阅读以下程序并答复以下问题CLRMOVSUBBADDDACA,#9AHA,60HA,61H,AMOV62H,A(1)请问该程序执行何种操作?〔2〕已知初值:〔60H〕=23H,(61H)=61H,请问运行程序后:〔62H〕=〔〕?54、已知〔B〕=35H,〔A〕=43H在执行以下指令后,〔SP〕=______,内部RAM〔51H〕=______。MOVSP,#50HPUSHACCPUSHB55、执行以下程序后,〔A〕=______,〔B〕=______。MOVA,#9FHMOVB,#36HANLB,ASETBCADDCA,B56、设RAM中(2456H)=66H,(2457H)=34H,ROM中(2456H)=55H,(2457H)=64H。请分析下面程序执行后各寄存器的内容。〔A〕=______,〔DPTR〕=______。MOVA,#1MOVDPTR,#2456HMOVCA,@A+DPTR第5章汇编语言程序设计考试知识点:1、汇编语言的语句格式【标号:】操作码【操作数】【;注释】标号:语句地址的标志符号。操作码:语句执行的操作内容,用指令助记符表示。操作数:为指令操作提供数据。注释:对语句的解释说明。2、伪指令起始地址ORG、结束END、赋值EQU、字节DB、字DW、空DS、位BIT3、汇编语言程序的基本结构形式〔1〕顺序结构〔2〕分支结构〔3〕循环结构:数据传送问题、求和问题4、定时程序例:延时100ms的子程序,设晶振频率6MHZ。DELAY:MOVR5,#250LOOP2:MOVR4,#49LOOP1:NOPNOPDJNZR4,LOOP1DJNZR5,LOOP2RET5、查表程序〔1〕要查找的数据在表中的位置给A〔2〕表的首地址给DPTR〔3〕MOVCA,@A+DPTR〔4〕数据表考试复习题:1、以下标号中,正确的标号是()。A.1BT:B.BEGIN:C.ADD:D.STAB31:2、以下伪指令汇编后,存放数据4051H的存贮单元分别是:_______存放40H,_______存放51H。ORG2400HTIMEEQU2000HTAB1:DS05HBUF2:DW4051H3、已知单片机晶振频率为6MHz,假设X、Y为变量,当X=_______,Y=_______时,以下程序执行时间最长,其最长值为_____。MOVR6,#Y;需1个机器周期;需1个机器周期;需2个机器周期;需2个机器周期;需2个机器周期DE1:MOVR7,#XDE0:DJNZR7,DE0DJNZR6,DE1RET4、设R0=20H,R1=25H,〔20H〕=80H,〔21H〕=90H,〔22H〕=A0H,〔25H〕=A0H,〔26H〕=6FH,〔27H〕=76H,以下程序执行后,结果如何?并给出部分语句的注释。CLRCMOVR2,#3LOOP:MOVA,@R0ADDCA,@R1MOVINC@R0,AR0INCR1DJNZR2,LOOP;JNCNEXT;MOV@R0,#01HSJMP$NEXT:DECR0SJMP$〔20H〕=、〔21H〕=、〔22H〕=、〔23H〕=、CY=、A=、R0=、R1=5、阅读以下程序,说明其功能。MOVR0,#dataMOVA,@R0RLAMOVR1,ARLARLAADDA,R1MOV@R0,ARET6、阅读以下程序段,写出每条指令执行后的结果,并说明此程序段完成什么功能?〔15分〕MOVR1,#30H;〔R1〕=MOVA,#64HADDA,#47H;〔A〕=;〔A〕=,〔CY〕=,〔CY〕=,〔AC〕=;〔R1〕=,〔30H〕=7、2506HM5:MOVSP,#58H,〔AC〕=DAA;〔A〕=MOV@R1,A2509HMOV10H,#0FH250CHMOV11H,#0BH250FHACALLXHD;PC+2PC,MOV20H,11H2514HM5A:SJMPM5AXHD:PUSH10HPUSH11HPOP10HPOP11HRET问:〔1〕执行POP10H后堆栈内容?〔2〕执行M5A:SJMPM5A后,〔SP〕=〔20H〕=8、A程序存储空间表格如下:地址内容2000H3FH2001H06H2002H5BH2003H4FH。。。。。。。。。。已知:片内RAM的20H中为01H,执行以下程序后〔30H〕=MOVA,20HINCAMOVDPTR,#2000HMOVCA,@A+DPTRCPLAMOV30H,ASJMP$9、解读以下程序,然后填写有关寄存器内容(1)MOVR1,#48HMOV48H,#51HCJNE@R1,#51H,00HJNCNEXT1MOVA,#0FFHSJMPNEXT2NEXT:MOVA,#0AAHNEXT2:SJMPNEXT2累加器A=()(2)MOVPSW,#10HA,#7FHA,#0FBHMOVADD假设PSW=00,当执行完上述程序段后,将PSW各位状态填入下表:PSWCYACF0RS1RS0OVF1P10、内部RAM从list单元开始存放一单字节正数表,表中之数作无序排列,并以-1作结束标志。编程实现表中找出最小值。MOVR0,#LISTMOVA,@R0MOVMIN,ALOOP5:INCR0MOVA,@R0________,LOOP3RETLOOP3:CJNEA,MIN,LOOP1LOOP1:________LOOP2MOVMIN,ALOOP2:SJMPLOOP511、设两个十进制数分别在内部RAM40H单元和50H单元开始存放〔低位在前〕,其字节长度存放在内部30H单元中。编程实现两个十进制数求和,并把求和结果存放在40H开始的单元中。MOVR0,#40HMOVR1,#50HMOVR2,#30H_________LOOP:MOVA,@R0ADDCA,@R1_________MOV@R0,AINCR0INCR1DJNZR2,LOOPRET12、比较两个ASCII码字符串是否相等。字符串长度在内部RAM3FH单元,两字符串的首地址分别为40H、50H。如果两个字符串相等,置CY=1,否则,置CY=0。MOVR0,#40HMOVR1,#50HMOVR2,#3FHLOOP1:MOVA,@R0CLRC______,@R1JNZLOOP2INCR0INCR1______,LOOP1SETBCRETLOOP2:CLRCRET13、将以表格形式存放在从table开始的内部单元中的8个单字节正数求平均值。MOVR0,#TABLEMOVR2,#8MOVR4,#0LOOP1:MOVA,@R0______MOVR4,AINCR0DJNZR2,LOOP1MOVB,#8______RET14、分析以下程序的功能,并给出部分语句的注释。START:MOVR0,#40HMOVR7,#09HMOVA,@R0LOOP:INCR0MOV30H,@R0;CJNEA,30H,NEXT;NEXT:JNCBIE1;MOVA,30H;BIE1:DJNZR7,LOOP;MOV50H,A;RETI15、已知在累加器A中存放一个BCD数(0~9),请编程实现一个查平方表的子程序。16、请使用位操作指令实现以下逻辑操作:BIT=(∨P1.0)∧(11H∨CY)17、已知变量X存于VAR单元,函数值Y存于FUNC单元,按下式编程求Y值。Y=18、已知在R2中存放一个压缩的BCD码,请将它拆成二个BCD字节,结果存于SUM开始的单元中(低位在前)。19、将存于外部RAM8000H开始的50H数据传送0010H的区域,请编程实现。20、编程将片内RAM30H单元开始的15B的数据传送到片外RAM3000H开始的单元中去。21、请将片外RAM20H-25H单元清零22、阅读程序并填空,形成完整的程序以实现如下功能。有一长度为10字节的字符串存放在80C51单片机内部RAM中,其首地址为40H。要求将该字符串中每一个字符加偶校验位。〔以调用子程序的方法来实现。〕源程序如下:ORG1000HMOVR0,#40HMOVR7,#10NEXT:MOVA,①ACALLSEPAMOV@R0,AINCR0DJNZ②,NEXTSJMP$SEPA:ADDA,#00H③PSW.0,SRETORLA,④SRET:⑤23、从内部RAM30H单元开始,有10个单字节数据。试编一个程序,把其中的正数、负数分别送40H和50H开始的内部RAM单元。24、将字节地址30H~3FH单元的内容逐一取出减1,然后再放回原处,如果取出的内容为00H,则不要减1,仍将0放回原处。25、将31H、32H单元与41H、40H单元的双字节十进制无符号数相加,结果存入32H,31H,30H单元。26、编程实现字符串长度统计:设在单片机内RAM中从STR单元开始有一字符串《以ASCII码存放》,该字符串以$<其值为24H>结束,试统计该字符串的长度,其结果存于LON单元。求平方子程序计算X=a^2+b^227、片内RAM30H开始的单元中有10B的二进制数,请编程求它们之和。设和<256。第4章单片机的其他片内功能考试知识点:1、中断源和中断请求标志位中断名称外部中断0T0中断外部中断1T1中断中断请求标志中断向量0003H000BH0013H001BH0023H0023HIE0TF0IE1TF1TI串行发送中断串行接收中断RI2、和中断相关的寄存器的设置〔1〕定时器控制寄存器TCON格式如下:位D7TF18FD6TR18ED5D4TR08CD3IE18BD2IT18AD1IE089D0IT088TCON位地址TF08DIT0=0,为电平触发方式。IT0=1,为边沿触发方式。低电平有效。输入脚上电平由高到低的负跳变有效。IE0=1,说明有中断请求,否则IE0=0。〔2〕中断允许控制寄存器IE其各位的定义如下:位D7EAD6—D5—D4ESD3D2D1D0代号ET1EX1ET0EX0EA:开放或禁止所有中断。ES:开放或禁止串行通道中断。ET1:开放或禁止定时/计数器T1溢出中断。EX1:开放或禁止外部中断源1。ET0:开放或禁止定时/计数器T0溢出中断。EX0:开放或禁止外部中断源0。〔3〕中断优先级控制寄存器IP各位的定义如下:位D7—D6—D5—D4PSD3D2D1D0代号PT1PX1PT0PX01为高优先级、0为低优先级。如果同级的多个中断请求同时出现,则按CPU查询次序确定哪个中断请求被响应。查询次序为:外部中断0、T0中断、外部中断1、T1中断、串行中断。3、响应中断的必要条件〔1〕有中断源发出中断请求。〔2〕中断允许寄存器IE相应位置“1”,CPU中断开放〔EA=1〕。〔3〕无同级或高级中断正在服务。〔4〕现行指令执行到最后一个机器周期且已结束。假设现行指令为RETI或需访问特殊功能寄存器IE或IP的指令时,执行完该指令且其紧接着的指令也已执行完。中断响应的主要内容是由硬件自动生成一条长调用指令,指令格式为“LCALLaddr16”。这里的addr16就是程序存储器中断区中相应中断的入口地址。4、中断程序设计〔1〕在0000H处存放一条无条件转移指令转到主程序。〔2〕在入口地址处存放一条无条件转移指令转到中断服务子程序。〔3〕设置触发方式〔IT0/IT1〕〔4〕设置IE和IP。〔5〕设置SP。〔6〕原地踏步。〔7〕中断服务子程序。最后RETI。5、定时计数的基本原理〔1〕定时功能:每个机器周期计数器加1。〔2〕计数功能:T0〔P3.4〕和T1〔P3.5〕输入计数脉冲,每一来一个脉冲计数器加1。6、用于定时计数的寄存器的设置〔1〕定时器控制寄存器TCON格式如下:位D7TF18FD6TR18ED5TF08DD4TR08CD3IE18BD2IT18AD1IE089D0IT088TCON位地址TF1、TF0——计数溢出标志位。当计数器产生计数溢出时,由硬件置1。采用查询方式,它是供查询的状态位。采用中断方式,作为中断请求信号。TR1、TR0——计数运行控制位。为1时,启动定时器/计数器工作;为0时,停止定时器/计数器工作。〔2〕工作方式控制寄存器TMOD其格式如下:GATE:门控位。当GATE=1时,同时INTx为高电平,且TRx置位时,启动定时器,外部启动。当GATE=0时,每当TRx置位时,就启动定时器,是内部启动方式。C/T:选择定时器功能还是计数器功能。该位置位时选择计数器功能;该位清零时选择定时器功能。M1M0:这两位指定定时/计数器的工作方式,可形成四种编码,对应四种工作方式:M1M0方式说明000101TLx低5位与THx中8位构成13位计数器TLx与THx构成16位计数器可自动再装入的8位计数器,当TLx计数溢出时,THx内容自动装入TLx。110123对定时器0,分成两个8位的计数器;对定时器1,停止计数。7、各种工作方式计数初值计算公式方式0:定时时间T=〔8192-计数初值〕×机器周期计数次数C=8192-X方式1:定时时间T=〔65536-计数初值〕×机器周期计数次数C=65536-X方式2:定时时间T=〔256-计数初值〕×机器周期计数次数C=256-X8、定时器程序设计查询方式:〔1〕在0000H处存放一条无条件转移指令,转到主程序。〔2〕设置工作方式TMOD。〔3〕设置计数初值。〔4〕启动定时计数。〔5〕等待时间到或计数计满。LOOP:JBCTF0/TF1,LOOP1SJMPLOOPLOOP1:……〔6〕重新设置计数初值〔除方式2〕,再转第5步。中断方式:〔1〕在0000H处存放一条无条件转移指令,转到主程序。〔2〕在入口地址处存放一条无条件转移指令转到中断服务子程序。〔3〕设置工作方式TMOD。〔4〕设置计数初值。〔5〕启动定时计数。〔6〕设置IE和IP。〔7〕设置SP。〔8〕原地踏步。〔9〕中断服务子程序。重新设置计数初值〔除方式2〕,最后RETI。例选用定时器/计数器T1工作方式0产生500µS定时,在P1.1输出周期为1ms的方波,设晶振频率=6MHZ。〔1〕根据定时器/计数器1的工作方式,对TMOD进行初始化。按题意可设:GATE=0〔用TR1位控制定时的启动和停止〕,=0〔置定时功能〕,M1M0=00〔置方式0〕,因定时器/计数器T0不用,可将其置为方式0〔不能置为工作方式3〕,这样可将TMOD的低4位置0,所以〔TMOD〕=00H。〔2〕计算定时初值〔-X〕×2=500X=7942D=1111100000110B将低5位送TL1,高8位送TH1得:〔TH1〕=F8H,〔TL1〕=06H〔3〕编制程序〔查询方式〕ORG0000HLJMPMAINORG0300HMAIN:MOVTMOD,#00H;TMOD初始化MOVTH1,#0F8H;设置计数初值MOVTL1,#06HSETBTR1;启动定时LOOP:JBCTF1,LOOP1;查询计数溢出AJMPLOOPLOOP1:CPLP1.1;输出取反MOVTL1,#06H;重新置计数初值MOVTH1,#0F8HAJMPLOOPEND;重复循环例用定时器/计数器T1以工作方式2计数,要求每计满100次进行累加器加1操作。〔1〕TMOD初始化M1M0=10〔方式2〕,=1〔计数功能〕,GATE=0〔TR1启动和停止〕,因此〔TMOD〕=60H。〔2〕计算计数初值-100=156D=9CH所以TH1=9CH〔3〕编制程序〔中断方式〕ORG0000HAJMPMAIN;跳转到主程序ORG001BH;定时/计数器1中断服务程序入口地址AJMPINSERT1ORG0030HMAIN:MOVTMOD#60H;TMOD初始化MOVTL1,#9CH;首次计数初值MOVTH1,#9CH;装入循环计数初值SETBTR1SETBEASETBET1SETBPT1;启动定时/计数器1;开中断;T1为高优先级MOVSP,#40HSJMP﹩;等待中断INSERT1:INCARETIEND考试复习题:1、定时器1工作在计数方式时,其外加的计数脉冲信号应连接到(A.P3.2B.P3.3C.P3.4D.P3.5)引脚。2、当外部中断请求的信号方式为脉冲方式时,要求中断请求信号的高电平状态和低电平状态都应至少维持()。A.1个机器周期3、MCS-51单片机在同一优先级的中断源同时申请中断时,CPU首先响应(A.外部中断0B.外部中断1C.定时器0中断D.定时器1中断)。B.2个机器周期C.4个机器周期D.10个晶振周期)。4、定时器假设工作在循环定时或循环计数场合,应选用(A.工作方式0B.工作方式1C.工作方式2D.工作方式35、MCS-51单片机的外部中断1的中断请求标志是()。A.ET1B.TF1C.IT1D.IE16、MCS-51单片机定时器工作方式0是指的〔〕工作方式。A.8位B.8位自动重装C.13位D.16位7、80C51单片机内有()个16位的定时/计数器,每个定时/计数器都有()种工作方式。(A)4,5(B)2,4(C)5,2(D)2,38、要使MCS-51能响应定时器T1中断,串行接口中断,它的中断允许寄存器IE的内容应是〔〕A.98HB.84HC.42HD.22H9、MCS-51单片机的外部中断0中断入口地址为()。A.0003HB.000BHC.0013HD.001BH10、80C51响应中断时,下面哪一个条件不是必须的〔〕A、当前指令执行完毕B、中断是开放的C、没有同级或高级中断服务D、中断返回指令11、80C51可分为两个中断优先级别,各中断源的优先级别设定是利用寄存器〔〕A、TCONB、IPC、SCOND、IE12、各中断源发出的中断请求信号,都会标记在80C51系统中的〔〕A、TMODB、TCON/SCONC、IED、IP13、定时器/计数器的工作方式3是指得将拆成两个独立的8位计数器。而另一个定时器/计数器此时通常只可作为使用。14、MCS—51单片机外部中断请求信号有电平方式和INT1的有效信号为时,激活外部中断。,在电平方式下,当采集到INT0、15、设定T1为计数器方式,工作方式2,则TMOD中的值为16、假设IT1=0,当引脚为低电平的时候,INT0的中断标志位17、当定时器T0工作在方式3时,要占定时器T1的_控制位.。才能复位。18、当80C51单片机中IP=19H,IE=9EH时,CPU能响应的优先权最高的中断源是_______。19、某80C51单片机中,T1作为计数用,当有一脉冲从引脚P3.5(T1)输入时,TL1的内容将_________。20、MCS51的中断系统有几个中断源?几个中断优先级?中断优先级是如何控制的?在出现同级中断申请时,CPU按什么顺序响应〔按由高级到低级的顺序写出各个中断源〕?各个中断源的入口地址是多少?21、已知单片机系统晶振频率为6MHz,假设要求定时值为10ms时,定时器T0工作在方式1时,定时器T0对应的初值是多少?TMOD的值是多少?TH0=?TL0=?(写出步骤)22、想将中断服务程序放置在程序存储区的任意区域,在程序中应该作何种设置?请举例加以说明。23、80C51单片机外部中断源有哪几种触发中断请求的方法?它们如何实现中断请求?24、80C51响应中断的条件是什么?CPU响应中断后,CPU要进行哪些操作?25、80C51的定时器/计数器有几个?是多少位的?有几种工作方式?其工作原理如何?26、80C51有哪几个中断源?哪些是内部中断源?哪些是外部中断源?27、假设80C51的晶振频率fosc为6MHz,定时器/计数器T0工作在工作方式1,要求产生10ms定时,写出定时器的方式控制字和计数初值〔分别写出TH0与TL0值〕。28、简述子程序调用和执行中断服务程序的异同点。29、已知晶振频率为6MHz,在P1.0引脚上输出周期为500微秒的等宽矩形波,假设采用T1中断,工作方式2,试写出中断初始化程序30、按以下要求编写80C51单片机定时器的初始化程序:〔1〕T0作为定时,定时时间为10ms.〔2〕T1作为计数,记满100溢出。31、应用单片机内部定时器T0工作在方式1下,从P1.0输出周期为2ms的方波脉冲信号,已知单片机的晶振频率为6MHZ。请〔1〕计算时间常数X,应用公式X=216-t〔f/12〕〔2〕写出程序清单〔查询方式〕32、设单片机晶振频率FOSC=6MHZ,使用定时器0以工作方式1产生周期为800μs的等宽方波,用中断方式实现编程,并在P1.0输出。33、用定时器0以工作方式2计数,每计数100次,将COUNT单元加1。34、设计题图1所示是一个舞台示意图,使用80C51设计一个控制器,编写程序每隔10ms将阴影部分和无阴影部分交替点亮。图1第6章单片机并行存储器扩展考试知识点:1、单片机并行扩展总线的组成〔1〕地址总线:传送地址信号〔2〕数据总线:传送数据、状态、指令和命令〔3〕控制总线:控制信号2、80C51单片机并行扩展总线〔1〕以P0口的8位口线充当低位地址线/数据线〔2〕以P2口的口线作高位地址线〔3〕控制信号:使用ALE作地址锁存的选通信号,以实现低8位地下锁存。以PSEN信号作为扩展程序存储器的读选通信号。以EA信号作为内外程序存储器的选择信号。以RD和WR作为扩展数据存储器和I/O端口的读/写选通信号。3、单片机并行存储器扩展的方法各种外围接口电路与单片机相连都是利用三总线实现。〔1〕地址线的连接将外围芯片的低8位地址线〔A7~A0〕经锁存器与P0口相连,高8位地址线〔A15~A8〕与P2口相连。如果不足16位则按从低至高的顺序与P0、P2口的各位相连。〔2〕数据线的连接外围芯片的数据线〔D7~D0〕可直接与P0口相连。〔3〕控制线的连接ROM:OE—PSENRAM:OE—RD、WE—WR片选信号CE的连接方法:〔1〕接地,适用于扩展一块存储器芯片。〔2〕线选法:将外围芯片的片选信号接到单片机的剩余高位地址线,适用于外围芯片数量少的情况。〔3〕译码法:单片机的剩余高位地址线接译码器的输入端,输出端接外围芯片的片选信号。适用于外围芯片数量较多的情况。例:读图题阅读以下硬件图,补齐连接线,并答复以下问题:1、ALE、PSEN、WR、RD的功能ALE作地址锁存的选通信号,以实现低八位地址的锁存,PSEN信号作扩展程序存储器的读选通信号WR、RD作为扩展数据存储器和I/O端口的读写选通信号。2、图中各芯片的功能74LS373:地址锁存器,用来锁存P0口发送的地址低8位2764:容量为8KB的程序存储器〔EPROM〕用来存储程序6264:容量为8KB的数据存储器〔RAM〕用来存储数据8031:不含程序存储器的8位单片机芯片,是不带I/O设备的微型电脑。3、2764、6264的地址范围〔P2.5取”0”〕2764:8000H~9FFFH6264:4000H~5FFFH考试复习题:1、假设某存储器芯片地址线为12根,那么它的存储容量为()A.1KBB.2KBC.4KBD.8KB2、某种存储器芯片是8KB*4/片,那么它的地址线根数是()A.11根B.12根C.13根D.14根3、6264芯片是〔〕〔A〕EEPROM〔B〕RAM式〔C〕FLASHROM〔D〕EPROM4、MCS-51外扩ROM,RAM和I/O口时,它的数据总线是〔〕〔A〕P0〔B〕P1〔C〕P2〔D〕P35、当80C51外出扩程序存储器8KB时,需使用EPROM2716〔〕〔A〕2片〔B〕3片〔C〕4片〔D〕5片6、74LS138芯片是〔〕A、驱动器B、译码器C、锁存器D、编码器7、80C51单片机外接EPROM时,使用引脚来读EPROM的数据。〔〕A.ALEB.C.D.8、80C51单片机使用和来读写片外____________的内容。9、80C51的扩展储存器系统中,为什么P0口要接一个8位锁存器,而P2口却不接?10、作图题:用6264〔8K*8〕构成16K的数据存储系统。要求采用线选法产生片选信号,并计算6264的地址范围。11、要在80C51单片机片外扩展16K数据存储器,选择其地址为0000H~3FFFH。如果选用6264芯片为存储芯片,74LS138为译码器,试画出它的硬件连接图。12、试将80C51单片机外接一片2716EPROM和一片6116RAM组成一个应用系统,请画出硬件连线图,并指出扩展存储器的地址范围。13、用2片6116给80C51单片机扩展一个4KB的外部数据存储器,请画出逻辑连接图,并说明各芯片的地址范围。第7章单片机并行I/O扩展考试知识点:1、I/O编址技术有两种I/O编址方式:统一编址方式和独立编址方式。在80C51单片机系统中,采用统一编址方式。2、I/O控制方式有3种控制方式:无条件方式、查询方式和中断方式。3、可编程并行接口芯片8255〔1〕逻辑结构:3个8位口,A口、B口和C口。CS片选信号、RD读信号、WR写信号、RESET复位信号。A0、A1低位地址信号,用于端口选择,共有4个端口地址。A组——A口和C口高4位,B组——B口和C口低4位。〔2〕工作方式:方式0——基本输入输出方式方式1——选通输入输出方式方式2——双向数据传送方式〔3〕8255的初始化:把工作方式命令字或C口位置位/复位命令与到控制口。MOVA,命令字MOVRi/DPTR,控制口地址MOVX@Ri/@DPTR,A〔4〕8255的应用:读端口〔输入〕MOVRi/DPTR,端口地址MOVXA,@Ri/@DPTR写端口〔输出〕MOVA,数据MOVRi/DPTR,端口地址MOVX@Ri/@DPTR,A考试复习题:1下面哪条指令产生信号()A.MOVXA,@DPTRB.MOVCA,@A+PCC.MOVCA,@A+DPTRD.MOVX@DPTR,A2、80C51外扩8255,它需占用〔〕端口地址。A、1个B、2个C、3个D、4个3、使用8255可以扩展出的I/O口线是〔〕A、16根B、24根C、22根D、32根4、可编程并行I/O接口芯片8255A有5、

温馨提示

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

评论

0/150

提交评论