电子工程师技术服务社区
公告
登录
|
注册
首页
技术问答
厂商活动
正点原子
板卡试用
资源库
下载
文章
社区首页
问答
PIC16单片机按键控制源程序错误
已解决
73482
个问题
已帮助
5993
位优秀工程师
PIC16单片机按键控制源程序错误
793a95f4e4f10d4e
2020-06-06
浏览量:544
PIC16系列单片机,RA1-3引脚接按钮,三个按钮控制RC1-3引脚的高低电平变化.RA1按钮按下,RC1为高电平,RC2为高电平,RC3为低电平。
RA2按钮按下,RC1为低电平,RC2为高电平,RC3为低电平。
RA3按钮按下,RC1为高电平,RC2为高电平,RC3为高电平
下面是自己写的,但是实现不了,不知道哪里错了?求教
#include <pic.h>
#define uint unsigned int
#define uchar unsigned char
void delay(uint x) //延时函数
{
uint ab;
for(a=x;a>0;a--)
for(b=110;b>0;b--);
}
void main() //主函数
{
TRISA=1;PORTA=0xff;
TRISC=0;PORTC=0x00;
while(1)
{
if((PORTA & 0x02) != 0x02) //判断按键是否有被按下,有则为0
{
delay(10); //去抖
if((PORTA & 0x02) != 0x02) //去抖完得再判断一次
{
RC1=1;
RC2=1;
RC3=0;
}
}
if((PORTA & 0x04) != 0x04) //判断按键是否有被按下,有则为0
{
delay(10); //去抖
if((PORTA & 0x04) != 0x04) //去抖完得再判断一次
{
RC1=0;
RC2=1;
RC3=0;
}
}
if((PORTA & 0x08) != 0x08) //判断按键是否有被按下,有则为0
{
delay(10); //去抖
if((PORTA & 0x08) != 0x08) //去抖完得再判断一次
{
RC1=1;
RC2=1;
RC3=1;
}
}
}
}
显示全部
单片机
关注问题
写回答
0
0
收起
我来回答
上传资料:
选择文件
文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
莱克迷KW
先从硬件上查一下,按键的操作是不是对的,再试一下输出的状态可以不可以输出正确。要是都行,应该是你的逻辑的问题了
可以看一下去抖的时间是不是太短
你可以再描述下,不能实现的具体现象,也更好帮你分析
发布于
2020-06-18
举报
评论 0
0
0
其他答案
数量:
1
一笔之名也
这些信号的电平状态并不是保护的,而是只有按下的时候才会改变,有效的,你的逻辑有问题
发布于
2020-06-06
举报
评论 0
0
0
相关问题
问题达人
换一批
文章
知识经验换现金
换一批
PIC16单片机按键控制源程序错误
写回答
关注问题
×
我要举报该内容,理由是:
内容质量差:
内容太水、伸手党
垃圾广告信息:
广告、招聘、推广、测试内容等
偏离问答主题:
与技术无关、讨论类
与社区已有内容重复:
违规内容:
色情、暴力、血腥、敏感信息等
不友善内容:
人事攻击、挑衅辱骂、恶意行为
以上选项都不是: