51单片机 82C55扩展控制8个LED,单片机扩展一片82C55可编程并行I/O芯片,实现数字量的输入/输出:8个输入开关分别控制8个输出LED。

目录

题目:

分析题目:

Proteus仿真:

 代码:

82c55工作方式:

代码解析:


题目:

单片机扩展一片82C55可编程并行I/O芯片,实现数字量的输入/输出:8个输入开关分别控制8个输出LED。

               

 82C55—可编程的通用并行接口电路(3个8位I/O口)

分析题目:

由题可知,我们可以将82c55的PA口作为输出口连接八个LED,PB口作为输入口连接八个按键。

Proteus仿真:

本题涉及的Proteus文件以及程序源码均在本账号发布

 代码:

#include<reg52.h>
#include<absacc.h>
#define uchar unsigned char
#define uint unsigned int
#define PAdata XBYTE[0x7f00]		    //82c55芯片PA口地址(0111 1111 0000 0000)
#define PBdata XBYTE[0x7f01]			//82c55芯片PB口地址(0111 1111 0000 0001)
#define PCdata XBYTE[0x7f02]            //82c55芯片PC口地址(0111 1111 0000 0010)
#define contral XBYTE[0x7003]			//82c55控制口地址  (0111 1111 0000 0011)

sbit reset=P3^5;
void delayms(uint j)
{
	uchar i;
	for(;j>0;j--)
	{
		i=250;
		while(--i);
		i=249;
		while(--i);
	}	
}

void main()
{
	uchar temp;
	reset = 1;							 //82c55复位
	delayms(10);
	contral = 0x8b;						 //设置PB,PC口输入,PA口输出(1000 1011)
	while(1)
	{
		temp = PBdata;					 //读PB口开关值
		PAdata = temp;					 //写PA口

	}
}

82c55工作方式:

  • 方式0:基本输入/输出;

  • 方式1:应答输入/输出;

输入                                                           输出

  • 方式2:双向传送;

代码解析:

82C55各端口地址的确定:#define PAdata XBYTE[0x7f00]

82C55各端口地址由P2和P0口决定。

端口地址:P2P0=16(根据具体I/O口接法决定,答案不是唯一的)

P2:\overline{CS}111 1111                (本程序单片机P2.7口接82c55CS非端,未接的默认为1)

P0:1111 11A1A0                (本程序单片机P0.1口接82c55A1端,P0.0口接82c55A0端)

例:#define PAdata XBYTE[0x7f00]            //82c55芯片PA口地址(0111 1111 0000 0000)

 I/O口模式设置:contral = 0x8b;

模式1:工作方式选择控制字及端口PC置位/复位控制字(控制I/O口输入/输出)

模式2:lPC口按位置位/复位控制字( PC 口按位置位 / 复位 控制 )(控制某一位)

 

本题PA设为输出(LED显示),PB为输入(检测按键),PC未接设备,所以本题设置为输入(输入输出均可),且均选择方式0(基本输入/输出),本题是将整个PAPB口全部选中,所以选择模式1,则D7=1,按照本题I/O要求D6~D0分别为000 1011(0x8b)

  • 8
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值