单片机作业及答案 共13页
单片机习题集(含答案)经典
单片机原理及应用习题第一章绪论1-1单项选择1、计算机中最常用的字符信息编码是()。
(A)ASCII (B)BCD码(C)余3码(D)循环码4、十进制0.625转换成二进制数是()。
(A)0.101 (B) 0.111 (C)0.110 (D)0.1005、十六进制数7的ASCII码是()。
(A) 37 (B) 7 (C) 07 (D) 476、十六进制数B的ASCII码是()。
(A) 38 (B) 42 (C) 11 (D) 10117、通常所说的主机是指()(A)运算器和控制器(B)CPU和磁盘存储器(C)CPU和主存储器(D)硬件和软件8、使用单片机实现在线控制的好处不包括( )(A)精确度高(B)速度快(C)成本低(D)能与数据处理结合1-2填空1、计算机中常作的码制有、和。
2、十进制29的二进制表示为。
3、十进制数-29的8位补码表示为。
4、是计算机与外部世界交换信息的载体。
5、十进制数-47用8位二进制补码表示为。
6、-49D的二进制补码为。
7、计算机中的数称为,它的实际值叫。
8、单片机的存储器结构形式有普林斯顿结构(又称冯.依诺曼结构)与哈佛结构,MCS-51存储器采用的是结构。
1-3 问答题1、何谓单片机?单片机与一般微型计算机相比,具有哪些特点?2、单片机主要应用在哪些领域?3、为什么80C51系列单片机能成为8位单片机应用主流?4、举例说明单片机的主要应用领域。
5、二进制数、十进制数、十六进制数各用什么字母尾缀作为标识符?无标识符时表示什么进制数?6、试比较MCS-51,MSP430,EM78,PIC,M6800及AVP等系列单片机的特点。
第二章 MCS-51单片机的硬件结构与工作原理2-1 单项选择1、要MCS-51系统中,若晶振频率屡6MHz,一个机器周期等于( ) μsA 1B 2C 3D 0.52、以下不是构成的控制器部件():A 程序计数器、 B指令寄存器、 C指令译码器、 D存储器3、以下不是构成单片机的部件()A 微处理器(CPU)、B存储器 C接口适配器(I\O接口电路) D 打印机4、下列不是单片机总线是()A 地址总线B 控制总线C 数据总线D 输出总线5、PSW=18H时,则当前工作寄存器是()(A)0组(B)1组(C)2组(D)3组6、P1口的每一位能驱动()(A)2个TTL低电平负载有(B)4个TTL低电平负载(C)8个TTL低电平负载有(D)10个TTL低电平负载7、MCS-51的中断允许触发器内容为82H,CPU将响应的中断请求是( )(A) T0, (B)T1 (C)串行接口 (D) INT08、外部中断0的中断入口地址为()(A)0003H (B)000BH (C)0013H (D)001BH9、内部定时/计数器T0的中断入口地址为()(A)0003H (B)000BH (C)0013H (D)001BH10、在中断服务程序中,至少应有一条( )(A)传送指令(B)转移指令(C)加法指法(D)中断返回指令11、MCS-51有中断源()(A)5个(B)2个(C)3个(D)6个12、在中断流程中有“关中断”的操作,对于外部中断0,要关中断应复位中断允许寄存器的 ( )(A)EA位和ET0位(B)EA位和EX0位(C)EA位和ES位(D)EA位和ET1位13、MCS-51的并行I/O口读-改写操作,是针对该口的 ( )(A)引脚(B)片选信号(C)地址线(D)内部锁存器14、MCS-51的并行I/O口信息有两种读取方法,一种是读引脚,还有一种是 ( ) (A)读锁存(B)读数据(C)读A累加器(D)读CPU15、MCS-51的中断源全部编程为同级时,优先级最高的是()(A)INT1 (B)TI (C)串行接口(D)INT02-2判断1、MCS-51是微处理器。
单片机原理及接口技术课后作业及答案
1.89C51单片机内包括哪些重要逻辑功能部件?答:80C51系列单片机在片内集成了如下重要逻辑功能部件:(l)CPU(中央处理器):8位(2)片内RAM:128B(3)特殊功能寄存器:21个(4)程序存储器:4KB(5)并行I/O口:8位,4个(6)串行接口:全双工,1个(7)定期器/计数器:16位,2个(8)片内时钟电路:1个2.89C51旳EA端有何用途?答:/EA端接高电平时,CPU只访问片内flash Rom 并执行内部程序,存储器。
/EA端接低电平时,CPU只访问外部ROM,并执行片外程序存储器中旳指令。
/EA端保持高电平时,CPU执行内部存储器中旳指令。
3. 89C51旳存储器分哪几种空间?怎样区别不一样空间旳寻址?答:ROM(片内ROM和片外ROM统一编址)(使用MOVC)(数据传送指令)(16bits地址)(64KB)片外RAM(MOVX)(16bits地址)(64KB)片内RAM(MOV)(8bits地址)(256B)4. 简述89C51片内RAM旳空间分派。
答:片内RAM有256B低128B是真正旳RAM区高128B是SFR(特殊功能寄存器)区5. 简述布尔处理存储器旳空间分派,片内RAM中包括哪些可位寻址单元。
答:片内RAM区从00H~FFH(256B)其中20H~2FH(字节地址)是位寻址区对应旳位地址是00H~7FH6. 怎样简捷地判断89C51正在工作?答:用示波器观测8051旳XTAL2端与否有脉冲信号输出(判断震荡电路工作与否正常?)ALE(地址锁存容许)(Address Latch Enable)输出是fosc旳6分频用示波器观测ALE与否有脉冲输出(判断8051芯片旳好坏?)观测PSEN(判断8051可以到EPROM 或ROM 中读取指令码?)由于/PSEN接外部EPROM(ROM)旳/OE端子 OE=Output Enable(输出容许)7. 89C51怎样确定和变化目前工作寄存器组? 答:PSW(程序状态字)(Program Status Word)中旳RS1和RS0可以给出4中组合用来从4组工作寄存器组中进行选择PSW属于SFR(Special Function Register)(特殊功能寄存器)8. 89C51 P0口用作通用I/O口输入时,若通过TTL“OC”门输入数据,应注意什么?为何?答:9. 读端口锁存器和“读引脚”有何不一样?各使用哪种指令?答:读锁存器(ANL P0,A)就是相称于从存储器中拿数据,而读引脚是从外部拿数据(如MOV A,P1 这条指令就是读引脚旳,意思就是把端口p1输入数据送给A)传送类MOV,判位转移JB、JNB、这些都属于读引脚,平时试验时常常用这些指令于外部通信,判断外部键盘等;字节互换XCH、XCHD算术及逻辑运算 ORL、CPL、ANL、ADD、ADDC、SUBB、INC、DEC控制转移CJNE、DJNZ都属于读锁存器。
单片机作业
姓名:滕建国班级:2010045201 学号:201004520105 一、九题目:设(70H)=60H,(60H)=20H.P1口为输入口,当输入状态为B7H,执行下面程序。
Mov R0,#70H MOV A,@R0 MOV R1,A MOV B,@R1 MOV P1,#0FFH MOV @R0,P1试分析(70H)﹑(B)﹑(R1)﹑(R0)的内容是什么。
答案:(70H)=0 (B)=20H (R1)=60H (R0)=0十题:试分析下列程序的功能。
CLR AMOV R2,AMOV R7,#4 LOOP:CLR CMOV A,R0RLC AMOV R0,AMOV A,R1 RLC AMOV R1,A MOV A,R2 RLC AMOV R2,A DJNZ R7,LOOP答案:把R0 R1 R4的内容代进位左移4位。
姓名:滕建国班级:2010045201 学号:201004520105 二﹑十二的题目:分析以下程序段,何时转向LABEL1?何时转向LABEL2?MOV A,R0CPL AJZ LABEL1INC AJZ LABEL2答案:(P0=0 时转向LABEL1 (P0+1=0时转向LABEL2 十三的题目:有4个变量U﹑V﹑W﹑X分别从P1.0~P1.3输入阅读如下程序,写出逻辑表达式并画出逻辑电路图。
MOV P1,#0FFH MOV C,P1.0 ANL C,P1.1 CPL C MOV ACC.0.C MOV C,P1.2 ORL C,ACC.0 MOV F,C题目:逻辑表达式:P(1.0) *P(1.1)+[P(1.2)+P(1.3)]姓名:滕建国班级:2010045201 学号:201004520105 三﹑十四的题目:若(R1)=30H, (A)=40H,(30H)=60H,(40H)=08H.试分析执行下列程序段后上述各单元内容的变化。
MOV A,@R1MOV @R1,40HMOV 40H,AMOV R1,#7F答案:A=60H R1=08H (40H)=60H R1=7FH十九的题目:若CY=1,P1=10100011,P3=01101100B.试指出执行下列程序段后,CY﹑P1口及P3口内容的变化情况。
单片机课后习题答案
MOVX @DPTR ,A MOV MOV @DPTR,A MOVX A ,@DPTR MOVMOV A,@DPTR MOVX A ,@Ri MOVX A,@R0 MOVX访问程序存储器指令有:@Ri ,AMOVX @R1,AMOVC A ,@A+PCMOVC A , @A+DPTR单片机原理与应用作业第三章1设内部RAM 中59H 单元的内容为50H ,写出当执行下列程序段后寄存器 A , R0和内部RAM 中50H ,51H 单元的内容为何值? MOV A ,59H ;A=50H MOV R0,A ;R0=50H MOV A , #00H ;A=00H MOV @R0,A ;50H=00H MOV A , #25H ;A=25H MOV 51H ,A ;51H=25H MOV 52H ,#70H ;52H=70HA=25H R0=50H50H=00H2请选用适合的指令对 P0 口内容作修改(例如使 P0.0~P0.3不变,P0.4~P0.7为0)mov A,P0 ANL A ,0fh mov P0,A3访问外部数据存储器和程序存储器可以用哪些指令来实现?举例说明。
答:访问外部数据存储器指令有:4设堆栈指针 执行下列程序段后,61H ,SP 中的内容为 60H ,内部RAM 30H ,31H , 62H中30H 和31H 单元的内容分别为 24H 和10H ,DPTR 及SP 中的内容将有何变化?PUSH 30H 61H=24H PUSH 31H 62H=10H SP=62HPOP DPL DPL=10H POP DPH DPH=24H SP=60H MOV 30H ,#00H ;30H=00H MOV31H ,#0FFH;31H=0FFHXCHXCHDA ,R1 A ,@R1;A=23HR1=40H 40H=03H(R5)=10101010B ,分别写出执行下列指令后结果。
ANL A , R5 ; 00000000B ORLA , R5 ; 11111111B XRLA ,R5 ;111111115设(A) =40H , ( R1) =23H , ( 40H) =05H 。
单片机习题答案
单片机原理及应用作业参考答案 1.2 单片机的结构特点表现在哪些主要方面? . 单片机的结构特点表现在哪些主要方面? 答: (1)在存储器结构上,严格将程序存储器和数据存储器在空间上分开,并使用不同的寻址方式,使用两个不同的地址指针; (2)在内部有一个全双工的串行接口; (3)有一个独立进行操作的位处理器. 1.4 通用单片机的供应状态主要取决于什么?供应状态有哪几种?用户选用单片机的供应状态的原则. 通用单片机的供应状态主要取决于什么?供应状态有哪几种? 是什么? 是什么? 答:通用单片机的供应状态主要取决于片内ROM 的配置状态. (1)片内ROM 的配置状态掩膜ROM,适合于低成本.大批量产品的场合(2)片内EPROM 配置状态可通过高压脉冲写入应用程序到EPROM,适合于开发样机,小批量生产. (3)片内无ROM 配置状态必须外扩EPROM,价格低,使用灵活,适合于需要外接能在现场进行修改和更新程序存储器的应用场合. 2.3 单片机的EA 端有何功用?8031 的EA 端应如何处理,为什么? . 端有何功用? 端应如何处理,为什么? 答: EA 端是访问外部程序存储器的控制信号:当EA 无效时,访问内部ROM,当EA 为有效时,访问外部ROM.由于8031 没有内部ROM,所以EA 端必须接低电平. 2. MCS-51 引脚中有多少I/O 线?它们与单片机对外的地址总线, . 4 它们与单片机对外的地址总线, 数据总线和控制总线有什么关系? - 数据总线和控制总线有什么关系? 地址总线和数据总线各是几位? 地址总线和数据总线各是几位? 答:MCS-51 引脚中有32 根I/O 线,一般由P0 口提供单片机对外的数据总线,同时作为分时复用的地址总线的低8 位, P2 口作为地址总线的高8 位, 由控制总线由第二功能的状态下的P3 口以及RST, , EA ALE 和PSEN 提供. 2.5 8051 单片机的内部数据存储器可以分为哪几个不同的区域?各有什么特点? . 单片机的内部数据存储器可以分为哪几个不同的区域?各有什么特点? 答:数据存储器主要分为两个区域:00H~7FH 是真正的RAM 区,80H~FFH 专门用作特殊功能寄存器的区域. 其中00H~7FH 可分为三个区域: 00H~1FH 为四组工作寄存器; 20H~2FH 为128 位位寻址区, 30H~7FH 为一般RAM 区. 2.6 单片机对外有几条专用控制线?其功能是怎样的? . 单片机对外有几条专用控制线?其功能是怎样的? 答:单片机对外的专用控制线有 4 条,分别是: (1) PSEN : 外部取指操作,在访问外部ROM 时, PSEN 信号自动产生; (2)ALE/ PROG :ALE 为地址锁存允许信号,在访问外部ROM 或RAM 时,用来锁存P0 口的低8 位地址.第二功能PROG 是对8751 的EPROM 编程时,编程脉冲输入. 1 (3) EA /VPP: EA 是访问外部程序存储器的控制信号, EA 无效时,访问内部ROM, EA 有效时,访问外部ROM,第二功能VPP 为对8751EPROM 的21V 编程电源输入. (4)RST/VPD:RST 是复位信号输入端,第二功能VPD 是备用电源输入端. 2.8 有哪几种方法使单片机复位?复位后各寄存器,RAM 中的状态如何? 中的状态如何? . 有哪几种方法使单片机复位?复位后各寄存器, 答:单片机的复位方式有两种,上电自动复位和按钮复位.复位后各寄存器状态为: PC 0000H ACC 00H PSW 00H SP 07H DPTR 0000H P0~P3FFH IP XX000000B IE 0X000000B TMOD 00H TCON 00H TL0 00H TH0 00H TL1 00H TH1 00H SCON 00H SBUF XXH PCON 0XXX0000B 2.9 在8051 扩展系统中,片外程序存储器和片外数据存储器使用相同的地址编址,是否会在数据总线扩展系统中,片外程序存储器和片外数据存储器使用相同的地址编址, . 上出现争总线的现象?为什么? 上出现争总线的现象?为什么? 答:不会发生争总线的现象,因为从外部ROM 取指令需要用ALE 和PSEN 信号控制读取操作,由P2 和P0 提供地址;而片外数据存储器的读写除了地址之外还要RD , WR 控制,所以不会争总线. 2.10 如果8051 端口P0~P3 作为通用I/O 口使用,则在输入引脚数据时应注意什么? . 口使用,则在输入引脚数据时应注意什么? ~答:8051 的P1,P2 和作为一般输入I/O 口的P 以及第一功能的P3 口均为准双向口,在输入数据时应先向端口写1,然后方可作为高阻输入.以使其场效应管T2 截止,才不会影响输入电平. 3.2 若要完成以下的数据传送,应如何用MCS-51 的指令实现? . 若要完成以下的数据传送, 的指令实现? (1)R1 的内容传送到R0 (5)ROM2000H 单元的内容传送到R0 MOVA,R1 MOV DPTR,#2000H MOV R0,A CLR A MOVC A,@A+DPTR (2) 外部RAM20H 单元的内容传送到R0 MOV R0,#20H MOV R0,A MOVX A,@R0 (6)ROM2000H 单元的内容传送到内部RAM20H 单元MOV R0,A MOV DPTR,#2000H CLR A (3)外部RAM20H 单元的内容传送到内MOVC A,@A+DPTR 部RAM20H 单元MOV R0,#20H MOV 20H,A MOVX A,@R0 (7)ROM2000H 单元的内容传送到外部RAM20H 单元MOV 20H,A MOV DPTR,#2000H CLR A (4)外部RAM1000H 单元内容传送到内MOVC A,@A+DPTR 部RAM20H 单元MOV DPTR,#1000H MOV R0,#20H MOVX A,@DPTR MOVX @R0,A MOV 20H,A 3.3 间接转移指令JMP @A+DPTR 有何优点?为什么它能代替众多的判跳指令?试举例说明. 有何优点?为什么它能代替众多的判跳指令?试举例说明. . 答:该间接转移指令的转移地址由 A 的内容和数据指针DPTR 的内容之和决定,且两者都是无符号数, 由DPTR 决定多分支转移程序的首地址, A 的不同值实现多分支转移. 由因为可以根据A 的内容进行分支转移,所以可以替代众多判跳指令. 如:根据 A 的内容调用相应的程序,如 A 为0 调用OP0,A 为 1 调用OP1,这里 A 的值小于128. MOV DPTR,#OPTAB 2 A @A+DPTR … OPTAB: ACALL OP0 ACALL OP1 ACALL OP2 … 3.4 设内部RAM 的30H 单元的内容为40H,即(30H)= )=40H,还知(40H)= )=10H, (10H)= )=00H, . , )= ,还知( )= , ( )= , 端口P1=0CAH.问执行以下指令后,各有关存储器单元,寄存器以及端口的内容(即R0,R1,A,B, = .问执行以下指令后,各有关存储器单元,寄存器以及端口的内容( , , , , P1 以及40H,30H,10H 单元的内容) 单元的内容) , , . MOV R0,#30H ; (R0)=30H MOV A,@R0 ;(A)=(30H)=40H MOV R1,A ; (R1)=40H MOV B,@R1 ; (B)=(40H)=10H MOV @R1,P1 ; (40H)=0CAH MOV P2,P1 ; (P2)=0CAH MOV 10H,#20H ; (10H)=20H MOV 30H,10H ; (30H)=20H 3.5 已知8751 单片机的P1 口为输出,经驱动电路接有8 只发光二极管.当输出位是1 时,发光二极 . 口为输出, 只发光二极管. 管点亮; 时发光二极管熄灭.试分析下述程序的执行过程及发光二极管的发光情况. 管点亮;输出位是0 时发光二极管熄灭.试分析下述程序的执行过程及发光二极管的发光情况. LP: MOV P1,#81H ;1000 0001B LCALL DELAY LCALL DELAY MOV P1,#24H ;0010 0100B MOV P1,#42H ;0100 0010B LCALL DELAY LCALL DELAY MOV P1,#42H ;0100 0010B MOV P1,#24H ;0010 0100B LCALL DELAY LCALL DELAY SJMP LP MOV P1,#18H ;0001 1000B 答:程序执行MOV P1,#DATA 后,根据DATA 的每位的值点亮相应的LED,调用延时程序使点亮的LED 保持一段时间.LED 发光的情况为:每次同时点亮两个LED 并从两边向中间移动,然后再向两边移动, 并一直循环. 3.6 在上题中,若系统的晶体振荡器频率为6MHz,求子程序DELAY 的延时时间. 的延时时间. . 在上题中, , DELAY: MOV R2,#0FAH ;①2S L1: MOV R3,#0FAH ;②2S L2: DJNZ R3,L2 ;③4S DJNZ R2,L1 ;④4S RET ;⑤4S 0FAH=250D 其中③执行250 次,执行时间为250×4S 其中②③④循环250 次,该循环执行时间为(2+250×4+4)×250S 加上①和⑤的执行时间,DELAY 的延时时间为2+(2+250×4+4)×250+4=251.506ms 延时程序的设计: 延时程序的设计: 首先设计内循环: MOV R3,#data1 ;2s NOP ;2s DJNZ R3,$ ;4s×data1 延时时间t1=2+2+4×data1=4×(data1+1)=1000s=1ms,则data1=249 3 RL JMP 若需要大于1ms 时间,则先增加一层循环MOV R2,#data2 ;2s L1: MOV R3,#data1 ;2s NOP ;2s DJNZ R3,$ ;4s×data1 DJNZ R2,L2 ;(4s+t1)×data2 延时时间为:2+(4s+t1)×data2=2+[4s+4×(data1+1)]×data2= =2+4×(data1+2)×data2=250ms,这里将data1 修正为248, 得2+4×(248+2)×data2=2+1000×data2=250ms 则data2=250 3.7 根据图3-3 线路,试设计灯亮移位程序,使8 只发光二极管每次亮一个,循环右移或左移,一个一线路,试设计灯亮移位程序, 只发光二极管每次亮一个,循环右移或左移, . 个地亮,循环不止. 个地亮,循环不止. MOV A,#80H DIS: MOV P1,A ACALL DELAY RR A AJMP DIS 3.8 设逻辑运算表达式为: . 设逻辑运算表达式为: Y = A (B + C) + D (E + F ) 其中变量A,B,C 分别为P1.0,P1.4,定时器1 溢出标志TF1,D,E,F 分别为22H.0,22H.3,外中断, , , , , , , , , 现上述逻辑功能的程序段. 方式标志IE1;输出变量为P1.5.试编写实现上述逻辑功能的程序段. ; .试编写实现上述逻辑功能的程序段MOV C,P1.4 ORL ANL MOV MOV ORL ANL CPL ORL MOV C,/TF1 C,P1.0 F0,A C,22H.3 C,/IE1 C,22H.0 C C,/F0 P1.5,C ; (B + C) ; A (B + C) ;用户自定义标志位,暂存数据;(E + F ) ; D (E + F ) ; D (E + F ) ; A (B + C) + D (E + F ) 4.1 试设计数据块传送程序,将起始地址为0400H 的100 个连续单元中的内容送到以4000H 为首址的区. 试设计数据块传送程序, 域中去解:分析:地址为16 位,且进行数据传送,所以连续单元应为外部的存储器,只能使用外部数据传送指令,由于源和目的地址都为16 位,所以要保存DPTR 的值,但源低8 位和目的低8 位相同,可以用一个寄存器保存. MOV R0,#00 NEXT: MOV DPH,#04H MOV DPL,R0 MOVX A,@DPTR MOV DPH,#40H MOVX @DPTR,A INC R0 CJNE R0,#100,NEXT 4.2 试编写程序,计算片内RAM 区40H~47H8 个单元中数的算术平均值,结果存放在4AH 中. 个单元中数的算术平均值, . 试编写程序, ~解:分析:8 个数总和最大值为FFH×8=7F8H,所以求和时必须用两字节加法,设R7 保存和高8 位, R6 保存低8 位,求和后再除以8 即得算术平均值,这里需使用16/8 除法,但因为除数为23,所以可以直4 接通过算术右移3 位实现除以8,前提存储的数据为无符号数. MOV MOV MOV NEXT : MOV INC ADD MOV CLR A ADDC MOV CJNE MOV DIV8: CLR C MOV RRC MOV MOV RRC MOV DJNZ R0,#40H R6,#00H R7,#00H A,@R0 R0 A,R6 R6,A ;和低字节清零;和高字节清零;取出一个字节;地址指针下移;低字节求和;保存和的低字节A,R7 ;如果低字节求和有进位,则加至高字节R7,A ;保存和的高字节R0,#48H,NEXT R1,#03H ;循环移位 3 次,实现除以8 A,R7 A R7,A A,R6 A R6,A R3,DIV8 ;高字节先移位,将D0 移至C ;将C 移入低字节的D7,从而实现16 位数据的移位16 位除以8 位除法子程序: 位除法子程序: 被除数R6R5,除数R4,商R3R2,余数R1 DIV168: JC NEXT MOV R3,#00H MOV A,R2 MOV R1,#00H ADD A,#01H NEXT2: MOV R2,A CLR C JNC NEXT2 MOV A,R5 INC R3 SUBB A,R4 AJMP NEXT2 MOV R5,A NEXT: MOV A,R5 MOV A,R6 ADD A,R4 SUBB A,#00H MOV R1,A MOV R6,A RET 4.3 设有两个长度为15 的数组,分别存放在0200H 和0500H 为首地址的存储区域中,试编写程序求的数组, 为首地址的存储区域中, . 其对应项之和, 为首地址的存储区域中. 其对应项之和,结果存放在以0300H 为首地址的存储区域中. 解:分析:0200H 和0500H 都是片外地址,必须利用MOVX 指令获取数据,这将导致DPTR 使用不方便,解决办法: (1)0200H,0500H 和0300H 低字节地址相同,可以共用DPL,DPH 单独处理; (2)可以考虑先将两个存储区的数据先转移到内部RAM 中,然后再进行运算. 这里只是求对应项之和,并不是多位数求和,两数相加,可能产生进位,这里应该只考虑没有进位的情况. 这里采用第一种方法 5 MOV R0,#15 MOVX A,@DPTR MOV DPL,#00H ADD A,B NEXT: MOV DPH,#02H MOV DPH,#03H MOVX A,@DPTR MOVX @DPTR,A MOV B,A INC DPTR MOV DPH,#05H DJNZ R0,NEXT 4.4 在起始地址为2100H,长度为64 的数表中找 F 的ASCII 码,并将其地址送到1000H 和1001H 单. , 元中去. 元中去. 解:都为RAM 单元,只要找到"F" ,则停止查找.利用寄存器R7 保存高8 位地址,R6 保存低8 位地址. SF: MOV DPTR,#2100H MOVX @DPTR,A MOV R0,#64 INC DPTR NEXT1:MOVX A,@DPTR MOV A,R7 CJNE A,#4FH,NEXT2 MOVX @DPTR,A MOV R7,DPH AJMP SFEND MOV R6,DPL NEXT2:INC DPTR MOV DPTR,#1000H DJNZ R0,NEXT1 MOV A,R6 SFEND: RET 4.5 设计一个多字节无符号数加法子程序和减法子程序. . 设计一个多字节无符号数加法子程序和减法子程序. 解: (1)多字节无符号数加法(2)多字节无符号数减法设R0 为加数首地址,R1 为被加数首地址,R2 设R0 为被减数首地址,R1 为减数首地址,R2 为字节数为字节数JIAFA: CLR C JIANFA: CLR C NEXT: MOV A,@R0 NEXT: MOV A,@R0 ADDC A,@R1 SUBB A,@R1 MOV @R0,A MOV @R0,A INC R0 INC R0 INC R1 INC R1 DJNZR2,NEXT DJNZ R2,NEXT RET RET 4.6 试设计一个双字节无符号数乘法子程序和除法子程序. . 试设计一个双字节无符号数乘法子程序和除法子程序. 解:设被乘数为R7R6,乘数为R5R4,结果存于R3R2R1R0 设被除数为R7R6,除数为R5R4,商存于R3R2,余数存于R1R0 将被除数减除数,够减商加1,然后将差作为被减数,继续前面的减法操作,直到不够减为止,这时需要恢复余数. 6 MUL1616:MOV MOV MUL MOV MOV MOV MOV MUL ADD MOV A,R6 B,R4 AB R0,A R1,B A,R7 B,R4 AB A,R1 R1,A MOV ADC MOV MOV MOV MUL ADD MOV MOV ADC A,B A,#0 R2,A A,R6 B,R5 AB A,R1 R1,A A,B A,R2 MOV MOV MOV MUL ADD MOV MOV ADC MOV RET R2,A A,R7 B,R5 AB A,R2 R2,A A,B A,#0 R3,A DIV1616:MOV DPTR,#0 JC NEXT MOV R1,A LOOP: CLR C INC DPTR MOV A,DPH MOV A,R6 JMP LOOP MOV R3,A SUBB A,R4 NEXT: MOV A,R6 MOV A,DPL MOV R4,A ADD A,R4 MOV R2,A MOV A,R7 MOV R0,A RET SUBB A,R5 MOV A,R7 MOV R7,A ADC A,R5 4.7 在3000H 为首的存储器区域中,存放着14 个由ASCII 码表示的0~9 之间的数,试编写程序将它为首的存储器区域中, . ~之间的数, 单元中. 们转换成BCD 码,并以压缩BCD 码的形式存放在2000H~2006H 单元中. ~解:0~9 的ASCII 码为30H~39H,首先必须去掉其中的3,可以通过减去30H 实现,也可通过ANL 实现.另外还得将两个BCD 码压缩成一个BCD 码,注意低地址对应低字节,比如3000H 为31H(低字节) ,3001H 为38H(高字节) ,合并后应为81H,存于2000H 单元,可利用ORL 或ADD 进行合并. 由于涉及到源和目的地址都为16 位,为了方便操作,现将转换结果存于内部RAM. MOV R0,#30H MOV @R0,A MOV R1,#14 INC R0 MOV DPTR,#3000H CJNE R1,#37H,NEXT MOV R0,#30H NEXT: MOVX A,@DPTR ;取出低字节MOV DPTR,#2000H INC DPTR ;源区地址指针下移NEXT2:MOV A,@R0 ANL A,#0FH ;低字节转换为BCD 码INC R0 MOV R4,A ;暂存数据MOVX @DPTR,A MOVX A,@DPTR ;取出高字节INC DPTR INC DPTR CJNE R0,#37H,NEXT2 ANL A,#0FH ;高字节转换为BCD 码SW AP A ;高低四位互换ORL A,R4 ;将两个BCD 码合并 4.8 编写一段程序,模拟如图所示的逻辑电路的逻辑功能,要求将四个输入与非门的逻辑模拟先写成一. 编写一段程序,模拟如图所示的逻辑电路的逻辑功能,要求将四个输入与非门的逻辑模拟先写成一个子程序,然后以多次调用得到整个电路的功能模拟. 都已定义为位地址, 个子程序,然后以多次调用得到整个电路的功能模拟.设X,Y,Z 和W 都已定义为位地址,若程序中还, , 需要其他地址标号,也可以另行定义. 需要其他地址标号,也可以另行定义. 解: 方法一:设计四输入与非门子程序,利用子程序必定要传递参数,但位操作的传送指令必须由C 完成,所以调用子程序时参数传递较复杂. 7 MOV MOV MOV CPL MOV MOV MOV MOV MOV ACALL MOV SETB MOV MOV MOV MOV MOV MOV ACALL MOV C,W 00H,C C,Z C 01H,C C,Y 02H,C C,X 03H,C NAND4 04H,C 00H C,X 01H,C C,Y 02H,C C,Z 03H,C NAND4 05H,C CPL MOV CPL MOV MOV MOV ACALL SETB MOV MOV MOV MOV MOV ACALL MOV AJMP NAND4: ANL ANL ANL CPL C RET END 01H C,Y C 02H,C C,W 03H,C NAND4 00H 01H,C C,04H 02H,C C,05H 03H,C NAND4 F,C $ MOV C,00H C,01H C,02H C,03H SETB 00H MOV C,X MOV 01H,C 方法二:利用宏实现MACRO,宏可以带参数,所以参数传递将很方便NAND4 MACRO A1,A2,A3,A4 MOV ONE,C MOV C,A1 NAND4 X,Y,ONE,W ANL C,A2 MOV 04H,C ANL C,A3 SETB ONE ANL C,A4 NAND4 X,Y,ONE,W CPL C MOV 05H,C ENDM CPL Y SETB ONE ORG 0000H NAND4 X,Y,ONE,W AJMP MAIN MOV 06H,C ORG 0030H SETB ONE MAIN: MOV C,Z NAND4 04H,05H,06H,ONE CPL C MOV F,C 5.3 已知8051 单片机系统时钟频率为6MHz,试利用定时器T0 和P1 口输出矩形脉冲,其波形如图所. 口输出矩形脉冲, , 示(建议用方式2) ) . 解:定时器T0 的工作方式:方式2,定时方式,所以TMOD 为:0000010(02H) 定时初值: 8-TH0 初值)×时钟周期×12=(28-X)×(1/6M)×12=40s (2 X=236=0ECH,360s 则为9 次定时中断MOV TMOD,#02H JNB TF0,$ CLR TF0 MOV TH0,#0ECH MOV TL0,#0ECH NEXT1: CLR P1.0 CLR P1.0 WAIT2: JNB TF0,$ SETB TR0 CLR TF0 DJNZ R0,WAIT2 NEXT3: MOV R0,#09H SETB P1.0 AJMP NEXT3 8 5.4 要求8051 单片机定时器的定时值以内部RAM 的20H 单元的内容为条件而改变;当(20H)= . 单元的内容为条件而改变; )=00H )= )=01H 时,定时值为20ms.请根据以上要求编写相应程序. 时,定时值为10ms;当(20H)= ; )= .请根据以上要求编写相应程序. 解:采用定时器T0,工作方式:方式1,定时方式,所以TMOD 为:0000001(01H) 定时初值:216-T0 初值) ( ×时钟周期×12= 16-X) (2 ×(1/6M)×12= 16-X) (2 2s=10[(20H)+1]1000s X = 65536 10[(20H) + 1]1000 = 65536 5000 5000 ×(20H) 2 = 60536 5000(20H ) = EC 78H 1388H × (20H ) (这里20H 单元的内容最大为12,否则超出16 为定时器的范围) TIMER:MOV A,20H MOV B,#88H MUL AB ;88H×(20H) MOV R0,A ;R0 保存低字节MOV R1,B ;R1 保存高字节MOV A,20H MOV B,#13H MUL AB ;13H×(20H) ADD A,R1 MOV R1,A ;只要限制20H 单元内容小于13,1388H×(20H)即为两字节CLR C MOV A,78H SUBB A,R0 ;78H 减去1388H×(20H)的低字节MOV TL0,A MOV A,#0ECH SUBB A,R1 ;ECH 减去1388H×(20H)的高字节MOV TH0,A MOV TMOD,#01H SETB TR0 W AIT: JNB TF0,WAIT RET ;定时时间到上述定时初值的设置适合(20H)为00H~12H,即可以实现10ms~190ms 的定时. 若仅仅是10ms 和20ms 两种情况,初值设置将更简单X 00 H = 60536 = EC 78H TIMER: MOV CJNE MOV MOV AJMP NEXT1: CJNE X 01H = EC 78H 1388H ×(01H ) = D8F0H MOV MOV NEXT2: MOV SETB WAIT: JNB RET TH0,#0D8H TL0,#0F0H TMOD,#01H ;T0 工作方式TR0 TF0,WAIT ;定时时间到A,20H A,#00H,NEXT1 TH0,#0ECH TL0,#78H NEXT2 A,#01H,NEXT2 5.5 试用定时器T1 设计外部事件计数器.要求每计数1 万个脉冲,就将T1 转为10ms 定时方式,当. 设计外部事件计数器. 万个脉冲, 定时方式, 定时到后,又转为计数方式,如此反复循环不止. 定时到后,又转为计数方式,如此反复循环不止.设系统的时钟频率为6MHz,建议选用方式 1 编写相, 应程序. 应程序. 解:T1 工作方式为方式1,计数方式:TMOD:01010000(50H) ,定时方式:TMOD:00010000(10H) 计数初值X=M-计数模值=65536-10000=55536=D8F0H 定时初值(65536-X)×2=10000,X=60536=EC78H MAIN: MOV TMOD,#50H WAIT1: JBC TF1,NEXT1 MOV TL1,#0F0H AJMP W AIT1 MOV TH1,#0D8H NEXT1: MOV TMOD,#10H SETB TR1 MOV TL1,#78H 9 MOV W AIT2: JBC TH1,#0ECH TF1,MAIN AJMP W AIT2 5.7 利用8051 单片机定时器测量某正脉冲宽度宽度,采用何种工作方式可以获得最大的量程?若时钟. 单片机定时器测量某正脉冲宽度宽度,采用何种工作方式可以获得最大的量程? 频率为6MHz,则允许测量的最大脉宽是多少? ,则允许测量的最大脉宽是多少? 解:要获得最大量程,那么定时/计数器的计数值必须达到最大,只有方式 1 是工作在16 位计数模式. 因为测脉宽,所以定时/计数器工作于定时方式,且由外部中断引脚电平启动定时. 最大定时时间为: (M-X)×T=(65536-0)×12×1/6MHz=131.072ms 7.3 某异步通讯接口,其帧格式由一个起始位,7 个数据位,1 个奇偶校验位和一个停止位组成.当该. 某异步通讯接口,其帧格式由一个起始位, 个数据位, 个奇偶校验位和一个停止位组成. 接口每分钟传送1800 个字符时,计算其传送波特率. 个字符时,计算其传送波特率. 解:由帧格式可知:一个字符由1+7+1+1=10 位组成,波特率=1800×10/60=300 波特. 7. 为什么定时器T1 用作串行口波特率发生器时常采用工作方式2?若已知T1 设置成方式2, . 6 ? , 用作波特率发生器, 特率发生器,系统时钟频率为11.0592MHz,求可能产生的最高和最低的波特率各是多少? ,求可能产生的最高和最低的波特率各是多少? 答:因为定时器T1 的方式 2 为自动重装定时初值,这样操作方便,也避免了因重装定时初值引起的定 2 SMOD f OSC 1 时误差.由波特率= × 32 12 256 初值当初值为0,SMOD=0 时,得到最低波特率=112.5 当初值为255,SMOD=1 时,得到最低波特率=57.6K 7.7 在8051 应用系统中,时钟频率为6MHz.现需利用定时器T1 方式 2 产生1200 波特的波特率.试. 应用系统中, 波特的波特率. . 计算定时器的初值,并指出实际得到的波特率与所要求的波特率是否有误差. 计算定时器的初值,并指出实际得到的波特率与所要求的波特率是否有误差. 解:根据波特率计算公式2 SMOD f OSC 1 ×32 12 256 初值 2 SMOD 6MHz 1 1 SMOD 1200 = × = 15625 × 2 32 12 256 初值256 初值当SMOD=0 时,初值为243,此时实际的波特率为:1201.92 当SMOD=1 时,初值为230,此时实际的波特率为:1201.92 所以实际波特率与要求的波特率有误差. 7.8 试设计一个8051 单片机的双机通讯系统,并编写程序将 A 机片内RAM40H~5FH 的数据块通过. 单片机的双机通讯系统, ~中去. 串行口传送B 机的片内RAM 60H~7FH 中去. ~解:该双机通讯系统,是将A 机数据发送到B 机,所以可以采用单工工作方式串行口采用方式 1 10 位异步收发,采用查询方式MOV R0,#40H A 机:发送MOV TMOD,#20H CLR TI MOV TL1,#0F3H NEXT: MOV A,@R0 MOV TH1,#0F3H INC R0 MOV SBUF,A SETB TR1 MOV SCON,#40H JNB TI,$ 10 CJNE R0,#60H, NEXT MOV R0,#60H AJMP $ NEXT: CLR RI JNB RI,$ B 机:接收MOV TMOD,#20H MOV A,SBUF MOV TL1,#0F3H MOV @R0,A MOV TH1,#0F3H INC R0 SETB TR1 CJNE R0,#80H, NEXT AJMP $ MOV SCON,#50H 8.1 8051 有几个中断源,各中断标志是如何产生的,又是如何复位的?CPU 响应中断时其中断入口地有几个中断源,各中断标志是如何产生的,又是如何复位的? . 址各是多少? 址各是多少? 答:8051 有5 个中断源,分别是外部中断0,定时器T0 中断,外部中断1,定时器T1 中断,串行口中断.中断入口地址分别为0003H,000BH,0013H,001BH,0023H. 定时器中断标志TF1 和TF0 是当计数器溢出时产生的,CPU 响应中断时能自动清除;外部中断IE1 和IE0 则是根据外部INT1 和INT0 的变化产生的, 只有边沿方式的IE1 和IE0 能在响应中断是自动清除, 电平方式的只能软件清除;串行口中断标志RI,TI 是在串行口接收和发送是产生的,它们只能利用软件清除. 8.3 如何区分串行通讯中的发送中断和接收中断? . 如何区分串行通讯中的发送中断和接收中断? 答:串行通讯中,发送和接收中断共用一个中断入口地址,但可以通过RI 和TI 标志判断是哪种中断, TI=1 表示发送中断,RI=1 表示接收中断. 8.4 如何设定外部中断源是采用边沿触发还是电平触发? 这两种中断触发所产生的中断过程有和不. 如何设定外部中断源是采用边沿触发还是电平触发? 同? 答:可通过IT1 和IT0 标志位进行设置,IT=0 时,为电平触发,IT=1 时,为边沿触发.电平触发,CPU 响应中断时不会清除IE 标志,所以中断返回前应撤销INT 引脚上的低电平;边沿触发方式,CPU 连续两个机器周期采样到先高后低的电平,则置位IE 标志,CPU 响应中断时由硬件清除IE 标志. 8.7 试用中断方法设计秒,分脉冲发生器,即由8051 的P1.0 每秒钟产生一个机器周期的正脉冲,由. 试用中断方法设计秒,分脉冲发生器, 每秒钟产生一个机器周期的正脉冲, P1.1 每分钟产生一个机器周期的正脉冲. 每分钟产生一个机器周期的正脉冲. 解:设系统时钟为6MHz,由定时器完成定时,最大定时时间为65536×2us=131096us=131.096ms,所以设置定时器定时时间为100ms,10 次定时为 1 秒钟,60 次一秒为一分钟,所以设置两个计数器分别对10 和60 计数(M-X)×2us=100ms,所以X=15536=3CB0H ORG 0000H MOV R4,#60 AJMP MAIN MOV R3,#10 ORG 0023H STB ET0 AJMP INTTIMER SETB EA MAIN: MOV TH0,#3CH INTTIMER: MOV TL0,#0B0H MOV TL0,#0B0H MOV TMOD,#01H MOV TH0,#3CH SETB TR0 DJNZ R3,INTEND CLR P1.0 SETB P1.0 CLR P1.1 CLR P1.0 11 MOV R3,#10 CLR P1.1 DJNZ R4,INTEND MOV R4,#60 SETB P1.1 INTEND: RETI 8.8 试运用定时器中断技术设计一个秒闪电路,其功能是使发光二极管LED 每秒钟闪亮400ms,设系统. 试运用定时器中断技术设计一个秒闪电路, , 主频为6MHz. . 答: 分析题目可知每秒钟LED 闪亮400ms, 也就是600msLED 灭, 那也就是只要LED 亮400ms, 600ms 灭即满足要求, 即要实现两个延时, 根据定时/计数器延时计算公式: (M-X) T=定时值, 最大定时值为65536 ×2us=131.072ms,不足400ms,所以设置基本延时为100ms,400ms 和600ms 定时通过多次基本延时实现. (M-X)×2us=100ms,所以X=15536=3CB0H 程序如下: LED ORG AJMP ORG AJMP MAIN: MOV MOV MOV SETB MOV STB SETB INTTIMER: MOV MOV INC CJNE CLR AJMP NEXT: CJNE SETB MOV INTEND: EQU P1.0 0000H MAIN 0023H INTTIMER TH0,#3CH TL0,#0B0H TMOD,#01H LED R3,#00H ET0 EA TL0,#0B0H TH0,#3CH R3 R3,#04H,NEXT LED INTEND R3,#0AH,INTEND LED R3,#00H RETI 12。
单片机大作业试题及答案
单片机试题带答案版1、填空(每空2 分,共40 分)1、MCS-8051系列单片机字长是8 位,有40 根引脚,96系列字长是16 位。
单片机的特2、单片机的存储器的最大特点是指令存储器与数据存储器分开编址,Px并行口的地址是与数据存储器统一编址的,或者说属于该存储器。
3、8051最多可以有4 个并行输入输出口,最少也可以有1个并行口,即P1 。
P3常需复用作串行通信、外部中断、外部计数脉冲和读写控制信号。
4、ALE信号的作用是低8位地址锁存。
5、8051复位后,PC= 0 H。
若希望从片内存储器开始执行,EA脚应接高电平,PC值超过0FFF H时,8051会自动转向片外存储器继续取指令执行。
6、8051的C/T是加(加或减)计数的。
7、8051的中断向量表在3 H、0B H和13H、1BH、23H。
8、MOV A,40H 指令对于源超作数的寻址方式是直接寻址。
9、指令JB 0A7H,ABC的作用是若P2口的第7位为1则跳转到ABC 。
(0A7H是P2.7的地址)2、已知A = 0F8H,当执行ADD A,#0A9H指令后,PSW中的OV、CY、AC、P各为多少?若是有符号数,A中的结果用十进制表示是多少?(共5 分)[解答] OV:0、CY:1、AC:1、P:1 A:-953、在两个8051间用模式2进行串行通信,A机并行采集外部开关的输入,然后串行传输给B机;B机接收后并行输出控制LED发光。
画出连接示意图,写出完整的程序。
(共15 分)4、将8051外部扩展2K EPROM,同时扩展16K RAM作数据存储器,采用的2716是2K 的EPROM芯片,6264是8K的RAM芯片,74LS373是8位锁存器。
请画出连接示意图。
要求画出8051的数据、地址、ALE、PSEN、RD、WR信号;锁存器的数据入D、数据出Q、锁存控制G、OE;2716的A、数据O、片选CE、输出使能OE;6264的A、D、CE、OE、WE。
单片机作业及参考答案
习题1、BCD 码加法编程。
X 、Y 为4位压缩BCD 码,求 Z=X+Y 。
设X 存在片内RAM 40H 、41H 单元,Y 存在42H 、43H 单元,编程求 Z=X+Y ,并存入片内RAM 单元44H 、45H 、46H 。
ADB :MOV A ,40H ADD A ,42H DA A MOV 44H ,A MOV A ,41H ADDC A ,43H DA A MOV 45H ,A MOV A ,#0 ADDC A ,#0 MOV 46H ,A RET习题2:编程求双字节减法。
设X 、Y 存在片内 RAM 40H 起始单元,计算Z=X-Y 。
SUBD :CLR C MOV A ,40H SUBB A ,42H MOV 44H ,A MOV A ,41H SUBB A ,43H MOV 45H ,A MOV A ,#0 SUBB A ,#0 MOV 46H ,A RET 习题3:编程完成对DPTR 的减1操作.MOV A ,DPLCLR CSUBB A ,#1MOV DPL ,AMOV A ,DPHSUBB A ,#0MOV DPH ,A习题4:如何将累加器A 中的数据高4位清0,低位不变?ANL A ,#0FH习题5:如何将寄存器R2中的数据奇数位取反,偶数位不变?MOV A ,R2XRL A ,#10101010BMOV R2,A;取被加数低字节 ;加上加数低字节 ;BCD 十进制调整 ;保存和的低字节 ;取被加数高字节 ;加上加数高字节 ;BCD 十进制调整 ;保存和的高字节 ;求高字节进位 ;子程序结束 ;清借位标志;取被减数低字节;减去减数低字节;保存差的低字节;取被减数高字节;减去减数高字节;保存差的高字节;保存差的借位标志;;子程序结束习题:计算程序中转移指令的相对偏移量 e ,并判断是否超出转移范围。
地址源程序2130H LOOP:……21B0H SJMP LOOP解:e = 目的指令地址-(转移指令地址+指令字节数)= 目的地址-PC当前值=2130H-(21B0H+2)=-130﹤-128故超出转移范围。
单片机习题及参考答案
(一)填空题1. 除了“单片机”之外,单片机还可以称之为单片微控制器和单片微型计算机。
2. 专用单片机由于已经把能集成的电路都集成到芯片内部了,所以专用单片机可以使系统结构最简化,软硬件资源利用最优化,从而极大地提高了可靠性和降低了成本。
3. 在单片机领域内,ICE的含义是在线仿真器(In Circuit Emulator)。
4. 单片机主要使用汇编语言,而编写汇编语言程序要求设计人员必须精通和指令系统,单片机硬件结构。
5. CHMOS工艺是 CMOS 工艺和 HMOS 工艺的结合,具有低功耗的特点。
6. 与8051比较,80C51的最大特点是所用CHMOS工艺。
7. 微控制技术是对传统控制技术的一次革命,这种控制技术必须使用单片机才能实现。
(二)选择题1.下列简写名称中不是单片机或单片机系统的是(A)MCU (B)SCM (C)ICE (D)CPU2.在家用电器中使用单片机应属于计算机的是(A)数据处理应用(B)控制应用(C)数值计算应用(D)辅助工程应用3.80C51与80C71的区别在于(A)内部程序存储器的类型不同(B)内部数据存储器的类型不同(C)内部程序存储器的容量不同(D)内部数据存储器的容量不同4.8051与80C51的区别在于(A)内部ROM的类型不同(B)半导体工艺的形式不同(C)内部寄存单元的数目不同(D)80C51使用EEPROM,而8051使用EPROM5.在下列单片机芯片中使用掩膜ROM作为内总程序存储器的是(A)8031 (B)80C51 (C)8032 (D)87C516.80C51芯片采用的半导体工艺是(A)CMOS (B)HMOS (C)CHMOS(D)NMOS7.单片机芯片8031属于(A)MCS-48系列(B)MCS-51系列(C)MCS-96系列(D)MCS-31系列8.使用单片机实现在线控制的好处不包括(A)精确度高(B)速度快(C)成本低(D)能与数据处理结合9.以下所列各项中不是单片机发展方向的是(A)适当专用化(B)不断提高其性能(C)继续强化功能(D)努力增加位数(一)判断题1.用户构建单片机应用系统,只能使用芯片提供的信号引脚。
《单片机》课后习题及答案
《单片机》课后习题及答案单片机是计算机科学与技术中的重要领域之一,学习单片机的过程中,习题是不可或缺的一部分。
通过解答习题,不仅可以加深对单片机知识的理解,还可以培养解决问题的能力。
本文将为大家介绍一些经典的单片机习题,并提供详细的答案解析。
一、基础知识题1. 请简述单片机的定义及其作用。
答:单片机是一种集成度极高的微型计算机系统,它包括中央处理器、存储器、输入/输出接口和时钟电路等基本组成部分。
单片机广泛应用于嵌入式系统、仪器仪表、工控设备等领域,能够完成各种控制、计算、通信等任务。
2. 请列举常见的单片机类型及其特点。
答:常见的单片机类型有AVR系列、PIC系列、STM32系列等。
它们的特点如下:- AVR系列:低功耗、性能稳定、易于编程调试。
- PIC系列:成本较低、易于学习上手,适用于简单的应用场景。
- STM32系列:性能强大、资源丰富、支持多种外设接口。
3. 单片机的时钟输入一般采用什么方式?请简要说明原因。
答:单片机的时钟输入一般采用晶体振荡器的方式。
晶体振荡器具有稳定的振荡频率和相位,能够提供可靠的时钟信号,保证单片机各个部件按时序工作。
二、编程习题1. 编写一个程序,实现LED灯在不同时间间隔下的闪烁。
答:以下是示例代码:```c#include <reg51.h>sbit LED = P1^0;void delay(unsigned int ms){unsigned int i, j;for(i = ms; i > 0; i--)for(j = 110; j > 0; j--);}void main(){while(1){LED = 0; // 点亮LED灯delay(500); // 延时500msLED = 1; // 熄灭LED灯delay(500); // 延时500ms}}```2. 编写一个程序,实现通过按键控制LED灯的亮灭。
答:以下是示例代码:```c#include <reg51.h>sbit LED = P1^0;sbit KEY = P2^0;void delay(unsigned int ms){unsigned int i, j;for(i = ms; i > 0; i--)for(j = 110; j > 0; j--);}void main(){while(1){if(KEY == 0) // 如果按键按下{LED = ~LED; // 切换LED灯的状态delay(500); // 延时500ms,防止按键抖动}}}```三、应用题1. 设计一个温度监测系统,当温度超过设定的阈值时,点亮LED 灯并发出蜂鸣器警报。
单片机课后作业
第二章4、80C51存储器在结构上有何特点?在物理和逻辑上各有哪几种地址空间?访问片内RAM和片外RAM的指令格式有什么区别?答:1、程序存储器和数据存储器是截然分开,分别寻址的结构。
2、在物理上设有4个存储器空间:程序存储器:片内程序存储器、片外程序存储器数据存储器:片内数据存储器、片外数据存储器逻辑上设有3个存储器空间:片内、片外统一的64KB程序存储器地址空间片内256(80C52384)B数据存储器地址空间片外64KB的数据存储器地址空间3、访问片内RAM时用的是PC,而访问片外RAM时用的是DPTR。
5、80C51单片危机的EA信号有何功能?在使用80C51时,EA 信号引脚应如何处理?在使用80C31时,EA非信号引脚应如何处理?答:1、EA非引脚所接的电平决定CPU是访问片内存储器还是访问片外存储器。
EA非引脚接高电平时,程序从片内程序存储器0000H开始执行,即访问片内存储器,当PC值超过片内ROM容量时,会自动跳转向片外程序存储器空间执行。
EA非接低电平时,迫使系统全部执行片外程序存储器0000H开始存放的程序。
2、对于有片内ROM的80C51单片微机,正常运行时,应将EA 非引脚接高电平。
若把80C51接低电平,可用于调试状态,即将预调试的程序设置在与片内ROM空间重叠的片外存储器内,CPU执行片外存储器进行调试。
3、对于片内无ROM的80C31单片微机,应将EA非引脚固定在低电平,以迫使系统全部执行片外程序程序存储器程序。
6、80C51片内RAM低128单元划分为哪4个主要的部分?各部分的主要功能是什么?答:1、工作寄存器区——用寄存器直接寻址的区域,指令的数量最多,均为但周期指令,执行的速度最快。
2、位寻址区——共16个字节单元,既可进行字节寻址,又可进行位寻址。
3、字节寻址区——共有80个字节单元,可以直接寻址的方法访问。
5、堆栈区及堆栈指示器SP——堆栈是为了子程序的调用和中断操作而设立的,其具体功能有两个:保护断点和保护现场。
单片机作业与答案
第四章1、单片机系统结构特点?答:(1)在系统结构上采用哈佛型;(2)极强的布尔处理能力(3)具有较齐全的输入/输出接口及实时中断功能(4)配有实时控制时的特殊电路2、MCS-51单片机的基本组成?答:(1)8位中央处理单元CPU。
(2)4KB程序存储器ROM,256B数据存储器RAM。
(3)4个8位并行I/O口(P0~P3)。
(4)1个全双工串行I/O口(P3.0,P3.1)。
(5)2个16位加法定时/计数器(T0,T1)。
(6)5个中断源。
(7)内部时钟产生电路。
最高允许振荡频率为12MHz。
3、MCS-51单片机存储器可划分为几个空间?各自地址范围是多少?答:单片机存储器划分为四个空间:1)EA=1片内程序存储器地址0000-0FFFH ,片外程序存储器地址1000-FFFFH EA=0片外程序存储器地址0000-FFFFH2)片内数据存储器地址00-FFH片外数据存储器地址为0000-FFFFH4、MCS-51单片机内RAM存储器可划分为几个空间?各自地址范围是多少?答:寄存器区00H-1FH位寻址区20H-2FH用户区和堆栈区30H-7FH特殊功能寄存器区80H-FFH第五章1.MCS-51系列单片机有哪几种寻址方式?答:立即寻址:MOV A,#5直接寻址:MOV A,30H寄存器寻址:MOV A,R0寄存器间接寻址:MOV A,@R0变址寻址:MOVC A,@A+DPTR相对寻址:JZ REL位寻址:MOV C,BIT2.指出下列指令中画线的操作数的寻址方式。
MOV R0,#60H立即寻址MOV A,30H直接寻址MOV A,@Ri寄存器间接寻址MOV @Ri,A 寄存器寻址ADD A, B 寄存器寻址SUBB A,R7 寄存器寻址3.指出下列指令中画线的操作数的寻址方式。
MOVX A,@DPTR 寄存器间接寻址MOV DPTR,#0123H 立即寻址MOVC A,@A+DPTR 基址变址寻找MUL A B 寄存器寻址INC DPTR 寄存器寻址4.指出下列指令中画线的操作数的寻址方式。
单片机习题及参考答案
习题及参考答案一、填空题1、指令格式是由操作码和操作数所组成,也可能仅由操作码组成。
2、若用传送指令访问MCS-51的程序存储器,它的操作码助记符应为MOVC 。
3、若用传送指令访问MCS-51的片内数据存储器,它的操作码助记符应为MOV 。
4、若访问MCS-51的片外数据存储器,它的操作码助记符应为MOVX 。
5、累加器(A)=80H,执行完指令ADD A,#83H后,进位位C= 1 。
6、执行ANL A,#0FH指令后,累加器A的高4位= 0000 。
7、JZ rel的操作码地址为1000H,rel=20H,它的转移目的地址为1022H 。
8、JBC 00H,rel 操作码的地址为2000H,rel=70H,它的转移目的地址为2073H 。
9、累加器(A)=7EH,(20H)= #04H,MCS-51执行完ADD A,20H指令后PSW.0= 0 。
10、MOV PSW,#10H是将MCS-51的工作寄存器置为第 2 组。
11、指令LCALL 37B0H,首地址在2000H,所完成的操作是2003H 入栈,37B0H →PC。
12、MOVX A,@DPTR源操作数寻址方式为寄存器间接寻址。
13、ORL A,#0F0H是将A的高4位置1,而低4位保持不变。
14、SJMP rel的指令操作码地址为0050H,rel=65H,那么它的转移目标地址为 00B7H 。
15、设DPTR=2000H,(A)=80H,则MOVC A,@A+DPTR的操作数的实际地址为2080H 。
16、MOV C,20H源寻址方式为位寻址。
17、在直接寻址方式中,只能使用8 位二进制数作为直接地址,因此其寻址对象只限于片内RAM 。
18、在寄存器间接寻址方式中,其“间接”体现在指令中寄存器的内容不是操作数,而是操作数的地址。
19、在变址寻址方式中,以 A 作变址寄存器,以PC 或DPTR 作基址寄存器。
20、假定累加器A中的内容为30H,执行指令1000H:MOVC A,@A+PC后,把程序存储器1031H 单元的内容送入累加器A中。
单片机习题 解答 (仅供参考)
单片机习题解答 (仅供参考)单片机习题解答(仅供参考)在单片机学习过程中,习题解答是非常重要的一部分。
通过解答习题,我们可以加深对单片机原理的理解,提高解决问题的能力。
本文将提供一些常见的单片机习题解答,供大家参考。
一、基础知识题1. 单片机的基本概念是什么?单片机是指将微处理器、存储器和输入输出接口电路等功能集成在一个芯片上的一种微型计算机系统。
它具有体积小、功耗低、可靠性高等优点,广泛应用于嵌入式系统中。
2. 单片机有哪些主要的寄存器?单片机主要包括通用寄存器、程序计数器、状态寄存器、堆栈指针、数据指针等。
其中,通用寄存器用于存放临时数据,程序计数器用于存放下一条指令的地址,状态寄存器用于记录程序运行的状态,堆栈指针用于管理函数的调用和返回,数据指针用于存放数据的地址。
3. 单片机的时钟信号是如何产生的?单片机的时钟信号是通过外部晶体振荡器或者内部振荡电路产生的。
晶体振荡器通过振荡晶体使得IC内部产生稳定的时钟信号,内部振荡电路则通过RC电路或者LC电路产生时钟信号。
4. 如何配置单片机的I/O口?单片机的I/O口通常需要配置为输入模式或者输出模式。
配置为输入模式时,需要将相应的引脚配置为高阻态或者低电平输入;配置为输出模式时,需要将相应的引脚配置为高电平输出或者低电平输出。
二、编程实践题1. 编写一个程序实现LED灯的闪烁。
#include <reg52.h> // 包含寄存器定义文件sbit LED = P1^0; // 定义LED连接的引脚void delay(unsigned int t) // 延时函数{unsigned int i, j;for(i = t; i > 0; i--)for(j = 110; j > 0; j--);}void main(){while(1){LED = 0; // 点亮LEDdelay(500); // 延时500msLED = 1; // 熄灭LEDdelay(500); // 延时500ms}}2. 编写一个程序实现按键控制LED灯的亮灭。
单片机习题参考答案-
单片机习题参考答案第四章P97 6,7,9,10,12,16,17,18,19,23,27,28,296.在80C51片内RAM中,已知(30H)=38H,(38H)=40H,(40H)=48H,(48H)=90H,请分析下段程序中各指令的作用,并翻译成相应的机器码;说明源操作数的寻址方式及顺序执行每条指令后的结果。
机器码(H) 指令结果源操作数的寻址方式E540 MOV A,40H ;A=(40H)=48H 直接寻址F8 MOV R0,A ;R0=48H 寄存器寻址7590F0 MOV P1,#0F0H ;P1=0F0H 立即寻址A630 MOV @R0,30H ;(48H)= 38H 直接寻址901246 MOV DPTR,#1246H;DPTR=1246H 立即寻址853840 MOV 40H,38H ;(40H)=40H 直接寻址A830 MOV R0,30H ;R0=38H 直接寻址8890 MOV 90H,R0 ;(90H)=38H 寄存器寻址754830 MOV 48H,#30H ;(48H)=30H 立即寻址E6 MOV A,@R0 ;A=40H 寄存器间接寻址8590A0 MOV P2,P1 ;P2=P1=38H 直接寻址7.试说明下列指令的作用,并将其翻译成机器码,执行最后一条指令对PSW有何影响?A的终值为多少?机器码(H) 指令结果(1) 7872 MOV R0,#72H ;R0=72HE8 MOV A,R0 ;A=72H,P=0244B ADD A,#4BH ;A=BDH,CY=0,OV=1,AC=0,P=0(2) 7402 MOV A,#02H ;A=02H,P=1F5F0 MOV B,A ;B=02H740A MOV A,#0AH ;A=0AH,P=025F0 ADD A,B ;A=0CH,CY=0,OV=0,AC=0,P=0A4 MUL AB ;A=18H,B=0,CY=0,OV=0,AC=0,P=0(3) 7420 MOV A,#20H ;A=20H,P=1F5F0 MOV B, A ;B=20H25F0 ADD A,B ;A=40H,CY=0,OV=0,AC=0,P=19410 SUBB A,#10H ;A=30H,CY=0,OV=0,AC=0,P=084 DIV AB ;A=01H,B=10H,CY=0,OV=0,AC=0,P=19.试编程将片外数据存储器60H中的内容传送到片内RAM 54H单元中。
单片机课后习题含答案
第一章单片机的概述1、除了单片机这一名称外,单片机还可称为(微控制器)和(嵌入式控制器)。
2、单片机与普通微型计算机的不同之处在于其将(CPU)、(存储器)和(I/O口)三部分,通过内部(总线)连接在一起,集成于一块芯片上。
3、在家用电器中使用单片机应属于微型计算机的(B)。
A、辅助设计应用B、测量、控制应用C、数值计算应用D、数据处理应用4、微处理器、微计算机、微处理机、CPU、单片机、嵌入式处理器它们之间有何区别?答:微处理器、微处理机和CPU它们都是中央处理器的不同称谓,微处理器芯片本身不是计算机。
而微计算机、单片机它们都是一个完整的计算机系统,单片机是集成在一个芯片上的用于测控目的的单片微计算机。
嵌入式处理器一般意义上讲,是指嵌入系统的单片机、DSP、嵌入式微处理器。
目前多把嵌入式处理器多指嵌入式微处理器,例如ARM7、ARM9等。
嵌入式微处理器相当于通用计算机中的CPU。
与单片机相比,单片机本身(或稍加扩展)就是一个小的计算机系统,可独立运行,具有完整的功能。
而嵌入式微处理器仅仅相当于单片机中的中央处理器。
为了满足嵌入式应用的特殊要求,嵌入式微处理器虽然在功能上和标准微处理器基本是一样的,但在工作温度、抗电磁干扰、可靠性等方面一般都做了各种增强。
5、MCS-51系列单片机的基本型芯片分别为哪几种?它们的差别是什么?答:MCS-51系列单片机的基本型芯片分别为:8031、8051和8751。
它们的差别是在片内程序存储器上。
8031无片内程序存储器、8051片内有4K字节的程序存储器ROM,而8751片内有集成有4K字节的程序存储器EPROM。
6、为什么不应当把8051单片机称为MCS-51系列单片机?答:因为MCS-51系列单片机中的“MCS”是Intel公司生产的单片机的系列符号,而51系列单片机是指世界各个厂家生产的所有与8051的内核结构、指令系统兼容的单片机。
7、AT89S51单片机相当于MCS-51系列单片机中哪一种型号的产品?“s”的含义是什么?答:相当于MCS-51系列中的87C51,只不过是AT89S51芯片内的4K字节Flash 存储器取代了87C51片内的4K字节的EPROM。
单片机课后习题参考答案(全).
单片机课后习题参考答案(全).单片机课后习题参考答案1. 什么是单片机?单片机是一种集成电路芯片,其中包含了处理器、存储器以及各种输入输出接口。
它能够完成各种控制任务,并且在各种嵌入式系统中广泛应用。
2. 单片机的特点有哪些?- 小巧、体积小:单片机可以集成多个功能在一个芯片内部,所以体积相对较小。
- 低功耗:单片机工作时功耗较低,适合用于一些需要长时间运行的电子产品。
- 低成本:相对于使用多个离散电子元件实现同样功能的电路,单片机的成本较低。
- 高可靠性:单片机内部通过硬件逻辑实现各种功能,不易受外界干扰,提高了系统的可靠性。
- 程序可编程:单片机可以通过编程改变其功能,具有较强的灵活性。
3. 单片机的工作原理是什么?单片机内部通过运算器、控制器、存储器等硬件组成,运算器负责执行各种算术、逻辑操作,控制器负责协调和控制各种操作,存储器用于存储程序和数据。
当单片机上电后,控制器开始执行存储器中的程序,按照指令的执行顺序执行各个操作。
单片机的输入输出接口与外部设备进行数据交换,实现与外部环境的交互。
4. 单片机的应用领域有哪些?单片机被广泛应用于各种嵌入式系统中,包括电子产品、电子仪器、通讯设备、汽车电子、医疗设备等。
它能够实现各种控制任务,如温度控制、风扇控制、光控制、家电控制等。
5. 单片机的编程语言有哪些?常见的单片机编程语言包括汇编语言、C语言和基于C语言的高级语言。
汇编语言是一种底层的编程语言,直接面向单片机的硬件操作;C语言是一种高级语言,可以方便地进行开发和调试;基于C语言的高级语言如Basic、Pascal等是对C 语言进行了扩展和封装,更加简化了编程过程。
6. 单片机系统的开发流程是什么?单片机系统的开发流程一般包括以下几个步骤:- 硬件设计:确定系统所需的输入输出接口及硬件电路,并进行电路设计和原理图绘制。
- 软件设计:编写程序代码,实现系统的各种功能。
- 系统调试:将软件下载到单片机中,通过调试工具进行调试和测试,确保系统能够正常运行。
单片机作业习题答案
作业习题答案《单片机应用技术》部分习题与参考答案第1章单片机概述1-1什么是嵌入式系统?嵌入式系统的硬件和软件各包括哪些内容?答: 以应用为中心,以计算机技术为基础,软/硬件可剪裁,针对具体应用系统,对功能、可靠性,成本、体积、功耗严格要求的专用计算机系统称为嵌入式计算机系统。
简称为嵌入式系统。
嵌入式系统的硬件包括:嵌入式处理器、存储器和外部设备器件、输入输出接口、图形控制器等。
软件包括操作系统和应用程序。
嵌入式系统是专用的计算机系统,嵌入式系统的核心是嵌入式处理器,单片机是嵌入式处理器的典型代表。
1-2 什么叫单片机?一个完整的单片机芯片至少有哪些部件?答:将微处理器(CPU)、存储器、定时/计数器及输入输出接口电路等部件集成在一块集成电路上,称为单片微型计算机,简称单片机。
一个完整的单片机芯片至少有中央处理器(CPU)、随机存储器(RAM)、只读存储器(ROM)、定时/计数器及I/O接口等部件。
1-3嵌入式处理器有何特点?嵌入式处理器分为哪几类?答:嵌入式处理器对实时和多任务系统有和强的支持能力、对存储区保护功能强、具有可扩展的处理器结构及低功耗等特点。
嵌入式处理器分为:嵌入式微处理器、微控制器、嵌入式DSP处理器和片上系统等。
1-4 单片机系统的开发过程分为那几步进行?答:1.硬件的设计与调试。
2 应用程序的设计和调试。
3系统联调。
4程序的固化。
5.脱机运行。
1-5 Intel 公司的主要单片机产品分为哪几大系列?各系列的区别何在?答:Intel公司的MCS-48系列、MCS-51系列、MCS-96系列产品;48系列的单片机在片内集成4位CPU,片内含有多种I/O接口,有的根据不同用途还配有许多专用接口,价格便宜,控制功能强。
51系列的单片机在片内集成8位CPU、片内RAM为128字节,ROM为4K字节,4个并行I/O口、2个16位定时/计数器、串行接口、5个中断源。
96系列单片机CPU为16位,片内RAM为232字节,ROM为8K字节,片内带有高速输入输出部件,多通道10位A/D转换部件,中断处理为8级。
单片机作业(答案)
单片微型计算机原理与接口技术1、题目:80C51单片微机芯片引脚第二功能有哪些?答:80C51单片机的P0、P2和P3引脚都具有第二功能。
第一功能第二变异功能P0.0~P0.7 地址总线A0~A7/数据总线D0~D7P2.0~P2.7 地址总线A8~A15P3.0 RXD(串行输入)P3.1 TXD(串行输入)P3.2 INTO(外部中断0)P3.3 INT1(外部中断1)P3.4 TO(定时器/计数器0的外部输入)P3.5 T1(定时器/计数器0的外部输出)P3.6 WR(外部数据存储器或I/O的写选通)P3.7 RD(外部数据存储器或I/O的读选通)2、题目:80C51存储器在结构上有何特点?在物理上和逻辑上各有哪几种地址空间?访问片内RAM和片外RAM的指令格式有何区别?答:80C51单片机采用哈佛(Har-yard)结构,即将程序存储器和数据存储器截然分开,分别进行寻址。
不仅在片内驻留一定容量的程序存储器和数据存储器及众多的特殊功能寄存器,而且还具有较强的外部存储器扩展能力,扩展的程序存储器和数据存储器寻址范围都可达到64KB。
1.在物理上设有4个存储器空间片内程序存储器片外程序存储器片内数据存储器片外数据存储器2.在逻辑上设有3个存储器地址空间片内、片外统一的64KB程序存储器地址空间片内256字节(80C52为384字节)数据存储器地址空间片内数据存储器空间在物理上又包含两部分:-对于80C51型单片机,0~127字节为片内数据存储器空间;128~255字节为特殊功能寄存器(SFR)空间(实际仅占用了20多个字节)-对于80C52型单片机,0~127字节为片内数据存储器空间; 128~255字节共128个字节是数据存储器和特殊功能寄存器地址重叠空间。
片外64KB的数据存储器地址空间。
在访问3个不同的逻辑空间时,应采用不同形式的指令,以产生不同存储空间的选通信号。
访问片内RAM采用MOV指令,访问片外RAM则一定要采用MOVX指令,因为MOVX指令会产生控制信号RD或WR,用来访问片外RAM。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.CS-51系列单片机串行口中断标志TI和R I在执行中断程序后,能否自动清零,这样设计的意图是什么?答:不能,由于串行通信的收发电路使用一个中断源,因而,有利于单片机查询是接收中断还是发送中断。
同时有利于全双工通信。
2.写出8051单片机的复位及5个中断服务程序的入口地址。
答:(1)复位入口地址:0000H;(2)外部中断0中断服务程序入口地址为0003H;(3)定时器/计数器0中断服务程序入口地址为000BH;(4)外部中断1中断服务程序入口地址为0013H;(5)定时器/计数器1中断服务程序入口地址为001BH;(6)串行口中断服务程序入口地址为0023H。
3.简述MCS-51单片机的工作寄存器的分布结构(包括:几个区、如何选择、每个区几个寄存器、如何表示)?答:(1)四个通用寄存器区;(2)通过PSW的RS1、RS0选择:00--0区、01—1区、10—2区、11—3区;(3)每个区有8个工作寄存器R0—R7;4.MCS-51单片机的P0口作为一般的I/O口使用时应注意什么?答:应注意:①由于P0口的输出级是漏极开路的开漏电路,所以作为一般的I/O口使用时需接外部上拉电阻;②P0口的输出级的输出驱动能力,可以驱动8个LS的TTL电路,使用必须确认是否能驱动的外部电路,否则应加驱动电路;③由于P0口为准双向口,在读引脚时,应先把口置1。
5.画出MCS-51单片机的三总线图(控制总线应包括三条)并注明几条数据线、几条地址线、各个控制线的意义。
答:(1)(2)8条数据线、16条地址线(3)/RD:对外部RAM及I/O口的读允许;/WR:对外部RAM及I/O口的写允许;/PSEN:对外部ROM的读允许;6.MCS-51系列单片机内部有哪些主要逻辑部件组成?(书)答:CPU、RAM、程序存储器、定时器、I/O接口、中断系统、串行接口等。
7.简述P3口的特殊专用功能(第2功能)。
答:P3.0----串行通信收;P3.1-----串行通信发;P3.2-----外部中断0;P3.3-----外部中断1;P3.4----- T0的计数输入;P3.5----- T1的计数输入;P3.6-----外部数据区写有效;P3.7-----外部数据区读有效。
8. MCS-51单片机内部RAM 区功能结构如何分配的?(书) 答:00H---1FH 通用寄存器区20H---2FH 位寻址区30H---7FH 通用RAM 和堆栈区9. 写出将片内RAM 20H 单元、片外RAM 20H 单元的内容读入A 中的指令。
(4分) 答: 片内:MOV A ,20H 片外:MOV DPTR ,#20H MOVX A ,@DPTR10. 8052单片机的低128字节的RAM 、高128字节RAM 与位寻址空间、特殊功能寄存器区和外部数据区都出现地址重叠,单片机如何正确访问这些单元?答:内部位寻址区、内部RAM 、特殊功能寄存器区与外部数据区采用不同的命令格式加以区分。
而内部RAM 和特殊功能寄存器区采用不同的寻址方式:⎪⎪⎩⎪⎪⎨⎧---------直接寻址方式采用寄存器间接寻址和字节低式采用寄存器间接寻址方字节高采用直接寻址方式特殊功能寄存器采用位寻址指令内部位单元RAM RAM 128128 11. 8051单片机最多可能外部扩展多少字节的程序存储器?为什么? 答:64K,因为8051最多可以提供16条地址线。
12. 8051单片机最多外部扩展多少字节的数据存储器?程序存储器和数据存储器地址空间重叠,单片机是如何加以区分的?答:64K ;通过指令及PSEN 和WR 、RD 线区分的。
13. 简述8051单片机EA 、ALE 、PSEN 这三个引脚的作用。
答:EA 为内部、外部程序存储器的选择线;ALE 锁存低8位地址信号控制;PSEN 访问程序存储器有效。
14. 当中断允许寄存器IE 的内容为97H 时的含义是什么?答:允许总中断,允许INT0、T0、INT1、串口中断;禁止T1中断。
15. 当中断优先级寄存器IP 的内容为93H 时的含义是什么? 答:串行口、INT0、T0为高优先级,INT1、T1为低优先级。
16. 写出8051单片机5个中断服务程序的入口地址。
答:INT0-----0003H ;T0------000BH ;串行口-----0023H ; INT1-----0013H ; T1----001BH 。
17. 当串行口控制寄存器SCON 的内容为F0H 时的含义如何?答:串口工作于方式3,多机通信使能位为1,即收到RB8=1时通信中断有效,可接收数据,发射第九位TB8=0。
18. (实验题目1)单片机采用晶振6MHZ ,P1口接有8个发光管,围成圆形(跑马灯)。
要求:① 发光管每次只亮一个,一次从P1.0~P1.7循环发光,切换时间为1秒(低电平亮); ② 延时采用T0定时器,工作于自动装入时间常数的定时器工作方式,允许T0中断,试写出完整的可调试程序。
答:ORG 0000H LJMP start ORG 000BH LJMP timer0 ORG 30Hstart:MOV TMOD ,#02H ;T0工作于方式2—自动重装载MOV TL0,#06 ;定时器自动重装初值 MOV TH0,#06MOV R7,#100MOV R6,#20 ;R6、R7中断次数,一次中断500uS,即500*100*20=1s MOV A ,#0FEH ;循环送出的控制字节MOV P1,A ;送出控制字节,P1.0灯亮 SETB TR0 SETB ET0 SETB EAwait:SJMP wait ;主程序,无限循环 timer0:DJNZ R7,EXITMOV R7,#100 DJNZ R6,EXIT MOV R6,#20RL A ;左循环一位 MOV P1,A EXIT:RETIEND19. 简述程序状态字PSW 每位的作用。
(书)答:Cy---借、进位;AC —半借、进位;P —奇/偶位;RS1、RS2—工作寄存器区选择位;OV —溢出标志位;F0—辅助位。
20. 简述单片机多机通信的原理。
答:单片机构成的多机系统为主从式结构,系统中只有一个主机,其他为从机;此时,单片机的串口工作于方式2或者方式3,发送和接收的帧信息是11位,其中第9位用于地址或数据位的辨识,该位为1表示地址码,为零表示数据码,该位是通过TB8、RB8发送和接收的。
在主机通信时,所有的从机置SM2=1,这时主机先发送地址码,这时所有的从机将都收到,从机分别将收到的地址码与自己的地址码比较,当地址码相同时,该分机置SM2=0;其他分机不变,此后,主机与该分机建立了一对一的通信关系,此时交换的数据帧为TB8=0,而SM2=1的分机收不到数据帧,当通信完毕后,分机将SM2=1;等待主机的下一次的通信。
21. 一个单片机系统,时钟频率fosc=11.059Mhz ,现要求串行口通信的波特率为9600bps ,采用T1作为波特率发生器,试计算出定时器T1的自动重装载值、实际波特率并验算实际波特率与理论波特率的相对误差? 答:取:SMOD=0;T1 自动重装载值: F D H N ==-=⨯⨯⨯-=25332561232960010059.112566演算: ()b p s 波特率8.9599253256123210059.116=-⨯⨯⨯= 误差计算:%0018.096008.95999600=-=误差 程序段:MOV TMOD ,#20HMOV TH1,#0FDH MOV TL1,#0FDH SETB TR122. 下列指令哪些是错误的:① MOV A ,@R2 ② MOV 45H ,C ③MOV R1,R7 ④ADD A ,DPTR 答: ①③④错23. 简述 DIV AB JMP @A+DPTR 的功能。
答:DIV AB--------(A)/(B)=商→A ,余数→BJMP @A+DPTR--- 程序无条件转移到(A)+(DPTR)中去,即(A)+(DPTR) →PC24.设T0为定时器,以方式1工作,定时时间为10ms,并且每到1次P1.1取反,T1作为计数器以方式2工作,外界发生二次事件溢出,晶振频率为12MHZ。
⑴写出对应的TMOD的内容,计算出时间常数;⑵写出对应的程序段。
初值计算:N=65536-10000=55536=D8F0HT1=256-2=254=0FEH程序段:MOV TMOD,#61HMOV TH0,#0D8HMOV TL0,#0F0HMOV TH1,#0FEHMOV TL1,#0FEHSETB TR0SETB TR1CPL P1.125.利用单片机的P1口扩展一个4*4的键盘电路,画出原理图,并简述工作原理。
答:若P1.0-P1.3为键盘的列线输入线,P1.4-P1.7为键盘的行输出线,接线如图所示。
当CPU输出行线全为0;若读取的列线全为高电平,表示无键按下,当不为全高时,表示有键按下。
当有键按下时,循环使一条行线输出为低电平,读取列线,当出现列线不全为零时,即将此时的列线和行线构成一个字节,表示为该键的键值,在键盘处理时,可通过延时再读取键值的办法去抖。
26.写出8052单片机内部低128字节、高128字节RAM单元和SFR区的地址空间,详细说明单片机是如何访问这些单元的?答:低128—0~7FH;高128---80H~FFH;SFR-----80~FFH低128字节RAM区---采用寄存器间接寻址和直接寻址方式特殊功能寄存器区-----直接寻址方式高128字节RAM区---采用寄存器间接寻址方式27.在单片机应用系统中设置看门狗的作用是什么?答:为了防止单片机程序跑飞或者系统死机。
28.单片机采用晶振6Mhz,用P1口控制交通信号灯(P10、P11接红灯、P12、P13接绿灯,输出高电平灭)。
要求:红、绿灯切换时间为6秒,试写出完整的可调试的程序。
答:ORG 0000H SETB TR0LJMP START SETB ET0ORG 000BH SETB EALJMP TIME0 W AIT: LJMP W AITORG 30H TIME0: DJNZ R7,EXITSTART:MOV SP,#30H MOV R7,#100MOV TMOD,#02H DJNZ R6,EXITMOV TH0,#06 MOV R6,#120MOV TL0,#06 MOV A,R5MOV R7,#100 CPL AMOV R6,#120 MOV P1,AMOV R5,#05 MOV R5,AMOV A,R5 EXIT:RETIMOV P1,A END29.采用单片机的P0口和P2.0~P2.3扩展4位数码管显示电路,由单片机的I/O口直接控制(可不考虑驱动电路),试画出相应的电路原理图;在内部RAM设置一个显示缓冲区,编写显示该显示缓冲区内容的显示子程序。