资源描述
浙江大学远程教诲学院
《微机原理与接口技术》课程作业
姓名:
学 号:
年级:
学习中心:
温州
—————————————————————————————
第二章 P47
2.80C51单片微机芯片引脚第二功能有哪些?
答:80C51单片机P0、P2和P3引脚都具备第二功能。
第一功能 第二变异功能
P0口 地址总线A0~A7/数据总线D0~D7
P2口 地址总线A8~A15
P3.0 RXD (串行输入口)
P3.1 TXD (串行输出口)
P3.2 (外部中断0)
P3.3 (外部中断1)
P3.4 T0 (定期器/计数器0外部输入)
P3.5 T1 (定期器/计数器0外部输出)
P3.6 (外部读写存储器或I/O写选通)
P3.7 (外部读写存储器或I/O读选通)
4.80C51存储器在构造上有何特点?在物理上和逻辑上各有哪几种地址空间?访问片内数据存储器和片外数据存储器指令格式有何区别?
答:80C51单片机采用哈佛(Har-yard)构造,即是将程序存储器和数据存储器截然分开,分别进行寻址。不但在片内驻留一定容量程序存储器和数据存储器及众多特殊功能寄存器,并且还具备强外部存储器扩展能力,扩展程序存储器和数据存储器寻址范畴分别可达64KB。
⒈在物理上设有4个存储器空间
l 片内程序存储器;
l 片外程序存储器;
l 片内数据存储器;
l 片外数据存储器。
⒉在逻辑上设有3个存储器地址空间
l 片内、片外统一 64 KB程序存储器地址空间。
l 片内256B(80C52为384 B)数据存储器地址空间。
片内数据存储器空间,在物理上又包括两某些:
-对于80C51型单片机,从0~127 字节为片内数据存储器空间;从128~255 字节为特殊功能寄存器(SFR)空间(实际仅占用了20各种字节)。
l 片外64 KB数据存储器地址空间。
在访问三个不同逻辑空间时,应采用不同形式指令,以产生不同存储空间选通信号。
访问片内RAM采用MOV指令,访问片外RAM则一定要采用MOVX指令,由于MOVX指令会产生控制信号或,用来访问片外RAM。访问程序存储器地址空间,则应采用MOVC指令。
6.80C51片内数据存储器低128个存储单元划分为哪4个重要某些?各某些重要功能是什么?
l 答:寄存器区:共4组寄存器,每组8个存储单元,各组以R0~R7作为单元编号。惯用于保存操作数及中间成果等等。R0~R7也称为通用寄存器,占用00H~1FH共32个单元地址。
l 位寻址区:20H~2FH,既可作为普通RAM单元使用,按字节进行操作,也可以对单元中每一位进行位操作,称为位寻址区。寻址区共有16个RAM单元,共计128位,位地址为00H~7FH。
l 堆栈区:设立在顾客RAM区内。
l 顾客RAM区:在内部RAM低128单元中,除去前面3个区,剩余所有单元。
第三章P87
9.MOV、MOVC、MOVX 指令有什么区别,分别用于那些场合,为什么?
答:MOV指令用于对内部RAM访问。
MOVC指令用于对程序存储器访问,从程序存储器中读取数据(如表格、常数等)。
MOVX指令采用间接寻址方式访问外部数据存储器,有Ri和DPTR两种间接寻址方式。MOVX指令执行时,在P3.7引脚上输出有效信号或在P3.6引脚上输出有效信号,可以用作外部数据存储器或I/O读或写选通信号,与单片机扩展电路关于。
15.已知(R1)=20H,(20H)=AAH,请写出执行完下列程序段后A内容。
MOV A,#55H
ANL A,#0FFH
ORL 20H,A
XRL A,@R1
CPL A
答:各指令执行成果如下:
MOV A,#55H ;(A)=55H
ANL A,#0FFH ;(A)=55H
XRL A,@R1 ;(A)=AAH
CPL A ;(A) =55H
执行完程序段后,A内容为55H。
16.阅读下列程序,阐明其功能。
MOV R0,#30H
MOV A,@R0
RL A
MOV R1,A
RL A
RL A
ADD A,R1
MOV @R0,A
答:对程序注释如下:
MOV R0,#30H ;(R0)=30H
MOV A,@R0 ;取数
RL A ;(A)×2
MOV R1,A
RL A ;(A)×4
RL A ;(A)×8
ADD A,R1 ;(A)×10
MOV @R0,A ;存数
功能:将30H中数乘以10后来再存回30H中。
条件:30H中数不能不不大于25,25×10=250仍为一种字节。若30H中数不不大于25,则应考虑进位。
17. 已知两个十进制数分别从内部数据存储器中40H单元和50H单元开始存储(低位在前),其字节长度存储在内部数据存储器30H单元中。编程实现两个十进制数求和,并把和成果存储在内部数据存储器40H开始单元中。
【答】程序如下:
ORG 0000H
SJMP MAIN
ORG 0030H
MAIN:
MOV R0,#40H ;被加数首址.又作两个十进制数和首址
MOV R1,#50H ;加数首址
MOV R2,30H ;字节长度
CLR C
PP: MOV A,@R1 ;取加数
ADDC A,@R0 ;带进位加
DA A ;二一十进制数调节
MOV @R0,A ;存和
INC R0 ;修正地址
INC R1
DJNZ R2,PP ;多字节循环加
AJMP $
END
21.读程序,请⑴画出P1.0~P1.3引脚上波形图,并标出电压V-时间T坐标;
⑵加以注释。
ORG 0000H
START: MOV SP,#20H
MOV 30H,#01H
MOV P1,#01
MLP0:ACALL D50ms ;软件延时50mS
MOV A, 30H
CJNE A, #08H,MLP1
MOV A, #01H
MOV DPTR,#ITAB
MLP2∶MOV 30H, A
MOVC A,@A+DPTR
MOV P1, A
SJMP MLP0
MLP1:INC A
SJMP MLP2
ITAB: DB 0,1,2,4,8
DB 8,4,2,1
D50ms:… ;延时50ms子程序(略)
RET
答:
① 序功能:P1.0~P1.3引脚上波形图如图3-2所示。
②注释见源程序右边所述。
ORG 0000H
START: MOV SP,#20H
MOV 30H,#01H
MOV P1,#01H ;P1.0~P1.3引脚输出波形
MLP0:ACALL D50ms ;软件延时50ms
MOV A, 30H
CJNE A, #08H,MLP1 ;判表格中数据与否取完?
MOV A, #01H ;取完,从表头开始取
MOV DPTR,#ITAB ;表格首地址
MLP2∶MOV 30H, A
MOVC A,@A+DPTR ;取表格中数据
MOV P1, A
SJMP MLP0
MLP1:INC A ;表格中数据未取完,准备取下一种
SJMP MLP2
ITAB: DB 0,1,2,4,8 ;表
DB 8,4,2,1
D50ms:… ;软件延时50ms子程序
RET
第四章P123
6 .依照运算成果给出数据到指定数据表中查找相应数据字。
运算成果给出数据在片内数据存储器40H单元中,给出数据大小在00~0FH之间,数据表存储在20H开始片内程序存储器中。查表所得数据字(为双字节、高位字节在后)高位字节存于 42H、低位字节存于41H单元。其相应关系为:
给出数据;00 01 02…… 0DH 0EH 0FH
相应数据:00A0H 7DC2H FF09H 3456H 89ABH 5678H
请编制查表程序段,加上必要伪指令,并加以注释。
答:程序如下:
ORG 0000H
AJMP MAIN ,
0RG 0020H
TAB:DB OAOH,OOH,0C2H,7DH,09H,OFFH,...,56H,34H,0.ABH,89H,DB 78H,56H; 数据字表
ORG 0050H
MAIN: MOV A,40H ;运算成果给出数据放在40H中
MOV DPTR,#TAB ;指向数据字表首地址
RL A ;由于是双字节,因此A左移1位(乘2)
MOV 40H,A ;成果放在40H ’
MOVC A,@A+DPTR ;查表,找出相应值
MOV 41H,A ;查找出数据值低字节放入41H
MOV A.40H
ADD A,#01H ;查找数据高位字节
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV 42H,A 。 ;查找出数据值高字节放入42H
SJMP$
注意:数据表存储在20 H开始片内存储器中,该存储器应为内部程序存储器,由于查表指令MOVC功能是从程序存储器中读数据。
10. 把长度为10H字符串从内部数据存储器输入缓冲区INBUF向设在外部数据存储器输出缓冲区OUTBUF进行传送,始终进行到碰见回车字符“CR”结束传送或整个字符串传送完毕。加上必要伪指令,并对源程序加以注释。
答:程序如下:
ORG 0000H
AJMP MAIN
ORG 0030H
MAIN: MOV R7,#10H ;数据长度
MOV R0,#INBUF ;源数据首地址
MOV DPTR,#OUTBUF ;目数据首地址
LOOP: MOV A,@R0 ;把源数据值赋给A
CJNE A,#0DH,LOOP1 ;是“CR”(ASCII码值为0DH) ?
SJMP END1 ;是“CR”,则结束传送
LOOP1:MOVX @DPTR,A ;把A值赋给目数据
INC R0 ;源数据下一种地址值
INC DPTR ;目数据下一种地址值
DJNZ R7,LOOP ;判数据传送与否完毕?
END1:SJMP END1
12.比较两个ASCII码字符串与否相等。字符串长度在内部数据存储器20H单元,第一种字符串首地址在内部数据存储器30H中,第二个字符串首地址在内部数据存储器50H中。如果两个字符串相等,则置顾客标志F0为0;否则置顾客标志F0为1。 加上必要伪指令,并加以注释。(注:每个ASCII码字符为一种字节,如ASCII码“A”表达为41H)
答:字符串中每一种字符都可以用一种ASCII码表达。只要有一种字符不相似,就可以判断字符串不相等。
ORG 0000H ’
AJMP MAIN ·
ORG 0030H
MAIN: MOV R0,#30H 第一种字符串首地址
MOV R1.,#5 0H 第二个字符串首地址
LOOP: MOV A,@R0 第一种字符串字符值赋给A
MOV B,@R1 ;第二个字符串字符值赋给B
CJNE A,B,NEXT ;两个字符值比较
INC R0 字符值相等,则继续比较
DJNZ 20H,LOOP ;判断字符串与否比较完
CLR F0 字符串相等,则F0位清0
SJMP $
NEXT: SETB F0 字符串不等,则F0位置1
SJMP $
END
例如:(2OH)=03H,(3OH)=41H,(31H)=42H,(32H)=43H,(5OH)=41H,(51H)=
42H,(52H)=43H。两个字符串均为“ABC"。
执行成果:F0=0
14. 80C51单片机从内部数据存储器31H单元开始存储一组8位带符号数,字节个数在30H中。请编写程序记录出其中正数、零和负数数目,并把记录成果分别存入20H、21H和22H三个单元中。加上必要伪指令,并对源程序加以注释。
答:分析:带符号数以字节最高位D7值来区别是正数(涉及零)和负数。D7=1,则该带符号数为负数。
程序如下:
POS_NUM EQU 20H ;正数个数
ZERO_NUM EQU 21H ;零个数
NEG_NUM EQU 22H ;负数个数
MAIN:MOV POS_NUM,#0 ;计数单位初始化为0
MOV ZERO_NUM,#0
MOV NEG_NUM,#0
MOV R1,30H ;数据长度
MOV R0,#31H ;数据首地址
LOOP:MOV A,@R0
JB ACC.7,INC_NEG ;符号位为1,该数为负数,跳转加1
CJNE A,#0,INC_POS
INC ZERO_NUM ;该数为0,0个数加1
AJMP LOOP1
INC_NEG:INC NEG_NUM ;负数个数加1
AJMP LOOP1
INC_POS:INC POS_NUM ;该数为正数,正数个数加1
LOOP1:INC R0 ;判断记录与否结束
DJNZ R1,LOOP
END
例如:已知(30H)=08H,31H单元起存储数据为:00H,80H,7EH,6DH,2FH,34H,EDH,FFH。
执行成果:(20H)=04H,(21H)=01H,(22H)=03H。
16.将外部数据存储器2040H单元中一种字节拆成2个ASCII码,分别存入内部数据存储器40H和41H单元中,试编写以子程序形式给出转换程序,阐明调用该子程序入口条件和出口功能。加上必要伪指令,并加以注释。
答:子程序入口条件、出口功能及源代码如下:
子程序人口条件:准备拆为2个ASCII码数存入外部RAM40 H单元中。
子程序出口功能:完毕外部RAM单元一种字节拆成2个ASCII码,分别存入内部数据存储器40 H和41 H单元中。
ORG 1 000H
B_TO_A:MOV DPTR,#40H ;外部RAM40H单元
MOV R0,#40H
MOVX A,@DPTR ;取数
PUSH A
ANL A,#0FH ;低4位转换为ASCII码
LCALL. CHANGE
MOV @RO,A
INC R0
POP A ’
SWAP A
ANL A,#0FH ;高4位转换为ASCII码
LCALL CHANGE
MOV @R0,A
RET
CHANGE:CJNE A,#0AH,NEXT ;转换子程序
NEXT: JNC NEXT2 ;≥0AH,转移
ADD A,#3 0H ;≤9,数字0-9转化为ASCII码
RET
NEXT2: ADD A,#37H ;字母A~F转化为ASCII码
RET
END
设外部(40 H)=12 H。
执行程序B_TO_A后:内部(40 H)=31 H,(41 H)=32 H。
设外部RAM(40 H)=ABH。
执行程序B_TO_A后,内部(40 H)=41 H,(41 H)=42 H。
17.依照8100H单元中值X,决定P1口引脚输出为:
2X X>0
P1= 80H X=0 (-128D≤X≤63D)
X变反 X<0
答:程序如下:
ORG 0000H
SJMP BEGIN
ORG 0030H
BEGIN: MOV DPTR,#8100H
MOVX A,@DPTR
MOV R2,A
JB ACC.7,SMALLER;有符号数<0
SJMP UNSIGNED ;无符号数≥0
SMALLER:DEC A ;X<0,输出-X(先减1,再取反)
CPL A
MOV P1,A
SJMP OK
UNSIGNED:CJNE A,#00H,BIGGER ;不等于0即不不大于0
MOV P1,#80H ;X等于0,输出80H
SJMP OK
BIGGER: CLR C ;X不不大于0,输出A×2
RLC A ;A×2
MOV P1,A
OK: SJMP $
END
例如:输入55 H,P1口引脚输出AAH;输入00 H,P1口引脚输出80 H;输入F1(一1 5补码),P1口引脚输出0FH。
22. 编写求一组无符号数中最小值子程序,入口条件为:内部数据存储器20H和21H中存数据块起始地址,22H中存数据块长度,求得最小值存入30H中。
答:程序如下: .
;求无符号数最小值子程序CMPI
ORG H
CMPI: MOV DPL,20H
MOV DPH,21H
MOV 30H,#0FFH ;最小值单元初始值设为最大值
LOOP: MOVX A,@DPTR
MOVX A,@DPTR ’
CJNE A,3 0H,CHK ;比较两个数大小
SJMP LOOP1 ;两个数相等,不互换
CHK: JNC LOOP1 ;A较大,不互换
MOV 30H,A ;A较小,互换
LOOP1: INC DPTR
DJNZ 22H.LOOP
RET
注意:30 H中始终存储两个数比较后较小值,比较结束后存储即是最小值。
例如:(20 H)=00 H,(21 H)=80 H.(22 H)=0 5 H。从8000 H开始存储下列数:02 H,
04 H,01 H,FFH,03 H。
调用子程序CMPl后成果:(30 H)=01 H
第五章 p141
1.什么是中断?在单片微机中中断能实现哪些功能?
答:单片机在程序执行过程中,容许外部或内部“事件’’通过硬件打断程序执行.,使其转向执行解决外部或内部“事件’’中断服务子程序;而在完毕中断服务子程序后来,继续执行本来被打断程序,这种状况称为“中断",这样过程称为“中断响应过程"。
7.80C51共有哪些中断源?对其中断祈求如何进行控制?
答:中断响应是有条件,即:
·中断源申请中断;
·该中断源已被容许中断,且CPU也已容许中断;
·没有同级或高优先级中断在执行中断服务程序。
在接受中断申请时,如遇下列状况之一,硬件生成长调用指令LCALL将被封锁:
①CPU正在执行同级或高一级中断服务程序。由于当一种中断被响应时,其相应中断优先级触发器被置1,封锁了同级和低档中断。
②查询中断祈求机器周期不是执行当前指令最后一种周期。目在于使当前指令执行完毕后,才干进行中断响应,以保证当前指令完整执行。
③当前正在执行RETI指令或执行对IE、IP读/写操作指令。80C51.中断系统特性规定,在执行完这些指令之后,必要再继续执行一条指令,然后才干响应中断。
12.80C51中断与子程序调用有哪些异同点,请各举两点加以阐明。
① 相似点:
⑴ 都是中断当前正在执行程序,都要通过执行返回指令,返回到本来程序。
⑵ 都是由硬件自动地把断点地址压入堆栈;当执行到返回指令时,自动弹出断点地址以便返回本来程序。
⑶都要通过软件完毕现场保护和现场恢复。
⑷ 都可以实现嵌套。
② 不同点:
⑴ 中断祈求信号可以由外部设备发出,是随机;子程序调用子程序却是由软件编排好。
⑵ 中断响应后由固定矢量地址转入中断服务程序,而子程序地址由软件设定。
⑶ 中断响应是受控,其响应时间会受某些因素影响素;子程序响应时间是固定。
第六章P161
1. 80C51单片微机内部设有几种定期器/计数器?简述各种工作方式功能特点?
答:80C51 单片机内部设有2 个 16 位定期器/计数器 TO 和 T1。定期器/计数器有 4 种工作方式,其特点如下:
①方式 O 是 13 位定期器/计数器。由 THxT 高 8 位(作计数器)和TLx低5位(32分频定标器)构成。TLx低5位溢出时,向THxT进位;THxT 溢出时,硬件置位件TFx(可用于软件查询),并可以申请定期器中断定期器 。
②方式1 是16 位定期器/计数器。TLxT 低 8 位溢出时向THx进位(可用于软件查询),并可以申请定期器中断。
③方式 2 是定期常数是定期自动重装载8位定期器/计数器。TLx作为8位计数寄存器,THx作为 8 位计数常数寄存器数。当 TLx计数溢出时,一方面将TFx 置位,并申请中断;另一方面将 THx内容自动重新装入TLxT中,继续计数。由于重新装重入不影响 THx内容,因此可以多次持续再装入。方式2对定期控制特别有用。
④方式 3 只合用于TO,T0被拆成两个独立8位计数器位计TLO和THO 。TLO做8位计数器,它占用了T0 GATE、INTO 、启动/停止控制位TRO、TO引脚(P3.4)以及计数溢出标志位TF0和TO中断矢量(地址为000BH)等 TH0只能做8位定期器用,由于此时外部引脚TO已为定期器/计数器 TLO 所占用。这时它占用了定期器/计数器 T1 启动/停止控制位 TRl、计数溢出标志位 TFl.及T1中断矢量(地址为001BH)。
T0 设为方式 3 后,定期器/计数器 T1 只可选方式 O、1 或 2。由于此时计数溢出标志位 TFI.及T1 中断矢量(地址为001BH)已被 TH0T 所占用,因此 T1 仅能作为波特率发生器或其她不用中断地方。
5. 在80C51单片微机系统中,已知时钟频率为6MHz,选用定期器T0方式3,请编程使 P1.0和 P1.l引脚上分别输出周期为2ms和400μs方波。加上必要伪指令,并对源程序加以注释。
答:机器周期为 2μs,定期分别为定期分 2ms和 400 μs。
计算:4004 μs 定期,400μs=(28-TC)T ×2μs,TC=38 H。
程序如下:
ORG 0000H
0000 0130 AJMA MAIN
ORG 000BH ;定期器 TO 中断矢量。
000B 2100 AJMP TIME
MAIN:
0030 7805 MOV R0,#05H
0032 758903 MOV. TMOD,#03H ;T0 方式 3,定期器中断
0035 758A38 MOV TL0,#38H ;TLO 定期 400μs
0038 D28C SETB TR0T ;启动定期器定 TL0
003A C28E CLR,TR1
003C D2A9 SETB ET0E ;开定期器 TLO中断
003E D2AF SETB EA
0040 80FE SJMP$ ;中断等待
ORG 0100H0
TIME:
0100 758A38 MOV TL0,#38H ;TL0T 定期 400~s
0103 B29B 1 CPL P1.1 ;4004 μs 定期到,P1.1P1 输出变反
0105 D804 DJNZ R0,RETURN
0107 7805 MOV R0,#05H
0109 B290 CP[. P1.0 ;4004 μs*5=2ms 到,P1.O 输出变反
RETURN:
010B 32 RETI
END
14. 监视定期器T3功能是什么?它与定期器/计数器T0、T1有哪些区别?
T3 俗称“看门狗",它作用是逼迫单片机进入复位状态,使之从硬件或软件故障中解脱出来。
在实际应用中,由于现场各种干扰或者程序设计程序错误,也许使单片机程序进入了“死循环"或"程序区"(如表格数据区)之后,在一段设定期间内 ,如果顾客程序没有重装监视重装定期器 T3,则监视电路将产生一种电路将产生 系统复位信号位 ,逼迫单片机单退出“死循环"或“非程序区程”,重新进行“冷启动”或“热启动”。
在程序正常运营时,需要不断地对 T3 进行“喂狗”,当由于干扰而没能及时能 “喂狗",则逼迫单片机进入复位状态,从而退出非正常运营状态。“喂狗”时间间隔就是容许失控时间。T3 定期溢出表达浮现非正常状态,而 TO 和 T1 定期溢出是正常状态。
第七章P186
⒌ 简述串行通信接口芯片UART重要功能?
答:① 它是用于控制计算机与串行设备芯片。
②将由计算机内部传送过传来并行数据行转换为输出串行数据流。
③将计算机外部来串行数据串转换为字节,供计算机内部并行数据器件使用。
④在输出串行数据串流中加入奇偶校验位,并对从外部接受数据流进行奇偶校验奇偶 。
⑤在输出数据流中加入启停标记,并从接受数据流中删除启停标记启停 。
⑥解决由键盘或鼠标发鼠 出中断信号(键盘和鼠标也是串行设备也是串行)。
⑦可以解决计算机与外部串行设备同步管理问题。
⒎ 80C51单片微机串行口共有哪几种工作方式?各有什么特点和功能?
答:80C51单片微机串行口共有4 种工作方式:
① 移位寄存器方式,波特率为晶振 1/12
② 8 位 UART,波特率可变
③ 9 位 UART,波特率为晶振 1/32 或 1/64
④ 9 位 UART,波特率可变
它们都是串口通信。
12. 80C51单片微机串行口共有 4 种工作方式,它们波特率分别为 晶振1/12 , 波特率可变 , 波特率为晶振 1/32 或 1/64 , 波特率可变 。
第八章P259
1.简述单片微机系统扩展基本原则和实现办法。
答:系统扩展是单片机应用系统硬件设计中最常遇到问题。系统扩展是指单片机内部各功能部件不能满足应用系统规定期,在片外连接相应外围芯片以满足应用系统规定。80C51系列单片机有很强外部扩展能力,外围扩展电路芯片大多是某些常规芯片,扩展电路及扩展办法较为典型、规范。顾客很容易通过原则扩展电路来构准扩展电路电构成较大规模应用系统。
对于单片机系统扩展基本办法有并行扩展法和串行扩展法两种。并行扩展法是指运用单片机三组总线 (地址总线 AB、数据总线 DB 和控制总线 CB)进行系统扩展;串行扩展法是指运用 SPIS 三线总线和 12C 线总线串行系统扩展。
① 外部并行扩展行
单片机是通过芯片引脚进行 系统扩展。为了满足系统扩展要统扩 求,80C51系列单片机芯片引脚可以构成图 8-1 所示三总线构造,即地址总线 AB、数据总线 DB 和控制总线 CB。单片机所有外部芯片都通过这三组总线进行扩展。
② 外部串行扩展
80C51.系列单片机串行扩展涉及:SPI(Serial Peripheral Interface)三线总线和 12C双总线两种。在单片机内部不具备串行总线时,可运用单片机两根或三根 I/O 引脚甩软件来虚拟串行总线功能 。
2. 如何构造80C51单片机并行扩展系统总线?
答:80C51并行扩展系统总线有三组。
①地址总线(A0~A15):由P0口提供低8位地址A0~A7,P0口输出低8位地址A0~A7必要用锁存器锁存,锁存器锁存控制信号为单片机引脚ALE输出控制信号。由P2口提供高8位地址A8~A15。
②数据总线(D0~D7):由P0口提供,其宽度为8位,数据总线要连到各种外围芯片上,而在同一时间里只可以有一种是有效数据传送通道。哪个芯片数据通道有效,则由地址线控制各个芯片片选线来选取。
③控制总线(CB):涉及片外系统扩展用控制线和片外信号对单片机控制线。系统扩展用控制线有ALE、、、。
14. 已知可编程I/O接口芯片8255A控制寄存器地址为BFFFH,规定设定A口为基本输入,B口为基本输出,C口为输入方式。请编写从C口读入数据后,再从B口输出程序段。并依照规定画出80C51与8255A连接逻辑原理图。加上必要伪指令,并对源程序加以注释。
答:已知8255A控制寄存器地址为BFFFH,若地址线A0、A1被用做8255A端口选取信号,则8255A C口地址为BFFEH,B口地址为BFFDH,A口地址为BFFCH。可以选用地址线P2.6(A14)作8255A片选线。
8255A 与80C51连接图如图8-7所示。
程序如下:
ORG 0000H
MOV DPTR,#0BFFFH ;8255A控制寄存器地址
MOV A, #99H
MOVX @DPTR,A ;控制字(PA输入、PB输出、PC输入)
MOV DPTR,#0BFFEH ;C口地址
MOVX A,@DPTR ;PC输入
MOV DPTR,#0BFFDH ;B口地址
MOVX @DPTR,A ;PB输出
19.D/A转换器是将 数字信号数字 转换为 模仿信号 ,DAC0832具备 直通方式 ,
单缓冲方式 , 双缓冲方式 三种工作方式,其重要技术性能有 辨别率 , 转换精度 , 转换速率/建立时间 。
22. 运用ADC0809芯片设计以80C51为控制器巡回检测系统。(8路输入采样周期为1秒,)其他末列条件可自定。请画出电路连接图,并进行程序设计。
【答】巡回检测系统如图8-11所示。
图8-11巡回检测系统
分析:8路模仿输入通道IN0-IN7地址为DFF8H~DFFFH(P2.5=0)。
ORG 0000H
AJMP MAIN
ORG 0030H
MAIN:
MOV DPTR,#0DFF8H ;通道0地址
MOV R0,#40H ;存储单元首址
LOOP:MOVX @DPTR,A ;启动A/D转换
LCALL D128μs ;延时等待完毕
MOVX A,@DPTR ;读入转换值
MOV @R0,A ;存入内存
……
D128μs: …… ;延时128μs子程序 RET
END
23. 请举例阐明独立式按键设计原理。
答:独立式按键就是各按键互相独立,每个按键分别与单片微机输入引脚或系统外扩I/O芯片一根输入线相连。每根输入线上按键,它工作状态不会影响其她输入线工作状态。因而,通过检测输入线电平状态,可以很容易地判断哪个按键被按下了。
独立式按键电路配备灵活,软件构造简朴,但每个按键需占用一根输入引脚。
例如,单片微机P1.0引脚上接一种按键,无键按下时P1.0由上拉电阻决定为高电平,当按键按下P1.0通过按键与地线短路而为低电平。可见,查询P1.0引脚电平即可判断该按键与否被按下。
25如何用静态方式实现多位LED显示,请画出接口电路图,并编写LED显示程序
答: 静态显示 LEDL 接口
(1)连接办法 各数码管公共极固定接有效电定接有平,各数码管字形控制字形 端分别由各自控制信号控制信 。
(2)长处 LEDL 显示亮度温度,容易调节,编程容
展开阅读全文