开关控制
回帖(1)
2021-10-18 15:00:20
主要实现扩展的输入口接了8个开关,扩展的输出口接了8个发光二极管。实现8个开关控制对应8个发光二极管的显示?
实验中需要用到外界其他的芯片
方法一
使用74LS373和74LS245作为外接的芯片完成实验
实验电路图
实验代码
#include
#include //定义绝对地址访问
#define uchar unsigned char
void delay(unsigned int n)
{
unsigned int i,j;
for(i=0;i
for(j=249;j>0;j--)
;
}
uchar i;
void main(void)
{
while(1)
{
i=XBYTE[0x7fff]; //把输入口的开关信息输入到i中
delay(1); //延时程序
XBYTE[0x7fff]= i; //把输入的开关信息传送到输出的地址中
}
}
实验代码其实并不是很难稍加理解就可以,就是把输入口(地址0x7fff)的按钮信息赋值到i中,然后将输入口的数据传输到输出口中。输入口连接按钮,输出口连接LED灯。如上面的电路图一样。
实验结果
实现了每一个按钮的按动对应的LED灯的亮灭。
方法二
使用8255和74LS373作为外接的芯片完成实验
实验电路图
实验代码
#include
#include
#define uchar unsigned char
uchar i;
void delay(unsigned int n)
{
unsigned int i,j;
for(i=0;i
for(j=249;j>0;j--)
;
}
void main (void)
{
while(1)
{
i= 0x90; //可有可无
XBYTE[0xff7fc]= i; //可有可无
i=XBYTE[0xff7c]; //和上面的程序一样
delay(1); //和上面的程序一样
XBYTE[0xff7d]= i; //和上面的程序一样
}
}
实验结果
实现了每一个按钮的按动对应的LED灯的亮灭。
总结
单片机(AT89C51)外设的I/O输入输出实验的结果比较的简单明了,主要还是需要去了解其中的实验原理。
主要实现扩展的输入口接了8个开关,扩展的输出口接了8个发光二极管。实现8个开关控制对应8个发光二极管的显示?
实验中需要用到外界其他的芯片
方法一
使用74LS373和74LS245作为外接的芯片完成实验
实验电路图
实验代码
#include
#include //定义绝对地址访问
#define uchar unsigned char
void delay(unsigned int n)
{
unsigned int i,j;
for(i=0;i
for(j=249;j>0;j--)
;
}
uchar i;
void main(void)
{
while(1)
{
i=XBYTE[0x7fff]; //把输入口的开关信息输入到i中
delay(1); //延时程序
XBYTE[0x7fff]= i; //把输入的开关信息传送到输出的地址中
}
}
实验代码其实并不是很难稍加理解就可以,就是把输入口(地址0x7fff)的按钮信息赋值到i中,然后将输入口的数据传输到输出口中。输入口连接按钮,输出口连接LED灯。如上面的电路图一样。
实验结果
实现了每一个按钮的按动对应的LED灯的亮灭。
方法二
使用8255和74LS373作为外接的芯片完成实验
实验电路图
实验代码
#include
#include
#define uchar unsigned char
uchar i;
void delay(unsigned int n)
{
unsigned int i,j;
for(i=0;i
for(j=249;j>0;j--)
;
}
void main (void)
{
while(1)
{
i= 0x90; //可有可无
XBYTE[0xff7fc]= i; //可有可无
i=XBYTE[0xff7c]; //和上面的程序一样
delay(1); //和上面的程序一样
XBYTE[0xff7d]= i; //和上面的程序一样
}
}
实验结果
实现了每一个按钮的按动对应的LED灯的亮灭。
总结
单片机(AT89C51)外设的I/O输入输出实验的结果比较的简单明了,主要还是需要去了解其中的实验原理。
举报
更多回帖