找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

各位大佬,我想通过8255的A口接键盘控制B,C口的高低电平,该怎么改程序?

查看数: 2199 | 评论数: 2 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2021-1-15 10:27

正文摘要:

各位大佬,我想通过8255的A口接键盘控制B,C口的高低电平(例如,第一个按键按下后,PB0变为低电平,再按一下,PB0变为高电平),我应该怎么该程序 #include<reg52.h> #include<absacc.h> #define PA X ...

回复

ID:517466 发表于 2021-1-16 19:00
我查了8255的资料,感觉你使用好像有问题。如果想作为扫描键盘用,你应该使用PC口作为键盘矩阵使用。扫描矩阵要求一部分输出,一部分输入。
对8255,在设置好控制字后,是没法让PA口的一部分成为输出,而另一部分成为输出。PB也是一样的。只有PC口是允许一部分成为输入、而另一部分成为输出的。
你的程序中,在设置控制字时,应使
1、PA口作为输出口,PB口作为输出口。
2、PC7-PC4作为输出、PC3-PC0作为输入;或者PC7-PC4作为输入、PC3-PC0作为输出;
ID:752974 发表于 2021-1-16 16:11
在此提供一点思路,供参考。
u8 temp;
  if(k1)//k1按下
    temp++;
  if(temp >1)
    temp = 0;
if(temp==1)
  PB &= 0xfe;//PB0输出低电平,LED亮
else
  PB |= 0x01;//PB0输出高电平,LED灭

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表