版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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存储器空间在物理结构上设有4 个存储器空间:片内程序存储器、片外程序存储器、 片内数据存储器、片外数据存储器。在逻辑上有3 个存储器地址空间:片内、片外统一的64KB程序存 储器地址空间,片内256B数据存储器地址空间,片 外64KB的数据存储器地址空间。4、开机复位后,CPU使用的是哪组工作寄存器?他 们的地址是多少? CPU如何确定和改变当前工作寄 存器组? 答:开机复位
3、后,CPU使用的是第0组工作寄存器, 地址为00H07H, CPU通过改变状态字寄存器PSW 中的RSO和RS1来确定工作寄存器组。5、什么是堆栈?堆栈有何作用?在程序设计时,有时为什么要对堆栈指针SP重新赋值?如果CPU在操 作中要使用两组工作寄存器,SP应该多大?答:堆栈是一个特殊的存储区,主要功能是暂时存 放数据和地址,通常用来保护断点和现场。堆栈指 针SP复位后指向07H单元,00H-1FH为工作寄存器 区,20H2FH为位寻址区,这些单元有其他功能, 因此在程序设计时,需要对SP重新赋值。如果CPU 在操作中要使用两组工作寄存器,SP应该至少设置为 OFHo6、89s51/52的时钟
4、周期、机器周期、指令周期是如 何分配的?当振荡频率为8MHz时,一个单片机周期 为多少微秒?答:时钟周期为时钟脉冲频率的倒数,他是单片机 中最基本的、最小的时间单位。机器周期是指完成 一个基本操作所需要的时间,一个机器周期由12个 时钟周期组成。指令周期是执行一条指令所需要的 时间,由若干个机器周期组成。若fosc=8MHz,则一个机器周期=1/8X12 u s=1.5ns7、89s51/52扩展系统中,片外程序存储器和片外数 据存储器共处同一地址空间为什么不会发生总线冲 突?答:访问片外程序存储器和访问数据存储器使用不 同的指令用来区分同一地址空间。8、程序状态字寄存器PSW的作用是什么?常
5、用状态 标志有哪些位?作用是什么?答:程序状态字PSW是8位寄存器,用于存放程序 运行的状态信息,PSW中各位状态通常是在指令执行 的过程中自动形成的,但也可以由用户根据需要采 用传送指令加以改变。各个标志位的意义如下:PSW.7 (Cy):进位标志位。PSW.6 (AC):辅助进位标志位,又称为半进位 标志位。PSW.5 (F0):用户标志位。PSW.4、PSW.3 (RS1和RSO):寄存器组选择位。PSW.2 (0V):溢出标志位。PSW. 1 (空缺位):此位未定义。PSW.O (P):奇偶校验位。9、位地址7cH和字节地址7cH有何区别?位地址7cH 具体在内存中什么位置?答:字节地
6、址7cH是片内数据存储器中的一个地址 单元,该地址单元中可以存放8位二进制数,位地 址7cH是内部数据存储器中位寻址区中的一位,该 地址单元中可以存放1位二进制数。位地址7cH具 体在片内数据存储器字节地址为2FH中的第4位(2FH.4)o10、89S51/52中4个I/O端口的作用是什么? 89S51/52的片外三总线是如何分配的?答:I/O端口是单片机与外界联系的重要通道,实现 与外部设备的信息的传输。总线分配:片外数据总 线(8根)通过P0 口输出,片外地址总线(16根) 通过P0 口(低8位)和P2 口(高8位)输出,片 外控制总线(PSEN , ALE , RD , WR , EA)
7、主要通过P3 口 o 11、89s51/52中4个I/O端口在结构上有何异同?89S51/52单片机的4个I/O 口在结构上是基本相同的,但又各具特点。这四个端口都是8位双向 口,每个端口都包括一个锁存器、一个输出驱动器 和输入缓冲器。在无片外扩展存储器的系统中,这 四个端口的每一位都可以作为双向通用I/O端口使 用。在作为一般的通用I/O输入时,都必须先向锁 存器写入“1”,使输出驱动场效应管FET截止,以 免误读数据。各自特点如下:(1) PO o为双向8位三态I/O 口,它既可作为 通用I/O 口,又可作为外部扩展时的数据总线及低8 位地址总线的分时复用口。作为通用I/O 口时,输 出数
8、据可以得到锁存,不需外接专用锁存器;输入 数据可以得到缓冲,增加了数据输入的可靠性。每 个引脚可驱动8个TTL负载。(数字电路按工艺有肖特基双极晶体管和CMOS工艺两种,使用双极晶体管的数字电路 称TTL数字电路,单片机输出端带去载能力,意思就是单片机的P3端口只能并联4个TTL型集成电路输 入端。)(2) P1 口为8位准双向I/O 口,内部具有上拉 电阻,一般作通用I/O 口使用,它的每一位都可以 分别定义为输入线或输出线,作为输入时,锁存器 必须置1。每个引脚可驱动4个TTL负载。(3) P2 口为8位准双向I/O 口,内部具有上拉电阻,可直接连接外部I/O设备。它与地址总线高8 位复用
9、,可驱动4个TTL负载。一般作为外部扩展 时的高8位地址总线使用。(4)P3 口为8位准双向I/O 口,内部具有上拉电阻, 它是双功能复用口,每个引脚可驱动4个TTL负载。 作为通用I/O 口时,功能与P1 口相同,常用第二功 能。12、复位的作用是什么?有几种复位方法?复位后 单片机的状态如何?答:复位是单片机的初始化操作。单片机在RST引 脚产生两个机器周期(即24个时钟周期)以上的高 电平即可实现复位。主要的复位方法有上电自动复 位和按键手动复位两种。按键手动复位又分:按键 电平复位和按键脉冲复位。第三章指令系统1、简述下列名词术语的基本概念:指令、指令系统、 程序、汇编语言指令答:指令
10、:规定单片机进行某种操作的命令称为指 令。指令系统:单片机能够执行的各种指令的集合。程序:一系列指令的有序集合称为程序。汇编语言指令:用助记符形式来表示机器指令。2、80C51单片机有哪几种寻址方式?这几种寻址方 式是如何寻址的?答:共7种寻址方式,分别为:寄存器寻址,直接 寻址,寄存器间接寻址,立即寻址,变址寻址,位 寻址和相对寻址。寄存器寻址方式:由指令指出某一寄存器的内容 做为操作数。直接寻址方式:指令中操作数直接以单元地址的 形式给出。寄存器间接寻址方式:寄存器间接寻址方式,寄 存器中存放的则是操作数的地址,即操作数是通过 寄存器间接得到的。立即寻址方式:操作数在指令中直接给出。变址寻
11、址方式:变址寻址是为了访问程序存储器 中的数据和表格。MCS-51的变址寻址是以DPTR或 PC作基址寄存器,以累加器A作变址寄存器,并以 两者内容相加形成的16位地址做为操作数地址, 以达到访问数据和表格的目的。位寻址方式:指对片内RAM的位寻址区和某些可 寻址的特殊功能寄存器进行位操作的寻址方式。相对寻址方式:相对寻址方式是为解决程序转移 而专门设置的,为转移指令所采用。3、要访问特殊功能寄存器和片外数据寄存器,应采 用哪些寻址方式?答:访问特殊功能寄存器可以采用直接寻址、寄存 器寻址和位寻址(针对可以进行位寻址的特殊功能 寄存器)方式。访问片外数据存储器可采用寄存器 间接寻址方式。4、8
12、0C51单片机的指令系统可以分为哪几类?说明各指令的功能。答:51单片机指令系统按功能可分为5类:(1)数据传送指令等;(2)算术运算指令算;(3)逻辑运算指令算;(4)控制转移指令 制;(5)位操作指令主要进行数据的传送、交换 主要进行基本的加减乘除运 主要实现逻辑运算与移位运 主要是实现对程序流程的控5、外部数据传送指令有哪几条?有和区别?答:外部数据传送指令有读指令和写指令两类,每 类指令的寻址范围不同,分别为:读外部存储器指令:MOVXA, Ri ;寻址范围为 256字节MOVXA, DPTR ;寻址范围为64K字节写外部存储器指令:MOVXRi, A ;寻址范围为 256字节MOVX
13、DPTR, A ;寻址范围为64K字节6、在 89s51 片内 RAM 中,已知(30H) =38H, (38H)=40H, (40H) =48H, (48H) =90H,请分别分析下段 程序按序执行后的结果。MOV A, 40HMOV RO, A;A=48H;R0=48H-9 -;P1=FFH;(48H) =38H;DPTR=1246H;(40H) =40H;R0=38H;(90H) =38H;(48H) =30H;A=4OH;P2=38HMOVP1, #OFFHMOVR0, 30HMOV DPTR, #1246HMOV 40H, 38HMOVRO, 30HMOV90H, ROMOV 48H
14、, #30HMOVA, R0MOVP2, P1 7、略 8、DA A指令的作用是什么?怎样使用?答:对十进制BCD数作加法时进行调整,当结果的 低 4 位 A0A39,或半进位 AC=1,AO-A3+6,否则不加;当结果的高4位A4A79,或进位CY=1, 则A4A7+6,否则不加;这条指令是在进行BCD 码加法运算时,跟在“ADD”和“ADDC”指令之后, 用来对BCD码的加法运算结果自动进行修正,使其 仍为BCD码表示形式。9、试编程将片外数据存储器60H中的内容传送到片 内RAM54H单元中。答:MOV RO, #60HMOVXA, R0MOV 54H, A10.试编程将寄存器R7的内容
15、传送到R1中去。答:MOVA, R7MOVR1, A11、已知当前PC值为21 OH,请用两种方法将程序存 储器2F0H中的常数送入累加器A中。答:(1)以程序计数器PC作为基址寄存器MOV A, #OEOHMOVCA, A+PC(2)以数据指针DPTR作为基址寄存器MOV DPTR, #02F0HMOV A, #OOHMOVCA, A+DPTR12、试说明下段程序中每条指令的作用,并分析当 指令执行完后,R0中的内容是什么?MOV RO, #0A7H; R0=A7H,立即数送寄存器ROXCH A, RO ; A=A7H,累加器A中的数 据与RO中的数据进行交换SWAPA ; A=7AH,累加
16、器A中的高低四 位进行交换XCH A, RO ; R0=7AH,数据交换回 R0 13、请用两种方法实现累加器A与寄存器B的内容 交换。答:(1) MOV RO, AMOVA, BMOVB, RO(2) MOV RO, BXCHA, RO14、试编程将片外RAM中40H单元的内容与R1的内 容交换。答:MOV RO, #4OH MOVXA, RO XCH A, R1 MOVXRO, A 15、已知:A=0C9H, B=8DH, CY=1O 执行指令ADDC A, B结果如何? A=57H,CY=1, 0V=1, AC=1, P=1执行指令SUBB A, B结果如何? A=3BH, CY=O,
17、AC=1, 0V=1 16、试编程将片外RAM中30H和31H单元中的内容 相乘,结果存放在32H (低位)和33H (高位)单元 中。 答:MOV RO, #30HMOVXA, R0 MOV B, A INC RO MOVXA, R0 MUL AB INC RO MOVXRO, A MOV A, B INC ROMOVXRO, A17、试用3种方法将累加器A中的无符号数乘2.答:(1) MOV RO, AADD A, RO(2) MOVB, #2MULAB(3) RL A 18、分析依次执行下列指令的结果:MOV 30H. #OA4H ; (30H) =A4HMOVA, #0D6HMOVRO
18、, #30HMOVR2, #47HANLA, R2ORLA, R0SWAPACPLAXRLA, #OFFHORL30H, A;A=D6H;R0=30H;R2=47H;A=46H;A=E6H A=6EH;A=91H;A=6EH;(30H) =EEH19、求下列指令执行后,累加器A及PSW中进位CY、奇偶位P和溢出位0V的值。(1)当 A=5BH 时 ;ADD A, #8CH(2)当 A=5BH 时;ANL A, #7AH(3)当 A=5BH 时;XRL A, #7FH(4)当 A=5BH, CY=1 时;SUBBA, #0E8H答:(1) A=E7H, CY=1, P=0, 0V=0(2) A=
19、5AH , P=0(3) A=24H , P=0(4) A=72H, CY=1, P=0, 0V=020、把累加器A中的低4位数据送到外部数据存储 器的2000H单元。答:ANL A, #0FHMOV DPTR, #2000HMOVXDPTR, A21、试说明指令CJNE R1, #7AH, 10H的作用,若 本指令地址为250比其转移地址是多少?答:指令作用:如果以R1内容为地址的单元中的数 据等于7AH,则程序顺序执行,否则转移后继续执行。 若本指令地址为250H,则转移地址为250H+03H+ 10H= 263Ho22、将累加器A中的数据由0递增,加到50,结果 在累加器A中。答:CLR
20、 AMOV RO, #50L1:INC ADJNZRO, L123、试说明压栈指令和弹栈指令的作用及执行过程。 答:压栈(入栈或进栈)指令的作用是将数据存入 堆栈中,其执行过程是先将堆栈指针SP的内容加1, 然后将直接地址单元中的数据压入SP指向的单元 中。若数据已推入堆栈,则SP指向最后推入数据所 在的存储单元(即指向栈顶)。弹栈(出栈)指令的作用是将数据从堆栈中取出, 其执行过程为先将堆栈指针SP所指出单元的内容送 入直接寻址单元中,然后将SP的内容减1,此时SP 指向新的栈顶。24、下述程序执行后,SP=? , A=? , B=? oORG2000HMOVSP, #40HMOVA, #3
21、0HLCALL250H;下条指令地址2008H送41H、42H,SP=42HADDA, #10HMOVB, A;地址为200AHL1: SJMPL1ORG 250HMOV DPTR, #200AHPUSHDPL;SP+1=43H, DPL- (43H)PUSHDPH;SP+1=44H, DPH-4 (44H)RET;200AHTPC答:上述程序执行后,SP=42H, A=30H, B=30Ho25、发光二极管点亮规律:先是第1和第8个亮, 延时一段时间后,第2和第7个亮,延时后,再是 第3和第6个亮,延时后,最后是第4和第5个点 亮,延时后循环。26、若系统晶振频率为6MHz,求子程序DELA
22、Y的延 时时间,若想加长或缩短时间,应该怎样修改? 答:DELAY: MOVR2, #OFAHL1: MOVR3, #OFAHL2: DJNZR3, L2DJNZ R2, L1RET总时间计算:T=4 u s+ (250X4 rs+4 us) X250 +4 u s=251.008ms估算:T=250X4rsX250=250ms 若想加长延时时间,可以增加循环次数或再加一重 循环;若想减小延时时间,可以减少循环次数或较少一重循环。27、P1 口连接8个共阳极连接的发光二极管,是编 制灯亮移位程序。答:MOV A, #OFEHL1: MOV P1, ARL ALCALL DELAY ; DELA
23、Y子程序同上题SJMPL128、试编一程序,将外部数据存储器2100H单元中 的高4位置“1”,其余位清“0”。答:MOV DPTR, #2100HMOVXA, DPTRORLA, #OFOHANLA, #OFOHMOVXDPTR, A29、试编程将片内数据存储器40H单元的第。为和 第7位置1,其余取反。答:MOV A, 40HCPL ASETBACC. 0SETBACC. 7MOV 4OH, A30、将A. 5与80H位相与的结果,通过P1.4输出。MOVC, 80HANLC, ACC. 5MOV P1.4, C31、请用位操作指令,求下列逻辑方程。(1 ) P1.7 = A CC.O x
24、 (?.0 + P2.1) + P32MOVC, B. 0ORLC, P2.1ANLC, ACC. 0ORLC, /P3. 2MOVP1.7, C(2) PSW.5 = Pl .3 x ACC.2 + B.5xPTMOVC, P1.3ANLC, ACC. 2MOV20H, CMOVC, B. 5ANL0, /P1.1ORLC, 20HMOVPSW. 5, C(3) P2.3 = PL5x.4 + ACC.7xP1.0MOV C, B. 4ANLC,/P1.5MOV20H, CMOVC,P1.0ANLC,/ACC. 7ORL C, 20H(“下一行)MOV P2.3, C第四章汇编语言程序设计1
25、、编程将片内40H60H单元中的内容送到以3000H 为首的存储区内。答:MOVR1, #40HMOVR2, #21HMOV DPTR, #3000HL1: MOV A, R1 MOVXDPTR, A INC R1 I NG DPTRDJNZR2, L12、编程计算下列算式的程序 (1) 23H+45H+ABH+03H=MOVA,#23HADDA,#45HADDA,#OABHXCHA,B ;溢出处理ADDCA, #00HXCHA, BADDA, #03H; A中为结果低位,B中为高位(2) CDH+15H-38H-46H=MOVA, #OCDHADDA, #15HSUBBA, #38HSUBB
26、A, #46H(3) 1234H+8347H=MOVA, #34HADDA, #47HMOV 30H, AMOV A, #12HADDCA, #83HMOV 31, A ; 30H存结果低位,31H存 结果高位(4) AB123H-43ADCH=CLR CMOV A, #23HSUBBA, DCHMOV 30H, AMOV A, #OB1HSUBBA, #3AHMOV 31H, AMOV A, #OAHSUBBA, , #04H42H单元中 答:MOVADDMOVMOVMOV 32H, A ; 30H为低位,32H为高位 3、设有两个4位BCD码,分别存放在23H、22H单 元和33H、32H
27、单元中,求他们的和,并送入43H、 (低位在低字节,高位在高字节)。A, 22HA, 32H42H, AA, 23HADDCA, 33HMOV 43H, A4、略5、编程计算片内RAM区50H59H单元中数的平均值,答:结果存放在5AH中oL1:MOVMOVMOVADDRO, #8R1, #50HA, #00HA, R1INC R1DJNZRO, L1MOV B, #8DIV ABMOV 5AH, A6、编写计算下式的程序。设乘积和平方结果均小于 255o a、b值分别存在片外3001H和3002H单元中, 结果存于片外3000H单元中。25= b(1 ) Y = a x b, a bMOV
28、DPTR, #3001HMOVXA, DPTRMOV 30H, A ; a 暂存 30H 单元INC DPLMOVXA, DPTRCJNEA, 30H, L1 ;是否 a=bMOV A, #25SJMPSAVEL1: JNC L2MOV B, 30HMUL ABSJMPSAVEL2: MOV B, AMOV A, 3OHDIV ABSAVE: MOV DPTR, #3000HMOVXDPRT, Af( + Z?)2+10,(a + 0)2 10(2) Y = 10MOV DPTR, #3001HMOVXA, DPTR MOV 30H, A I NG DPTRMOVXA, DPTR ADD A,
29、 30HMOVB, AMUL AB ; (a+b)2MOV 31H, ACJNEA, #10, L1 SJMPSAVEL1: JC L2 CLR CSUBBA, #10 SJMPSAVEL2: ADD A, #10SAVE: MOV DPTR, #3000HMOVCDPTR, A7、设有两个长度均为15的数组,分别存放在以200H和210H为首地址的存储区中,试编程求其对应项之和,结果存放到以220H为首地址的存储区中。答:MOV MOV MOV MOV MOVL1: MOVDPH, #02HR1, #15R2, #00HR3, #10HR4, #20HDPL, R2; 数组1首地址低位; 数
30、组2首地址低位; 和首地址低位MOVXA, DPTR MOV R1, A MOV DPL, R3 MOVXA, DPTR ADD A, R1MOV DPL, R4 MOVXDTPR, A INC R2 INC R3 INC R4DJNZR1, L1SJMP$8、设有100个无符号数,连续存放在以2000H为首 地址的存储区中,试编程统计正数、负数和零的个数。;正数计数器;负数计数器;零计数器答:MOV30H,#00HMOV31H,#00HMOV32H,#00HMOV DPTR, #2000HMOVR1, #100L4: MOVXA, DPTRINC DPTRCJNEA, #0, L1INC 3
31、2HSJMPL2L1: JC L3INC 30HSJMPL2L3:INC 31HL2: DJNZR1, L4SJMP$9、将片外数据存储器地址为1000H1030H的数据 块,全部搬迁到片内RAM 30H60H中,并将原数据 块区域全部清零。答:MOVRO, #30HMOVR2, #31HMOV DPTR , #1000H LP: MOVX A, DPTRMOV R0, AAND A, #00H MOVX DPTR, A INC RO INC DPTR DJNZ R2, LP SJMP$10、试编写一子程序,是R1、R0指向的两个片外RAM连续单元中的高4位二进制数,合并成一个字节, 装入累加
32、器A中。已知R0指向低地址,并要求该单 元高四位放在A中高四位。答:MOVXA, R1ANL A, #OFOHSWAPAMOV R2, AMOVXA, ROANLA, #OFOHORLA, R211、试编程把以2040H为首地址的连续50个单元的 无符号数按降序排列,存放到以3000H为首地址的 存储区中。答:MOVR2,#50MOVR3,#20HMOVR4,#40H;源地址MOVR5,#30HMOVR6,#00H;目的地址SEND: MOV DPH, R3; SEND 将 2040H数据块移入3000H存储区MOVDPL, R4MOVXA, DPTRINCDPTRMOVR3, DPHMOVR
33、4, DPLMOVDPH, R5MOVDPL, R6MOVXDPTR, A INC DPTR MOVR5, DPHMOVR6, DPLDJNZR2, SEND MOV R2, #49 CMP1: MOV DPTR, #3000HMOV R3, #49 CMP2: MOVXA, DPTRMOV B, A I NG DPTR MOVXA, DPTR CJNEA, B, L1 L1: JC NOMOVEMOV 30H, A CLR C MOV A, DPL SUBBA, #01H MOVDPL, AMOVA, 30HMOVXDPTR, A INC DPTRMOV A, BMOVXDPTR, ANOM
34、OVE: DJNZR3, CMP2; 50 个数重复一遍?DJNZR2, CMP1;排序结束?LJMP$12、试编一查表程序,从首地址为2000H,长度为 100的数据块中找出ASCII码为A,将其地址送到 20A0H和20A1H单元中。答:MOV DPTR, #2000HMOV R2, #100GO ON: MOVXA, DPTRCJNEA, #41H, I FENDMOVA, DPHMOVB, DPLMOV DPTR, #20A0HMOVXDPTR, AINC DPTRXCH A, BMOVXDPTR, ASJMPOVERI FEND: INCDPTRDJNZR2, GO ON OVER:
35、 SJMPOVER13、设在200H204H单元中,存放5个压缩BCD码, 编程将他们转换成ASCII码,存放到以205H单元为 首地址的存储区。答:MOVMOVMOVMOVMOVCHLP: MOVMOVR2, #05HR3, #02HR4, #00HR5, #02HR6, #05HDPH, R3DPL, R4MOVXA, DPTR INCDPTRMOVR3, DPHMOVR4, DPLMOVB, ASWAPA ANLA, #OFHORLA, #30HMOVDPH, R5MOVDPL, R6MOVXDPTR, AINCDPTRMOVA, BANLA, #OFHORLA, #30HMOVXDPT
36、R, AMOVR5, DPHMOVR6, DPLDJNZR2, CHLP14、有一无符号数据块长度在30H单元中,其首地 址为31H单元,求出数据块中最大值,并存入40H 中。答:MOVR0, #31HMOVR1, 30HMOV 40H, #00HLOOP: MOV A, R0CJNEA, 40H, L1SJMPAGAINL1: JNCL2SJMPAGAINL2: MOV40H,AAGAIN: INCRODJNZR1, LOOPSJMP$15、略16、在以2000H为首地址的存储区内,存放20个用 ASCII码表示的。9之间的数,试编程,将它们转 换成BCD码,并以压缩BCD码的形式存在300
37、0H- 3009H单元中。答:MOV MOV MOV MOV MOVLP: MOVMOVR2,R3,R4,R5,R6,#10#20H#00H#30H#00HDPH, R3DPL, R4MOVXA, DPTR ANL A, #OFH SWAPA XCH A, B INC DPTRMOVXA, DPTRANLA, #OFHORLA, BI NGDPTRMOVR3, DPHMOVR4, DPLMOVDPH, R5MOVDPL, R6MOVXDPTR, A INCDPTRMOVR5, DPHMOVR6, DPLDJNZR2, LP SJMP$17、试编程实现下列逻辑表达式功能。设P1.7-P1.0 为
38、8个变量的输入端,而其中P1. 7又作为变量的输 出端。;输入端定义XOEQUP1.0X1EQUP1.1X2EQUP1 . 2X3EQUP1.3X4EQUP1 . 4X5EQUP1.5X6EQUP1.6-31 -ce -0 IdO frX 0 1NV X 0 1NV ZX 0 AON 0 HOO AON0 IdO X 0 1NV OX 0 AON改工+刊+ /X = 4 (Z) 0 ZLdAONHOO0IMOZX/0IdO9X01NV9X01NV蚁0AON0 HOOAONexoiaoZX/01NVLX01NVOX0AONLX + CX + X0X = A ( L)L , Ld fi03 ZXM
39、OVO1H, CMOVC,X5ANLC,X6ANLC,X7CPLCORLC,01HCPLCORLC,OOHMOV P1.7, C18、略19、略20、试编写延时1s、1min. 1h子程序。;单片机时钟fosc=12MHz,计算为近似值 ;1s延时子程序DLY 1S: MOV R0, #10L3:MOVR1, #200L2:MOVR2, #250L1: DJNZR2, L1DJNZR1, L2DJNZRO, L3 RET;延时1minDLY 1M: MOV R3, #60L4: LCALL DLY_1SDJNZR3, L4RET;延时1hDLY 1H: MOV R4, #60L5: LCALL
40、 DLY_1MDJNZR4, L5 RET21、用程序实现c=a2+b2。设a、b均小于10, a存 在31H单元中,b存在32H单元中,c存33H单元。答:ORG 1000HSR: MOV A, 31HACALL SQRMOVR1, AMOVA, 32HACALL SQRADD A, R1MOV 33H, A SJMP$;求平方子程序如下(采用查平方表的方法)SQR:INC AMOVCA, A+PCRETTABLE: DB 0, 1, 4, 9, 16DB 25, 36, 49, 64, 81END22、如何实现将内存单元40H60H的数逐个对应传 到片外2540H2560H单元中?答:MO
41、V RO, #40HMOV DPTR, #2540HMOV R2, #21HL1: MOV A, R0MOVXDPTR, AINC R0INC DPTRDJNZR2, L1SJMP$23、参考21题24、参考21题25、参考实验程序26、参考实验程序第五章定时/计数器1、89S51单片机内部有几个定时/计数器,他们有哪 些专用寄存器组成?答:89S51单片机内部有两个16位定时/计数器,为 定时器0 (TO)和定时器1 (T1) o在定时器/计数 器的16位的计数器是由两个8位的专用寄存器THO、 TLO, TH1、TL1 组成。2、89S51单片机的定时/计数器有哪几种工作方式, 各有什么特
42、点?答:定时器/计数器有四种工作方式:方式0,方式 1,方式2,方式3。其中,方式3只适用于T0。以TO为例:方式0, 16位寄存器只用了 13 位,TLO的高三位未用。由THO的8位和TLO的低5 位组成一个13位计数器;方式1,和方式。的工 作相同,唯一的差别是THO和TLO组成一个16位计 数器;方式2,把TLO配置成一个可以自动恢复初值的8位计数器,THO作为常数缓冲器。THO由软件 预置值。当TLO产生溢出时,一方面便溢出标志TFO 置1,同时把THO中的8位数据重新装入TLO中; 方式3,将使TLO和THO成为两个相互独立的8位计 数器,TLO利用TO本身的一些控制,它的操作与方
43、式0和方式1类似。而THO被规定为只用作定时器 功能,对机器周期计数,并借用了 T1的控制位TR1 和TF1。在这种情况下THO控制了 T1的中断。这时 T1还可以设置为方式。2,用于任何不需要中断控 制的场合,或者用作串行口的波特率发生器。3、定时/计数器用作定时方式时,其定时时间与哪 些因素有关?作为计数时,对外界计数频率有何限 制?答:定时/计数器作定时时,其计数脉冲由系统振荡 器产生的内部时钟信号12分频后提供。定时时间与 时钟频率和定时初值有关。定时/计数器作计数时,由于确认1次负跳变要 花2个机器周期,即24个振荡周期,因此外部输入 的计数脉冲的最高频率为系统振荡器频率的1/24O
44、 4、当定时器TO用作方式3时,由于TR1位已被TO占用,如何控制定时器T1的开启和关闭? -38 -答:定时器TO用作方式3时,由于TR1位已被TO 占用,此时通过控制位C/T切换其定时或计数器工 作方式。当设置好工作方式时,定时器T1自动开始 运行,若栗停止,只需送入一个置定时器T1为方式 3的方式字。5、已知89s51单片机系统时钟频率为24MHz,请利 用定时器TO和P1.2输出矩形脉冲。矩形波高电平 宽度50内,低电平宽度350回。答:ORG 1000HMOV TMOD, #02H MOV THO, #09CH MOV TLO, #09CH SETB TROLOOP: SETBP1.
45、2 MOV RO, #07HDEL: JBC TFO , REP AJMP DELREP: SETBP1.2 DJNZRO, DEL AJMP LOOP ENDU s的方波。;设置工作方式;设置定时器初值;启动定时器;P1.0输出高电平;定时是否到?;P1.0输出低电平答:选择方式2,用定时器T1MOV TMOD, #20HMOVTH1, #06HMOVTL1, #06HSETBTR1L1:MOVR2, #04HL2:JNBTF1, $CLR TF1,GPL P1.1DJNZR2, L2GPL P1.0LJMPL17、设系统时钟为24MHz,试用定时器TO做外部计数 器,编程实现每计到1000
46、个脉冲,是T1开始2ms 定时,定时时间到后,T0又开始计数,循环往复。答:MOV TMOD, #15H ; T1定时方式1, TO计数 方式1L1: MOV THO, #OFCHMOV TLO, #18HSETBTROJNB TFO, $CLR TROCLR TFOMOVTH1, # HMOVTL1, # HSETBTR1 JNB TF1, $ CLR TR1 CLR TF1 LJMPL18、略 9、略第六章80c51的串行接口1、什么是串行异步通信?他有哪些特点?有哪几种 帧格式?答:串行通信即所传输数据的各位按顺序一位一位 的发送或接收。串行通信分为同步和异步两种方式。在异步通信中数据或
47、字符是一帧一帧地传送的。 帧定义为一个字符的完整的通信格式,通常也称为 帧格式。它的主要特点:由于异步通信每传送一帧有固定 的格式,通信双方只需按约定的帧格式来发送和接 收数据,所以硬件结构比同步通信方式简单;此外 它还能利用校验位检测错误。帧格式的一般形式是先用一个起始位“0”表示字 符的开始,然后是数据位,其后是奇偶校验位,最 后是停止位,用以表示字符结束。2、某异步通信接口按方式3传送,已知其每分钟传 送3600个字符,计算其传送波特率。答:设每个字符由1个起始位、8个数据位、1个可 编程位和1个结束位组成,其传送波特率为:11bX3600/60s=660bps3、80C51单片机的串行
48、口由哪些基本功能部件组 成? 答:80C51单片机的串行口基本功能部件主要有:两 个数据缓冲寄存器SBUF, 一个串行口控制寄存器 SC0N, 一个输入移位寄存器。4、80C51单片机的串行口有几种工作方式?几种帧 格式?如何设置不同方式的波特率?答:80C51单片机的串行口有四种工作方式,由串行 口控制寄存器中的SMO、SM1控制。80C51单片机的串行通信有8位、10位、11位三种帧格式。波特率设置:4种工作方式波特率的计算方法不 同,其中方式0和方式2的波特率是固定的,方式1 和方式3的波特率是可变的,均由定时器T1的溢出 率控制。具体计算如下:方式0:波特率固定为时钟频率的1/12,不
49、受SM0D 的影响。(SM0D为波特率倍增位)方式1的波特率=2*00/32X定时器T1的溢出率 方式2的波特率tZag/GlXfosc方式3的波特率=28Moi732X定时器T1的溢出率 5、为什么定时器T1用作串行口波特率发生器时, 常采用工作方式2?答:在串行通信中,收发双方对发送或接收的数据 速率(即波特率)要有一定的约定。串口有四种工 作方式,其中方式0和方式2的波特率是固定的, 而方式1和方式3的波特率是可变的,有定时器T1 的溢出率控制。定时器T1用作串行口波特率发生器 时,因为工作方式2是自动重装载方式,因而定时 器T1作波特率发生器常采用工作方式2.6、已知定时器T1设置成方
50、式2,用作波特率发生器, 系统时钟频率为24MHz,求可能产生的最高和最低的 波特率是多少?答:最高波特率:TH-OFFH, TL1=0FFH波特率最高=2/32X24M/ (12X (256-255)bps=O. 125Mbps最低波特率:TH1=00H, TL1=00H波特率最低=1/32X24M/ (12X (256-0)bps=244bps9、串行口异步通信时,ASCII码“3”的字符格式(10 位)如何?答:串行口异步通信时,10位的数据帧结构为: 一个起始位(0), 8个数据位(先低位后高位), 一个停止位(1 )o故ASCII码“3” 的字符格式为:0110011001Bo10、
51、若选用定时器T1作波特率发生器,设 fosc=6MHz,计数初值为OFDH, SM0D=1,求波特率是 多少?答:若选用定时器T1作波特率发生器,波特率由 下式确定:波特率二(定时器T1溢出率)/n-44 -公式中:n为32或16,取决于特殊功能寄存器 PCON中的SMOD位的状态。若SMOD=O,则32。若SMOD=1,则16。定时器T1溢出率=定时器 T1的溢出次数/秒。由题可知:fosc=6MHz,计数初值为OFDH, SMOD=1,6MHz,八一=10.42kHz16xl2x(256-0FDH)第七章中断系统1、什么是中断?在单片机中中断能实现哪些功能? 答:中断是通过硬件来改变CPU
52、程序运行方向。计 算机在执行程序过程中,由于CPU以外的原因,有 必要尽快终止当前程序的执行,而去执行相应的处 理程序,待处理结束后,在回来继续执行被终止的原程序。这种程序在执行过程中由于外界的原因而被中间打断的情况成为中断能实现的功能:“中断” O(1)能实现中断及返回。(2)能实现优先权的排队。2、什么是中断优先级? 么?(3)能实现中断的嵌套。中断优先级处理的原则是什答:通常,在系统中会有多个中断源,有时会出现 两个或更多个中断源同时提出中断请求的情况,这 就要求计算机能区分各个中断源的请求,有能确定 首先为哪一个中断源服务。为了解决这一问题,通 常给各中断源规定了优先级别,称为优先权或
53、中断 优先级。中断优先级处理原则:两个或两个以上的中断源 同时提出中断申请时,计算机首先为中断优先权最 高的中断服务,服务结束以后,再响应级别较低的 中断源。3、80C51有几个中断源,各中断标志如何产生的, 又如何清“0”的? CPU响应中断时,中断入口地址 各是多少?答:8051单片机有5个中断源,分别是:外部中断 0、定时器T0中断、外部中断1、定时器T1中断、 串行口中断。中断标志产生与清“0” :(1)外部中断:外部中断由外部原因引起,可以通 过两个固定的引脚(丽丽丽D 输入信号。一旦输入 信号有效,则向CPU申请中断并使IE0 (或IE1)=1o 硬件复位。(2)定时器中断:定时器中断是为了满足定时或计 数溢出处理的需要而设置的。当定时/计数器的计数 结构发生计数溢出时,即表明定时时间到或计数次 数到,此时就以计数器溢出信号作为中断请求,去 置一个溢出标志位(TFO或TF1=1) o使用中断时通 过硬件复位,在查询方式下可由软件复位。(3)串口中断:串行中断请求是在单片机内部产生 的。当发送完数据或接收完数据后,就会置相应标 志位(TI或Rl=1) o 一旦响应中断,必须由软件进 行复位。中断入口地址:外部中
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024丁方物业管理与维护合同
- 雇佣合同案例宝库
- 住宿管理承包合同范本
- 2024建设工程设计合同(专业建设工程设计合同)新版
- 旧物品买卖合同格式
- 化妆品店转让合同样本
- 2024年采购管理程序
- 建材加盟合同范本大全
- 全面合伙合同模板集合
- 就业协议书填写指南与示例
- 2024-2025学年浙教版八年级上册科学期中模拟卷
- (正式版)HGT 6313-2024 化工园区智慧化评价导则
- 智能制造工程生涯发展报告
- 二级公立医院绩效考核三级手术目录(2020版)
- 《个人防护用品PPE》ppt课件
- 国际贸易SimTrade外贸实习报告
- 导师带徒实施办法6、30
- 《Fishing with Grandpa》RAZ分级阅读绘本pdf资源
- 水稳施工方案(完整版)
- 跨海大桥施工方案
- MATLAB语言课程论文 基于MATLAB的电磁场数值图像分析
评论
0/150
提交评论