8255总线实验 编写程序利用8255扩展单片机的IO口,控制8位数码管显示1-8。

8255总线实验 编写程序利用8255扩展单片机的IO口,控制8位数码管显示1-8。

在这里插入图片描述
在这里插入图片描述

程序:
#include<reg51.h>
#include<absacc.h>
#define PORT_A XBYTE[0X7FFC]
#define PORT_B XBYTE[0X7FFD]
#define PORT_C XBYTE[0X7FFE]
#define PORT_CTL XBYTE[0X7FFF]
void delay()
{
unsigned int i;
for(i=0;i<40;i++);
}
int main(void)
{
unsigned char smg[]={0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
unsigned char i=0;
unsigned char weiport[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
PORT_CTL=0x80;
while(1)
{
PORT_B=weiport[i];
PORT_A=smg[i];
i++;
if(i==8)
i=0;
delay();
}
}
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
视频:
https://www.bilibili.com/video/BV1zA411H7Ft/

  • 3
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
流水灯实验是一个经典的电子实验,通过控制LED灯的亮灭顺序,可以让LED灯像水流一样流动。在这个实验中,我们可以使用基于系统总线扩展IO芯片8255控制LED灯的亮灭顺序。 以下是流水灯实验的步骤: 1. 连接硬件电路 将8255芯片连接到系统总线上,同时将LED灯连接到8255的输出端。具体连接方式可以参考8255芯片的数据手册。在连接完电路后,可以通过编程来控制8255芯片的输入输出端,从而控制LED灯的亮灭。 2. 编写程序 以下是一个基于8255芯片的流水灯实验程序示例,你可以参考这个程序来完成实验。 ``` #include <reg52.h> #define PortA P0 #define PortC P2 void main() { int i; PortC = 0xFF; // 设置C为输出模式 while(1) { for(i = 0; i < 8; i++) { PortA = 0x01 << i; // 设置A为输出模式,用于控制LED灯 PortC = ~(0x01 << i); // 控制C输出,让LED灯像水流一样流动 delay(); // 延时一段时间 } } } void delay() { int i, j; for(i = 0; i < 100; i++) { for(j = 0; j < 100; j++); } } ``` 在上面的程序中,PortA用于控制LED灯的亮灭,PortC用于控制LED灯的流动顺序。程序会循环执行,每次让LED灯从左到右依次点亮,然后再从右到左依次点亮。通过延时函数,可以控制LED灯的流动速度。 3. 运行程序 将编写好的程序下载到单片机中,然后将电路连接上电源。你会看到LED灯像水流一样流动,这就完成了流水灯实验。 总的来说,利用基于系统总线扩展IO进行流水灯实验是一个非常好的学习电子原理和单片机编程的方法。通过这个实验,你可以更好地了解8255芯片的功能和使用方法,同时也可以更深入地理解单片机的工作原理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值