单片机原理及应用第二版--李建忠

更新时间:2023-06-06 02:43:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第二章习题参考答案

2-1 51单片机内部包含哪些主要逻辑功能部件? (1)一个8位微处理器CPU。

(2)256B数据存储器RAM和特殊功能寄存器SFR。 (3)4K程序存储器ROM。

(4)两个定时/计数器,用以对外部事件进行计数,也可用作定时器。

(5)四个8位可编程的I/O(输入/输出)并行端口,每个端口既可做输入,也可做输出。 (6)一个串行端口,用于数据的串行通信

(7)1个可管理5个中断源、2级优先嵌套的中断管理系统;。 (8)片内振荡器及时钟发生器。

2-2 MCS-51引脚中有多少I/O总线?它们和单片机对外的地址总线和数据总线有什么关系?地址总线和数据总线各是几位?

32条I/O口线,分为4组,每组8条,称为P0~P3口,P0口有8位数据总线和地址总线的低8位,P2口有地址总线的高8位,因此单片机的地址总线位是16位,寻址空间为64KB,数据总线位宽为8位。同时在P3口还R/W控制信号线。I/O口线的总数与地址总线和数据总线没有多大联系,只是说地址总线和数据总线需要占用一定的端口。像AT89C2051单片机,只有15条I/O口线(P3.6没有引出,作为内部使用),分为P1口(8位)和P3口(7位),没有所谓的地址总线和数据总线,并且P1口并不完整,因为P1.0和P1.1被电压比较器占用了。

2-3 51单片机的 EA, ALE,PSEN信号各自功能是什么?

:为片外程序存储器选用端,该引脚有效(低电平)时,只选用片外程序存储器,否则单片机

上电或复位后选用片内程序存储器。

ALE:地址锁存有效信号输出在访问片外程序存储器期间,ALE以每机器周期两次进行信号

输出,其下降沿用于控制锁存P0输出的低8位地址;在不访问片外程序存储器期间,ALE端仍以上述频率(振荡频率fosc的1/6)出现,可作为对外输出的时钟脉冲或用于定时目的.

PSEN:片外程序存储器读选通信号输出端,低电平有效。

2-4 51系列单片机有哪些信号需要芯片引脚的第二功能方式提供? P3.0 :PxD 串行口输入端 P3.1 :TxD串行口输出端

P3.2 :INT0 外部中断0请求输入端,低电平有效 P3.3 :INT1 外部中断1请求输入端,低电平有效 P3.4 :T0 定时/计数器 0技术脉冲输入端 P3.5 :T1 定时/计数器 1技术脉冲输入端

P3.6 :WR 外部数据存数器写选通信信号输出端,低电平有效 P3.7 :RD 外部数据存数器读选通信信号输出端,低电平有效

2-5 51系列单片机的程序状态字PSW中存放什么信息?其中的OV标志位在什么情况下被置位?置位是表示什么意思?

●PSW是一个8位标志寄存器,它保存指令执行结果的特征信息,以供程序查询和判别。 ●1)做加法时,最高位,次高位之一有进位则OV被置位 2)做减法时,最高位,次高位之一借位则OV被置位 3)执行乘法指令MUL AB,积大于255,OV=1

4)执行除法指令DIV AB,如果B中所放除数为0 ,OV=1 ●0V=1,置位反映运算结果超出了累加器的数值范围

2-9 片内RAM低128单元划分为哪几个区域?应用中怎么样合理有效的使用? ●工作寄存器区,位寻址区,数据缓冲区 ①工作寄存器区用于临时寄存8位信息,分成4组,每组有8个寄存器,每次只用1组, 其他各组不工作

②位寻址区(20H~2FH),这16个单元的每一位都赋予了一个位地址,位地址范围为00H~7FH,位寻址区的每一位都可能当作软件触发器,由程序直接进行位处理。

③由于工作寄存器区,位寻址区,数据缓冲区统一编址,使用同样的指令访问,因此这三个 区的单眼既有自己独特的功能,又可统一调度使用,前两个已未使用的单元也可作为一般的用户RAM单元。

2-10 51系列单片机的堆栈与通用微机中的堆栈有何异同?在程序设计时,为什么要对堆栈指针SP重新赋值?

●堆栈是按先进后出或后进先出的远侧进行读/写的特殊RAM区域 51单片机的堆栈区时不固定的,可设置在内部RAM的任意区域内

●当数据压入堆栈时,SP的内容自动加1,作为本次进栈的指针,然后再存取数据SP的值随着数据的存入而增加,当数据从堆栈弹出之后,SP的值随之减少,复位时,SP的初值为07H,堆栈实际上从08H开始堆放信息,即堆栈初始位置位于工作寄存器区域内,所以要重新赋值

2-13 什么是时钟周期,机器中期和指令周期?当晶振荡频率为6MHZ时,一条双周期指令的执行时间是多少?

●时钟周期:CPU始终脉冲的重复周期(2个振荡周期) 机器周期:一个机器周期包含6个状态周期 指令周期:执行一条指令所占用的全部时间 12MHZ时,一条双周期指令周期时间为2us 6MHZ时,一条双周期指令周期时间为1us

2-14 定时器/计数器定时与计数的内部工作有何异同?

●定时工作模式和技术工作模式的工作原理相同,只是计数脉冲来源有所不同:

处于计数器工作模式时,加法计数器对芯片端子T0(P3.4)或T1(P3.5)上的输入脉冲计数; 处于定时器工作模式时,加法计数器对内部机器周期脉冲计数。

2-15 定时器/计数器有四种工作方式,它们的定时与计数范围各是多少?使用中怎样选择工作方式?

●工作方式0:定时范围:1~8192us;计数值范围:1~8192 工作方式1:定时范围:1~65536us;计数值范围:1~65536 工作方式2:定时范围:1~256us;计数值范围:1~256 工作方式3:定时范围:1~256us;计数值范围:1~256

●通过TMOD来选择,低4位用于定时器/计数器0,高4位用于定时器/计数器1

M1,M0:定时器计数器工作方式选择位

2-16 定时器/计数器的门控方式与非门控方式有何不同?使用中怎么样选择哪种工作方式?初值应设置为多少(十六进制)?

●GATE:门控位,用于控制定时器/计数器的启动是否受外部中断请求信号的影响。 GATE=1,则定时器/计数器0的启动受芯片引脚INT0(P3.2)控制,定时器/计数器1的启动受芯片引脚INT1(P3.3)控制

GATE=0,则定时器/计数器的启动与引脚INT0、INT1无关,一般情况下GATE=0

2-18 51单片机的五个中断源中哪几个中断源在CPU响应中断后可自动撤除中断请求,哪几个不能撤除中断请求?CPU不能能撤除中断请求的中断源时,用户应采取什么措施?

●可撤除:计数器T0`T1的溢出中断

不可撤除:触发的外部中断;发送接收中断

●1)触发的外部中断:由于CPU对INTx引脚没有控制作用,也没有相应的中断请求标志位,因此需要外接电路来撤除中断请求信号。

2)串行口的发送/接收中断:当串行口发送完或接收完一帧信息时,SCON的TI,RI向CPU申请中断,响应中断后,接口应计算呢不能自动将TI或RT清0,用户需采用软件方法将TI或RT清0,来撤除中断请求信号

2-21 使单片机复位有几种方式?复位后单片机的初始状态如何? ●上电复位,按钮复位

●(PC)=0000H:程序的初始入口地址为0000H

(PSW) =00H:由于RS1(PSW.4)=0,RS0(PSW.3)=0,复位后单片机选择工作寄存器0组

(SP)=07H:复位后堆栈早起片内RAM的08H单元处建立

TH1、TL0、TH0、TL0:他们的内容为00H,定时器/计数器的初值为0 (TMOD)=00H:复位后定时器/计数器T0、T1定时器方式0,非门控方式

(TCON)=00H:复位后定时器/计数器T0、T1停止工作,外部中断0、1为电平触发方式

(T2CON) =00H:复位后定时器/计数器T2停止工作

(SCON)=00H:复位后串行口工作在移位寄存器方式,且禁止串行口接收 (IE)=00H:复位后屏蔽所有中断

(IP)=00H:复位后所有中断源都直指为低优先级

P0~P3:锁存器都是全1状态,说明复位后4个并行接口设置为输入口

2-23 51单片机串行口有几种工作方式?这几种工作方式有何不同?各用于什么场合?

●有4种工作方式:方式0、方式1、方式2、方式3

工作方式:方式0移位寄存器方式;方式1、方式2、方式3都是异步通信方式

场合:方式0不用于通信,而是通过外接移位寄存器芯片实现扩展I/O口的功能;方式1用于双机通信;方式2、3主要用于多机通信,也可用于双机通信

第三章参考答案

3-1 何谓寻址方式?51单片机有哪几种寻址方式?这几种方式是如何寻址的?

●所谓寻址方式,就是CPU执行那个一条指令时怎样找到该指令所要求的操作数的方式。

●1)立即寻址:操作数直接出现在指令中,紧跟在操作码的后面,作为指令的一部分与操作码一起存放在程序存储器中,可以立即得到并执行,例如:MOV A,#30H指令中30H就是立即数。这一条指令的功能是执行将立即数30H传送到累加器A中的操作。

2)寄存器寻址:操作数放在寄存器中,在指令中直接以寄存器的名字来表示操作数的地址。例如MOV A,R0,即将R0寄存器的内容送到累加器A中。

3)寄存器间接寻址方式:由指令指出某一寄存器的内容作为操作数地址的寻址方法,例如:MOV A,@R1,将以工作寄存器R1中的内容为地址的片内RAM单元的数据传送到A中去。

4)直接寻址: 指令中直接给出操作数所在的存储器地址,以供取数或存数的寻址方式称为 直接寻址。例如:MOV A,40H指令中的源操作数就是直接寻址,40H为操作数的地址。该指令的功能是把片内RAM地址为40H单元的内容送到A中 5)变址寻址:基地址寄存器加变址寄存器间接寻址

6)相对寻址:相对寻址是以当前程序计数器PC值加上指令中给出的偏移量rel,而构成实际操作数地址的寻址方法。它用于访问程序存储器,常出现在相对转移指令中。 7)位寻址:位寻址是在位操作指令中直接给出位操作数的地址,可以对片内RAM中的128 位和特殊功能寄存器SFR中的93位进行寻址。

3-2 访问片内、片外程序存储器有哪几种寻址方式? ●采用基址寄存器加变址寄存器间接寻址方式 MOVC A,@A+DPTR MOVC A,@A+PC

3-3 访问片内RAM单元和特殊功能寄存器各有哪几种寻址方式?

●访问片内RAM有:立即寻址,寄存器寻址,寄存器间接寻址,直接寻址 ● 特殊功能有:直接寻址

3-4访问片外RAM单元和特殊功能寄存器,各有哪几种寻址方式? 访问片内RAM有:寄存器间接寻址 特殊功能有:直接寻址

3-5若要完成以下的数据传送,应如何用51的指令来完成。 (1)R0的内容送到R1中。

MOV A, R1 MOV R0,A

(2)外部RAM的20H单元内容送R0,送内部RAM的20H单元。

MOV DPTR,#0020H MOVX A,@DPTR MOV R0,A

(3)外部RAM的2000H单元内容送R0,送内部RAM的20H单元,送外部RAM的20H单元。

MOV DPTR,#2000H MOV R0,#20H MOVX A,@DPTR MOVX @R0,A MOV @R0,A

(4)ROM的2000H单元内容送R0,送内部RAM的20H单元,送外部RAM的 20H单元。

MOV A, #00H

MOV DPTR,#2000H MOV R0,#20H MOVC A,@A+DPTR MOV @R0,A

MOVX @R0,A MOV R0,A

3-6 试比较下列每组两条指令的区别 1)MOV A,#24与MOV A,24H 2)MOV A,R0与MOV A,@R0 3)MOV A,@R0与MOVX A,@R0 4)MOV A,@R1与MOVX A,@DPTR

●1)前者为立即寻址,将立即数24H单元的内容送到A中;后者为直接寻址,将24H单元的片内RAM内容送到A中。

2)前者为直接寻址,将R0单元的内容送到A中,后者为寄存器间接寻址,将R0中的内容为地址的片内RAM单元的数据送到A中。

3)前者为寄存器间接寻址,将R0中的内容为地址的片内RAM单元的数据送到A;后者为寄存器间接寻址,将R0中的内容为地址的片外RAM单元的数据送到A中。 4)用R1做地址指针可寻址片内RAM的256个单元,但能访问SFR块,也可8位地址访问片外RAM的低256个地址单元(00~ffH);用DPTR做地址指针,用于访问片外RAM的64KB范围(0000~ffffH)(16位)。 3-7已知(A)= 7AH,( B)= 02H,( R0)= 30H,( 30H)= A5H,( PSW)=80H,写出以下各条指令执行后A和PSW的内容。

(1)XCH A, R0 (A)=30H,(PSW)=00H, (R0)= 7AH, (2)XCH A, 30H (A)=A5H,(PSW)=00H (3)XCH A, @R0 (A)=A5H,(PSW)=00H (4)XCHD A, @R0 (A)=75H,(PSW)=01H (5)SWAP A (A)=A7H,(PSW)=01H (6)ADD A, R0 (A)=AAH,(PSW)=00H (7)ADD A, 30H (A)=1FH,(PSW)=81H (8)ADD A, #30H (A)=AAH,(PSW)=00H (9)ADDC A, 30H (A)=20H,(PSW)=01H (10)SUBB A, 30H (A)=D5H,(PSW)=85H

(11)SUBB A, #30H (A)=4AH,(PSW)=01H (12)INC @R0 (A)=7AH,(PSW)=80H; (13)MUL AB (14)DIV AB

3-8 已知(A)=02H,(R1)=7FH,(DPTR)=2FFCH,(SP)=30H,

片内RAM(7FH)=70H,片外RAM(2FFEH)=11H,ROM(2FFEH)=64H,试分别写出以下指令执行后目标单元的结果。

1)MOVX @DPTR,A 2)MOVX A,@R1

3)MOVC A,@A+DPTR 4)PUSH ACC

●1)(2FFEH)=02H 2)(A)=70H 3)(A)=(02H+2FFCH)=(2FFEH)=64H 4)(31H)=02H

3-9 DA A指令有什么作用?怎样使用?

这条指令是进行BCD码运算时,跟在ADD或ADDC指令之后,将相加后存放在

累加器中的结果进行修正。 修正的条件和方法为:

若(A0~3)>9或(AC)=1,则(A0~3)+06H→(A0~3); 若(A4~7)>9或(CY)=1,则(A4~7)+06H→(A4~7)。

若以上二条同时发生,或高4位虽等于9 ,但低4位修正后有进位,则应加66H修正。

3-10 设(A)=83H,(R0)=17H,(17H)=34H,分析当执行下面的每条指令后目标单元的内容,及4条指令组成的程序段执行后A的内容是什么? ANL A,#17H ;与 ORL 17H,A ;或 XRL A,@R0 ;异或 CPL A ;取反

ANL A,#17H 10000011与00010111 = 0000 0011 ORL 17H,A 00110100或00000011 = 0011 0111 XRL A,@R0 00110111异或 0000 0011 = 0011 0100 CPL A ~A 1100 1000 CBH

3-11 请写出达到下列要求的逻辑操作的指令,要求不得改变未涉及位的内容 1)使累加器A的低位置‘1’ 2)清累加器A的高4位 3)使A.2和A.3置‘1’ 4)清除A.3、A.4、A.5、A.6 SETB ACC.1; ANL A,#0FH;

ORL A,#00001100B ANL A,#10000111B

3-12 指令LJIMP addr16与AJMP addr11的区别是什么?

LJIMP addr16是长转移, LCALL的作用就是将addr16直接赋给PC

AJMP addr11,在当前PC的2KB范围跳转(因为addr11就是2KB), 即PC高

五位不变,低十一位等于addr11。

3-13试说明指令CJNE @R1, #7AH, 10H的作用。若本条指令地址为2500H,其转移地址是多少?

当前地址 2500H。执行该指令后PC为2503H,加上10H后,目标地址是2513H。

3-14下面执行后(SP) 并解释每条指令的作用。 ORG 2000H ;起始地址为2000H MOV SP,#40H ;(SP)=40H MOV A,#30H ;(A)=30H

LCALL 2500H ;调用2500H子程序 ADD A,#10H ;(A)<—(A)+10,(A)=40H MOV B,A ;(B)=40H HERE:SJMP HERE

ORG 2500H ;起始地址为2500H MOV DPTR,#2009H ;(DPTR)=2009H PUSH DPL ;(SP)=40H+1=41H PUSH DPH ; (SP)=41H+1=42H RET ;返回

3-15已知P1.7= 1, A.0= 0, C= 1, FIRST=1000H, SECOND=1020H,试写出下列指令的执行结果。

(1)MOV 26H, C 1 (2)CPL A.0 1 (3)CLR P1.7 0 (4)ORL C, /P1.7 1 (5)FIRST: JC SECOND

(6)FIRST: JNB A.0, SECOND (7)SECOND: JBC P1.7, FIRST

3-16经汇编后,下列各条语句标号将是什么值? ORG 2000H TABLE: DS 5

WORD: DB 15, 20, 25, 30 (2005H)=15, FANG: EQU 1000H FANG=1000H BEGIN: MOV A, R0

3-17下面程序段经汇编后,从2000H开始的各有关存储器单元的内容是什么? ORG 2000H

TAB: DB 10H, 20H (2000H)=10H,(2001H)=20H

DW 2100H,23H (2002H)=21H,(2003H)=00H,(2004H)=00H,(2005H)=23H DW TAB (2006H)=20H,(2007H)=00H DB ‘WORK’ (2008H)=57H等

3-18 设fosc=12MHZ,定时器/计数器0的初始化程序和中断服务程序如下: MOV TH0,#0DH MOV TL0,#0D0H MOV TMOD,#01H

SETB TR0 :

;中断服务程序 ORG 000BH MOV TH0,#0DH MOV TL0,#0D0H : RETI

问:1)该定时器/计数器工作于什么方式? 2)相应的定时时间或计数值是多少?

3)为什么在中断服务程序中药重置定时器/计数器的初值? ●1)方式1

2)定时时间为:fosc=12MHZ Tcy=1us T=N*Tcy

=(65536-x)*Tcy 定时范围:1~65536

计数值为:N=216 -x=65536-x

计数范围为:1~65536

3)定时器T0的溢出对外无脉冲信号,重置定时器/计数器的初值可以再形成计数脉冲

3-19用位操作指令,实现下列逻辑操作。 (1)P1.7 = A.0∧ (B.0∨P2.1)∨/P3.2

MOV C, B.0 ORL C, P2.1 ANL C, ACC.7 ORL C, /P3.2 MOV P1.7, C

(2)PSW.5 = P1.3∧/ A.2∨B.5∧/P1.1 MOV C, P1.3 ANL C, /ACC.2 MOV P1.0, C MOV C, B.5 ANL C, /P1.1 ORL C, P1.0 MOV PSW.5, C 3-20试编写一段程序,将片内RAM的20、21H、22H连续三个单元的内容依次存入 2FH、 2EH和2DH单元。 MOV 2FH, 20H MOV 2EH, 21H MOV 2DH, 22H

3-21试编写程序完成将片外数据存储器地址为1000H~1030H的数据块,全部搬迁到片内RAM的30H~60H中,并将源数据块区全部清零。

MOV R1,#30H MOV R0,#30H

MOV DPTR,#1000H

LOOP:MOV A,@DPTR MOVX @R0,A INC R0 INC DPTR

DJNZ R1,LOOP

3-22设有100个有符号数,连续存放在以2000H为首地址的存储区中,试编程统计其中正数、负数、零的个数。

ZERO EQU 20H ;零的统计

NEGETIVE EQU 21H ;负数的统计 POSITIVE EQU 22H ;正数的统计 COUNT EQU 100 ;比较个数 ORG 0000H

LJMP MAIN ORG 0040H

MOV ZERO,#0

MOV NEGETIVE,#0 MOV POSITIVE,#0 MOV R2,#0

MOV DPTR,# 2000H LOOP: MOVX A,@DPTR

CJNE A,#0,NONZERO INC ZERO AJMP NEXT NONZERO: JC NEG

INC POSITIVE AJMP NEXT

NEG: INC NEGETIVE NEXT: INC DPTR

INC R2

CJNE R2,#COUNT,LOOP SJMP $

3-23 编写一个延时1ms的子程序

TIME1MS:MOV R6, #2 TIME1:MOV R7, #248

DJNZ R7, $ ;延时498us

DJNZ R6, TIME1 ;内重循环为500 us;运行两次为1ms, 共1.002ms RET

3-24试编写一段程序,将片内30H~32H和33H~35H中的两个3字节压缩BCD码十进制数相加,将结果以单字节BCD码形式写到外部RAM的1000H~1005H单元。

CLR C

MOV R7,#3

MOV DPTR,#1000H MOV R0,#30H MOV R1,#33H LOOP:MOV A,@R0

ANL A,#0FH MOV R2,A MOV A,@R1 ANL A,#0FH ADDC A,R2 DA A

MOVX @DPTR,A INC DPTR MOV A,@R0 SWAP A ANL A,#0FH MOV R2,A MOV A,@R1 SWAP A ANL A,#0FH ADDC A,R2 DA A

MOVX @DPTR,A INC R0 INC R1 INC DPTR

DJNZ R7,LOOP

3-25 51单片机从串行口发送缓冲区首址为30H的10个ASCII码字符,最高位用于奇偶校验,采用偶校验方式,要求发送的波特率为2400波特,时钟频率 osc=12MHz,试编写串行口发送子程序。

单片机采用12 MHz晶振;设串行口工作于方式1;定时器/计数器T1用作波特率发生器,工作于方式2;PCON中的SMOD位为1;发送的波特率要求为2400。 定时器/计数器T1初值计算:

根据公式 波特率=2SMOD×溢出率/32有

溢出率=2400×16=38 400

溢出周期=1/溢出率=26 μs (此为定时器/计数器的定时值) 定时器初值=256-26=230=E6H

根据要求确定定时器/计数器的TMOD中的方式控制字为20H,串行口SCON中的控制字为40H,PCON控制字为80H。则相应的发送程序如下: TSTART:MOV TMOD,#20H ;置定时器/计数器T1工作于方 式2定时 MOV PCON, #80H

MOV TL1,#0E6H ;定时器/计数器T1置初值 MOV TH1,#E6H ;定时器/计数器T1置重装数 MOV SCON,#40H ;置串行口工作于方式1

MOV R0,#30H ;R0作地址指针,指向数据块首址 MOV R7,#10 ;R7作循环计数器,置以发送=字节数 SETB TR1 ;启动定时器/计数器T1 LOOP: MOV A,@R0 ;取待发送的一个字节

MOV C,P ;取奇偶标志,奇为1,偶为0

MOV A.7,C ;给发送的ASCII码最高位加偶校验位 MOV SBUF,A ;启动串行口发送

WAIT:JNB TI,WAIT ;等待发送完毕

CLR TI ;清TI标志,为下一个字节发送作准备 INC R0 ;指向数据块下一个待发送字节的地址 DJINZ R7,LOOP ;循环发送,直到数据块发送完毕

第四章 参考答案

4-1)何谓单片机的最小系统?

★所谓最小系统,是指一个真正可用的单片机最小配置系统。

对于片内带有程序存储器的单片机,只要在芯片上对外接时钟电路和复位电路就能达到真正可用,就是最小系统。

对于片外不带有程序存储器的单片机,除了在芯片上外接时钟电路和复位电路外,还需外接程序存储器,才能构成一个最小系统。

4-5)什么是完全译码?什么是部分译码?各有什么特点?

★所谓部分译码,就是存储器芯片的地址线与单片机系统的地址线顺序相接后,剩余的高位地址线仅用一部分参加译码。

特点:部分译码使存储器芯片的地址空间有重叠,造成系统存储器空间的浪费。 ★所谓全译码,就是存储器芯片的地址线与单片机系统的地址线顺序相接后,剩余的高位地址线全部参加译码。

★特点:存储器芯片的地址空间是唯一确定的,但译码电路相对复杂。 4-7)存储器芯片地址引脚数与容量有什么关系?

★ 地址线的数目由芯片的容量决定,容量(Q)与地址线数目(N)满足关系式:Q=2N

4-10) 采用2764(8K*8)芯片扩展程序存储器,分配的地址范围为4000H~7FFFH。采用完全译码方式,试确定所用芯片数目,分配地址范围,画出地址译码关系图,设计译码电路,画出与单片机的连接图。 ★7FFFH-4000H+1=4000H=16KB

因为2764为8K*8 所以需要2片芯片 第一片地址为范围为:4000H~5FFFH 第二片地址为范围为:6000H~7FFFH

第六章 参考答案

6-9)何谓静态显示?何谓动态显示?两种显示方式各有什么优缺点?

★静态显示:LED工作在静态显示方式下,共阴极接地或共阳极接+5V;每一位的段选线(a~g,dp)与一个8位并行I/O口相连。

优点:显示器每一位可以独立显示,每一位由一个8位输出口控制段选码,故在同一个时刻各位可以独立显示不同的字符。

缺点:N位静态显示器要求有N×8根I/o口线,占用I/o口线较多,故在位数较多时

往往采用动态显示。

★ 动态显示:LED动态显示是将所有位的段选线并接在一个I/o口上,共阴极端或共

阳极端分别由相应的I/o口线控制。 优点:节约用线

缺点:每一位段选线都接在一个I/o口上,因此每送一个段选码,8位就显示同一个字符,这种显示器是不能用的。解决这个问题利用人眼的视觉停留,从段选线I/o口上按位分别送显示字符的段选码,在位控制口也按相应的次序分别选通相应的显示位(共阴极送低电平,共阳极送高电平),选通位就显示相应字符,并保持几毫秒的延时,未选通位不显示字符(保持熄灭)。

6-14)设计一个内置HD44780驱动控制器的字符型LCM与51单片机的接口电路,并编写在字符型液晶显示模块显示“HELLO”字符的程序。

6-16)ADC0809的8路输入通道是如何选择的?试举例说明。

6-17) 设有一个8路模拟量输入的巡回检测系统,使用中断方式采样数据,并依次存放在片内RAM区从30H开始的8个单元内。试编写采集一遍数据的主程序和中断服务程序。

6-24)单片机控制大功率对象时,为什么要采用隔离器进行接口?试编写一些常用的光耦器件的型号。

★由于继电器由吸合到断开的瞬间会产生一定的干扰,当吸合电流较大时,在单片机与继电器之间需要增加隔离电路。

4N25 ,4N26~4N28,TLP528,TLP124,TLP126,4N33,H11G1,H11GZ,H11G3

6-25) 单片机与继电器线圈接口时,应注意什么问题?采取什么措施解决这些问题? ★继电器由吸合到断开的瞬间会产生一定的干扰,因而使用于吸合电流很小的微型继电器

★当吸合电流比较大时,在单片机与继电器之间需要增加隔离电路。

8-2)51单片机能直接进行处理的C51的数据处理类型有哪几种?

★在51单片机中,只有bit 和unsigned char 两种直接支持机器指令。

8-6)C51中51单片机的特殊功能寄存器如何定义?试举例说明。

★ Sfr sfr_name = int_constant ↓ ↓ ↓

关键字 特殊功能寄存器名 整型常数,是sfr_name的字节地址 例:sfr P0 =0x80; /*P0,地址为80H*/

8-8) C51中使用51单片机的位单元的变量如何定义?试举例说明。 ★ Bit my_bit; /*把my_bit定义为位变量*/ Bit done_flag =0; /*把done_flag定义为位变量*/

8-14)设fose=6MHz,利用定时器0的方式1在P1.6口产生一串50HZ的方波。定时器溢出时采用中断方式处理。

#include<reg51.h> Sbit P1_6=P1^6;

Void time(void) interrupt 1using 1 {P1_0=! P1_0; TH0=15H; TL0=96H; }

Void main (void) {TMOD=0x01; P1_6=0; TH0=15H; TL0=96H; EA=1; ET0=1; TR0=1;

Do {} while(1); }

本文来源:https://www.bwwdw.com/article/o341.html

Top