《单片微型计算机与接口技术》思考题与习题解答01 下载本文

AJMP L9 SJMP $ END

8.8 利用89C51串行口设计4位静态数码管显示器,画出电路并编写程序,要求4位显示器上每隔1s交替地显示\和“4567”。 8.8 电路图见图8-12

/*****************************查询方式****************************/

#include

#define uchar unsigned char sbit P3_3=P3^3;

char code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,

0x92,0x82,Oxf8,0xf8,0x80,0xg0}; void timer(uchar); main(){ucha i,a=3; SCON=0; for(;;) {P3_3=1;

for(i=0;i<4;i++) {SBUF=tab[a]; a--;

while(!TI); TI=O;

if(a==255)a=7; P3_3=0; timet(100); }}

void timer(uchre t) {uehar i;

for(i=O;i

33

TH0=-10000/256; TL0=-10000%6; } TR0=1; while(!TF0); TF0=0; }}

/*****************************中断方式******************************/ #include

#define uehar unsigned char sbit P3_3=P3^3; uchar a=3;

char code tab[]={0xc0;0xf9;0xa4,

0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; void timet(uchar t); void int4(void);

main()

{uchar i,j;

SCON=0;EA=1;ES=1; for(;;) {P3_3=1;

for(i=O,i<4,i++) {SBUF=tab[a]; j=a;

while(j==a); }

P3_3=0; timer(100); if(a==255)a=7;

}

void int4(void)interrupt 4 {TI=0; a--; }

void timer(uchar t)

{uchar i;

for(i=0;i

TMOD=0x01;

TH0=-10000/256; TL0=-10000%6: TR0=1;

while(!TF0);

34

TF0=0; }}

第9章 系统扩展

9.1 MCS-51扩展系统中,程序存储器和数据存储器共用16位地址线和8位数据线,为什么两个存储空间不会发生冲突? 9.1 参阅9.1节

9.2 在8XX51单片机上扩展一片6116(2KBX8位RAM)。

9.2 6116为2KBX8位RAM,共11根地址线A0~A10,接线见习题9.2图。

9.3 在8XX51单片机上扩展一片EPROM 2732和一片RAM 6264。 9.3 2732为4KBX8位EPROM,6264为8KBX 8位RAM,因各只有一片,所以各片选-CE接地·电路见习题9.3图。

9.4 在8XX51单片机上扩展一片RAM 6116和一片EPROM 2716,要求6116既能作为数据存储器,又能作为程序存储器使用。

9.4 6116为2KBX8位RAM,2716为2KBX8位EPROM,地址线均为1l根,地址线接线参见习题9·3图。

9.5 在8XX51单片机上扩展4片2764,地址从0000~7FFFH,采用74LSl38作地址译码,写出每片的地址空间范围。 9.5 设计电路见习题9.5图。

4片2764的-CE分别接138译码器为y0,yl,y2.y3端,各片地址为:

35

2764(4) 0000H~lFFFH 2764(3) 2000H~3FFFH 2764(2) 4000H~5FFFH 2764(1) 6000H~7FFFH

9.6 在8XX51单片机上接一片74LS244和一片74LS273,使74LS244的地址为BFFFH,74LS273的地址为DFFFH,并编程从74LS244输入向74LS273输出。

9.6 设计电路见习题9.6图。图中采用的是80C31,由于80C31内部无ROM,片外必须扩展一片程序存储器。图中扩展2764 8K×4 EPROM。根据地址需求,分别以P2.5和P2.6作为273和244的片选,程序参见例9-2。

9.7 在题9.6的基础上,74LS244接一按键开关,74LS273接一个数码管LED,编程序,使数码管显示按键次数。

9.7 程序参阅习题5.4,将MOV A,P1改为MOVX A,@DPTR,DPTR指向244地址BFFFH;将MOV P1,A改为MOVX @DPTR,A,DPTR指向273地址DFFFH。

9.8 设置8255地址为CFFCH~CFFFH,使用部分译码法设计电路,并设置A口方式1输出,B口方式 O输入,C口不用的初始化程序。 9.8 设计电路见习题9.8图。 MOV DPTR,#OCFFFH MOV A,#0A2H MOVX @DPTR,A

36