2016单片机试题
一、填空题
1.单片机与普通计算机的不同之处在于其将_CPU__、 存储器 和__I/O_3部分集成于一块芯片之上。
2.CPU主要由 运算 器和 控制 器组成。CPU中的 布尔处理器 用来处理位操作。
3.MSC-51系列单片机中,片内无ROM的机型是 8031 ,有4KB ROM的机型是_8051_,而有4KB EPROM 的机型是 8751 。
4. -32的补码为 11100000 B,补码11011010B代表的真值为_-38__D。
5.原码数BFH=_-63_D,原码数6EH=_110_D。
6.100的补码=_64_H,-100的补码= 9C H
7.在8031单片机内部,其RAM高端128个字节的地址空间称为 特殊功能寄存器或SFR 区,但其中仅有_21_个字节有实际意义。
8.通常单片机上电复位时PC=_0000_H,SP=_07_H,通用寄存器则采用第_0_组,这一组寄存器的地址范围是从_00 H~_07_H。
9.若PSW为18H,则选取的是第_3__组通用寄存器。
10. 8031单片机复位后R4所对应的存储单元地址为_04_H,因上电时PSW=_00_H。
11. 若A中数据为63H,那么PSW的最低位(即奇偶位P)为_0_。
12. 在微机系统中,CPU是按照 程序计数器PC 来确定程序的执行顺序的。
13. 在8031单片机中,使用P2、P0口传送 地址 信号,且使用了P0口来传送 数据 信号,这里采用的是 总线复用 技术。
14. 堆栈遵循 先进后出(或后进先出) 的数据存储原则,针对堆栈的两种操作为_PUSH_和_POP_。
15. 当8051地RST端上保持 两 个机器周期以上高电平时,8051即发生复位。
16. 使用8031单片机时需将 引脚EA接_低__电平,因为其片内无 程序 存储器。
17. 8位机中的补码数80H和7EH的真值分别为_-128__和_127 。
18. 配合实现“程序存储自动执行”的寄存器是_PC_,对其操作的一个特别之处是 每取完一字节指令后PC内容会自动加1 。
19. MCS-51单片机PC的长度为_16_位;SP的长度为_8_位,数据指针DPTR的长度为_16_位。
20. 8051单片机的RST引脚的作用是 对单片机实行复位操作 ,其操作方式有 上电自动复位 和 按键手动复位 两种方式。
21. I/O端口与外部设备之间传送的信息可分为_三__类。
22. 8051片内有256B的RAM,可分为四个区,00H~1FH为 工作寄存器 区;20H~2FH为 位寻址 区;30H~7FH为 堆栈、数据缓冲 区;80H~FFH为 特殊功能寄存器 区。
23. MCS-51单片机系列有_5__中断源。上电复位时,同级中断源的优先级别从高至低为 外部中断源0 、 定时器0 、 外部中断1 、 定时器1 和 串行口 ,若IP=00010100B,则优先级别最高者为 外部中断1 、最低者为 定时器1 。
24. 储存器的主要功能是存储 指令 和 数据 。
25. 若你正在编辑某个文件,突然断电,则计算机中 RAM 类型存储器中的信息全部丢失,且通电后也不能自动恢复。
26. 8051在物理结构上只有四存储空间,它们分别是 片内程序存储器 、 片外程序存储器 、 片内数据存储器 、 片外数据存储器 ;但在逻辑结构上只有三个存储空间,它们分别是 片内外统一编址的64KB程序存储器 、 片内256B的数据存储器 和 片外64KB的数据存储器 。
27. I/O端口作为通用输入输出口时,在该端口引脚输入数据时,应先向端口锁存器进行 写“1” 操作。
28. 8051单片机其内部有 21 个特殊功能寄存器,其中 11 个可以位寻址。
29. 在一般情况下实现片选的方法有两种,分别是 线选法 和 译码法 。
30. 起止范围是0000H~3FFFH的存储器的容量是 16 KB。
31. 11根地址线可选 2048(或2KB或211)个存储单元,16KB存储单元需要 14 根地址线。
32. MCS-51机中扩展I/O口占用片外__数据__存储器地址空间。
33. MCS-51 单片机访问片外存储器时利用通信 ALE_信号锁存来自_P0__口的低八位地址信号。
34. 半导体存储器的最重要的两个指标是 存储容量 和 存取速度 。
35. 32KB ROM的首地址若为2000H,则末地址是 9FFFH 。
36. MOV A,#30H是 立即 寻址方式。MOVX A,@DPTR是 寄存器间接 寻址方式。(注:指原操作数的寻址方式)
37. 通过堆栈操作实现子程序调用,首先就要把 PC 的内容入栈,以进行断点保护。
38. 在基址加变址寻址方式中,以 A 作变址寄存器,以 PC 或 DPTR 作基址寄存器。
39. 假定累加器A中的内容为30H,执行指令:
1000H:MOVC A,@A+PC(本指令占一字节空间)
后,把程序存储器 1031H 单元的内容送入累加器A中。
40. 访问8031片外数据存储器采用的是 寄存器间址的 寻址方式。
41. 指令格式由 操作码 和 操作数 两部分组成。
42. 寻址方式分为对 指令 的寻址和对 数据 的寻址两大类。
43. 一个完整的中断过程可分为 中断请求 、 中断响应 、 中断处理 和 中断返回 四部分。
44. 中断请求信号有 电平 触发和__边沿__触发两种触发方式。
45. MCS-51单片机8031中有_2_个_16_位的定时器/计数器,可以被设定的工作方式有_4_种。
46. 若系统晶振频率为12MHZ,则T0工作于方式0时的最大定时时间是 8.192 ms,工作于方式2时的最大计数脉冲个数是 256 个。
47. 欲对300个外部事件计数,可以选用定时/计数器T1的模式_0 或模式__1_。
48. 若系统晶震频率为6MHZ,则时钟周期为__0.167_us,机器周期为_2_us,最短和最长指令周期分别为__2_us和__8_us。
49. 若单片机的晶振频率fosc=8MHZ,则执行一条MUL AB指令所需时间为__6_us。
50. RS-232C采用单端驱动,易受 干扰 影响,一般传输距离在 几十米 以内。
51. 三态缓冲寄存器的“三态”是指 低电平 态、 高电平 态和 高阻 态。
52. 74LS138是具有3个输入的译码器芯片,其输出作为片选信号时,最多可以选中_8_块芯片。
53. 74LS273通常用来作为简单 输出 接口扩展;而74LS244则常用来作简单 输入 接口扩展。
54. 计算机对输入/输出设备的控制方式主要有三种。其中, A 方式硬件设计最简单,但要占用不少CPU的运行时间; B方式的硬件线路最复杂,但可大大提高数据传送效率;而 C 则介于上述两者之间。
①先进先出 ②后进先出 ③直接存储器访问 ④程序查询
⑤高速缓存 ⑥系统总线 ⑦程序中断 ⑧逐行扫描
请选择并填写答案:A=__④__,B= ③ ,C=_ ⑦_
55. 若LED为共阳极接法(即负逻辑控制),则提示符P的七段代码值应当为_0C或 8C_H。
56. 欲增加8KB*8位的RAM区,请问选用Intel2114(1KB*4位)需购_16_片;若改用Intel6116(2KB*8位)需购_4_片;若改用Intel6264(8KB*8位)需购_1_片。
57. 已知RAM芯片6116(2KB*8位)有24条外引脚,请问应分配 11 个引脚给地址线,分配_8__个引脚给数据线,再分配两个引脚给电源和地线外,剩余的_3_个引脚应该分配给 读写控制和片选信号线 。
58. 在异步通信中若每个字符由11位组成,串行口每秒传送250个字符,则对应波特率为_2750bps_。
59. 在串行通信中采用偶校验,若传送的数据为0A5H,则基本奇偶校验位应为_0_(用“0”“1”表示)。
60. 80C51的串行口控制寄存器中有2个中断标志位,它们是 RI 和 TI 。
61. 串行通信可以分成 异步 通信和 同步 通信两大类。
62. LED显示器的显示控制方式有 静态 显示和 动态 显示两大类。
63. LED显示器根据二极管的连接方式可以分为( 共阴极 )和(共阳极)两大类。
64. CPU与内存或I/O接口相连的系统总线通常由 数据总线(DB) 、 地址总线(AB) 、 控制总线(CB) 等三种信号线组成。
二、单选题
1.电子计算机技术在半个世纪中虽有很大的进步,但至今其运行仍遵循着一位科学家提出的基本原理。这位科学家是:(D)
(A) 牛顿 (B) 因斯坦 (C) 爱迪生 (D) 冯•诺伊曼
2.用晶体管作为电子器件制成的计算机属于:(B)
(A) 第一代 (B) 第二代 (C) 第三代 (D) 第四代
3.通常所说的主机是指:(C)
(A) 运算器和控制器 (B)CPU和磁盘存储器
(C) CPU和主存 (D)硬件和软件
4.(计算机能直接识别的语言是:(C)
(A) 汇编语言 (B) 自然语言 (C) 机器语言 (D) 高级语言
5.在CPU中,控制器的功能是:(C)
(A) 进行逻辑运算 (B)进行算术运算
(C) 分析指令并发出相应的控制信号 (D) 只控制CPU的工作
6.PC是:(C)
(A) 一根硬件信号线
(B) 一个可由用户直接读写的8位PAM寄存器
(C) 一个能自动加1的16位的计数器
(D)一个能自动加1计数的ROM存储单元
7.CPU主要的组成部部分为( A ) (A)运算器、控制器 (B)加法器、寄存器 (C)运算器、寄存器 (D)运算器、指令译码器
8.在单片机中,通常将一些中间计算结果放在( A )中
(A)累加器 (B)控制器 (C)程序存储器 (D)数据存储器
9.PC的值是(C)
(A)当前正在执行指令的前一条指令的地址 (B)当前正在执行指令的地址
(C)当前正在执行指令的下一条指令的地址 (D)控制器中指令寄存器的地址
10. CPU寻址外设端口地址的方法有两种,一种是统一编址,还有一种是( C)。
(A) 混合编址 (B) 动态编址 (C) 独立编址 (D) 变址编址
11. 在CPU内部,反映程序运行状态或反映运算结果的一些特征的寄存器是:(B)
(A) PC (B) PSW (C) A (D) SP
12. MCS-51的并行I/O信息有两种读取方法,一种是读引脚,还有一种是( A )
(A)读锁存 (B)读数据 (C)读累加器A (D)读CPU
13. 区分片外程序存储器和数据存储器的最可靠方法是(D)。
(A)看其芯片型号是RAM还是ROM
(B)看其位于地址范围的低端还是商端
(C)看其离MCS-51芯片的远近
(D)看其是被RD信号连接还是被PSEN信号连接
14. 已知PSW=10H,通用寄存器R0~R7的地址分别为( C )。
(A)00H~07H; (B) 08H~0FH; (C) 10H~17H; (D) 18H~1FH A R7;
15.关于MCS-51单片机堆栈操作,下列描述错误的是( B )。
(A)遵循先进后出,后进先出的原则 (B)出栈时栈顶地址自动加1
(C)调用子程序及子程序返回与堆栈有关 (D) 堆栈指针是一个特殊功能寄存器
16. MCS-51的并行I/O口读-改-写操作,是针对该口的( D )
(A)引脚 (B)片选信号 (C)地址线 (D)内部锁存器
17. MCS-51单片机复位操作的主要功能是把PC初始化为( C )。
(A)0100H (B)2080H (C)0000H (D)8000H
18.当外部中断请求的信号方式为脉冲方式时,要求中断请求信号的高电平状态和低电平状态都应至少维持( B )。
(A)1个机器周期 (B)2个机器周期
(C)4个机器周期 (D)10个晶振周期
19.8051与8751的区别是(C)
(A)内部数据存储单元数目不同 (B)内部数据存储器的类型不同
(C)内部程序存储器的类型不同 (C)内部的寄存器的数目不同
20.访问片外数据存储器时,不起作用的信号是(C)
(A) RD (B) WR (C) PSEN (D) ALE
21.下列四条叙述中,有错误的一条是(A)
(A)16根地址线的寻址空间可达1MB
(B)内存器的存储单元是按字节编址的
(C) CPU中用于存放地址的寄存器称为地址寄存器
(D)地址总线上传送到只能是地址信息
22.14根地址线的寻址范围可达(B)
(A) 8KB (B)16KB (C) 32KB (D)64KB
23.CPU寻址外设端口地址的方法有两种,一种是统一编址,还有一种是( C )。
(A) 混合编址 (B) 动态编址 (C) 独立编址 (D) 变址编址
24.MSC-51系列单片机外扩存储器芯片时,4个I/O口中用作数据总线的是( B)。
(A)P0口和P2口 (B)P0口 (C)P2口和P3口 (D)P2口
25.要用传送指令访问MCS-51片外RAM,它的指令操作码助记符应是( B )
(A)MOV (B)MOVX (C)MOVC (D)以上都是
26.指令ALMP的跳转范围是( C )
(A)256B (B)1KB (C)2KB (D)64KB
27.下列可用作片内RAM间接寻址的寄存器是(D )。
(A)RAM (B)ROM (C)磁盘 (D)磁带
28.以下指令中,属于单纯读引脚的指令是( C )
(A)MOV P1,A (B)ORL P1,#0FH (C)MOV C,P1.5 (D)DJNZ P1,short-lable
29.指出以下指令中的错误指令( A )。
(A)MOVC @R1,A (B)MOV 20H,#01H (C)ORL A,R5 (D)POP 30H
30.下列程序段中使用了位操作指令的有( B )。
(A)MOV DPTR,#1000H (B)MOV C,45H
MOVX A,@DPTR CPL ACC.7
(C) MOV A, 45H (D)MOV R0,23H
XCH A,27H MOV A,@R0
31.MCS-51汇编语言源程序设计中,下列符号中不能用作标号的有( B )。
(A)LOOP (B) MOV (C)LD1 (D)ADDR
32.MCS-51单片机在同一优先级的中断源同时申请中断时,CPU首先响应( A )。
(A)外部中断0 (B)外部中断1
(C)定时器0中断 (D)定时器1中断
33.要使MCS-51能够响应定时器T1中断,串行接口中断,它的中断允许寄存器IE的内容应是( A )
(A)98H (B)84H (C)42H (D)22H
34.定时器T1固定对应的中断入口地址为( D )
(A)0003H (B)000BH (C)0013H (D)001BH
35.各中断源发出的中断请求信号,都会标记在MCS-51系统中的( B )
(A)TMOD (B)TCON/SCON (C)IE (D)IP
36.MCS-51单片机可分为两个优先级别。各中断源的优先级别设定是利用寄存器( B )
(A)IE (B)IP (C)TCON (D)SCON
37.( D )不属于微型机引入中断技术后的好处
(A)分时操作 (B)实时操作 (C)故障处理 (D)高速传送数据
38.( C)并非单片机系统响应中断的必要条件。
(A) TCON或SCON寄存器内的有关中断标志位为1
(B) IE中断允许寄存器内的有关允许位置为1
(C) IP中断优先级寄存器内的有关位置为1
(D) 当前一条指令执行完
39.在单片机应用系统中,两线双向长距离(几百米)通信应采用( D)。
(A)TTL电平 (B)RS232C电平 (C)RS422电平 (D)RS485电平
40.在80C51单片机中,可变波特率的多机通信应采用( D )。
(A)方式0 (B)方式1 (C)方式2 (D)方式3
41.在80C51单片机中,不使用T1的多机通信应采用( C )。
(A)方式0 (B)方式1 (C)方式2 (D)方式3
42.在80C51单片机中,8位数据位可变波特率的双机通信应采用( B ) 。
(A)方式0 (B)方式1 (C)方式2 (D)方式3
43.在80C51单片机中,利用串行口进行并口扩展时应采用( B )。
(A)方式0 (B)方式1 (C)方式2 (D)方式3
44.在80C51单片机芯片的串行口电平采用的电平为( A ) 。
(A)TTL电平 (B)RS232C电平 (C)RS422电平 (D)RS485电平
45.利用8155产生连续方波,其计数输出方式为( B )。
(A)方式0 (B)方式1 (C)方式2 (D)方式3
46.在80C51应用系统中,要求既扩展并口又扩展RAM时,应优先采用 ( A ) 。
(A)8155 (B)8255 (C)8279 (D)8253
47.DAC0832可以实现两路模拟信号的同步输出,这是利用了该芯片的( D ) 特性。
(A)单极性 (B)双极性 (C)单缓冲 (D)双缓冲
三、判断说明题(注意其逆命题)
1.在微机性能指标中,CPU的主频越高,其运算速度越快。√
2.微型计算机与一般计算机的主要区别是体积小、重量轻、耗电少、价格便宜。╳
3.在MCS-51系统中,一个机器周期等于1μS。╳
4.PC可以看做是指令存储区的地址指针。√
5.SP内装的是栈顶首址的内容。╳
6.指令周期是执行一条指令的时间。╳
7.所有计算机系统的堆栈都是向地址高端逐渐生长的,即均为“向上生成”堆栈。╳
8.输入/输出设备必须通过I/O接口才能接到系统总路线上和主机进行信息交换。√
9.MCS-51中的P0口可以分时复用为数据口和地址输出口。 √
10. 当P2口的某些位用作地址线后,其它位不可以用作I/O口线使用。√
11. 为使准双向的I/O口工作在输入方式,必须保证它被预置为“1”。√
12. 若外设控制器中的寄存器和主存单元统一用主存地址编址,那么在计算机的指令系统中可以不设专门的I/O指令。√
13. 通常每个外设设备都有一个端口寄存器与主机交换信息,因此,主机只能用一个唯一地址来访问一个外部设备。╳
14. 8031单片机的有效复位电平是低电平。╳
15. 锁存器、三态缓冲寄存器等简单芯片中没有命令寄存和状态寄存等功能。√
16. EPROM中存放的信息在计算机执行程序时只读,且断电后仍能保持原有的信息。√
17. 8031的CPU是由RAM和EPROM所组成。╳
18. 内部RAM的位寻址区,只能供位寻址使用,而不能供字节寻址使用。╳
19. MCS-51系列单片机的内部特殊功能寄存器的数量是相同的。╳
20. 在8155芯片中,决定端口和RAM的单元编址的信号线是AD7~AD0和 信号。╳
21. 掩膜ROM的特点是既能写入又能读出。╳
22. 如果指令系统中不给用户提供PUSH、POP指令的话,则设立堆栈毫无意义。╳
23. 在MCS-51系统中,PUSH、POP动作每次仅处理一个字节。√
24. 已知8051单片机的振荡频率为12MHz,则执行MUL AB指令所用的时间为2us。╳
25. RLC R0是非法指令。 √
26. 立即寻址方式是被操作的数据本身在指令中,而不是它的地址在指令中。√
27. MOVC是用来访问外部数据存储器的指令助记符 。╳
28. 在一个完整的程序中伪指令END是可有可无的。 ╳
29. 调用子程序及返回与堆栈有关。╳
30. RET和RETI两条指令不可以互换使用。√
31. 低优先级的中断请求不能中断高优先级的中断请求,但是高优先级中断请求能中断低优先级中断请求。√
32. 各中断源发出的中断请求信号,都会标记在MCS-51系统的IP寄存器中。╳
33. 当ITX=1时表示允许外部中断。 ╳
34. 8155中的定时/计数器是14位的加1计数器。╳
35. 定时/计数器可由TM0D设定四种工作方式。√
36. 由于8155不具有地址锁存功能,因此在与8031的接口电路中必须加地址锁存器。╳
四、简答题
1. 带符号的数在计算机中有哪些表示方法?特点如何?
答:带符号的数在计算机中可以用原码、反码和补码表示。采用原码和反码表示时,符号位不能同数值一道参加运算。补码表示可以将减法运算转换为加法运算,同时数值连同符号位可以一起参加运算,这非常有利于计算机的实现。
2. 单片机与其它常见微机(如PC机)有什么不同?它有什么独特优点?
答:(1)主要有三点不同:一是CPU、存储器和I/O接口这几部分集成在一片芯片上;二是存储器设计采用了哈佛结构,将程序存储器和数据存储器在物理上分开;三是供位处理和位控制的资源丰富、I/O接口完善。
(2)优点:1)集成度高、价格低廉、性能/价格比高;2) 程序存储器和数据存储器在物理上分开,可使程序不受干扰,抗干扰能力强;3)布尔处理能力强,适于工业控制。
3. 堆栈区与一般的数据存储区有何异同?其重要作用是什么?
答:堆栈区与一般存储区相同之处是:它们都属于存储器的一部分,都能存放数据。
其主要不同之处是对数据的存取规则有异:一般存储区使用随机读/写规则,而堆栈 使用先进后出(或后进先出)规则。堆栈采用这种特殊规则后,可以圆满完成子程序调用或中断调用,多级子程序嵌套等功能。
当然,堆栈区内的存储单元也可以使用随机读/写指令,但在这种情况下已经不把该单元当做堆栈看待了。
4. 简述80C51单片机四个端口的带负载能力。
答:P0口的每一位口线可以驱动8个LSTTL负载。在作为通用I/O口时,由于输出驱动电路是开漏方式,由集电极开路(OC门)电路或漏极开路电路驱动时需外接上拉电阻;当作为地址/数据总线使用时,口线输出不是开漏的,无须外接上拉电阻。P1、P2、P3口的每一位能驱动4个LSTTL负载。它们的输出驱动电路设有内部上拉电阻,所以可以方便地由集电极开路(OC门)电路或漏极开路电路所驱动,而无须外接上拉电阻。
5. MCS-51引线中有多少I/O引线?它们和单片机对外的地址总线和数据总线有什么关系?简述8031单片机中P0、P1、P2、P3口的主要作用。
答:共有32根I/O引线,其中部分引线在单片机有外扩对象时,将代替地址总线和数据总线的功能。这32根I/O引线均匀分布于P0.P1.P2.和P3口若没有单片机外扩要求,则4个并行口都时纯粹的I/O口;但是,当单片机有外扩任务时,则P0口将作为8位数据总线,P2和P0口将作为16位地址总线,P3口的一部分将作为读/写等控制总线信号,此时只有P1口保留作为单纯的I/O口。
6. 简叙80C51程序储存器的配置。
答:80C51内部有4KB的掩膜ROM;87C51内部有4KB的EPROM;而80C31内部没有程序存储器,80C51的 引脚为访问内部或外部程序存储器的选择端。接高电平时,CPU将首先访问内部存储器,当指令地址超过0FFFH时,自动转向片外ROM去取指令;接低电平时(接地),CPU只能访问外部程序存储器(对于80C31单片机,由于其内部无程序存储器,只能采用这种接法)。外部程序存储器的地址从0000H开始编址。程序存储器低端的一些地址被固定地用作特定的入口地址。
7. 什么是计算机的指令?什么是指令系统?什么是寻址方式?
答:(1)计算机的指令是规定计算机进行某种操作的命令。
(2)一台计算机所有指令的集合称为该机器的指令系统。
(3)寻址方式就是寻找指令中操作数或操作数所在地址。
8. MCS-51系列单片机有哪7种寻址方式?各有什么特点?
答:(1)MCS-51的7种寻址方式分别是:直接寻址、寄存器寻址、寄存器间接寻址、立即寻址、变址寻址、相对寻址和位寻址。
(2)直接寻址方式中,指令的操作数部分是操作数所在的地址,其寻址空间是内部RAM的低128B及特殊功能寄存器;寄存器寻址方式中,被寻址的寄存器的内容即是操作数,其寻址空间为R0~R7、A、B、Cy、DPTR;寄存器间接寻址方式是把指定寄存器的内容作为地址,由该地址所指定的存储单元内容作为操作数,其前用“@”标示,其寻址空间为内容RAM的低128B和外部RAM;立即寻址是在该指令操作码后紧跟一字节或两字节操作数,操作数前用“#”标示,其寻址空间是ROM;变址寻址的操作数所在地址由基地址加上地址偏移量形成,其寻址空间是ROM;相对寻址级出现在相对转移指令中,其寻址空间是ROM的256B范围;位寻址是将8位二进制的某一位作为操作数,指令中给出的是位地址,寻址空间是内部RAM的20H~2FH单元位地址及可以进行位寻址的SFR。
9. MCS-51系列中断系统包括几个中断源和几个中断优先级,写出所有的中断源的符号、名称及其入口地址。
答:MCS-51系列中断系统包括5个中断源2个中断优先级:
中断源符号 中断源名称 入口地址
外部中断0 0003H
T0 T0溢出中断 000BH
外部中断1 0013H
T1 T1溢出中断 001BH
TX/RX 串行口(接收/发送) 0023H
10. MCS-51系列单片机中用于中断允许和中断优先级控制的寄存器分别是什么?写出中断允许控制寄存器的各控制位的符号及含义。
答:MCS-51系列单片机用于中断允许和中断优先级控制的寄存器分别是IE和IP;
AFH AEH ADH ACH ABH AAH A9H A8H
EA ES ET1 EX1 ET0 EX0
IE(A8H)
EA——中断允许控制位;ES——串行口中断允许控制位;ET1定时器/计数器T1的溢出中断允许位;EX1——外部中断1中断允许位;ET0——定时器/计数器T0溢出中断允许位;
EX0——外部中断0中断允许位;当相应的位为“1”时允许中断,为“0”时禁示中断。
11. 简述并行通信和串行通信的特点。
答:并行通信的特点是:控制简单、传输速度快;由于传输线较多,长距离传送时成本高且接收方的各位同时接收存在困难。串行通信的特点是:传输线少,长距离传送时成本低,且可以利用电话网等现成的设备,但数据的传送控制比并行通信复杂。
12. I/O寻址方式有哪几种,各有什么优缺点?MCS-51系列单片机采用哪种寻址方式?Intel 8086/8088采用哪种寻址方式?
答:(1)I/O寻址方式有两种,分别是标准的I/O寻址方式(独立编址)、存储器映射I/O寻址方式(统一编址);
(2)前者的优点是:处理速度较快,I/O端口地址不占用存储空间,各自都有完整的地址空间,而且访问存储器与访问I/O设备指令有别,程序清晰,其缺点是制造CPU时必须单独集成专门I/O指令所需要的那部分逻辑电路;
后者的优点是:程序设计灵活性好,I/O端口地址安排灵活,并且I/O端口数目不受限制,CPU无需专用的I/O指令和接口信号,处理能力强,其缺点是减少了存储空间,执行指令时间较长,在程序中较难区分是存储器操作还是I/O操作,硬件设计中所用的译码电路复杂。
(3)MCS-51系列单片机采用存储器映射I/O寻址方式;Intel8086/8088采用标准的I/O寻址方式。
五、程序分析题(请根据各题具体要求填写答案)。
1.设A=83H,R0=17H,(17H)=34H;写出下列程序中每条指令执行后的结果:
ANL A,#17H;(A)=03H
ORL 17H,A ;(17H)=37H
XRL A,@R0;(A)=34H
CPL A ; (A)=0CBH
2.以下程序执行后,(40H)= 5EH ,(41H)= 69H 。
CLR C
MOV A,#56H
SUBB A,#0F8H
MOV 40H,A
MOV A,#78H
SUBB A,#0EH
MOV 41H,A
3.设内部RAM中59H单元的内容为50H,写出当执行下列程序段后寄存器A= 25H ,R0= 50H ,
50H= 00H ,51H= 25H 。
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)=70H
4.设堆栈指针SP中的内容为60H,内部RAM中30H和31H单元的内容分别为24H和10H,执行下列程序段后,61H= 24H ,62H= 10H ,30H= 00H,31H= 0FFH,DPTR= 2410H 及SP= 60H 。
PUSH 30H;(SP)=61H,(61H)=24H
PUSH 31H;(SP)=62H,(62H)=10H
POP DPL;(DPL)=10H,(SP)=61H
POP DPH;(DPH)=24H,(SP)=60H
MOV 30H,#00H;(30H)=00H
MOV 31H,#0FFH;(31H)=FFH
5.设A=40H,R1=23H,(40)=05H。执行下列两条指令后,累加器A和R1以及内部RAM中40H单元的内容各为何值?
XCH A,R1;(A)=23H,(R1)=40H
XCHD A,@R1;(A)=25H,(40H)=03H
6.程序执行前有(40H)=88H,问:
①程序执行后(40H)= F8H
②归纳出该程序完成的是何种功能。答:对片内RAM的 40H单元中的内容求补码。
MOV A, 40H
JNB ACC.7, GO
CPL A
INC A
MOV 40H, A
GO:RET
7.阅读程序并回答问题。设:R0=20H,R1=25H,(20H)=80H,(21H)=90H,(22H)=A0H,(25H)=A0H,
(26H)=6FH,(27H)=75H,程序如下:
CLR C
MOV R2, #3
LOOP:MOV A, @R0;第一次循环完成20H单元中的内容80H与25H单元中的内容A0H相加,结果送入20H
ADDC A, @R1;单元中,即(20H)=20H,(Cy)=1
MOV @R0, A
INC R0
INC R1
DJNZ R2, LOOP
JNC NEXT
MOV @R0, A
SJMP $
NEXT:DEC R0
SJMP $
程序执行后:
(20H)= 20H ,(21H)= 00H,(22H)= 16H ,(23H)= 16H ,
Cy= 1 ,A= 15H ,R0= 23H ,R1= 28H
8.请填写程序执行结果。已知执行前有A=02H,SP=40H,(41H)=FFH,(42H)=FFH,程序如下:
POP DPH
POP DPL
MOV DPTR, #3000H
RL A
MOV B, A
MOVC A, @A+DPTR
PUSH ACC
MOV A, B
INC A
MOVC A, @A+DPTR
PUSH ACC
RET
ORG 3000H
DB 10H, 80H, 30H, 80H, 50H, 80H
程序执行后:A=____H,SP=_____H,(41H)=_____H,(42H)=_____H,PC=_____H
9.假定,SP=60H,A=30H,B=70H,执行下列指令:
PUSH A
PUSH B
后,(SP) ,(61H)= ,(62H)= 。
11.(第三章)如果DPTR=507BH,SP=32H,(30H)=50H,(31H)=5FH,(32H)=3CH,则执行下列指令后:
POP DPH
POP DPL
POP SP
则:DPH= ,DPL= ,SP== 。
12.执行下列指令后,(A)=?(R0)=?(C)=?
CLR A
MOV R0,#03H
LOOP:ADD A,R0
DJNZ R0,LOOP
SJMP $
13.分析下列程序执行的结果和A与C的内容,如果取消DA A指令,A和C为何值?
CLR C
MOV 20H,#99H
MOV A,20H
ADD A,#01H
DA A
MOV 20H,A
SJMP $
14.试述下列程序执行结果,并逐条加以注释
(1) MOV A,#10H
MOV P2,#30H
MOV R0,#50H
JB P1.0,LP1
MOVX @R0,A
SJMP LP2
LP1:MOV @R0,A
LP2::SJMP $
(2) MOV R0,#14H
MOV DPTR,#1000H
CL: CLR A
MOVX @DPTR,A
INC DPTR
DJNZ R0,CL
SJMP $
15.阅读下列程序并回答问题
ORG 0000H
MOV R0,#32H
MOV R2,#00H
LOOP: MOV A,@R0
CJNE A,#00H,DON
INC R2
DON: INC R0
DJNZ 31H,LOOP
MOV 30H,R2
SJMP $
END
(1)说明该程序的功能。
(2)31H中存放的是 ,R2是用来存放 的计数器。
(3)执行程序后31H中的值为 。
六、程序设计题(按下面要求编写相应的程序)
1. 数据块传送:试编程将片内40H~60H单元中的内容传送到以2100H为起始地址的存储区。
2. 工作单元清零:将内部50H开始的连续30个单元的内容清零。
3. 设一字符串存放在内部RAM以20H为首址的连续单元中,字符串以回车符CR(‘CR’=0DH)作为结束标志。标示统计该字符串字符B(‘B’=42H)的个数,并将其存入外部RAM的40H单元中。
4. 有一变量存放在片内RAM的20H单元,其取值范围为:00H~05H,要求编制一段程序,根据变量值得到变量的平方值,并将其存入片内RAM的21H单元。
5. 设a存放在30H单元中,b存放在31H单元中,要求按下式计算Y值并将结果Y存入32H单元中。
6. 用定时器T1产生一个1000Hz的方波,由P1.1引脚输出,fosc=6MHz。
7. 设时钟频率为6MHz,试编写利用T0产生500μs定时的程序。
玩转单片机!基于ESP8266模块的WIFI点阵时钟制作
用ESP8266模块制作的网络授时点阵时钟
美图镇楼
楼主是一名业余的单片机爱好者,做过许多各种各样的时钟,能看过眼去的都发在了本版,还蒙版主厚爱给过精华。可是至今也没有做出一个十分满意的“作品”来。因为做的每个时钟都有这样那样的缺点, DS1302并不太准确;DS3231要好一点但还是有误差(其实也够用了);GPS授时倒是准了,但是要拖一根GPS天线到室外,不够整洁。一直想DIY一个准确、简洁的时钟治愈我的“强迫症”,苦于一直没有找到好的方案。
在一个月黑风高的晚上我偶然地发现了物联网模块ESP8266,能连接WIFI,竟然还集成了32位的单片机,关键还是白菜价,简直就是神器啊!就想着用它来做一个从网络获取时间的时钟,这样只要有网络,时间就准确无误,再也不用纠结了。
1: 认识ESP8266
ESP8266是上海乐鑫(ESPRESSIF)生产的WI-FI低功耗芯片,是业内集成度最高的 Wi-Fi 芯片,封装尺寸仅为 5mm x 5mm。 ESP8266EX 高度集成了天线开关、射频 balun、功率放大器、低噪放大器、过滤器和电源管理模块,仅需很少的外围电路,可将所占 PCB 空间降到最低。ESP8266EX 内置 Tensilica L106 32 位微型控制器 (MCU),具有超低功耗和 16 位RSIC,时钟速度最高可达 160 MHz。支持实时操作系统 (RTOS),目前 Wi-Fi 协议栈只用了 20% 的 MIPS,其他均可用于用户编程和开发。ESP8266EX 专为移动设备、可穿戴电子产品和物联网应用而设计,通过多项专有技术实现了最低功耗。ESP8266EX 有三种运行模式:激活模式、睡眠模式和深度睡眠模式,能够延长电池寿命。(PS:这段是抄的)
当然了,只有芯片是没法玩的,网上有和外围电路一起封装好的模块。还有基于这些模块的开发板,板载USB转串口电路,只要用MicroUSB线(安卓手机数据线)连接电脑就可以调试了。方便好用价格也不贵。
Esp8266模块
Esp8266开发板
为便于理解,我们可以把ESP8266模块看作一个可以连接WIFI的单片机。但是要玩转这片小小的板子,却没有想像中那么简单。模块的编程和51单片机有很大的区别,需要从头开始学起,没有找到系统的教程,只好从网络上多如牛毛的信息中提取所需要的知识点,用蚂蚁啃骨头的精神,一点点攻克难关,终于实现了想要的功能。在这里分享一下个人的一些不成熟经验,有兴趣的同好可以参考一下。
2:流行的几种开发方式
AT指令:模块通过串口与上位机连接,上位机发出指令,模块收到指令后做出响应。可以用PC端的串口助手调试。当然也可以用另一片单片机做上位机,不过放着模块集成的32位MCU不用,再用51之类的8位单片机驱动的话就有点小马拉大车了。
NodeMCU:运行于ESP8266模块上的一种固件,该固件提供一些封装好的模块(API),直接调用就可以了。使用LUA语言编程。
Arduino:模块可以在Arduino环境下调试,有基础的同学可以使用此方式。本菜鸟没玩过Arduino,只是按教程简单试了一下,发现编译下载好慢。
几种方法都试了试,发现最适合自己的是NodeMCU。LUA语言与C有共通之处,很快就能适应了。还有现成的API,一些复杂的功能用几行代码就能实现。
3:刷NodeMCU固件
买来模块后需要刷入NodeMCU固件,NodeMCU的源代码发布在Github网站,但是要编译成可刷入模块的bin固件,需要在陌生的Linux环境下,没有Linux基础貌似玩不转。
好在像作者这样的菜鸟可以在线订制固件,打开http://nodemcu-build.com/,留下自己的Email,根据自己的需要选择相应的模块和版本。等会就收到订制好的固件了。
刷入固件用的工具从这里下载https://github.com/nodemcu,按住Flash键不放,把模块接入USB,选好COM口和要刷入的固件,速度不要选的太高,可能会刷入失败,用哪个波特率自己多试几次就好。
固件刷好后,就可以开心的玩了。开发软件个人建议使用Esplorer,此软件需要安装JAVA。试一下第一句程序:print(“Hello NodeMCU!”),模块正常的话会显示Hello NodeMCU!
试试node.restart(),重新启动一下模块,会显示当前固件的版本、生成时间、包含模块等信息。
最新的NODEMCU固件支持可变波特率,不再局限于9600bps。比如可以在Esplorer里把波特率改为57600。如下图:
至此开发环境搭建完毕,可以试着先把模块连接到家里的WIFI,网上有例程,把SSID和密码改成自己的,运行一下就能连接了。
4:从Internet获取时间
关于从网络获取标准时间,先试了试获取百度网站返回的HTTP头,里面包含当前的日期时间等数据,提取一下就好,但是有网友说这个时间也不是十分的准确。
后来发现NodeMCU包含SNTP模块,是专门干校准时间这活的。并且操作也非常的简单,就决定了采用这种方式。
SNTP简介:
SNTP,即简单网络时间协议(Simple Network Time Protocol),主要被用来同步因特网上计算机的时间。SNTP协议采用客户端/服务器的工作方式。SNTP服务器通过接收GPS信号或自带的原子钟作为系统的时间基准。SNTP客户端通过定期访问SNTP服务器获得准确的时间信息,用于调整客户端自身所在系统的时间,达到同步时间的目的。
上网找到国内常用的NTP服务器,用PC端的Ping命令简单的测试了一下,结果如下。
NodeMCU固件sntp模块用法很简单,本制作只使用其中的sntp.sync()函数。
语法:sntp.sync({ server1, server2, .. }, [callback], [errcallback], [autorepeat])。
各参数解释:
1. Server1,server2,..:指定要使用的一个或多个ntp服务器
2. Callback:同步成功回调,不需要在这里显式的调用rtctime.set(),该模块在内部自动执行此操作,以获得最佳的准确性。
3.Errcallback:失败回调,返回失败的原因。
1:DNS查找失败
2:内存分配失败
3:UDP发送失败
4:超时,不接收NTP响应
4. autorepeat:如果是非零值,那么每1000秒同步将发生一次,每次同步操作后都会调用回调。
找来例程试一下
sntp.sync("202.120.2.101",
function(sec, usec, server, info)
print('sync', sec, usec, server)
end,
function()
print('failed!')
end)
运行结果:sync 1497432519 920178 202.120.2.101
结果显示同步成功,并返回了1970/01/01到现在的UNIX时间戳和同步服务器。SNTP每次成功同步后会自动更新ESP8266模块的实时时钟,也就是自动调用rtctime.set()函数。所以要使用sntp授时需要rtctime模块的支持,定制固件时不要落下。需要说明的是,成功同步后会自动更新MCU内部的RTC。
当然那一大串UNIX时间戳我们人类是不太能看懂的,还要转为我们习惯使用的日期和时间,这就要用到rtctime模块中的rtctime.epoch2cal()函数,语法为rtctime.epoch2cal(timestamp)。函数成功运行后返回一个数组,数组包括:
year 1970年 ~ 2038年
mon 1 ~ 12月
day 1 ~ 31 日
hour 小时
min 分钟
sec 秒
yday 当前是一年中的第1 ~ 366天
wday 星期 (星期天是1)
例程:
tm = rtctime.epoch2cal(rtctime.get()) --获取当前日期时间并转换
print(string.format("%04d/%02d/%02d %02d:%02d:%02d",
tm["year"], tm["mon"], tm["day"],
tm["hour"], tm["min"], tm["sec"]))
运行结果:2017/07/08 09:48:04
5:显示标准时间
标准时间有了,下一步的工作就是怎样显示出来的问题,总不能开着电脑用串口助手看时间吧。家里用的话1602或12864液晶字太小,远了就看不清楚;数码管做的太多,都审美疲劳了;最后决定用点阵,但是ESP8266模块的GPIO太少,不够用来直驱点阵,为解决这个问题,特地从淘宝上淘了基于MAX7219的点阵模块,4个MAX7219驱动4片8*8点阵。使用SPI串口通讯,还可以多片级联,只要用3个GPIO就能驱动若干片8*8点阵。
MAX7219简介(来自百度百科)
MAX7219是一种集成化的串行输入/输出共阴极显示驱动器,它连接微处理器与8位数字的7段数字LED显示,也可以连接64个独立的LED。其上包括一个片上的B型BCD编码器、多路扫描回路,段字驱动器,而且还有一个8*8的静态RAM用来存储每一个数据。 只有一个外部寄存器用来设置各个LED的段电流。 MAX7221与SPI™、 QSPI™以及 MICROWIRE™相兼容,同时它有限制回转电流的段驱动来减少EMI(电磁干扰)。 一个方便的四线串行接口可以联接所有通用的微处理器。 每个数据可以寻址在更新时不需要改写所有的显示。MAX7219允许用户对每一个数据选择编码或者不编码。 整个设备包含一个150μA的低功耗关闭模式,模拟和数字亮度控制,一个扫描限制寄存器允许用户显示1-8位数据,还有一个让所有LED发光的检测模式。
第一次玩MAX7219,由于LUA语言用的不顺手,调试起来有点麻烦。先用熟悉的51来点亮点阵,调试通过后再一点一点地移植到ESP8266。买的点阵是32*8,即使用不美观的4*8字体,时分秒也无法全部显示,更不用说标准的5*8的字体了。最后决定只用3片点阵,使用5*8字体,只显示小时和分钟,但也不够用,折衷一下:0-19时用24小时制,20-23时用12小时制。
成功点亮后的点阵,私人订制的字体,还是很漂亮的。
6:开始制作:
硬件很简单,就是一个ESP8266模块, 5V转3.3V的电路和几个阻容。用洞洞板很快就搞定了。
用茶色亚克力做面板,可以增强点阵的可读性。插上电源,模块尝试连接WIFI,蓝色LED亮起,成功连接后该LED熄灭,稍等就会显示当前准确的时间了。如果WIFI断线,模块会尝试自动重连,LED会指示当前的WIFI连接状态。
在每次上电后自动同步时间,然后每隔一个小时与NTP服务器同步一下。这样只要有网络,本时钟显示的时间就是准确的。
功耗也不大,白天正常亮度,不到100ma。21:30后降低亮度,避免影响睡觉。
再来几张美图
7:后记
对于一个仅仅靠兴趣驱动的爱好者来说,做这么一个小玩意遇到的困难太多了,身边没有谁可以请教,只能在网上一点一点的找答案,好在还算是成功的实现了自己想要的功能。现在已经正常的运行了一个多月,时间与GPS几乎一秒不差。
不足的地方就是本时钟只能在一个WIFI环境下使用。其实NodeMCU也提供了通过浏览器设定模块的SSID和密码的功能,但试了几次发现不太稳定,再说换了WIFI只要简单的改改程序就好,也不算麻烦。决定不再折腾,能做到这样就很满意了。
-----官方NodeMCU文档,请移步http://nodemcu.readthedocs.io/en/master/en/
还有调试中的一张图,用液晶屏显示,一起发上来
谢谢观看!
浏览更多精彩内容请登录数码之家网站
技术交流请联系原作者
作者:qxgm
本文来源:数码之家
相关问答
请教大神,谁用过STC15 W 204S 单片机 ,怎么设置串口通信,简单的收或发送例程都行?SCON=0x50;//8位数据,可变波特率AUXR|=0x01;//串口1选择定时器2为波特率发生器AUXR|=0x04;//定时器2时钟为Fosc,即1TT2L=0xE0;//设定定时初值...
STC的 单片机 SOP8封装STC15 W 202S、STC15W204S、。信号电压1.2V不能?51系列单片机输入高电平大于2.0V,低电平小于0.8V,输出高电平大于2.4V,低电平小于0.4V。一般情况下,若电源电压为5V,输出高电位电压也是5V左右,低电位电压...
stc15 w 204s是什么 单片机 ?是增强型51单片机,1T单周期,速度为原来的51的6-7倍,宽电压、高稳定、难破解,集成了FLASHROM/ADC/PWM/内震荡/复位等电路,新的15系列不需任何外围元件,是真...
usb接口作为 单片机 电源问题?如果你的单片机系统满足以下两个条件,可以直接用USB供电:1单片机及你用的所有器件电源是5V的2你的整个单片机及所有外器件组成的系统总的功耗不超过2W第一条...
现有一个stc14 w 401as 单片机 ,片内支持ad转换,请问输入模拟信号如何赋值给变量a。这个程序如何写?是STC15W401AS,没有14W的。模拟信号加到输入端后,需要启动转换,由内部的AD电路转换成数字量,才能赋值给变量。模拟信号是不能赋值的,也不需要赋值的。去STC...
stc15 w 204s 单片机 可以用其他型号代用吗?可以代替。不过at的芯片需要专门的下载板哈,stc只需要个串口就可以了,至于芯片本身是完全兼容兼容的哈可以代替。不过at的芯片需要专门的下载板哈,stc只需要...
问怎么样可以得到符合要求的三相电源,功率只要500 W -1000W...[最佳回答]220V做500到1000W的三相电,有难度,只能用逆变电路了,单片机和IGBT模块,没图,没见过有这样的电路!
单片机 恒温箱有哪些不足热电偶传感器作者:不详来源:网上收集更新日期:2008-6-24阅读次数:6043一、热电偶传感器测温系统的设计应用下面介绍一个典型的单片机...
逆变器常见故障维修方法步骤[回答]p变频器故障维修步骤如下:p1。整流器部分:整流器是民用单相交流输入,只需要根据二极管的单向导通性来判断好坏,还要注意整流桥的绝缘耐压;P2。检查...
贴片a7w是什么型号?贴片A7W是一款低功耗、小型、宽电源电压的超低功耗单片机。它采用STMicroelectronics公司研发的STM8S003F3P6微控制器,具有32K字节闪存、1K字节RAM、12个I/O端...