单片机习题参考答案08-12

更新时间:2024-06-06 02:40:01 阅读量: 综合文库 文档下载

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

单片机习题参考答案

第四章 P97 6,7,9,10,12,16,17,18,19,23,27,28,29

6. 在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=72H

E8 MOV A,R0 ;A=72H,P=0

244B ADD A,#4BH ;A=BDH,CY=0,OV=1,AC=0,P=0 (2) 7402 MOV A,#02H ;A=02H,P=1

F5F0 MOV B,A ;B=02H

740A MOV A,#0AH ;A=0AH,P=0

25F0 ADD A,B ;A=0CH,CY=0,OV=0,AC=0,P=0

A4 MUL AB ;A=18H,B=0,CY=0,OV=0,AC=0,P=0 (3) 7420 MOV A,#20H ;A=20H,P=1

F5F0 MOV B, A ;B=20H

25F0 ADD A,B ;A=40H,CY=0,OV=0,AC=0,P=1 9410 SUBB A,#10H ;A=30H,CY=0,OV=0,AC=0,P=0

84 DIV AB ;A=01H,B=10H,CY=0,OV=0,AC=0,P=1

9. 试编程将片外数据存储器60H中的内容传送到片内RAM 54H单元中。 MOV DPTR,#0060H MOVX A,@DPTR MOV 54H,A

(MOV P2,#0

MOV R0,#60H MOVX A,@R0 MOV 54H,A)

1

10.试编程将寄存器R7内容传送到R1中去。 MOV A,R7 MOV R1,A

12.试说明下段程序中每条指令的作用,并分析当执行完指令后,R0中的内容是什么? MOV R0,#0A7H ;R0=A7H

XCH A,R0 ;A=A7H,A的内容暂存R0 SWAP A ;A=7AH

XCH A,R0 ;R0=7AH,A的内容恢复

16.试编程将片外RAM中30H和31H单元的内容相乘,结果存放在32H和33H单元中,高位存放在33H单元中。 MOV P2,#0 MOV DPTR,#30H MOV R0,#30H MOVX A,@DPTR MOVX A,@R0 MOV B,A MOV B,A INC DPTR INC R0 MOVX A,@DPTR MOVX A,@R0 MUL AB MUL AB INC DPTR INC R0 MOVX @DPTR,A MOVX @R0,A INC DPTR INC R0 MOV A,B MOV A,B MOVX @DPTR,A MOVX @R0,A

17.试用三种方法将累加器A中无符号数乘2。 (1) CLR C RLC A

(2) MOV R0,A ADD A,R0 或 ADD A,ACC (3) MOV B,#2 MUL AB

18.请分析依次执行下面指令的结果:

MOV 30H,#0A4H ;(30H)=A4H MOV A,#0D6H ;A=D6H,P=1 MOV R0,#30H ;R0=30H MOV R2,#47H ;R2=47H ANL A,R2 ;A=46H,P=1 ORL A,@R0 ;A=E6H,P=1 SWAP A ;A=6EH,P=1 CPL A ;A=91H,P=1 XRL A,#0FFH ;A=6EH,P=1 ORL 30H,A ;(30H)=EEH

2

19.求执行下列指令后,累加器A及PSW中进位位CY、奇偶位P和溢出位OV的值。

(1)当A=5BH时 ;ADD A,#8CH 0101 1011 +) 1000 1100 1110 0111

结果:A=E7H,CY=0,OV=0,P=0,AC=1

(2)当A=5BH时 ;ANL A,#7AH 0101 1011 ∧)0111 1010 0101 1010 结果:A=5AH,P=0

(3)当A=5BH时 ;XRL A,#7FH 0101 1011 ⊕)0111 1111 0010 0100 结果:A=24H,P=0

(4)当A=5BH,CY=1时 ;SUBB A,#0E8H

0101 1011 或将减法转换成补码加法 0101 1011 1110 1000 -E8H的补码 0001 1000 -) 1 -1的补码 +) 1111 1111 0111 0010 10111 0010 结果:A=72H,CY=1,OV=0,P=0,AC=0

23.执行下述程序后,SP=?A=?B=?解释每一条指令的作用,并将其翻译成机器码。

地址(H) 机器码(H) ORG 200H

0200 758140 MOV SP,#40H ;SP=40H 0203 7430 MOV A,#30H ;A=30H

0205 120250 LCALL 250H ;调用250H开始的子程序SP=42H,

;(42H)=02H,(41H)=08H

0208 2410 ADD A,#10H ;此句没有执行 020A F5F0 MOV B,A ;B=30H 020C 80FE L1:SJMP L1 ;

ORG 0250H

0250 90020A MOV DPTR,#20AH;DPTR=020AH

0253 C082 PUSH DPL ;DPL进栈,SP=43H,(43H)=0AH 0255 C083 PUSH DPH ;DPH进栈,SP=44H,(44H)=02H

0257 22 RET ;返回,此处是利用RET将栈顶内容弹出

PC=020AH,SP=42H

44H 02H 43H 0AH 栈区 42H 02H 41H 08H 40H 执行程序后,SP=42H,A=30H,B=30H

3

27.试编一程序将外部数据存储器2100H单元中的高4位置“1”,其余位清”0”。 MOV DPTR,#2100H MOVX A,@DPTR

ANL A,#0F0H MOV A,#0F0H ORL A,#0F0H

MOVX @DPTR,A

28.试编程将内部数据存储器40H单元的第0位和第7位置”1”,其余位变反。

MOV A,40H CPL A

SETB ACC.0 (或ORL A,#81H) SETB ACC.7 MOV 40H,A

29.请用位操作指令,求下面逻辑方程:

(1)P1.7?ACC.0?(B.0?P2.1)?P3.2

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

P1.7,C

(2)PSW.5?P1.3?ACC.2?B.5?P1.1

MOV C,P1.3 ANL C,ACC.2 ORL C,B.5 ANL C,/P1.1 MOV

PSW.5,C

(3)P2.3?P1.5?B.4?ACC.7?P1.0

MOV C,B.4 ANL C,/P1.5 ORL C,/ACC.7 ANL C,P1.0 MOV P2.3,C

第五章 P112 1,3,6,7,11,20

1. 编程将片内40H~60H单元中内容送到以3000H为首的片外RAM存储区中

方法1: MOV R0,#40H MOV DPTR,#3000H MOV R2,#21H

LOOP: MOV A,@R0

4

方法2:

MOVX INC INC DJNZ ┋ @DPTR,A R0 DPTR R2,LOOP

R0,#40H DPTR,#3000H R2,#0 A,@R0 @DPTR,A R0 DPTR R2

R2,#21H,LOOP

R0,#40H DPTR,#3000H A,@R0 @DPTR,A R0 DPTR

R0,#61H,LOOP

方法3:

MOV MOV

MOV LOOP: MOV MOVX INC INC INC CJNE ┋ MOV

MOV

LOOP: MOV MOVX INC INC CJNE ┋

补充:编程将ROM中3000H~3020H单元的内容送片内RAM40H~60H单元中去。 MOV R0,#40H MOV DPTR,#3000H MOV R2,#21H LOOP: CLR A

MOVC A,@A+DPTR

MOV @R0,A INC R0 INC DPTR

DJNZ R2,LOOP

3.编程计算片内RAM区50H~57H 8个单元中数的算术平均值,结果存放在5AH中。 解: ORG 2000H MOV R0,#50H CLR A

MOV R2,A LOOP: ADD A,@R0 JNC DOWN

5

选择T0工作于方式2(8位重置初值)定时50μs

fosc=24MHz机器周期T?12?12106?0.5?10?6s?0.5?s

fosc24?(28

-X)×0.5μS=50μs X=156=9CH

方法1: MOV TMOD,#02H

MOV TH0,#9CH MOV TL0,#9CH

CLR P1.2 ;P1.2=0 SETB TR0

HIGH: SETB P1.2 ;P1.2=1,输出50μs高电平 HIGH1: JBC TF0,LOW ;50μs到清TF0,转输出低电平

AJMP HIGH1 ;50μs未到,转HIGH1等待

LOW: MOV R7,#7 ;350μs=7×50μs

CLR P1.2 ;P1.2=0输出350μs低电平

LOW1: JBC TF0,LOW2 ;50μs到清TF0,转LOW2 AJMP LOW1

LOW2: DJNZ R7,LOW1 ;7次未到,转LOW1

AJMP HIGH ;7次到,转HIGH,输出50μs高电平

方法2: MOV TMOD,#02H ;设置T0为方式2定时

MOV TH0,#9CH ;赋初值 MOV TL0,#9CH CLR P1.2

SETB TR0 ;启动T0工作

L1: SETB P1.2 ;P1.2=1,输出50μs高电平 MOV R7,#8

DEL: JBC TF0,REP ;50μs到清TF0,转输出低电平

AJMP DEL

REP: CLR P1.2 ;P1.2=0输出350μs低电平 DJNZ R7,DEL

AJMP L1

方法3: 选择T0工作于方式1定时50μs

(216

-X)×0.5μS=50μs X=65436=FF9CH

选择T0工作于方式1定时350μs

(216

-X)×0.5μS=350μs X=64836=FD44H

START: MOV TMOD,#01H ;设置T0为方式1定时 LP0: MOV TH0,#0FFH ;赋初值定时50μs

MOV TL0,#9CH CLR P1.2

SETB TR0 ;启动T0工作 SETB P1.2

LP1: JBC TF0,LP2 ;P1.2=1,输出50μs高电平 SJMP LP1

11

LP2: CLR P1.2

MOV TH0,#0FDH ;赋初值定时350μs MOV TL0,#44H

LP3: JBC TF0,LP4 ;P1.2=1,输出350μs低电平 SJMP LP3 LP4: SJMP LP0

6.在80C51单片机中,已知时钟频率为12MHz,请编程使P1.0和P1.1分别输出周期为2ms和500μs的方波。

方法1:选择T0工作于方式1定时250μs

fosc=12MHz机器周期T?1212f?12?106?1?10?6s?1?s osc(216

-X)×1μS=250μs X=65286=FF06H MOV TMOD,#01H MOV TH0,#0FFH MOV TL0,#06H SETB TR0

DEL: MOV R7,#4 ;1ms=4×250μs

D250: JBC TF0,D2 ;250μs到清TF0,转移

AJMP D250 ;250μs未到,等待

D2: CPL P1.1

MOV TH0,#0FFH ;重装初值 MOV TL0,#06H

DJNZ R7,D250 ;4次未到,转D500

CPL P1.0

AJMP DEL ;4次到,转DEL

方法2:选择T0工作于方式2定时250μs

(28

-X)×1μS=250μs X=6 MOV TMOD,#02H MOV TH0,#06H MOV TL0,#06H SETB TR0

DEL: MOV R7,#4 ;1ms=4×250μs

D250: JBC TF0,D2 ;250μs到清TF0,转移

AJMP D250 ;250μs未到,等待

D2: CPL P1.1

DJNZ R7,D250 ;4次未到,转D250

CPL P1.0

AJMP DEL ;4次到,转DEL

方法3:选择T0工作于方式2定时250μs,中断

(28

-X)×1μS=250μs X=6 T1工作于方式1定时1ms,中断

12

(216

-X)×1μS=1000μs X=64536=FC18H ORG 0000H LJMP MAIN ORG 000BH LJMP T00 ORG 001BH LJMP T11

MAIN: MOV TMOD,#12H

MOV TH0,#06H MOV TL0,#06H MOV TH1,#0FCH MOV TL1,#18H MOV IE,#8AH SETB TR0 SETB TR1 SJMP $

T00: CPL P1.1 RETI

T11: MOV TH1,#0FCH

MOV TL1,#18H CPL P1.0

RETI

方法4:选择T0工作于方式3定时250μs,中断。

(28

-X)×1μS=250μs X=6

T0方式3时TL0占用TR0、TF0,TH0占用TR1、TF1。 ORG 0000H LJMP MAIN ORG 000BH LJMP ITL0 ORG 001BH LJMP ITH0

MAIN: MOV SP,#50H

MOV TMOD,#03H MOV TH0,#06H MOV TL0,#06H MOV R7,#4 SETB TR0 SETB TR1

MOV IE,#8AH SJMP $

ITL0: MOV TL0,#06H

CPL P1.1

RETI

ITH0: MOV TH1,#06H

13

DJNZ R7,ITH01 MOV R7,#4 CPL P1.0

ITH01: RETI

7.设系统时钟频率为24MHz,试用定时器T0作外部计数器,编程实现每计到1000个脉冲,使T1开始2ms定时,定时时间到后,T0又开始计数,这样反复循环不止。

fosc=24MHz机器周期T?12?fosc12?0.5?10?6s?0.5?s 624?10T0作外部计数器选择工作于方式1:

16

1000=2-X X=64536=FC18H T1定时2ms选择工作于方式1:

16

(2-X)×0.5μS=2000μs X=61536=F060H MOV TMOD,#15H

START: MOV TH0,#0FCH

MOV TL0,#18H SETB TR0 JNB TF0,$ CLR TF0 CLR TR0

MOV TH1,#0F0H MOV TL1,#60H SETB TR1 JNB TF1,$ CLR TF1 CLR TR1 SJMP START

8.利用80C51单片机定时器/计数器测量某正脉冲宽度,已知此脉冲宽度小于10ms,主机频率为12MHz。编程测量脉冲宽度,并把结果转换为BCD码顺序存放在以片内50H单元为首地址的内存单元中(50H单元存个位)。

二进制数转换成BCD码是利用按权展开式计算,由于是BCD码计算中要用DA A指令 设脉冲由/INT0输入,T0工作于方式1

fosc=12MHz机器周期T?12?fosc12?1?10?6s?1?s 612?10MOV MOV MOV MOV JB SETB JNB JB CLR TMOD,#09H TL0,#00H TH0,#00H R0,#4EH P3.2,$ TR0 P3.2,$ P3.2,$ TR0

;设T0为方式1,GATE=1

;等待P3.2变低 ;启动T0准备工作 ;等待P3.2变高 ;等待P3.2再次变低 ;停止计数

14

MOV INC MOV MOV MOV CLR

LOOP1: MOV

INC DJNZ MOV

LOOP4: MOV

MOV CLR

LOOP2: MOV RLC MOV

INC DJNZ MOV

LOOP3: MOV ADDC DA MOV

INC DJNZ DJNZ SJMP

@R0,TL0 R0

@R0,TH0 R1,#50H R5,#3 A

@R1,A R1

R5,LOOP R7,#10H R0,#4EH R6,#2 C

A,@R0 A

@R0,A R0

R6,LOOP2 R5,#3 A,@R1 A,@R1 A

@R1,A R1

R5,LOOP3 R7,LOOP4 $

;存放计数的二进制数低字节入4EH ;存放计数的二进制数高字节入4EH ;BCD码首址 ;BCD码字节数 ;清存BCD码单元

;二进制数位数 ;二进制数首址 ;二进制数字节数

;2字节二进制数左移1位 ;BCD码字节数 ;BCD码乘2加C运算

第7章作业参考答案

P175 2,6,7

2.某异步通讯接口按方式3传送,已知其每分钟传送3600个字符,计算其传送波特率。 解:11(位)×3600(字符/秒)/60秒=660位/秒

注:方式3为11位异步通讯方式。

6.已知定时器T1设置为方式2,用做波特率发生器,系统时钟频率为24MHz,求可能产生的最高和最低的波特率是多少?此时串口工作于方式1或3

{fosc}2SMOD{波特率}??3212?(256?X){波特率}MAX2SMOD{fosc}2124?106?????125000

3212?(256?X)3212?(256?255)2SMOD{fosc}2024?106?????244

3212?(256?X)3212?(256?0)15

{波特率}min

7.设计一个AT89C51单片机的双机通信系统,并编写程序将甲机片外RAM 3400H~3420H单元中的数据块通过串行口传送到乙机的片内RAM 40H~60H单元中。

串行口定义在工作方式1下发送。采用定时器T1方式2作波特率发生器,设波特率为4800,fosc=11.0592MHz。

{fosc}?(SMOD?1)11.0592?106?(SMOD?1)

X?256??256?{波特率}?3844800?384SMOD=0时,X=250=FAH

SMOD=1时,X=244=F4H

本题取SMOD为0

双机异步通信连接图

解:编写发送子程序如下:

MOV TM0D,#20H ;设置定时器T1为方式2 MOV TL1,#0FAH ;设预置值 MOV TH1,#0FAH

SETB TR1 ;启动定时器T1

MOV SCON,#40H ;设置串行口为方式1 MOV PCON,#00H ;SMOD=0

MOV DPTR,#3400H ;设数据块指针 MOV R7,#21H ;设数据长度

TRS: MOVX A,@DPTR ;取数据送至A

MOV SBUF,A ;数据送至SBUF,启动发送

WAIT: JNB TI,$ ;判1帧是否发送完

CLR TI

INC DPTR ;更新数据单元 DJNZ R7,TRS ;循环发送至结束 RET ;返回

在进行双机通信时,两机应用相同的工作方式和波特率,因而接收子程序如下:

MOV TMOD,#20H ;设置定时器1为方式2 MOV TL1,#0FAH ;设预置值 MOV TH1,#0FAH

SETB TR1 ;启动定时器T1

MOV SCON,#40H ;设置串行口为方式3 MOV PCON,#00H ;SMOD=0

MOV R0,#40H ;设置数据块指针 MOV R7,#21H ;设数据块长度 SETB REN ;允许接收

WAIT: JNB RI,$ ;判1帧是否接收完

CLR RI

MOV A,SBUF ;读入一帧数据 MOV @R0,A ;存放数据

INC R0 ;修改地址指针

DJNZ R7,WAIT ;判断数据块接收完否 RET ;返回

16

8.利用80C51串行口控制8位发光二极管工作,要求发光二极管每1S交替地亮、灭,画出

电路图并编写程序。

;P3.1 EQU CLK

;P3.0 EQU SDA(A、B) ;P1.0 EQU CLR CLR P1.0 SETB P1.0

MOV SCON,#00H MOV A,#55H AA: MOV SBUF,A

JNB TI,$ CLR TI

ACALL DELAY_1S RR A AJMP AA

第8章作业参考答案

P199 3,5

3.AT89S51有几个中断源,各中断申请标志是如何产生的,又如何清“0”的?CPU响应中断时,中断入口地址各是多少?

答:AT89S51单片机有5个中断源,分别为:2个外部输入中断源INT0(P3.2)和INT1(P3.3)2个片内定时器T0和T1的溢出中断源TF0(TCON.5)和TF1(TCON.7);1个片内串行口发送和接收中断源TI(SCON.1)和RI(SCON.0)。 各中断标志的产生和清“0”如下: (1)外部中断类

外部中断是由外部原因引起的,可以通过两个固定引脚,即外部中断0INT0和外部中断INT1输入信号:

INT0——外部中断0请求信号,由P3.2脚输入。通过IT0(TCON.0)来决定中断请求信号是低电平有效还是下跳变有效。一旦输入信号有效,则向CPU申请中断,并且使IE0=1。硬件复位。

INT1——外部中断1请求信号,功能与用法类似外部中断0。 (2)定时中断类

定时中断是为满足定时或计数溢出处理的需要而设置的。当定时器/计数器中的计数结构发生计数溢出时,即表明定时时间到或计数值已满,这时就以计数溢出信号作为中断请求,去置位一个溢出标志位。这种中断请求是在单片机芯片内部发生的,无需在芯片上设置引入端,但在计数方式时,中断源可以由外部引入。

TF0——定时器T0溢出中断请求。当定时器T0产生溢出时,定时器T0中断请求标志TF0=1,请求中断处理。使用中断时由硬件复位,在查询方式下可由软件复位(即清“0”)。 TF1——定时器TI溢出中断请求。功能与用法类似定时器T0。 (3)串行口中断类

串行口中断是为串行数据的传送需要而设置的。串行中断请求也是在单片机芯片内部发生的,但当串行口作为接收端时,必须有一完整的串行帧数据从RI端引入芯片,才可能

17

引发中断。

RI或TI——串行中断请求。当接收或发送完一串行帧数据时,使内部串行口中断请求标志RI或TI=1,并请求中断。响应中断后必须软件复位。

CPU响应中断时,各中断源的中断入口地址是:

中断源 外部中断0 外部中断1 串行口中断 入口地址 0003H 0013H 0023H 定时器T0中断 000BH 定时器T1中断 001BH 定时器T2中断 002BH(仅AT89S52有) 5.用定时器T1定时,要求在P1.6口输出一个方波,周期是1min。晶振频率为12MHz,请

用中断方式实现,并分析采用中断后的优点。

解:计算半周期为250μS方波的时间初值。

8

(2-X)×1μS=250μs X=6=06H 即TH0=06H,TL0=06H;

采用定时器1,方式2定时250μS,则TMOD=20H;采用中断方式工作,IE=88H

输出周期为:P1.6为1min

ORG 0000H AJMP MAIN ORG 001BH AJMP AA ORG 0030H

MAIN: MOV TH0,#06H MOV TL0,#06H MOV TMOD,#20H MOV IE,#88H SETB TR0

MOV R5,#40 ;250μS×40=10ms

MOV R6,#100 ;10ms×100=1S MOV R7,#30 ;1S×30=0.5min

SJMP $ 中断服务子程序

AA: DJNZ R5,BB ;250μS到中断,判10ms到?

MOV R5,#40

DJNZ R6,BB ;10ms到,判到1S? MOV R6,#100

DJNZ R7,BB ;1S到,判到0.5min?

MOV R7,#30 ;半周期0.5min到,P1.6求反 CPL P1.6

BB: RETI

第9章习题参考答案

P236 3,4,5

3.以AT89S51为主机,扩展2片6264 RAM存储器芯片,设计硬件布线图。

18

(1)译码法:

IC0芯片地址范围0000H-1FFFH, IC1芯片地址范围2000H-3FFFH。 (2)线选法:

4.根据图9.5所示线路设计程序。其功能是:按下K0~K3后,对应LED4~LED7发光,按下K4~K7后,对应LED0~LED3发光。

19

解: ORG 1000H

LOOP: MOV DPTR,#0FEFFH MOVX A,@DPTR SWAP A

MOVX @DPTR,A SJMP LOOP

5.请利用74HC138设计一个译码电路,分别选中2片29C256和2片62256,且列出各芯片所占的地址范围。

VCC74HC138E3 E2 E1C Y1BA Y0774HC373 Q7 Q0ALEGOED7 D0EAP0PSENWRRDA7 A0IC029C256D7 D0 OEA7 A0IC129C256D7 D0 OEA7 A0IC262256WE D7 D0 OEA7 A0IC262256WE D7 D0 OECEA14 A87CEA14 A87CEA14 A87CEA14 A8AT89S51 P2.7P2.6 P2.0

IC0芯片地址范围0000H-7FFFH, IC1芯片地址范围8000H-FFFFH, IC2芯片地址范围0000H-7FFFH, IC3芯片地址范围8000H-FFFFH。

注:外部程序存储器一般应包括0000H附近地址,此时/EA接地。

7.试编程对8255进行初始化,使其A口为基本输出,B口为基本输入,C口上半部为输出,C口下半部为输入。

解: 电路图参见P221页图9.8。

20

A口为基本输出(方式0),B口为基本输入(方式0),C口上半部为输出,C口半班部为输入。

控制字为10010101B,其控制口地址为FF7FH。

按方式0输入,B口按方式1输出,C口上半部按方式0输出,C口半班部按方式1输入。 解: 电路图参见P211页图9.8。

控制字为1000 0011B,其控制口地址为FF7FH。 其初始化程序为:

MOV DPTR,#0FF7FH MOV A,#83H MOVX @DPTR,A

21

A口为基本输出(方式0),B口为基本输入(方式0),C口上半部为输出,C口半班部为输入。

控制字为10010101B,其控制口地址为FF7FH。

按方式0输入,B口按方式1输出,C口上半部按方式0输出,C口半班部按方式1输入。 解: 电路图参见P211页图9.8。

控制字为1000 0011B,其控制口地址为FF7FH。 其初始化程序为:

MOV DPTR,#0FF7FH MOV A,#83H MOVX @DPTR,A

21

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

Top