1、译码器:
其中,A、B、C为输入端,
对应关系如下:
CBA 十进制 输出(低电平)
000 0 Y0
001 1 Y1
010 2 Y2
011 3 Y3
100 4 Y4
101 5 Y5
110 6 Y6
111 7 Y7
2、锁存器:
当使能端为高电平时:输入输出同步。
当使能端为低电平时:数据会被锁存(不管输入端的电平怎么变化,输出端电平不会变)。
3、或非门:
(1)IO扩展的开发模式:
由于采用io扩展的开发模式,因此,WR接地,WR始终为低电平。
(2)或非门:
由于采用的是IO扩展的开发模式,因此或非门的输入端的WR始终为低电平。
4、以LED显示为例,展示上述器件之间的联系:
先通过P2口的三位输出获得八位输出,使得八位输出中只有Y4为低电平;因为WR恒为低电平,Y4为低电平,经过或非门后输出Y4C为高电平,Y4C的高电平使得锁存器的使能端LE有效(输入输出同步),LED可以显示。
5、代码实现:
#include<reg51.h> sbit wr=P3^6; unsigned char leds[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; void delay(unsigned int x) { while(x--); } void stop_buzzer_relay(void) { wr=1; P2=0xa0;//Y5 P0=0x00; wr=0; P2=0x00; } void main(void) { char i; stop_buzzer_relay(); wr=0; P2=0x80;//Y4 while(1) { P0=~leds[i]; delay(50000); i++; if(i>=8)i=0; } }