版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一题8051单片机内包含哪些主要逻辑功能部件?CPUROMRAMTimer/CounterUART(串口)(通用异步串行接收机发送机)48bitsPort(并口)Int0,int1(外部中断)第二题8051的/EA端有什么用处?EAEnableAddress(外部程序存储器地址允许输入端)低电平有效EA=0(低电平有效)时,只允许访问外部存储器EA=1时,可以访问内部和外部存储器EA还有复用功能,Vpp(PulseofProgramming)(编程脉冲)(程电压输入端)第三题8051的存储器分为那几个空间?怎样区别不同空间的寻址?ROMROM统一编址令)(16bits地址)(64KB)RAM(MOVX)(16bits地址)(64KB)RAM(MOV)(8bits地址什么是普林斯顿结构?哈佛结构?普林斯顿结构,ROMRAM统一编址哈佛结构,ROMRAM分开编址第四章8051片内RAM的空间是怎样分配的?RAM256B128BRAM区128BSFR(特殊功能寄存器)区RAM4个工作寄存器区(R0~R7)位寻址区RAM区第五题简述布尔处理存储器的空间分配,片内RAM中包含哪些可位寻址单元?RAM00H~FFH(256B)20H~2FH(字节地址)是位寻址区00H~7FH第六题如何简洁地判断8051正在工作?80518051XTAL2端是否有脉冲信号输出(判断震荡电路工作是否正常?)作是否正常?)2.ALE(地址锁存允许)(AddressLatchEnable)输出是fosc的6分频ALEALE是否有脉冲输出(判断8051芯片的好坏?)PSENPSEN(8051EPROMROM中读取指令码?)因为/PSENEPROM(ROM)的/OE端子OE=OutputEnable(输出允许)第七题8051如何确定和改变当前工作寄存器组?PSW(程序状态字)(ProgramStatusWord)RS1RS04中组合4组工作寄存器组中进行选择PSW属于SFR(SpecialFunctionRegister)(特殊功能寄存器)8051的/EA8031何处理?EA=EnableAddress(外部程序存储器地址允许输入端)EA=0(低电平有效)只允许访问外部存储器EA=1ROM都可以访问8031ROMEPROMEA=0(有效)RAM128B么?当前工作寄存器组(4组)(00H~1FH)位寻址区(20H~2FH)RAM区(30H~7FH)第十三题使单片机复位有哪几种方法?复位后机器的初始状态如何?上电复位上电复位+手动复位脉冲复位复位会重置一些寄存器第十四题开机复位后,CPU使用的是哪组工作寄存器?它们的地址什么什么?80514个工作寄存器组R0~R7分别位于00H~07H分别位于00H~07H,08H~0FH,10H~17H,18H~1FH00第十五题PSW的作用是什么?作用是什么?PSW是一个SFR(特殊功能寄存器)RAM128BD0H(00H~FFH)(RAM的编址)(8bits编址方法)PSW=ProgramStatusWord(程序状态字PSW的常用标志位有哪些?CY=Carry(进位标志位)AC=AuxiliaryCarry(辅助进位标志位)(半进位标志位)F0用户标志位RS1,RS0,用来选择当前工作寄存器组(R0~R7)(41)OV=Overflow(溢出标志位)P=Parity(奇偶校验位)7CH7CH7CH在片内RAM么地方?RAM00H~FFH20H~2FH(字节地址)是位寻址区(bits)00H~7FH7CH2FH可以从寻址方式来区分位地址使用位寻址方式字节地址使用直接寻址,间接寻址第十七题8051的时钟周期,震荡周期有什么关系?震荡周期时钟周期=2*振荡周期时钟周期=状态周期时钟周期=2*振荡周期机器周期=6*时钟周期=12*震荡周期指令周期=1~4个机器周期第十八题一个机器周期的时序如何划分?1.一个机器周期=12个震荡周期=6个时钟周期(状态周期)2.S1P1,S1P2,S2P1,S2P2,S3P1,S3P2,S4P1,S4P2,S5P1,S5P2,S6P1,S6P23.其中s=state(状态),p=phase(相位)第十九题什么叫做堆栈?SP是什么?它的作用是什么?8051堆栈的容量不能超过多少个字节?Stack(堆栈)FILO,LIFO的特性SP=StackPointer(堆栈指针)SP是栈顶指示器评论这张微处理器,RAM,ROM,I/O称为单片机。;对操作码进行译码。3.程序计数器8位计数器PCHPCL组成。4.80C314KBROM程序存储器,87C5180C51ROMEPROM,89C514KBFLASHROM,512倍。5.89C51880C51256字节数RAM/SFR/4KB程序存储器FLASHROM4个8位并行I/O端口16/计数器,5个中断源、两个中断个优先级的中断UARTI/O口,片内振荡器和时钟产生电路,休闲方式和掉电方式。6.89C514KB0000-0FFFH开始,64KBROM256128128个单元。低128字节又分成3个区域:工作寄存器区00H~1F,位寻址区(20H~2FH)和用户RAM区(30H~7FH)存放中间结果,128字节是供给特殊功能寄存器使用的,因此称之为特殊功能寄存器区(80H~FFH,访问它只能用直接寻址。8031片内无程序存储器,80514KB掩模ROM,87514KBEPROM。引脚是片内外程序存储器的选择信号。当端保持高电平时,访问内部程序存储器,但在PC(程序计数器)值超过0FFFH(对于8051/8751/80C51)1FFFH(8052)程序存储器。当端保持低电平时,不管是否有内部程序存储器,则80318031RST复位信号输入端,高电平有效。保持两个机器周期个时钟振荡周期)CPU和系统都处默认值,除SP=07H,P0~P3口为FFH0。ALE/输出正脉冲,频率为振荡周期的1/6,CPU访问片外存储器时,ALE8位地址的控制信号,看芯片好坏可以用示波器看ALEPSEN程序存储允许输10.P0作为输出口时,必须外接上拉电阻才能有高电平输出,作为I/O口使用或低8位地址/数据总线使用。P1FLASHROM编程和校验是P1只用作普通I/O口使用。P2口比P1口多了一个转换控制开关;作为普通I/O8位16位地址的外部数据存储器。P3口比P1口增加了与非门和缓冲器;具有准双向I/O功能和第二功准双向口。上述41哈佛结构:程序存储器和数据存储器分开的结构。12.RS1RS0当前寄存器组片内RAM地址00第012.RS1RS0当前寄存器组片内RAM地址00第0组工作寄存器00H~07H01第1组工作寄存器08H~0FH10第2组工作寄存器10H~17H11第3组工作寄存器18H~1FHSPRAM07H,堆栈的操作;PUSH、POPDPTR1616RAM作间接寻址。DPTRDPHDPL组成。13.指令周期:执行一条指令所需要的时间。机器周期:CPU周期。12MHz1μs;当晶振频率为6MHz机器周期为2μs,复位时间超过4μs。14.复位操作有:电自动,按键手动,看门狗。15.空闲方式是CPU停止工作而RAM,定时器/计数器,串行口及中断系统都工作。掉电一切功能都暂停,保存RAM中内容。退出空闲方式;硬件将PCON.0清0,硬件复位。当CPU执行PCON.1为1,系统进入掉电方式。推出掉电只有硬件复位。保留的存储单元存储单元存储单元0000H~0002H0003H~000AH000BH~0012H0013H~001AH001BH~0022H0023H~002AH002BH保留目的复位后初始化引导程序地址0011串行端口中断2中断变址寻址,相对寻址,位寻址。AJMP和SJMP的区别有:AJMPaddr1;短跳转范围:2KB。SJMPrel;相对跳转范围:-128~+127(2)指令长度不同。(3)指令构成不同。AJMP、LJMP后跟的SJMP后跟的是相对地址。不能用AJMP指令代替程序中的SJMP指令,因为如果改变的话,程序跳转到的新PC出现错误。1989c51RAM30H)=38H,38H=40H,40H=48H,48H=90H。情分析下面各是什么指令,说明源操作数的寻址方式以及按顺序执行每条指令后的结果?MOV A,40H ;直接寻址 (40H)→AMOV R0,A ;寄存器寻址 MOV P1,#0F0H ;立即数寻址 0F0→P1MOV @R0,30H ;直接寻址(30H)→(R0)MOV DPTR,#3848H ;立即数寻址 3848H→DPTRMOV 40H,38H ;直接寻址(38H)→40HMOV R0,30H ;直接寻址(30H)→R0MOV P0,R0 ;寄存器寻址 (R0MOV 18H,#30H ;立即数寻址 30H→18HMOV A,@R0 ;寄存器间接寻址((R0))→AMOV P2,P1 ;直接寻址(P1)→P2R0=38(=40(P0=38H(P1(P2=0F0H(DPTR)=3848(18=3030=38(38=40(40=40(48=38H注意:→左边是内容,右边是单元R3R416R3R4中,请编程将其求补,并存回原处。MOV A,R3 ;取该数高8位ANL A,#80H ;取出该数符号判断JZ L1 L1MOVA,R48位→ACPLA;低8位取反ADDA,#01H;加1MOVR4,A;低8位取反加1后→R4MOVA,R3;将该数高8位→ACPLA;高8位取反ADDC A,#00H ;加上低8位加1时可能产生的进MOV R3,A ;高8位取反加1后→R3L1:RET已知30H31H162,在存回原单元中。CLR C CMOV A,31H ;取该数低8位→ARLC A ;带进位位左移1MOV 31H,A ;结果存回31HMOV A,30H ;取该数高8位→ARLC A ;带进位位左移1MOV 30H,A ;结果存回30H假设允许片内定时器/IE值。用字节操作指令:MOVIE#8AHMOVA8H,#A8H用位操作指令:SETBET0SETBET1SETBEA设89C51的片外中断为高优先级,片内为低优先级,设置IP值用字节操作指令:MOV IP,#05H或MOV 0B8H,#05H用位操作指令:SETB PX0SETB CLR PSCLR PT0CLE PT124.89C51单片机内有两个16位定时器/计数器,即T0,T1.第三章1、指令:CPU根据人的意图来执行某种操作的命令指令系统:一台计算机所能执行的全部指令集合机器语言:用二进制编码表示,计算机能直接识别和执行的语言汇编语言:用助记符、符号和数字来表示指令的程序语言的通用性语言21题3、操作码 [目的操作] [,源操作]寻址方式寻址空间立即数寻址寻址方式寻址空间立即数寻址ROM直接寻址RAM128B、特殊功能寄存器寄存器寻址工作寄存器R0-R7、A、B、C、DPTR寄存器间接寻址RAM128BRAM变址寻址程序存储器(@A+PC,@A+DPTR)相对寻址256B范围(PC+偏移量)位寻址RAM20H-2FHSFR5、SFR:直接寻址,位寻址,寄存器寻址;片外RAM:寄存器间接寻址6、MOV A,40H ;直接寻址 (40H)→AMOV R0,A ;寄存器寻址 (A)→R0MOV P1,#0F0H ;立即数寻址 0F0→P1MOV @R0,30H ;直接寻址(30H)MOV DPTR,#3848H ;立即数寻址 3848H→DPTRMOV 40H,38H ;直接寻址(38H)→40HMOV R0,30H ;直接寻址(30H)→R0MOV P0,R0 ;寄存器寻址 (R0MOV 18H,#30H ;立即数寻址 30H→18HMOV A,@R0 ;寄存器间接寻址((R0))→AMOV P2,P1 ;直接寻址(P1)→P2R0=38(=40(P0=38H(P1(P2=0F0H(DPTR)=3848(18=3030=38(38=40(40=40(48=38H注意:→左边是内容,右边是单元7、用直接寻址,位寻址,寄存器寻址8、MOVA,DATA;直接寻址21周期MOVA,#DATA;立即数寻址21MOVDATA1,DATA2直接寻址32MOV74H,#78H;立即数寻址329、MOV A,@R0;((R0))=80H→AMOV @R0,40H MOV 40H,A ;(A)=80→40HMOV R0,#35H ;35H→R0最后结果R0)=35H H10、用直接寻址,位寻址,寄存器寻址11、只能采用寄存器间接寻址(用MOVX指令)12128字节:直接寻址,位寻址,寄存器间接寻址,寄存器寻址128字节:直接寻址,位寻址,寄存器寻址13、采用变址寻址(用MOVC指令)14、压缩BCD码在进行加法运算时应逢十进一,而计算机只将其当作十六进数处理,此时得到的结果不正确。用DA A指令调整(加06H,60H,66H)15、用来进行位操作16、ANLA,#17H ORL17H,A ;34H∨03H=37H→17HXRLA,@R0 ;03H⊕37H=34HCPL A ;34HCBH所以(A)=CBH17(1)SETB ACC.0或SETB E0H ;E0H是累加器的地址CLRACC.7CLR CLR CLR CLR ACC.6CLR CLR CLR ACC.318、MOV27H,R7MOV26H,R6MOV25H,R5MOV24H,R4MOV23H,R3MOV22H,R2MOV21H,R1MOV20H,R019、MOV2FH,20MOV2EH,21MOV20、CLRCMOVA,#5DH;被减数的低8位→AMOVR2,#B4H;减数低8位→R2SUBBA,R2;被减数减去减数,差→AMOV30H,A;低8位结果→30HMOVA,#6FH;被减数的高8位→AMOVR2,#13H;减数高8位→R2SUBBA,R2;被减数减去减数,差→AMOV31H,A;高8位结果→30H021(1)A≥10CJNE A,#0A,L1 ()与10比较,不等转LJMP LABEL ;相等转LABELL:JNC LABEL ()10LABEL或者:CLRCSUBB JNC LABEL(2)A>10CJNE A,#0A,L1 ()与10比较,不等转RET ;相等结束L:JNC LABEL ()大于10,转RET ()小于10,结束或者:CLRCSUBB JNC L1RETL1:JNZ RET(3)A≤10CJNE ,#0A,L1 ()10L1L2:LJMP LABEL LABELL:JC L2 ()10RET或者:CLRCSUBB JC LABELJZ RET2(SP)=23(P)=3412H参看书上80页2(SP)=27(26)=48(27)=23HPC)=3456H参看书上79页24、不能。ACALL是短转指令,可调用的地址范围是2KB。在看这个题的时候同时看一下AJMPACALL和LCALL指令和RET指令的关系。25、MOVR2,#31H;数据块长度→R2MOVR0,#20H;数据块首地址→R0LOOP:MOVA,@R0;待查找的数据→ACLRC;清进位位SUBB;待查找的数据是0AAHJZ L1 ;是,转L1INC R0 ;不是,地址增1,指向下一个待查数DJNZ R2,LOOP ;数据块长度减1,不等于0,继续查找MOV 51H,#00H ;等于0,未找到,00H→51HRETL1:MOV 51H,#01H RET26、 MOV R2,#31H ;数据块长度MOV R0,#20H ;数据块首地址LOOP:MOV A,@R0 ;待查找的数据JNZ L1 ;不为0,转L1INC 51H 0,00H1L1:INC R0 ;地址增1,指向下一个待查数据DJNZ R2,LOOP ;数据块长度减1,不等于0,继续查RET27、MOVDPTR,#SOURCE;源首地址→DPTRMOVR0,#DIST;目的首地址→R0LOOP:MOVX A,@DPTR ;传送一个字符MOV @R0,AINC DPTR ;指向下一个字符INC R0CJNE A,#24H,LOOP ;传送的是“$”字符吗?不是,传送28、 28、 MOV A,R3;取该数高8位→AANL JZ L1MOV CPL AADD MOV R4,AMOV A,R3CPL AADDC MOV R3,AL1:RET29、 CLR CMOVRLCAMOVMOVRLCAMOV30H,A30、MOVR2,#04HMOVR0,#30HMOVR1,#40HCLRCLOOP:MOVA,@R0ADDCA,@R1;取出该数符号判断;是正数,转L1;是负数,将该数低8位→A;低8位取反;加1;低8位取反加1后→R4;将该数高8位→A;高8位取反81时可能产生的进位;高8位取反加1后→R3;清进位位C;取该数低8位→A;带进位位左移1位;结果存回31H;取该数高8位→A;带进位位左移1位;结果存回30H;字节长度→R2;一个加数首地址→R0;另一个加数首地址→R1;清进位位;取一个加数;两个加数带进位位相加DA A;十进制调整MOV @R0,A;存放结果INC R0;指向下一个字节INC R1 ;DJNZ R2,LOOP 10RET31、 MOV R2,#08H;数据块长度→R2MOV R0,#30H;数据块目的地址→R0MOV DPTR,#2000H ;数据块源地址→DPTRLOOP:MOVX A,@DPTR ;传送一个数据MOV @R0,AINC DPTR;指向下一个数据INC R0 ;DJNZ R2,LOOP 1RET32(1)MOV R0,0FH ;2字节,2周期 4字节4周期MOV B,R0 ;2字节,2周期RET查找传送差(2)MOVR0,#0FH;2字节,1周期43周期(中)MOVB,@R0;2字节,2周期(3)MOVB,#0FH;3字节,2周期3字节2周期(好)33(1)RAM50H~51H0。(放的是立即数)7850(010R2R078,后一个字节存放的是立即数)DAFC(56页)3、 INC @R0 INC R0 (R0)=7FHINC @R0 (7F)=39HINCDPTRINCDPTR(DPTR)=1100HINCDPTR(DPTR)=1101H3、解(1000)=53H (1001)=54H (1002)=41H(1003H)=52H (1004H)=54H (1005H)=12H(1006H)=34H (1007H)=30H (1008H)=00H(1009H)=70H36、MOV R0,#40H MOV A,@R0 ;98H→AINC R0 ;41H→R0ADD A,@R0 ;98H+(41H)=47H→AINC R0MOV @R0,A 42H单元CLR A AADDC A,#0 ;进位位存入INC R0MOV @R0,A 43H功能:将40H,41H单元中的内容相加结果放在42H单元,进位放在43H单元,R0=43(=(40=98(41=AF(42H=47(43=01H37、 MOV A,61H ;F2H→AMOV B,#02H ;02H→BMUL AB ;F2H×O2H=E4H→AADD8CCH→AMOV 63H,A ;结果送CLR A ;清AADDC A,B 8位加进位位→AMOV 64H,A 64H61H2862H63H,将结864H(=02(=01H(61=F2(62H=CCH,63)=B0(64H)=02H39、MOV A,XXHORL MOV40(2)MOV A,XXHMOV R0,AXRL A,R0第五章1、什么是中断和中断系统?其主要功能是什么?CPUCPU处理,于是,CPU暂时中止当前的工作,转去处理所发生的事件,中断服务处断,实现这种功能的部件称为中断系统。功能:使计算机具有实时处理能力,能对外界异步发生的事件作出及时的处理CPUCPU率实现实时控制2INT0,INT1,TOT0中断为高优先级中断。解:MOV MOV IP,#02H3、在单片机中,中断能实现哪些功能?答:有三种功能:分时操作,实时处理,故障处理4、89C511)89C51有如下中断源:0请求,低电平有效:1请求,低电平有效③T00溢出中断请求④T11溢出中断请求⑤TX/RX:串行接口中断请求(2)TCON、SCON、、IP操作,可实现各种中断控制功能5、什么是中断优先级?中断优先处理的原则是什么?答:中断优先级是CPU相应中断的先后顺序。原则:先响应优先级高的中断请求,再响应优先级低的如果一个中断请求已经被响应,同级的其它中断请求将被禁止如果同级的多个请求同时出现,则CPU顺序确定应该响应哪个中断请求0011中断6、说明外部中断请求的查询和响应过程。CPUKCPU发出中断请求,CPUCPUS5P2S61S1K+17、89C51在什么条件下可响应中断?答:有中断源发出中断请求EA=1.CPU开中断1,即中断没有被屏蔽无同级或更高级中断正在服务当前指令周期已经结束RETIIEIP指令已执行完毕8、简述89C51单片机的中断响应过程。S5P2在下一个机器周S61,将在接下S1期间按优先级进行中断处理,中断系统通过硬件自动将相应的中断矢量地址装入PC89C51首先置位相应的中断“优先级生效”触发器,然后由硬件执行一条长调用指令,把当前的PCCPU在响应中断后会自动清除中断标志。9、在89C51内存中,应如何安排程序区?0030H个大家还要清除各个中断的中断矢量地址。10、试述中断的作用及中断的全过程。答:作用:对外部异步发生的事件作出及时的处理过程:中断请求,中断响应,中断处理,中断返回问在什么情况下可响应新的中断请求?在什么情况下不能响应新的中断请求?1)6个条件可响应新的中断请求:有中断源发出中断请求EA=1CPU开中断1,即中断没有被屏蔽无同级或更高级中断正在被服务当前的指令周期已结束RETIIEIP指令已被执行完1289C51答:有两种方式:电平触发和边沿触发CPU在每个机器周期的S5P2IE1(IE0置“1IE1(IE0清零。S5P2期间采样外部中断请求引脚的输入电置“1”申请中断;否则,IE1(IE0)0。1389C51单片机有五个中断源,但只能设置两个中断优先级,因此,在中断优(级别由高到低是否可能:若可能,则应如何设置中断源的中断级别:否则,请简述不可能的理由。0101可以,MOVIP,#0AH0011可以,MOVIP,#10H⑶外中断0,定时器1,外中断1,定时器0,串行口中断。INT0,T1T0INT1.⑷ 外中断0,外中断1,串行口中断,定时器0,定时器1可以,MOV IP,#15H⑸ 0011不可以⑹ 0101不可以⑺ 外中断0,定时器1,定时器0,外中断1,串行口中断可以,MOV IP,#09H14、89C510的?CPU断时,中断入口地址各是多少?答:各中断标志的产生和清“0”如下:外部中断类01输入信号。外部中断0请求信号,由P3.2脚输入。通过IT0来决定中断请求信号是低电平有效还是下跳变有效。一旦输入信号有效,则向CPU申请中断,并且使IE0=1。硬件复位。外部中断1请求信号,功能与用法类似外部中断0定时中断类/计数器中的计T0T0T0请求标志TF0=1TF1T1T0串行口中断类RI入芯片,才可能引发中断。RITIRITI=1,并请求中断。响应后必须软件复位。CPU响应中断时,中断入口地址如下:中断源入口地址外部中断00003HT0中断000BH外部中断10013HT1中断001BH串行口中断0023H15、中断响应时间是否为确定不变的?为什么?CPU为例,说明中断响应的时间。S5P2TCONIE0位,CPU在下LCAL23个机器周期,这是最短的响应时间。如果遇到中断受阻的情况,这中断响应时间会更长一些。例如,当一个同级或更1~3RETIIEIP5个机器周期内。3~8个机器周期。、中断响应过程中,为什么通常要保护现场?如何保护?答:因为一般主程序和中断服务程序都可能会用到累加器,PSW一些寄存器。CPU在进入中断服务程序后,用到上述寄存器时,就会破坏它原前再恢复现场。保护方法一般是把累加器、PSW寄存器及其他一些与主程序有关的寄存器压入CPU的中断打断它,则在保护现场之后再开中断,恢复现场之前关中断。17CPUCPU过程?答:在中断响应中,CPU要完成以下自主操作过程:置位相应的优先级状态触发器,以标明所响应中断的优先级别中断源标志清零(TI、RI除外)中断断点地址装入堆栈保护(PSW)PC,以便使程序转到中断入口地址处CPU的微查询操作。89C51单片机中,CPU在每个S6S1状态中,响应最高级中断请求。但是以下情况除外:CPU正在处理相同或更高优先级中断多机器周期指令中,还未执行到最后一个机器周期SFRRETI、IP要延后一条指令18、在中断请求有效并开中断状况下,能否保证立即响应中断?有什么条件?答:在中断请求有效并开中断状况下,并不能保证立即响应中断。这是因为,在CPU的微查询操作。89C51单片机中,CPU在每个机S6S1状态中,响应最高级中断请求。在以下情况下,还需要有另外的等待:CPU正在处理相同或更高优先级中断多机器周期指令中,还未执行到最后一个机器周期SFRRETI、IP要延后一条指令第6章习题答案12答:2TL0(TL1)8/计数器。TL0TF01,TH0TL0TL08,TH0用于定时工作方式时间)最大计数长度(TH0=0)28=256别适于作串行波特率发生器。2100KHZ12MHZ,请编程实现。答:T05:1BHT08:FFHMOV TMOD,#00H T00MOV TL0,#1BH ;设置5ms定时初MOV TH0,#0FFHSETB TR0 T0LOOP:JBC TF0,L1 ;查询到定时时间到?时间到转SJMP LOOP ;时间未到转LOOP,继续查询L1:MOV TL0,#1BH ;重新置入定时初MOV TH0,#0FFHCPL P1.0 ;输出取反,形成等宽矩形波SJMP LOOP ;重复循环3、89C51定时器有哪几种工作模式?有何区别?答:有四种工作模式:模式0,模式1,模式2,模式38513/TL5TH,THTF定时时间t=(213-初值)×振荡周期×12;计数长度位213=8192个外部脉冲1:0THTL16t=(216-初值)×振荡周期×12;216=65536冲2:把TL0TL18/TL8,THTLTF01,而且还THTL定时时间t=(28-初值)×振荡周期×12;计数长度位28=256个外部脉冲3:T0T1T0TH08TL0801TH0T1TR1TF1,TR1T13,T03T10~24、89C51/答:89C5116/T0T1。T08TH0TL0;T1TH1TL15、定时器用作定时器时,其定时时间与哪些因素有关?作计数器时,对外界计数频率有何限制?答:定时时间与定时器的工作模式,初值及振荡周期有关。1/2464答:8513/TL5TH,THTFt=(213-初值)×振荡周期×12;213=8192TMODM1M0001:0THTL16t=(216-初值)×振荡周期×12;216=65536冲TMODM1M0012:把TL0TL18/TL8,THTLTF01,而且还THTLt=(28-初值)×振荡周期×12;28=256TMODM1M0103:T0T1T0TH08TL0801TH0T1TR1TF1,TR1T13,T03T1TMODM1M0117T03TR1T0T1T1C/TT1T13,T13,T18/11000/110ms6WHZ1解:T1T1所以:L1:MOV TMOD,#50H ;设置T1为计数方式且工作模式为MOV TH1,#0FCH ;置入计数初值MOV TL1,#18HSETB TR1 T1LOOP1:JBC TF1,L2 ;查询计数溢出?有溢出(计数满1000个)转SJMP LOOP1 ;无溢出转LOOP1,继续查询L2:CLR TR1 T1MOV TMOD,#10H ;设置T1为定时方式且工作与模式MOV TH1,#0ECH ;置入定时10ms初值MOV TL1,#78HSETB TR1 T1LOOP2:JBC TF1,L1 ;查询10ms时间到?时间到,转SJMP LOOP2 ;时间未到,转LOOP2,继续查询9、一个定时器定时时间有限,如何实现两个定时器的串行定时以满足较长定时时间的要求?答:当一个定时器溢出时,设置另一个定时器的初值为0开始定时。10、使用一个定时器,如何通过软硬件结合方法实现较长时间的定时?数累计,从而得到较长的时间。11、89C51定时器作定时和计数时其计数脉冲分别由谁提供?89C5112P3.4P3.5提供。12、89C51定时器的门控信号GATE设置为1时定时器如何启动?(或)TR1)1器工作。1389C51fosc=6MHz,T0P1.050μs300μs。解:T0250μs所以300μs所以MOV TMOD,#02H ;设置定时器T0工作于模式L2:CLR P1.0 ;P1.0输出低电平MOV TH0,#6AH ;300μs初值MOV TL0,#6AHSETB TR0 ;T0LOOP1:JBC TF0,L1 ;查询300μs时间到?时间到,转SJMP LOOP1 ;时间未到,转LOOP1,继续查询L1:SETB P1.0 ;P1.0输出高电平CLR TR0 ;T0MOV TH0,#0E7H ;300μs初值MOV TL0,#0E7HSETB TR0 ;T0LOOP2:JBC TF0,L2 ;查询50μs时间到?时间到,转SJMP LOOP2 ;时间未到,转LOOP2,继续查询1489C51单片机的fosc=12MHz,T1定时。试编程由P1.0P1.1分别输出周期为2ms500μs的方波。解:采用模式0作定时初值所以MOV R2,#04H ;R2为“250μs”计数器,置入初值CLR P1.0 ;P1.0输出低电平CLR P1.1 ;P1.1输出低电平MOV TMOD,#00HL2:MOV TH1,#0F8H ;250μs初值MOV TL1,#06HSETB TR1 ;T1LOOP:JBC TF1,L1 ;250μsL1SJMPL1:CPLCLRLOOPP1.1TR1;时间未到,转LOOP,继续查询;P1.1输出取反,形成周期为500μs;关闭T1DJNZR2,L2;“250μs11msL2CPLP1.0;P1.0输出取反,形成周期为2ms方波MOVR2,#04H;重置“250μs”计数器初值4LJMPL2;重复循环1580316MHz,0.1ms,1ms,10ms,0012时,其定时器初值各应是多少?解:(1) 0.1ms模式0:T0低5位01110B=0EHT0高8位:11111110B=FEH模式1:模式2:1ms模式0:T0低5位01100B=0CHT0高8位:11110000B=F0H模式1:模式2:在此情况下最长定时为512μs,无法一次实现定时1ms,可用0.1ms循环10次10ms模式0:T0低5位11000B=18HT0高8位:01100011B=63H模式1:模式2:在此情况下最长定时为512μs,无法一次实现定时10ms,可用0.1ms循环100次16、89C51单片机的定时器在何种设置下可提供三个8位计数器定时器?这时定时器1 可作为串行口波特率发生器。若波特率按9600b/s,4800b/s,2400b/s,1200b/s,600b/s,100b/s来考虑,则此时可选用的波特率是多少(允许存在一定误差)?设fosc=12MHz。T03,T1238100b/s17P1.2P1.1P1.2R6,R7。解:MOVTMOD,#05H;T0为计数方式且工作于模式1JNBP1.2,$;等待P1.2引脚电平上跳MOVTH0,#00H;P1.2电平上跳,置入计数初值MOVTL0,#00HSETBTR0;启动T0JBP1.2,$;等待P1.2引脚电平下跳CLRTR0;电平下跳,关闭T0MOVR7,TH0;计数初值写入R7,R6MOVR6,TL018fosc=12MHz。试编制一段程序,功能为:对定时器T02200μsT0溢出标志的方法,控制P1.02ms的方波。解:T0作定时器时初值:所以程序1:CLR P1.0 ;P1.0输出低电平MOV R2,#05H ;R2为“200μs”计数器,置入初值5,计MOV TMOD,#02H ;设定时器T0工作于模式2L2:MOV TH0,#38H ;置入定时初MOV TL0,#38HSETB TR0 ;T0LOOP:JBC TF0,L1 ;查询200μs时间到?时间到,转SJMP LOOP ;时间未到,转LOOP,继续查询L1:CLR TR0 ;T0DJNZR2,L2;“200μs”计数器减1,到1ms吗?未到,转L2CPLP1.0 ;到1ms,P1.0取反,形成周期为2ms的方MOVR2,#05H ;重置“200μs”计数器初值LJMP L2 ;2:MAIN:MOV TMOD,#02H ;设定时器T0工作于模式CLR P1.0 ;P1.0输出低电平LOOP1:MOV R2,#05H ;R2为“200μs”计数器,置入初值5,计LOOP:MOV TH0,#38H ;置入定时初值MOV TL0,#38HSETB TR0 ;T0JNB TF0,$ ;200μs时间到?时间到,继续查询CLR TR0 ;T0DJNZ R2,LOOP ;“200μs”计数器减1,到1ms吗?未到,转CPL P1.0 ;到1ms,P1.0取反,形成周期为2ms的方波SJMP LOOP1 ;重复循环19P1.01期的正脉冲,P1.11个周期的正脉冲。参考书上例题6-6第七章第7章 习题1、什么是串行异步通信,它有哪些作用?答:在异步串行通信中,数据是一帧一帧(包括一个字符代码或一字节数据)传送的,每一帧的数据格式参考书。通信采用帧格式,无需同步字符。存在空闲位也是异步通信的特征之一。2、89C51单片机的串行口由哪些功能部件组成?各有什么作用?答:89C51SBUFSBUF、输入移SCONT1SBUFSBUFSCON控制和T1产生串行通信所需的波特率。3、简述串行口接收和发送数据的过程。答:串行接口的接收和发送是对同一地址两个物理空间的特殊功能寄存器SBUF进行读和写的。当向SBUF发“写”命令时(执行MOV SBUFTXDTI=1。REN(SCON.4)=1,就会接收一帧数据进入移位寄存器,并装载到接收SBUFRI=SBUF命令时(执行“MOVA,SBUF,便由接收缓冲期SBUF89C51CPU。4、89C51定?答:89C51串行口有4种工作方式:0(8位同步移位寄存器1(10位异步收发2(11发3(11位异步收发。有2种帧格式:10位,11位方式0:方式0的波特率≌fosc/12(波特率固定为振荡频率1/12)方式2:方式2波特率≌2SMOD/64×fosc方式1和方式3:方式1和方式3波特率≌2SMOD/32×(T1溢出速率)如果T1采用模式2则:533600多少?3600311波特率字符)×(3600字符/60s)=660b/s6、89C51中SCON的SM2,TB8,RB8有何作用?答:89c51SCON的SM2是多机通信控制位,主要用于方式2和方式3.若置SM2=1,则允许多机通信TB8923帧或数据帧的标志位。RB8是接收数据的第9位,在方式2或方式3中接收到的第9位数据放在RB8位。它或是约定的奇偶校验位,或是约定的地址/数据标示位。7、设fosc=11.059MHz,试编写一段程序,其功能为对串行口初始化,使之工11200b/s的数据并回送到发送缓冲器。解:START:MOV SCON,#40H ;串行接口工作于方式MOV TMOD,#20H ;定时器T1工作于模式2MOV TH1,#0E8H ;赋定时器计数初值MOV TL1,#0E8HSETB TR1 ;T1MOV A,SBUF ;读出接收缓冲器数据MOV SBUF,A ;启动发送过程JNB TI,$ ;等待发送完CLR TI ;TI标志SJMP $ ;结束811.0592MHz14800b/sT1作为波特率发生器的方式字和计数初值。解:MOVTMOD,#20H;T12MOVTH1,#0FAH;赋定时器计数初值MOVTL1,#0FAH9T12统时钟频率和通信用的波特率,如何计算其初值?2(计数初值,比较使用。若选用工作模式01,当定时器T1断服务程序中重装初值。foscfbaudT12值10T12fosc=6MHz的最高和最低的波特率。T1255SMOD=1T10SMOD=0,有:11、串行通信的总线标准是什么?有哪些内容?(EIA)RS-232C,RS-422,RS-423和RS-485等。在异步串行通信中应用最广的标准总线是RD-232C。它包括了按位串行传输的电气和机械方面的规定,如适用范围、信号特性、接口信号及引脚说明等,适用于短距离(<15m)或带调制解调的通信场合。采用RS-422,RS-485标准时,通信距离可达1000m。12、简述单片几多机通信的原理。89C51(主机)89C51
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度股份代持与代管合同协议2篇
- 二零二五年度水利工程监测与施工测量服务合同范本3篇
- 二零二五版新能源设备搬运安装合同细则3篇
- 2025年度航空航天器发动机安装与测试合同3篇
- 二零二五年度绿色交通设施招标投标合同6篇
- 展会参展资格合同(2篇)
- 二零二五版水利工程钢筋加工与分包合同规范范本3篇
- 二零二五版室内外景观装饰一体化合同3篇
- 2025年度文化演出活动承办合同3篇
- 二零二五版单位职工食堂员工健康体检承包合同2篇
- 中建集团面试自我介绍
- 《工业园区节水管理规范》
- 警校生职业生涯规划
- 意识障碍患者的护理诊断及措施
- 2024版《53天天练单元归类复习》3年级语文下册(统编RJ)附参考答案
- 2025企业年会盛典
- 215kWh工商业液冷储能电池一体柜用户手册
- 场地平整施工组织设计-(3)模板
- 交通设施设备供货及技术支持方案
- 美容美发店火灾应急预案
- 餐车移动食材配送方案
评论
0/150
提交评论