单片机笔试题及答案,单片机原理及应用考试试题及答案

单片机笔试题及答案,单片机原理及应用考试试题及答案

C51单片机习题与答案

第一章

1-1选择

1 .计算机中最常用的文字信息代码是

A ASCII B BCD码c剩余3码d循环码

2 .在关键MCS-51系统中,如果晶振频率多次为8MHz,则一个机械周期等于( a )s

A 1.5 B 3 C 1 D 0.5

3.MCS-51的时钟最高频率是( a )。

A 12MHz B 6 MHz C 8 MHz D 10 MHz

4 .以下不是配置的控制器部件:

程序计数器、b指令寄存器、c指令译码器、d存储器

5 .以下不是组成单片机的部件

A微处理器、B存储器C接口适配器D打印机

6 .以下不是单片机总线

a地址总线b控制总线c数据总线d输出总线

7.-49D的二进制代码是. ( b )

a 11101111 b 11101101 c 0001000 d 11101100

8.10进制29的二进制文件表示为源代码

a 11100010 b 10101111 c 0001101 d 00001111

9.10进制0.625到二进制的转换

A 0.101 B 0.111 C 0.110 D 0.100

10选择不是电脑常用代码方式的东西

a原码b反码c补全码D ASCII

1-2填孔

1 .计算机常用的代码有原码、反码、补码

2.10进制29的二进制表示为00011101

11100011表示十进制-29的8位补数

4 .由单片机CPU、存储器和I\\O接口三部分组成。

不使用MCS-51片存储器端子EA时请务必接地。

6 .输入输出设备是计算机与外部世界交换信息的载体。

7.10进制-47用8位二进制补数表示为. 11010001

8.-49D的二进制代码是. 11101101

9 .计算机最常用的文字信息代码是ASCII

10 .计算机中的数据称为机器数,其实际值称为真值。

1-3判断

1 .计算机实质上是计算机硬件系统和软件系统的总称。

2.MCS-51上电复位时,SBUF=00H。 请参阅。 SBUF是不确定的。

3 .使用可编程接口一定要初始化。 请参阅。

4.8155的复位端子可以直接连接到89C51的复位端子上。

5.MCS-51是微处理器。 不。

6.MCS-51系统可以没有复位电路。 不能。 复位是单片机的初始化操作。

7 .对于所需MCS-51系统,一个机器周期等于1.5s。 如果石英振动频率常常为8MHz,则有可能为1.5s

8 .计算机常用的代码有原码、反码、补码

不使用MCS-51片存储器端子EA时请务必接地。

10.11100010表示为十进制-29的8位补数

1-4简单的回答

1 .什么是单片机? 单片机与一般的微机相比,有什么特点?

答:单片机是由CPU、存储器、定时器/计数器以及多种形式的I/O接口集成在一个集成电路中构成的微机。 与通用微型计算机相比,具有以下特点。

单片机程序存储器和数据存储器分工,前者为ROM,后者为RAM

采用面向控制的指令系统,控制功能强

多种I/O接口,多功能I/O引脚

产品系列齐全,功能扩展性强;

功能通用,可以像一般的微处理器一样广泛应用于各个方面。

2单片机主要用于哪些领域?

A )单片机应用范围广泛,如智能化家用电器、仪器仪表、工业控制、计算机外部设备、智能机器人、电信及导航等方面。

3在各种系列的单片机中,片上ROM的配置有几种形式? 用户应该根据什么原则进行选择?

答:各种类型的单片机片上程序存储器的配置形式主要有以下形式:

ROM型单片机:内部有工厂编程的ROM,ROM中的程序只能在单片机制造厂的家用工艺中固化,用户不能修改ROM中的程序。 例如MCS—51系列的8051。

ROM单片机适用于大量生产的产品。 用户可以要求芯片制造商用方法在芯片的ROM中编写程序。

EPROM型单片机:内部具有可擦除紫外线的可电编程只读存储器,用户可以自行将程序写入芯片内部的EPROM,或擦除EPROM内的所有信息。 删除了信息的芯片还可以再次写入新的程序,可以反复改写。 例如MCS—51系列的8751。

EPROM型单片机使用方便,但适用于开发价格高、产品和结构要求简单的小批量产品。

无ROM单片机:内部没有程序存储器,必须连接程序存储器才能构成完整的APP应用系统。 例如,MCS—51系列的8031。

无ROM单片机价格低廉,用户可以根据程序大小选择外接程序存储器的容量。 该单片机扩展灵活,但系统结构复杂。

E2ROM型单片机:内部有电可擦的被称为可编程的程序存储器,使用更方便。 例如,MCS—51衍生型89C51单片机。

OTP(onetimeprogrammable ) ROM单片机)内部有一次可编程的程序存储器,用户可以通过可编程控制器将程序写入片上程序存储器,再写入程序例如NEC公司的PD75P308GF—3B9。 这个芯片的价格也很低。

4 .控制器的构成和作用

a )控制器)由程序计数器、指令寄存器、指令解码器、时序发生器、操作控制器等构成。 用于协调和指挥计算机系统的操作。

5 .微型计算机结构

a )微型计算机由微处理器、内存和接口适配器组成,称为溢出。 例如,即使将正数3FH和负数D0H相加,结果也不会超过8位字长的显示范围,所以结果10FH中的进位是正常的进位。 但是,正数3FH加上正数70H的结果是AFH,最高位为“1”,意味着负数,这是不合理的,这种情况称为溢出。

第二章

2-1填孔

1 .微处理器由寄存器、控制器、运算器3部分构成.

MCS-51端子ALE信号有效时,表示从Po端口稳定发送低位8位地址。

3.MCS-51的堆栈是软件填充堆栈指针临时在_片上数据存储器中打开的区域。

4.MCS-51所有字节地址都能被_8整除的特殊功能寄存器可以寻址。

5.MCS-51有4组工作寄存器,它们的地址范围为00H~1FH。

6.MCS-51片内20H~2FH范围内的数据存储器可以有字节地址和位地址。

7 .计算机系统总线包括地址总线、控制总线和数据总线。

8.80C51包含4KB ROM。

9.80C51物理上有四个独立的存储区域。

10 .一个机器周期等于六个状态周期,将振荡脉冲分频后产生的钏信号周期定义为状态周期。

2-2判断

1 .计算机实质上是计算机硬件系统和软件系统的总称。

2.MCS-51相对过渡指令的最大负号为127B。

3.MCS-51的程序存储器只是用来存储程序的。 保存程序和表常数。

4.MCS-51的时钟的最高频率是18MHz.().12MHz。

5 .使用可编程接口必须进行初始化。 请参阅。

MCS-51通电复位时,堆栈指针SP=00H。 请参阅。 SP=07H

7.MCS-51外部扩展I/O端口和外部RAM是统一地址。 请参阅。

即使8751且=1,也可以横向扩展64KB的程序内存。 60KB。

9.8155的复位端子可以直接连接到89C51的复位端子上。

10.MCS-51是微处理器。 不。

11.MCS-51的串行接口是全双工的。

12.PC中保存了当前正在执行的命令。 是要执行的下一条命令的地址。

13.MCS-51的特殊功能寄存器分布在60H~80H的地址范围内。 80H~FFH。

14.MCS-51系统可以没有复位电路。 不能。 复位是单片机的初始化操作。

15 .对于需要MCS-51系统,一个机器周期等于1.5s。 如果石英振动频率常常为8MHz,则有可能为1.5s

2-3选择

要测量INT0引脚的正脉宽,特殊功能寄存器TMOD的内容必须为( b )。

( a ) 09h(b ) 87h ) c ) 00h ) d ) 80H

2.PSW=18H时,当前工作寄存器为

0组( b ) 1组2组3组

3 .控制串行端口工作的寄存器是

tcon(b ) pcon ) c ) Scon ) d ) TMOD

4.P1端口的各位可以驱动

两个TTL低电平负载有四个TTL低电平负载

8个TTL低电平负载中有10个TTL低电平负载

5.MCS-51的中断许可触发的内容是83H,由CPU应答的中断请求是( b )

( a ) T1,b ) T0,T1 ) c ) T1,串行接口) d ),T0

2-4答疑

1 8051单片机内部包括哪些主要逻辑功能部件?

8051单片机是一种完整的单片机。 芯片包含以下硬件资源:

8位CPU;

4KB的片上程序存储器ROM。 可寻址64KB程序存储器和64KB外部数据存储器

128B内部RAM;

21个SFR;

4个8位并行I/O端口

全双工异步串行端口

2个16位计时器/计数器;

5个中断源,2个中断优先级;

内部时钟发生器。

2 EA/VPP引脚如何工作? 8031的别针该怎么办? 为什么?

a ) EA/VPP为双功能引脚,功能如下:

当EA为高电平时,在低4KB的程序地址空间中CPU执行片上程序存储器的指令,当程序地址超过低4KB空间时CPU自动执行片上程序存储器的指令。

EA为低电平时,CPU只能执行外部程序存储器的指令。

831单片机内部没有ROM,需要外接程序存储器。 因此,8031的EA引脚必须连接到低电平。

在对8751单片机内部的EPROM编程时,该引脚VPP外加12V电压,用于固化EPROM程序。

3 8051单片机的组织结构怎么样?

A ) 8051存储器包括程序存储器和数据存储器,从逻辑结构上看,可以分为三个不同的空间。

64KB程序存储器地址空间: 0000H~FFFFH,其中,0000H~0FFFH是片上4KB的ROM地址空间,1000H~FFFFH是外部ROM地址空间;

256B的内部数据存储器的地址空间、00H~FFH被分为两大部分,其中,00H~7FH是内部静态RAM的地址空间,80H~FFH是特殊功能寄存器的地址空间,21个特殊功能寄存器位于该区域

64KB外部数据存储器地址空间: 0000H~FFFFH,包括扩展I/O地址空间。

4 .片上数据存储器分为哪些性质和用途不同的区域?

a ) 8051内部的128B数据RAM区域包含工作寄存器组区域、可直接寻址区域、数据缓冲区。 每个区域的特性如下。

00H~1FH为工作寄存器组区,分为4组,每组占用8个RAM字节单元,每组8个单元作为一个工作寄存器,每组8个单元分别由8个工作寄存器R0~R7 当前工作寄存器组的选择由程序状态字PSW的RS1、RS0的2位决定。 在实际的APP应用中不需要使用工作寄存器或不需要使用4组工作寄存器时,不使用的工作寄存器组的区域也可以作为普通的数据缓冲区使用,直接寻址或通过Ri的寄存器间接寻址进行访问

20H~2FH是可寻址区域,这16字节的各位有地址,地址为00H~7FH。

当然,位地址区域也可以用作字节地址的典型数据缓冲区。

30H~7FH是堆栈、数据缓冲区。

5单片机有哪些特殊功能寄存器? 在每台单片机的哪个功能部件上?

答: 8051单片机内部有21个特殊功能寄存器,物理上分布在芯片内的各个功能部件上,在数学上将它们组织成内部数据存储器的地址空间80H~FFH,以便采用统一的直接寻址方式进行访问这些特殊功能寄存器发行到以下各功能部件。

CPU:ACC、b、PSW、SP、DPTR;

系统中断: IP、IE;

计时器/计数器: TMOD、TCOM、TL0、TH0、TL1、TH1;

并行I/O端口: P0、P1、P2、P3;

串行端口: SCON、SBUF、PCON。

6 PC是什么寄存器? 属于特殊功能寄存器吗? 那个有什么作用?

A ) PC为16位程序计数器,不属于特殊功能寄存器的范畴,程序员不访问PC访问特殊功能寄存器。 PC是在CPU执行命令的过程中对程序进行寻址的专用存储器。 PC始终保存下一个要执行的命令的16位地址。 通常,程序按顺序执行。 通常,取出一个指令字子句后,PC会自动加1。 执行跳转命令、子程序调用/返回命令或中断时,为PC分配跳转目标地址。

7 DPTR是什么样的寄存器? 由什么样的特殊功能寄存器构成? 它的主要作用是什么?

答: DPTR是一个16位数据指针的寄存器,由两个8位特殊功能寄存器DPL和DPH组成。 DPTR用于存储16位地址,用作内部地址寄存器,可以寻址外部数据存储器,也可以寻址程序存储器。

第三章

3-1选择题

1、MOVX A,@DPTR指令中的源操作数的寻址方式是

寄存器地址寄存器间接寻址直接寻址即时寻址

1. ORG 0003H

LJMP 2000H

ORG 000BH

ljmp3000hCPU响应外部中断0后,PC的值为

0003H 2000H 000BH 3000H

运行PUSH ACC命令,MCS-51完成的操作将在

SP 1 SP SP-1 SP

sp-1sp(sp ) SP 1 SP

4、LCALL指令操作码地址为2000H,执行相位子程序返回指令后,PC=

2000H 2001H 2002H 2003H

5 .执行MOV A后,#08H后,PSW的一位数被设置

C F0 OV P

6、下一条命令将MCS-51的工作寄存器设置为3个区域

MOV PSW,#13H MOV PSW,#18H

SETBPSW.4clrPSW.3(d ) SETB PSW.3 CLR PSW.4

7、在执行MOVX A,@DPTR命令时,MCS-51产生的控制信号为

/PSEN ALE /RD /WR

8、MOV C,#00H的地址方式是

位地址直接寻址寄存器寻址

9、ORG 0000H

AJMP 0040H

ORG 0040H

运行MOV SP,#00H左侧的程序后,PC的值为

0040H 0041H 0042H 0043H

10、对程序存储器的读取操作只能使用

MOV命令推送命令MOVX命令MOVC命令

3-2判断问题。

3. MCS-51相对过渡指令的最大负号为127B。 128B

MCS-51通电复位时,堆栈指针SP=00H。

5 .调用子程序指令或返回指令与堆栈有关,但与PC无关。 子序列的回滚还与PC有关

6. MOV @R1,#80H (对) ) )。

5、INC DPTR (没错) )。

6、CLR R0 (错误的)命令系统中没有。

7、MOV @R1,#80H

8、ANL R1,#0FH

9、ADDC A、c

10、XOR P1,#31H (没错) )。

3-3简单解答

简述MCS-51汇编语言指令格式。

MCS-51汇编语言的格式如下。

操作码助记符[操作数1] [操作数2] [操作数3][注释]标签是用户定义的符号,其值表示该指令的地址。 操作码助记符是表示命令系统规定的特定命令功能的英文缩写。 每个命令都有操作码符号。 命令最多有三个操作数,有些命令没有操作数。 注释字段是用户对程序的说明,便于阅读和理解程序。

简单地回答

2 MCS-51指挥系统主要有哪些寻址方式? 举例说明。

答: MCS-51指令操作数主要有以下7种寻址方式。

地址方式示例

立即寻址MOV A,#16

直接寻址MOV 20H,P1

寄存器地址MOV A,R0

寄存器间接寻址MOVX A,@DPTR

索引修饰MOVC A,@A DPRT

相对寻址SJMP LOOP

位地址ANL C,70H

3对内部和外部RAM的访问应该分别采用什么样的寻址方式?

a )内部RAM的寻址方式包括直接寻址、寄存器间接寻址和可寻址位寻址。 外部RAM的寻址方式只能通过寄存器R0/R1或DPTR间接寻址。

4内部RAM=5AH、=40H、=00H、端口P1=7FH,执行以下命令后,问问各存储器单元的内容吧?

MOV R0,#30H; R0=30H

MOV A,@R0; A=5AH

MOV R1,a; R1=5AH

MOV B,R1; B=5AH

MOV @R1,P1; ( 5AH )=7FH

MOV A,P1; A=7FH

MOV 40H,#20H; ( 40H )=20H

MOV 30H、40H; ( 30H )=20H

解:执行每个命令后的结果显示在注释字段中。 结果,R0=30H、R1=5AH、A=7FH、B=5AH、P1=7FH、=20H和=7FH。

5 SJMP指令和AJMP指令的主要区别。

前者提供以SJMP下一个指令的起始地址为中心的256字节范围的转移,后者的转移目标地址必须位于与AJMP下一个指令的起始字节相同的2KB空间的程序存储器中。 短迁移使可重定位代码更容易。 SJMP方便了PC的可重定位编码,但迁移范围很小。 另一方面,ASJMP的转移范围很大,但有转移区的限制,只有在AJMP指令位于2KB区的最后2个字节时,才能转移到下一个区。 因此,使用AJMP指令代替SJMP指令是有条件的。 也就是说,目标地址必须位于与其下的指令存储地址相同的2KB区域内。

3-4编程问题

第一程序将从片上RAM30H开始的15B数据传送到从片上RAM3000H开始的单元。

解: STRAT:MOV R0,#30H

MOV R7,#0FH

MOV DPTR,#3000H

LOOP: MOV A,@R0

MOVX @DPTR,a

INC R0

INC DPTR

DJNZ R7,LOOP

回复

2片内从RAM30H开始的单元有10B的二进制数,请编程求它们的和。

解addio:mov r0,30h

MOV R7,#9

MOV A,@R0

LOOP: INC R0

ADD A,@R0

DJNZ R7,LOOP

MOV 30H,a

回复

3编写程序,通过串行接口发送累加器中的字符。

解sout:movs con,#40H; 将串行接口设置为工作模式

MOV TMOD,#20H; 计时器T1在模式2下动作

MOV TL1,#0E8H; 将波特率设置为1200b/s

MOV TH1,#0E8H

SETB TR1

MOV SBUF,a

JNB T1,$

CLB T1

回复

4用查找表法编制子程序,将R3中的BCD码转换为ASCII码。

解MAIN: MOV A,R3; 要变换的数发送a

MOV DPTR,#TAR; 将DPTR发送到表的开头

MOVC A,@A DPTR; 查看ASCII代码表

MOV R3,a; 查找表的结果被发送到R3

回复

TAR DB 30H、31H、32H、33H和34H

DB 35H、36H、37H、38H、39H

通过编程发现5片内从RAM40H开始的单元内有10B进制,其中的最大值并存于50H单元中。

解start:mov r0,#40H; 数据块开头地址发送R0

MOV R7,#09H; 比较次数发送R7

MOV A,@R0; 按数字发送a

LOOP: INC R0

MOV 30H,@R0; 数后发送30H

CJNE A,30H,NEHT; 与此相比

next:jncbie1(a ) ) 30h )到BIR1

MOV A,30H; ( a ) ) 30H ),大多数发送a

BIE1: DJNZ R7,LOOP; 将比较次数减少1,不是0,而是继续比较

MOV 50H,a; 比较结束后,大多数发送50H

回复

6编写子程序,从串行接口接收字符。

解: START: MOV TMOD,#20H; 计时器T1在模式2下动作

MOV TH1,#0E8H; 将波特率设置为1 200b/s

MOV TL1,#0E8H

SETB TR1; 启动T1

MOV SCON,#50H; 串行接口按方式1工作,保证接收

L1 ) jnbri,L1; 等待接收数据,最后接收数据,继续等待

CLR RI; 接收数据,清除RI

MOV A,SBUF; 收到了数据发送a

回复

利用7音调程序方法进行2个无符号数的加法运算。 请编写主程序和子程序。

解以R0和R1为数据指针,R0指向第一个加法运算,兼作“和”的指针,R1指向另一个加法运算,字节存储在R2中作为计数初始值。

主程序:

JAFA: MOV R0,#20H; 指加法的最低字节

MOV R1,#29H; 指另一个加数的最低字节

MOV R2,#04H; 将字节数作为计数值

ACALL JASUB; 调用加法子程序

AJMP $

RTE

多字节加法子程序:

JASUB: CLR C

JASUB1: MOV A,@R0; 取出相加的1个字节

ADDC A,@R1; 加上另一个数的一个字节

MOV @R0,a; 保存和数量

INC R0; 指相加后的高位

INC R1; 指另一个加数的上位

DJNZ R2、JASUB1; 都加了吗?

回复

如果图8中的数据块是有符号的数,则求出正数,编程进行注释。

解ORG 0030H

START: MOV 20H,#00H; 对正数个数进行计数的计数器

MOV DPTR,#0000H;

MOVX A,@DPTR; 块长10H

MOV 10H,a

INC DPTR; DPTR指向第一个数的地址

TWO: MOVX A,@DPTR; 拿A

JB ACC.7,ONE; 是负转ONE。 准备好取下一个数

INC 20H; 是正数,在正数计数器上加1

ONE: INC DPTR; 地址指针1

DJNZ 10H,TW; 块长度减去1不是0。 继续找

回复

编写循环9点灭的程序。 有8个发光二极管,其中一个闪烁10次,然后转入下一个闪烁10次,循环不停。 画电路图。

解开

P1.0

8013

P1.7

D0 Q0

74LS240

D7 Q7

本程序的硬件连接如图所示。 P1.0输出高电平时,LED点亮,否则不点亮。

其步骤如下

MOV A,#01H; 点亮初始值

SHIFT: LCAIL FLASH; 闪亮10子程序

RR A; 向右挪一个

SJMP SHIFT; 循环

闪光灯: movr2,#0AH闪烁10次计数

FLASH1; MOV P1,a; 亮灯

呼叫延迟; 延迟时间

MOV P1,#00H; 熄灯

呼叫延迟; 延迟时间

DJNZ R2、FLASH1; 循环

回复

第四章

4-1填孔

1 .以1.MCS-51的Po端口作为输出端口时,每人可以驱动8个SL型TTL负载。

2.MCS-51有四个并行I\\O端口,其中P0~P3是准双向端口,从输出传输输入时必须先写入\’1\’

设计8031系统时,_P0、P2端口不能用作常见的I\\O端口。

4.MCS-51串行接口有四种工作方式,它可以在初始化程序中用软件填写特殊功能寄存器__SCON _进行选择。

5 .使用低速外围设备时,最佳传输方式为中断。

6 .当计时器To在模式3下操作时,占用计时器T1的TR1和TF1_两个控制比特。

7.MCS-51有5个中断源,有2个中断优先级,优先级由软件填写特殊功能寄存器IP进行选择.

8 .使用串行端口扩展端口时,串行接口的操作方式应为方式0。

9 .串行通信有数据传输方向的单工、半双工、全双工三种方式。

10 .外部中断入口地址为_ 0013H

4-2判断

1.MCS-51的五个中断源优先级相同。

2 .进行多机通信时,MCS-51串行接口的工作方式应为方式1。

3.MCS-51上电复位时,SBUF=00H。 请参阅。

4.MCS-51有三个中断源,优先级由软件填写特殊功能寄存器IP进行选择.

5 .通过串行端口扩展并行端口时,串行端口的操作方式应选择方式1。

6 .外部中断INTO入口地址为_0013H

7.MCS-51外部中断0的入口地址为0003H。

8 .当8.TMOD中GATE=1时,用两个信号来控制计时器的停止。 请参阅。

即使8751且=1,也可以横向扩展64KB的程序内存。

10.PC中保存了当前正在执行的命令。

11.MCS-51的特殊功能寄存器分布在60H~80H的地址范围内。

12.MCS-51有四个并行I\\O端口,其中P0~P3是准双向端口,从输出传输输入时必须先写入\’0\’

4-3选择

1 .中断服务程序至少需要一个( d )

传送命令分支命令加法指法中断恢复命令

为了使MCS-51能够响应定时器T1中断、串行接口中断,中断许可寄存器IE内容如下

98H 84H 42 22H

3.D MCS-51响应中断时,不发生以下哪些操作( d ) :

( a )保护现场) b )保护PC ) c )发现中断入口) d )保护PC )转移到中断入口

通过MCS-51串行接口扩展并行I\\O端口时,串行接口的工作方式请选择( c )

( a )方式0 ) b )方式1 ) c )方式2 ) d )方式3

5.MCS-51有中断源

5个2个3个6个

6 .如果6.MCS-51响应中断,以下哪项不是必需的

可以肯定,当前的命令执行完成中断是开放的

如果没有对等或高级中断服务,则需要RET1命令

7 .使用计时器T1时,有几个动作模式

一种两种三种四种

8 .计算机使用中断方式与外界交换信息时,保护现场的工作方式应该是( b )

( a ) CPU自动完成) b )中断应答中完成

( c )中断服务程序完成;( d )在主程序中完成

9 .哪种传输方式适合处理外部事件( c )

( a ) DMA ) b )无条件传递) c )中断) d )条件传递

第一、二、四章编程

1. 8225A控制字的地址为300FH。 请确定a端口方式0输入、b端口方式1输出、c端口上位输出、c端口下位输入、8225A控制字,并编制初始化程序。

解:控制字为10010101=95H

初始化程序: MOV DPTR,#300FH

MOV A,#95H

MOVX @DPTR,a

2 .编写软件延迟1S和1min的子程序。 假设fosc=6Hz,则一个机器周期为1s。

解: 1S=2US*5*100000

5*100000=250*200*10

)2) ORG 1000H

TIME: MOV R7,#10

T3: MOV R6,#200

T2: MOV R6,#250

T1: DJNZ R5,T1

DJNZ R6,T2

DJNZ R7,T3

回复

)2)1min=60,调用上述1s子程序60次

ORG 0030H

MOV R0,#60

LOOP: LCALL TIME

DJNZ R0,LOOP

回复

3 .请编写串行通信的数据发送程序,发送片上RAM50H~5FH的16B数据。 串行接口设置为方式2,采用奇偶校验方式。 设水晶振动频率为6MHz。

解:查询方式的发送步骤如下

MOV SCON,#8OH

M OV PCON,#80H

MOV R0,#50H

MOV R7,#16H

LOOP: MOV A,@R0

MOV C,p

MOV TB8,c

MOV SBUF,a

JNB T1,$

CLR T1

INC R0

DJNZ R7,LOOP

回复

4 .利用单片机内部定时器T0在模式1下操作,从P1.0输出周期为2ms的方波脉冲信号。 众所周知,单片机的晶振频率为6MHZ。

请计算时间常数x,应用公式X=216-t

写节目单

解: x=216-t(f/12 ) ) )。

=216-1*10-3*6*106/12

=OFEOCH

ORG 3000H

START: MOV TMOD,#01H

MOV TL0,#OCH

MOV THO,#OFEH

SETB TR0

LOOP: JBC TFO,DONE

SJMP LOOP

DONE: MOV TL0,#OCH

MOV THO,#OFEH

CPL P1.0

SJMP LOOP

5 .利用单片机内部定时器T0在模式1下操作,从P1.0输出周期为1ms的方波脉冲信号。 众所周知,单片机的晶振频率为6MHZ。

请计算时间常数x,应用公式X=216-t

写节目单

解:解: x=216-t(f/12 ) ) )

=216-0.5*10-3*6*106/12

=FF06H

ORG 3000H

START: MOV TMOD,#01H

MOV TL0,#06H

MOV THO,#FFH

SETB TR0

LOOP: JBC TFO,DONE

SJMP LOOP

DONE: MOV TL0,#06H

MOV THO,#FFH

CPL P1.0

SJMP LOOP

使用6、89C51的P1端口监视某个键开关,每次按下键时输出正脉冲。 编写汇编语言程序。

解: ORG 0100H

ABC: SETB P1.0

SETB P1.7

JB PI.7,$

JNB P1.7,$

CLR P1.0

MOV R2,#0

DAY: NOP

NOP

DJNZ R2,DAY

SJMP ABC

设计7、4位数字显示电路,用汇编语言编程,使\’8\’从右到左再显示一次。

解: ORG 0100H

MVA,#08H

MOV R2,#01H

MOV DPTR,#TAB

MOVC A,@A DPTR

MOV P1,a

NEXT: MOV A,R2

MOV P3,a

ACALL DAY

JB ACC.4,LPD

RL A

MOV R2,a

AJMP NEXT

LPD: RET

TAB: DB

结束

8 .编制循环闪烁程序。 有8个发光二极管,其中一个闪烁10次,然后转入下一个闪烁10次,循环不停。 画电路图。

解: MOV A,#01H

SHIFT: LCALL FLASH

RR

SJMP SHIFT

FLAH: MOV R2,#0AH

FLAH1: MOV P1,a

LCALL DELAY

MOV P,#00H

LCALL DELAY

DJNZ R2,FLASH1

回复

8051单片机INTO引脚外加脉冲信号时,每发一个脉冲,要求30H单元加1,30h单元加满后提前31H单元。 尝试利用中断结构编写脉冲计数程序。

解: ORG 0000H

AJMP MAIN

ORG 0003H

AJMP SUBG

MAIN: MOV A,#OOH

MOV 30H,a

MOV 31H,a

MOV SP,#70H

SETB INT0

SETB EA

SETB EX0

AJMP $

ORG 0200H

SUBG: PUSH ACC

INC 30H

MOV A,30H

日本火腿斗士队

INC 31H

BACK: POP

RET1

通过10.89c51的P1端口控制8个发光二极管LED。 以相邻的4个LED为1组,每2组为0。 5S交替闪烁一次,周尔再次开始。 试写程序。

解: ORG 0100H

MOV A,#0FH

ABC: MOV P1,a

ACALL D05

SWAP A

SJMP ABC

d05 :移动6,250

dy:movr 7,250

DAY: NOP

NOP

DJNZ R6,DAY

DJNZ R7,DAY

回复

结束

设计11.89c51与ADC0809的接口,采集2通道10个数据,保存在内部RAM的50H~59H单元中,绘制并绘制电路图。

延迟方式;

查询方式;

中断方式中的一种程序。

解: IN2的地址为7FFAH,是P1.0查询转换结束信号,查询步骤如下。

ORG 0100H

MOV R7,#0AH

MOV R0,#50H

MOV DPTR,#7FFAH

NEXT: MOVX @DPTR,a

JB P1.0,$

MOVX A,@DPTR

MOV @R0,a

INC R0

DJNZ NEXT

SJMP $

第五章

5-1选择题

6264芯片是

EEPROM RAMFLASH ROM EPROM

2、使用MCS-51串行扩展并行I/O端口时,选择串行接口的工作方式

方式0方式1方式2方式3

3,8255可以扩展哪些I/O端口线

16支24支22支32支

4、8031扩展程序存储器8KB时,需要使用EPROM 2716

两张三张四张五张

5、某型存储芯片为8KB*4/芯片,其地址线路由线为

11支12支13支14支

6、对于MCS-51外部扩展ROM、RAM和I/O端口,其数据总线为

P0 P1 P2 P3

7、使用高速外部设备时,最好的输入输出方式是

中断条件传输DMA无条件传输

8、MCS-51中断源全部编程为同级时,优先顺序最高的是

INT1 TI串行接口INT0

9、MCS-51的并行I/O端口信息有两种读取方法。 一个是引脚,另一个是引脚

闩锁读取数据库读取a累积器具读取CPU

10、MCS-51并行I/O端口的读取-修改-写入操作对该端口进行

读取选择信号地址线内部锁存器

5-2判断问题1、MCS-51外部扩展I/O端口和外部RAM是统一地址。

在使用2,8751且EA=1情况下,可以扩展64KB的程序存储器。 60KB

3、8155的复位端子可以直接连接到89C51的复位端子上。

4、片上RAM和外部设备统一地址时,需要专用的输入输出指令。 统一地址的

其特征是不需要特别的输入输出命令。

5、8031片内有程序存储器和数据存储器。 无程序存储器

6、EPROM的地址线为11条时,可以访问的存储区域有4K。 2K。

7、8255A内部包含3个8位并行端口,即a端口、b端口、c端口。

8、8155芯片具有256B静态RAM、2个8位和1个6位可编程并行I/O端口、1个14位定时等常用部件和地址锁存器。 (是的)

9 .单片机应用系统中,外部设备和外部数据存储器传输数据时使用MOV命令。 用MOVX命令。

10、消除按键抖动,常用的方法有软硬件两种。 (是的)

5-3简单解答

1在1 8031扩展内存系统中,为什么将8位锁存器连接到P0端口而不连接到P2端口?

这是因为P0端口是扩展存储系统低位8位地址和数据总线,所以在访问外部存储器时,P0端口被时分用于外部存储器的低位8位地址的输出和数据的传送,在访问外部存储器期间,对外部存储器有效的低位8 ALE信号用于将从P0端口输出的地址反向锁定到外部锁存器,并从锁存器输出外部存储器的低8位地址。 另一方面,P2端口仅用作扩展内存系统的高8位地址线,在访问外部存储器时不会发生变化,因此不需要外部地址锁存器。

8031扩展系统中,外接程序存储器和数据存储器共享16位地址线和8位数据线,为什么两个内存区域不冲突呢?

a )这是因为外部程序存储器和外部数据存储器中使用的控制信号不同。 向外部程序存储器的导入使用PSEN控制线,向外部数据存储器的读/写控制使用RD和WR读/写控制线,因此不会发生地址冲突。

3 8031单片机需要外接程序存储器,实际上有多少I/O线? 使用外部存储器时,还剩多少根I/O电缆?

a ) 8031系统必须配备外置程序加速器。 原则上,由于P0和P2端口用作数据和地址总线,因此总共只有16条I/O线路可用作P1和P3端口。 使用外部存储器时,除了占用P0和P2端口外,还需要使用P3端口RD和WR两条控制线,因此此时只剩下14条I/O线。

尝试将8031单片机外置的2716 EPROM和6116 RAM合并为一个APP应用系统。 请画出硬件的连接图,指出扩展内存的地址范围。

a ) 2716是2K8位EPROM,6116是2K8位静态RAM,两者都只需要11条地址线。 没有规定地址范围,必须省略地址解码器,从0开始程序存储器的地址,用基本地址为0000H—07FFH的最简单方法即可连接。 数据存储器的地址为0000H—07FFH。 的控制线连接成/PSEN控制EPROM的读出,/RD和/WR控制RAM的读写,两个芯片的芯片端子固定地,接线图如图所示。

P2.2

P2.1

P2.0

P0

8031

ALE

/PSEN

/EA

/RD

/WE

5简单说明一下可编程并行接口8255 A的内部结构吗?

A ) 8255 A的内部结构由总线接口部分、内部逻辑部分、外部接口部分三部分组成。

总线接口部分包括数据总线驱动器和读/写控制逻辑

内部逻辑部分由a组和b组控制电路。

外部接口部分此部分包含三个8位并行I/O端口: a端口、b端口和c端口。

5-4编程问题

1试验编程初始化8155,以A端口为栅极输出,B端口为栅极输入,C端口为控制联络端口,启动定时器/计数器按方式1工作,工作时间10ms,定时器计数脉冲频率为单片机

解:计算出初始值=5000=1388H

MOV DPTR,#7F04; 计时器低位8位寄存器地址DPTR

MVA,#88H; 低位8比特初始值a

MOVX @DPTR,a; 低位8位初始值低位8位寄存器

INC DPTR; DPTR指示定时器前8位

MVA,#13H; 高位8比特初始值a

MOVX @DPTR,a; 高位8位初始值高位8位寄存器

MOV DPTR,#7F00H; 8155指令寄存器地址DPTR

MVA,0C5H; 命令语a

MOVX @DPTR,a; 指令字指令寄存器

2单片机采用8051,未扩展片外ROM,片外RAM采用一块6116,使其片内ROM的0100H单元的10B内容依次外接至片外RAM上100H单元的10B中

解: MOV R2,#00H; 源数据缓冲区地址偏移00H A

MOV R3

,#0AH ;字节长度 R3

MOV DPTR,#0100H ;源数据缓冲区首地址 DPTR

MOV A,R2 ;源地址偏移量 A

MOVC A,@A+DPTR ;传送一个数据

MOVX @DPTR,A

INC DPTR ;源地址加1

DJNZ R3,L1 ;数据全部传送完?没传送完,转L1继续传送

SJMP $ ;结束

3 8031扩展8255A,将PA口设置成输入方式,PB口设置成输出方式,PC口设置成输出方式,给出初始化程序。

解: 根据题目要求,A口输入,B口输出,二者均采用工作方式0,则控制字为98H。编程如下:

MOV A,#98H ;方式控制字 A

MOV DPTR,#7FFFH ;选通控制寄存器

MOVX @TPTR,A ;方式控制字送入8255A

MOV DPTR,#7FFCH

MOVX A,@DPTR ;读PA口数据

MOV DPTR,#7FFDH ;

MOVX @DPTR,A ;送PB口数据

4 设计一个2×2行列式键盘电路并编写键盘扫描子程序。

解: 2×2行列式键盘电路如图所示。

键盘扫描子程序:

KEY1: ACALL KS1 ;调用判断有无键按下子程序

JNZ LK1 ;有键按下,转LK1

AJMP KEY1 ;无键按下,返回

LK1: ACALL T12MS ;调延时12ms子程序

ACALL KS1 ;查有无键按下

JNZ LK2 ;若有,则为键确实按下,转逐列扫描

AJMP KEY1 ;无键按下,返回

LK2: MOV R4,#00H ;首列号 R4

MOV R2,#FEH ;首列扫描字 R2

LK4: MOV A,R2 ;列扫描字 P1口

MOV P1,A ;使第一列线为0

MOV A,P1 ;读入行状态

JB ACC.0,LONE;第0行无键按下,转查第一行

MOV A,#00H ;第0行有键按下,该行首键号#00H A

AJMP LKP ;转求键号

LONE: JB ACC.1,NEXT ;第一行无键按下,转查下一列

MOV A,#02 ;第一行有键按下,该行首键号#02 A

LKP: ADD A,R4 ;键号=首行号+列号

PUSH ACC ;键号进栈保护

LK3: ACALL KS1 ;等待键释放

JNZ LK3 ;未释放,等待

POP AC ;键释放,键号 A

RET ;键扫描结束

NEXT: INC R4 ;列号加1,指向下一列

MOV A,R2 ;列扫描字 A

JNB ACC.1,KND ;判断2列全扫描完?扫描完,转KND

RL A ;没扫描完,扫描字左移一位,形成下一列扫描字

MOV R2,A ;扫描字 R2

AJMP LK4 ;扫描下一列

AJMP KEY1 ;全扫描完,返回

MOV A,#FCH ;全扫描字11111100B A

MOV P1,A ;全扫描字 所有行

MOV A,P1 ;读取列值

CPL A ;取正逻辑,高电平表示有键按下

ANL A,#0C0H ;屏蔽低6位,取高2位

RET ;出口状态!=0,有键按下

5 要求将存放在8031单片机内部RAM中30H—33H单元的4字节数据,按十六进制从做到右显示,试编制程序。

ORG 1000H ;指向显示缓冲区

MOV R0,#30H ;显示字节数

MOV R2,#04 ;初始显示位置

MOV P1,#08H ;取1B

SDLAY: MOV A,@R0 ;备份

MOV B,A ;截取字节高位

ANL A,#0F0H ;装入P1.4—P1.7

ORL P1,A ;准备显示右一位

INC P1 ;取备份

MOV A,B ;截取字节低位

SWAP A ;

ANL A,#0F0H

ORL P1,A ;装入并显示

INC P1 ;准备显示下一字节

INC R0

DJNZ R2,SDLAY ;4B未显示完循环

RET ;显示完成

END

START:MOV DPTR,#7FFFH

MOV A,#00

LOOP :MOVX @DPTR,A

INC A

MOV R0,#data ;data为延时常数

DJNZ R0,$ ;延时,改变data可改变锯齿波周期T值

SJMP LOOP

例2:产生矩形波

START: MOV DPTR, #7FFFH

STEP: MOV A , #dataH ;置矩形波上限

MOVX @DPTR , A ;D/A转换

ACALL DELH ;调输出“1”时延时

MOV A , #00H ;置矩形波下限

MOVX @DPTR, A

ACALL DELL ;调输出“0”时延时

SJMP STEP ;重复执行

例3: 产生三角波

START: MOV DPTR, #7FFFH

STEP1: MOV A, #00H

STEP2: MOVX @DPTR, A

INC A

CJNE A , #data , STEP2

STEP3: DEC A

MOVX @DPTR , A

CJNE A , #01H , STEP3

AJMP STEP1