版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、练习练习练习第二章 单片机结构及原理1、mcs-51单片机内部包含哪些主要功能部件?它们的作用是什么?答:(1)一个8bit cpu是微处理器的核心,是运算和逻辑计算的中心。(2)片内震荡器及时钟电路:提供标准时钟信号,所有动作都依据此进行。(3)4k rom程序存贮器:存贮程序及常用表格。(4)128b ram 数据存贮器:存贮一些中间变量和常数等。(5)两个16bit定时器/计数器:完全硬件定时器(6)32根可编程i/o口线:标准8位双向(4个)i/o接口,每一条i/o线都能独立地作输入或输出。(7)一个可编程全双工串行口。 (8)五个中断源。2、什么是指令?什么是程序?答:指令是规定计算
2、机执行某种操作的命令。程序是根据任务要求有序编排指令的集合。3、如何认识89s51/52存储器空间在物理结构上可以划分为4个空间,而在逻辑上又可以划分为3个空间?答:89s51/52存储器空间在物理结构上设有个存储器空间:片内程序存储器、片外程序存储器、片内数据存储器、片外数据存储器。在逻辑上有个存储器地址空间:片内、片外统一的64kb程序存储器地址空间,片内256数据存储器地址空间,片外64的数据存储器地址空间。4、开机复位后,cpu使用的是哪组工作寄存器?他们的地址是多少?cpu如何确定和改变当前工作寄存器组?答:开机复位后,cpu使用的是第0组工作寄存器,地址为00h07h,cpu通过改
3、变状态字寄存器psw中的rs0和rs1来确定工作寄存器组。5、什么是堆栈?堆栈有何作用?在程序设计时,有时为什么要对堆栈指针sp重新赋值?如果cpu在操作中要使用两组工作寄存器,sp应该多大?答:堆栈是一个特殊的存储区,主要功能是暂时存放数据和地址,通常用来保护断点和现场。堆栈指针sp复位后指向07h单元,00h1fh为工作寄存器区,20h2fh为位寻址区,这些单元有其他功能,因此在程序设计时,需要对sp重新赋值。如果cpu在操作中要使用两组工作寄存器,sp应该至少设置为0fh。6、89s51/52的时钟周期、机器周期、指令周期是如何分配的?当振荡频率为8mhz时,一个单片机周期为多少微秒?答
4、:时钟周期为时钟脉冲频率的倒数,他是单片机中最基本的、最小的时间单位。机器周期是指完成一个基本操作所需要的时间,一个机器周期由12个时钟周期组成。指令周期是执行一条指令所需要的时间,由若干个机器周期组成。 若fosc=8mhz,则一个机器周期=1/8×12s=1.5s7、89s51/52扩展系统中,片外程序存储器和片外数据存储器共处同一地址空间为什么不会发生总线冲突?答:访问片外程序存储器和访问数据存储器使用不同的指令用来区分同一地址空间。8、程序状态字寄存器psw的作用是什么?常用状态标志有哪些位?作用是什么?答:程序状态字psw是8位寄存器,用于存放程序运行的状态信息,psw中各
5、位状态通常是在指令执行的过程中自动形成的,但也可以由用户根据需要采用传送指令加以改变。各个标志位的意义如下:psw.7(cy):进位标志位。psw.6(ac):辅助进位标志位,又称为半进位标志位。psw.5(f0):用户标志位。psw.4、psw.3(rs1和 rs0):寄存器组选择位。psw.2(ov):溢出标志位。psw.1(空缺位):此位未定义。psw.0(p):奇偶校验位。9、位地址7ch和字节地址7ch有何区别?位地址7ch具体在内存中什么位置?答:字节地址7ch是片内数据存储器中的一个地址单元,该地址单元中可以存放8位二进制数,位地址7ch是内部数据存储器中位寻址区中的一位,该地址
6、单元中可以存放1位二进制数。位地址7ch具体在片内数据存储器字节地址为2fh中的第4位(2fh.4)。10、89s51/52中4个i/o端口的作用是什么?89s51/52的片外三总线是如何分配的?答:i/o端口是单片机与外界联系的重要通道,实现与外部设备的信息的传输。总线分配:片外数据总线(8根)通过p0口输出,片外地址总线(16根)通过p0口(低8位)和p2口(高8位)输出,片外控制总线(psen ,ale , rd ,wr ,ea)主要通过p3口。11、89s51/52中4个i/o端口在结构上有何异同?89s51/52单片机的个i/o口在结构上是基本相同的,但又各具特点。这四个端口都是位双
7、向口,每个端口都包括一个锁存器、一个输出驱动器和输入缓冲器。在无片外扩展存储器的系统中,这四个端口的每一位都可以作为双向通用i/o端口使用。在作为一般的通用i/o输入时,都必须先向锁存器写入“”,使输出驱动场效应管fet截止,以免误读数据。各自特点如下:(1)p0口为双向8位三态i/o口,它既可作为通用i/o口,又可作为外部扩展时的数据总线及低8位地址总线的分时复用口。作为通用i/o口时,输出数据可以得到锁存,不需外接专用锁存器;输入数据可以得到缓冲,增加了数据输入的可靠性。每个引脚可驱动8个ttl负载。(数字电路按工艺有肖特基双极晶体管和cmos工艺两种,使用双极晶体管的数字电路称ttl数字
8、电路,单片机输出端带负载能力,意思就是单片机的p3端口只能并联4个ttl型集成电路输入端。)(2)p1口为8位准双向i/o口,内部具有上拉电阻,一般作通用i/o口使用,它的每一位都可以分别定义为输入线或输出线,作为输入时,锁存器必须置1。每个引脚可驱动4个ttl负载。(3)p2口为8位准双向i/o口,内部具有上拉电阻,可直接连接外部i/o设备。它与地址总线高8位复用,可驱动4个ttl负载。一般作为外部扩展时的高8位地址总线使用。(4)p3口为8位准双向i/o口,内部具有上拉电阻,它是双功能复用口,每个引脚可驱动4个ttl负载。作为通用i/o口时,功能与p1口相同,常用第二功能。12、复位的作用
9、是什么?有几种复位方法?复位后单片机的状态如何?答:复位是单片机的初始化操作。单片机在rst引脚产生两个机器周期(即24个时钟周期)以上的高电平即可实现复位。主要的复位方法有上电自动复位和按键手动复位两种。按键手动复位又分:按键电平复位和按键脉冲复位。第三章 指令系统1、简述下列名词术语的基本概念:指令、指令系统、程序、汇编语言指令答:指令:规定单片机进行某种操作的命令称为指令。指令系统:单片机能够执行的各种指令的集合。程序:一系列指令的有序集合称为程序。汇编语言指令:用助记符形式来表示机器指令。2、80c51单片机有哪几种寻址方式?这几种寻址方式是如何寻址的?答:共7种寻址方式,分别为:寄存
10、器寻址,直接寻址,寄存器间接寻址,立即寻址,变址寻址,位寻址和相对寻址。寄存器寻址方式:由指令指出某一寄存器的内容做为操作数。直接寻址方式:指令中操作数直接以单元地址的形式给出。寄存器间接寻址方式 :寄存器间接寻址方式,寄存器中存放的则是操作数的地址,即操作数是通过寄存器间接得到的。立即寻址方式:操作数在指令中直接给出。变址寻址方式:变址寻址是为了访问程序存储器中的数据和表格。mcs51的变址寻址是以dptr或pc作基址寄存器,以累加器a作变址寄存器,并以两者内容相加形成的16位地址做为操作数地址,以达到访问数据和表格的目的。位寻址方式:指对片内ram的位寻址区和某些可寻址的特殊功能寄存器进行
11、位操作的寻址方式。相对寻址方式:相对寻址方式是为解决程序转移而专门设置的,为转移指令所采用。3、要访问特殊功能寄存器和片外数据寄存器,应采用哪些寻址方式?答:访问特殊功能寄存器可以采用直接寻址、寄存器寻址和位寻址(针对可以进行位寻址的特殊功能寄存器)方式。访问片外数据存储器可采用寄存器间接寻址方式。4、80c51单片机的指令系统可以分为哪几类?说明各指令的功能。答:51单片机指令系统按功能可分为5类:(1)数据传送指令 主要进行数据的传送、交换等;(2)算术运算指令 主要进行基本的加减乘除运算;(3)逻辑运算指令 主要实现逻辑运算与移位运算; (4)控制转移指令 主要是实现对程序流程的控制;(
12、5)位操作指令 5、外部数据传送指令有哪几条?有和区别?答:外部数据传送指令有读指令和写指令两类,每类指令的寻址范围不同,分别为:读外部存储器指令:movxa,ri;寻址范围为256字节movxa,dptr;寻址范围为64k字节写外部存储器指令:movxri,a;寻址范围为256字节movxdptr,a;寻址范围为64k字节6、在89s51片内ram中,已知(30h)=38h,(38h)=40h,(40h)=48h,(48h)=90h,请分别分析下段程序按序执行后的结果。mova,40h;a=48hmov r0,a;r0=48hmovp1,#0ffh;p1=ffhmovr0,30h;(48h)
13、=38hmovdptr,#1246h;dptr=1246hmov40h,38h;(40h)=40hmovr0,30h;r0=38hmov90h,r0;(90h)=38hmov 48h,#30h;(48h)=30hmova,r0;a=40hmovp2,p1;p2=38h7、略8、daa 指令的作用是什么?怎样使用?答:对十进制bcd数作加法时进行调整,当结果的低4位a0a3>9,或半进位ac=1,则a0a36,否则不加;当结果的高4位a4a7>9,或进位cy=1,则a4a76,否则不加;这条指令是在进行bcd码加法运算时,跟在“add”和“addc”指令之后,用来对bcd码的加法运算
14、结果自动进行修正,使其仍为bcd码表示形式。9、试编程将片外数据存储器60h中的内容传送到片内ram54h单元中。答:movr0,#60hmovxa,r0mov54h,a10、试编程将寄存器r7的内容传送到r1中去。答:mova,r7movr1,a11、已知当前pc值为210h,请用两种方法将程序存储器2f0h中的常数送入累加器a中。答:(1)以程序计数器pc作为基址寄存器mova,#0e0hmovca,a+pc(2)以数据指针dptr作为基址寄存器movdptr,#02f0hmova,#00hmovca,a+dptr12、试说明下段程序中每条指令的作用,并分析当指令执行完后,r0中的内容是什
15、么?movr0,#0a7h;r0=a7h,立即数送寄存器r0xcha,r0;a=a7h,累加器a中的数据与r0中的数据进行交换swapa;a=7ah,累加器a中的高低四位进行交换xcha,r0;r0=7ah,数据交换回r013、请用两种方法实现累加器a与寄存器b的内容交换。答:(1)movr0,a mova,b movb,r0(2)movr0,b xcha,r014、试编程将片外ram中40h单元的内容与r1的内容交换。答:movr0,#40hmovxa,r0xcha,r1movxr0,a15、已知:a=0c9h,b=8dh,cy=1。执行指令 addca,b结果如何? a=57h,cy=1,
16、ov=1,ac=1,p=1执行指令 subba,b结果如何? a=3bh,cy=0,ac=1,ov=116、试编程将片外ram中30h和31h单元中的内容相乘,结果存放在32h(低位)和33h(高位)单元中。答:movr0,#30hmovxa,r0movb,aincr0movxa,r0mulabincr0movxr0,amova,bincr0movxr0,a17、试用3种方法将累加器a中的无符号数乘2.答:(1)movr0,a add a,r0(2)movb,#2 mulab(3)rla18、分析依次执行下列指令的结果:mov30h,#0a4h;(30h)=a4hmova,#0d6h;a=d6
17、hmovr0,#30h;r0=30hmovr2,#47h;r2=47hanla,r2;a=46horla,r0 ;a=e6hswapa;a=6ehcpla;a=91hxrla,#0ffh;a=6ehorl30h,a;(30h)=eeh19、求下列指令执行后,累加器a及psw中进位cy、奇偶位p和溢出位ov的值。(1)当a=5bh时;adda,#8ch(2)当a=5bh时;anla,#7ah(3)当a=5bh时;xrla,#7fh(4)当a=5bh,cy=1时;subba,#0e8h答:(1)a=e7h,cy=1,p=0,ov=0 (2)a=5ah ,p=0 (3)a=24h ,p=0(4)a=
18、72h,cy=1,p=0,ov=020、把累加器a中的低4位数据送到外部数据存储器的2000h单元。答:anla,#ofhmovdptr,#2000hmovxdptr,a21、试说明指令cjne r1,#7ah,10h的作用,若本指令地址为250h,其转移地址是多少?答:指令作用:如果以r1内容为地址的单元中的数据等于7ah,则程序顺序执行,否则转移后继续执行。若本指令地址为250h,则转移地址为250h03h10h= 263h。22、将累加器a中的数据由0递增,加到50,结果在累加器a中。答:clramov r0,#50l1:incadjnzr0,l123、试说明压栈指令和弹栈指令的作用及执
19、行过程。答:压栈(入栈或进栈)指令的作用是将数据存入堆栈中,其执行过程是先将堆栈指针sp的内容加1,然后将直接地址单元中的数据压入sp指向的单元中。若数据已推入堆栈,则sp指向最后推入数据所在的存储单元(即指向栈顶)。弹栈(出栈)指令的作用是将数据从堆栈中取出,其执行过程为先将堆栈指针sp所指出单元的内容送入直接寻址单元中,然后将sp的内容减1,此时sp指向新的栈顶。24、下述程序执行后,sp=?,a=?,b=?。org2000hmovsp,#40hmova,#30hlcall250h;下条指令地址2008h送41h、42h,sp=42hadda,#10hmovb,a;地址为200ahl1:s
20、jmpl1org250hmovdptr,#200ahpushdpl;sp+1=43h,dpl(43h)pushdph;sp+1=44h,dph(44h)ret;200ahpc答:上述程序执行后,sp=42h,a=30h,b=30h。25、发光二极管点亮规律:先是第1和第8个亮,延时一段时间后,第2和第7个亮,延时后,再是第3和第6个亮,延时后,最后是第4和第5个点亮,延时后循环。26、若系统晶振频率为6mhz,求子程序delay的延时时间,若想加长或缩短时间,应该怎样修改?答:delay:movr2,#0fahl1:movr3,#0fahl2:djnzr3,l2djnz r2,l1ret总时间
21、计算:t=4s(250×4s4s)×2504s=251.008ms估算:t=250×4s×250=250ms若想加长延时时间,可以增加循环次数或再加一重循环;若想减小延时时间,可以减少循环次数或较少一重循环。27、p1口连接8个共阳极连接的发光二极管,是编制灯亮移位程序。答:mova,#0fehl1:movp1,arlalcalldelay;delay子程序同上题sjmpl128、试编一程序,将外部数据存储器2100h单元中的高4位置“1”,其余位清“0”。答:movdptr,#2100hmovxa,dptrorla,#0f0hanla,#0f0hmov
22、xdptr,a29、试编程将片内数据存储器40h单元的第0为和第7位置1,其余取反。答:mova,40hcplasetbacc.0setbacc.7mov40h,a30、将a.5与80h位相与的结果,通过p1.4输出。movc,80hanlc,acc.5movp1.4,c31、请用位操作指令,求下列逻辑方程。(1)movc,b.0orlc,p2.1anlc,acc.0orlc,/p3.2movp1.7,c(2)movc,p1.3anlc,acc.2mov20h,cmovc,b.5anlc,/p1.1orlc,20hmovpsw.5,c(3)movc,b.4anlc,/p1.5mov20h,cm
23、ovc,p1.0anlc,/acc.7orlc,20h (è下一行)movp2.3,c第四章 汇编语言程序设计1、编程将片内40h60h单元中的内容送到以3000h为首的存储区内。答:movr1,#40hmovr2,#21hmovdptr,#3000hl1:mova,r1movxdptr,aincr1incdptrdjnzr2,l12、编程计算下列算式的程序(1)23h+45h+abh+03h=mova,#23hadda,#45hadda,#0abhxcha,b;溢出处理addca,#00hxcha,badda,#03h;a中为结果低位,b中为高位(2)cdh+15h-38h-46h
24、=mova,#0cdhadda,#15hsubba,#38hsubba,#46h(3)1234h+8347h=mova,#34hadda,#47hmov30h,amova,#12haddca,#83hmov31,a;30h存结果低位,31h存结果高位(4)ab123h-43adch=clrcmova,#23hsubba,dchmov30h,amova,#0b1hsubba,#3ahmov31h,amova,#0ahsubba,#04hmov32h,a;30h为低位,32h为高位3、设有两个4位bcd码,分别存放在23h、22h单元和33h、32h单元中,求他们的和,并送入43h、42h单元中(
25、低位在低字节,高位在高字节)。答:mova,22hadda,32hmov42h,amova,23haddca,33hmov43h,a4、略5、编程计算片内ram区50h59h单元中数的平均值,结果存放在5ah中。答:movr0,#8movr1,#50hmova,#00hl1:adda,r1incr1djnzr0,l1movb,#8divabmov5ah,a6、编写计算下式的程序。设乘积和平方结果均小于255。a 、b值分别存在片外3001h和3002h单元中,结果存于片外3000h单元中。(1) movdptr,#3001hmovxa,dptrmov30h,a;a暂存30h单元incdplmo
26、vxa,dptrcjnea,30h,l1;是否a=bmova,#25sjmpsavel1:jncl2movb,30hmulabsjmpsavel2:movb,amova,30hdivabsave:movdptr,#3000hmovxdprt,a(2) movdptr,#3001hmovxa,dptrmov30h,aincdptrmovxa,dptradda,30hmovb,amulab; (ab)2mov31h,acjnea,#10,l1sjmpsavel1:jcl2clrcsubba,#10sjmpsavel2:adda,#10save:movdptr,#3000hmovcdptr,a7、设
27、有两个长度均为15的数组,分别存放在以200h和210h为首地址的存储区中,试编程求其对应项之和,结果存放到以220h为首地址的存储区中。答:movdph,#02hmovr1,#15movr2,#00h; 数组1首地址低位movr3,#10h; 数组2首地址低位movr4,#20h; 和首地址低位l1:movdpl,r2movxa,dptrmovr1,amovdpl,r3movxa,dptradda,r1movdpl,r4movxdtpr,aincr2incr3incr4djnzr1,l1sjmp$8、设有100个无符号数,连续存放在以2000h为首地址的存储区中,试编程统计正数、负数和零的个
28、数。答:mov30h,#00h;正数计数器mov31h,#00h;负数计数器mov32h,#00h;零计数器movdptr,#2000hmovr1,#100l4:movxa,dptrincdptrcjnea,#0,l1inc32hsjmpl2l1:jcl3inc30hsjmpl2l3:inc31hl2:djnzr1,l4sjmp$9、将片外数据存储器地址为1000h1030h的数据块,全部搬迁到片内ram 30h60h中,并将原数据块区域全部清零。答:mov r0,#30hmov r2,#31hmov dptr ,#1000hlp:movx a,dptrmov r0,aand a,#00hmo
29、vx dptr,ainc r0inc dptrdjnz r2,lpsjmp$10、试编写一子程序,是r1、r0指向的两个片外ram连续单元中的高4位二进制数,合并成一个字节,装入累加器a中。已知r0指向低地址,并要求该单元高四位放在a中高四位。答:movxa,r1anla,#0f0hswapamovr2,amovxa,r0anla,#0f0horla,r211、试编程把以2040h为首地址的连续50个单元的无符号数按降序排列,存放到以3000h为首地址的存储区中。答:movr2,#50movr3,#20hmovr4,#40h;源地址movr5,#30hmovr6,#00h;目的地址send:m
30、ovdph,r3;send将2040h数据块移入3000h存储区movdpl,r4movxa,dptrincdptrmovr3,dphmovr4,dplmovdph,r5movdpl,r6movxdptr,aincdptrmovr5,dphmovr6,dpldjnzr2,sendmovr2,#49;重复次数cmp1:movdptr,#3000hmovr3,#49;比较次数cmp2:movxa,dptrmovb,aincdptrmovxa,dptrcjnea,b,l1l1:jcnomovemov30h,aclrcmova,dplsubba,#01hmovdpl,amova,30hmovxdptr
31、,aincdptrmova,bmovxdptr,anomove:djnzr3,cmp2;50个数重复一遍?djnzr2,cmp1;排序结束?ljmp$12、试编一查表程序,从首地址为2000h,长度为100的数据块中找出ascii码为a,将其地址送到20a0h和20a1h单元中。答:movdptr,#2000hmovr2,#100go_on:movxa,dptrcjnea,#41h,ifendmova,dphmovb,dplmovdptr,#20a0hmovxdptr,aincdptrxcha,bmovxdptr,asjmpoverifend:incdptrdjnzr2,go_onover:s
32、jmpover13、设在200h204h单元中,存放5个压缩bcd码,编程将他们转换成ascii码,存放到以205h单元为首地址的存储区。答:movr2,#05hmovr3,#02hmovr4,#00hmovr5,#02hmovr6,#05hchlp:movdph,r3movdpl,r4movxa,dptrincdptrmovr3,dphmovr4,dplmovb,aswapaanla,#0fhorla,#30hmovdph,r5movdpl,r6movxdptr,aincdptrmova,banla,#0fhorla,#30hmovxdptr,amovr5,dphmovr6,dpldjnzr
33、2,chlp14、有一无符号数据块长度在30h单元中,其首地址为31h单元,求出数据块中最大值,并存入40h中。答:movr0,#31hmovr1,30hmov40h,#00hloop:mova,r0cjnea,40h,l1sjmpagainl1:jncl2sjmpagainl2:mov40h,aagain:incr0djnzr1,loopsjmp$15、略16、在以2000h为首地址的存储区内,存放20个用ascii码表示的09之间的数,试编程,将它们转换成bcd码,并以压缩bcd码的形式存在3000h3009h单元中。答:movr2,#10movr3,#20hmovr4,#00hmovr5
34、,#30hmovr6,#00hlp:movdph,r3movdpl,r4movxa,dptranla,#0fhswapaxcha,bincdptrmovxa,dptranla,#0fhorla,bincdptrmovr3,dphmovr4,dplmovdph,r5movdpl,r6movxdptr,aincdptrmovr5,dphmovr6,dpldjnzr2,lpsjmp$17、试编程实现下列逻辑表达式功能。设p1.7p1.0为8个变量的输入端,而其中p1.7又作为变量的输出端。;输入端定义x0equp1.0x1equp1.1x2equp1.2x3equp1.3x4equp1.4x5equ
35、p1.5x6equp1.6x7equp1.7(1)movc,x0anlc,x1anlc,/x2orlc,x3mov00h,cmovc,x4anlc,x5anlc,x6orlc,/x7orlc,00hmovp1.7,c(2)movc,x0anlc,x1cplcmov00h,cmovc,x2anlc,x3anlc,x4cplcmov01h,cmovc,x5anlc,x6anlc,x7cplcorlc,o1hcplcorlc,00hmovp1.7,c18、略 19、略20、试编写延时1s、1min、1h子程序。;单片机时钟fosc=12mhz,计算为近似值;1s延时子程序dly_1s:movr0,#
36、10l3:movr1,#200l2:movr2,#250l1:djnzr2,l1djnzr1,l2djnzr0,l3ret;延时1mindly_1m:movr3,#60l4:lcalldly_1sdjnzr3,l4ret;延时1hdly_1h:movr4,#60l5:lcalldly_1mdjnzr4,l5ret21、用程序实现c=a2+b2。设a、b均小于10,a存在31h单元中,b存在32h单元中,c存33h单元。答:org1000hsr:mova,31hacallsqrmovr1,amova,32hacallsqradda,r1mov33h,asjmp$;求平方子程序如下(采用查平方表的
37、方法)sqr:incamovca, a+pc rettable:db 0, 1, 4, 9, 16db 25,36,49,64,81end22、如何实现将内存单元40h60h的数逐个对应传到片外2540h2560h单元中?答:movr0,#40hmovdptr,#2540hmovr2,#21hl1:mova,r0movxdptr,aincr0incdptrdjnzr2,l1sjmp$23、参考21题24、参考21题25、参考实验程序26、参考实验程序第五章 定时/计数器1、89s51单片机内部有几个定时/计数器,他们有哪些专用寄存器组成?答:89s51单片机内部有两个16位定时/计数器,为定时
38、器0(t0)和定时器1(t1)。在定时器/计数器的16位的计数器是由两个8位的专用寄存器th0、tl0,th1、tl1组成。2、89s51单片机的定时/计数器有哪几种工作方式,各有什么特点?答:定时器/计数器有四种工作方式:方式0,方式1,方式2,方式3。其中,方式3只适用于t0。以t0为例:方式0,16位寄存器只用了13位,tl0的高三位未用。由th0的8位和tl0的低5位组成一个13位计数器;方式1,和方式0的工作相同,唯一的差别是th0和tl0组成一个16位计数器;方式2,把tl0配置成一个可以自动恢复初值的8位计数器,th0作为常数缓冲器。th0由软件预置值。当tl0产生溢出时,一方面
39、使溢出标志tf0置1,同时把th0中的8位数据重新装入tl0中;方式3,将使tl0和th0成为两个相互独立的8位计数器,tl0利用t0本身的一些控制,它的操作与方式0和方式1类似。而th0被规定为只用作定时器功能,对机器周期计数,并借用了t1的控制位tr1和tf1。在这种情况下th0控制了t1的中断。这时t1还可以设置为方式02,用于任何不需要中断控制的场合,或者用作串行口的波特率发生器。3、定时/计数器用作定时方式时,其定时时间与哪些因素有关?作为计数时,对外界计数频率有何限制?答:定时/计数器作定时时,其计数脉冲由系统振荡器产生的内部时钟信号12分频后提供。定时时间与时钟频率和定时初值有关
40、。定时/计数器作计数时,由于确认1次负跳变要花2个机器周期,即24个振荡周期,因此外部输入的计数脉冲的最高频率为系统振荡器频率的1/24。4、当定时器t0用作方式3时,由于tr1位已被t0占用,如何控制定时器t1的开启和关闭?答:定时器t0用作方式3时,由于tr1位已被t0占用,此时通过控制位c/t切换其定时或计数器工作方式。当设置好工作方式时,定时器t1自动开始运行,若要停止,只需送入一个置定时器t1为方式3的方式字。5、已知89s51单片机系统时钟频率为24mhz,请利用定时器t0和p1.2输出矩形脉冲。矩形波高电平宽度50µs,低电平宽度350µs。答:org 100
41、0hmov tmod,02h ;设置工作方式mov th0,09ch;设置定时器初值mov tl0,09chsetb tr0;启动定时器loop:setbp1.2;p1.0输出高电平movr0,07hdel:jbc tf0,rep;定时是否到?ajmp delrep:setbp1.2;p1.0输出低电平djnzr0,delajmp loopend6、在89s51单片机中,已知时钟频率为12mhz,请编程使p1.0和p1.1分别输出周期为2ms和500s的方波。答:选择方式2,用定时器t1movtmod,#20hmovth1,#06hmovtl1,#06hsetbtr1l1:movr2,#04h
42、l2:jnbtf1,$clrtf1,cplp1.1djnzr2,l2cplp1.0ljmpl17、设系统时钟为24mhz,试用定时器t0做外部计数器,编程实现每计到1000个脉冲,是t1开始2ms定时,定时时间到后,t0又开始计数,循环往复。答:movtmod,#15h;t1定时方式1,t0计数方式1l1:movth0,#0fchmovtl0,#18hsetbtr0jnbtf0,$clrtr0clrtf0movth1,# hmovtl1,# hsetbtr1jnbtf1,$clrtr1clrtf1ljmpl18、略9、略第六章 80c51的串行接口1、什么是串行异步通信?他有哪些特点?有哪几种
43、帧格式?答:串行通信即所传输数据的各位按顺序一位一位的发送或接收。串行通信分为同步和异步两种方式。在异步通信中数据或字符是一帧一帧地传送的。帧定义为一个字符的完整的通信格式,通常也称为帧格式。它的主要特点:由于异步通信每传送一帧有固定的格式,通信双方只需按约定的帧格式来发送和接收数据,所以硬件结构比同步通信方式简单;此外它还能利用校验位检测错误。帧格式的一般形式是先用一个起始位“0”表示字符的开始,然后是数据位,其后是奇偶校验位,最后是停止位,用以表示字符结束。2、某异步通信接口按方式3传送,已知其每分钟传送3600个字符,计算其传送波特率。答:设每个字符由1个起始位、8个数据位、1个可编程位
44、和1个结束位组成,其传送波特率为: 11b×3600/60s=660bps3、80c51单片机的串行口由哪些基本功能部件组成?答: 80c51单片机的串行口基本功能部件主要有:两个数据缓冲寄存器sbuf,一个串行口控制寄存器scon,一个输入移位寄存器。4、80c51单片机的串行口有几种工作方式?几种帧格式?如何设置不同方式的波特率?答:80c51单片机的串行口有四种工作方式,由串行口控制寄存器中的sm0、sm1控制。80c51单片机的串行通信有8位、10位、11位三种帧格式。波特率设置:4种工作方式波特率的计算方法不同,其中方式0和方式2的波特率是固定的,方式1和方式3的波特率是可
45、变的,均由定时器t1的溢出率控制。具体计算如下:方式0:波特率固定为时钟频率的1/12,不受smod的影响。(smod为波特率倍增位)方式1的波特率=2smod/32×定时器t1的溢出率 方式2的波特率=2smod/64×fosc方式3的波特率=2smod/32×定时器t1的溢出率5、为什么定时器t1用作串行口波特率发生器时,常采用工作方式2?答:在串行通信中,收发双方对发送或接收的数据速率(即波特率)要有一定的约定。串口有四种工作方式,其中方式0和方式2的波特率是固定的,而方式1和方式3的波特率是可变的,有定时器t1的溢出率控制。定时器t1用作串行口波特率发生器
46、时,因为工作方式2是自动重装载方式,因而定时器t1作波特率发生器常采用工作方式2.6、已知定时器t1设置成方式2,用作波特率发生器,系统时钟频率为24mhz,求可能产生的最高和最低的波特率是多少?答:最高波特率:th1=0ffh,tl1=0ffh波特率最高=2/32×24m/(12×(256255)bps=0.125mbps最低波特率:th1=00h,tl1=00h波特率最低=1/32×24m/(12×(2560)bps=244bps9、串行口异步通信时,ascii码“3”的字符格式(10位)如何?答:串行口异步通信时,10位的数据帧结构为:一个起始位(
47、0),8个数据位(先低位后高位),一个停止位(1)。故ascii码“3” 的字符格式为:0110011001b。10、若选用定时器t1作波特率发生器,设fosc=6mhz,计数初值为0fdh,smod=1,求波特率是多少?答:若选用定时器t1作波特率发生器,波特率由下式确定:波特率=(定时器t1溢出率)/n公式中:n为32或16,取决于特殊功能寄存器pcon中的smod位的状态。若smod=0,则n=32。若smod=1,则n=16。定时器t1溢出率=定时器t1的溢出次数/秒。由题可知:fosc=6mhz,计数初值为0fdh,smod=1,故第七章 中断系统1、什么是中断?在单片机中中断能实现
48、哪些功能?答:中断是通过硬件来改变cpu程序运行方向。计算机在执行程序过程中,由于cpu以外的原因,有必要尽快终止当前程序的执行,而去执行相应的处理程序,待处理结束后,在回来继续执行被终止的原程序。这种程序在执行过程中由于外界的原因而被中间打断的情况成为“中断”。中断能实现的功能:(1)能实现中断及返回。(2)能实现优先权的排队。(3)能实现中断的嵌套。2、什么是中断优先级?中断优先级处理的原则是什么?答:通常,在系统中会有多个中断源,有时会出现两个或更多个中断源同时提出中断请求的情况,这就要求计算机能区分各个中断源的请求,有能确定首先为哪一个中断源服务。为了解决这一问题,通常给各中断源规定了优先级别,称为优先权或中断优先级。中断优先级处理原则:两个或两个以上的中断源同时提出中断申请时,计算机首先为中断优先权最高的中断服务,服务结束以后,再响应级别较低的中断源。3、80c51有几个中断源,各中断标志如何产生的,又如何清“0”的?cpu响应中
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 乡村振兴可行性研究报告(5篇)
- 结算协议书范本(10篇)
- 关于礼仪广播稿(18篇)
- 体育营销与社会责任-洞察分析
- 《客服新人培训》课件
- 网络拥塞缓解策略-洞察分析
- 水泥生产线能耗监测-洞察分析
- 微生物酶催化合成研究-洞察分析
- 同学聚会策划方案范文
- 无人驾驶汽车在物流配送中的应用-洞察分析
- GB/T 45076-2024再生资源交易平台建设规范
- 四川省巴中市2021-2022学年九年级上学期期末语文试题(解析版)
- 冬季防冻培训课件
- 职业卫生监督检查表
- 幼儿系列故事绘本课件贝贝熊系列-受人冷落-
- 消防水池 (有限空间)作业安全告知牌及警示标志
- 2022年中医药人才培养工作总结
- 精美小升初简历小学生自我介绍欧式word模板[可编辑]
- 采矿学课程设计陈四楼煤矿1.8mta新井设计(全套图纸)
- 201X最新离婚协议书(简洁版)
- 标签打印流程
评论
0/150
提交评论