一、实验要求
利用板上集成电路上的资源,扩展一片74HC245,用来读入开关状态;扩展一片74HC373,用来作来输出口,控制8个LED灯。
二、实验目的
1、了解CPU常用的端口连接总线的方法。
2、掌握74HC245、74HC373进行数据读入与输出。
三、实验电路及连接
1、Proteus实验电路
2、硬件验证实验
硬件连接表
接线孔1 | 接线孔2 |
245CS | 0D000H-0DFFFH |
373CS | 8000H-8FFFH |
B0—B7 | K1—K8 |
四、实验说明
一般情况下,CPU的总线会挂有很多器件,如何使这些器件不造成冲突,这就要使用一些总线隔离器件,例如74HC245、74HC373。74HC245是三态总线收发器,本实验用它做输入,片选地址为0D0000H-0DFFFFH。就是用于读入开关值。74HC373是数据锁存芯片,通过它作数据的锁住输出。
五、实验程序
#define IN245 0D000H
#define OUT373 8000H
// Write a byte to the specified I/O port
void outp(unsigned int addr, char data) {
__asm {
mov dx, addr
mov al, data
out dx, al
}
}
// Read a byte from the specified I/O port
char inp(unsigned int addr) {
char result;
__asm {
mov dx, addr
in al, dx
mov result, al
}
return result;
}
char tmp;
/*
* NOTE: Before starting simulation set Internal Memory Size
* in the 8086 model properties to 0x10000
*/
void main(void) {
while (1) {
outp(OUT373,inp(IN245));
//将245读入的开关值传到373中输出到LED灯上
}
}