内容发布更新时间 : 2024/11/8 20:00:56星期一 下面是文章的全部内容请认真阅读。
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