找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

关于单片机A/D转换实现按键扫描的思路?

查看数: 1702 | 评论数: 4 | 收藏 1
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2020-12-30 20:07

正文摘要:

请问这个程序,求大神分享一下思路

回复

ID:420836 发表于 2021-1-1 09:19
使用模数转换读取按键可以节省IO。 在一个模拟输入上,按键与不同的电阻器相连,方式是按下不同的按键可以导致模拟输入读取的电压值不同,从而可以检测到特定的按键。
ID:282850 发表于 2021-1-1 00:07
汽车方向盘按键大多采用这种单线多开关结构,思路与原理没有问题,消抖要考虑,最好加小电容硬件消拌
ID:712493 发表于 2020-12-31 23:26
程序思想应没问题,就是消抖,抗干扰怎么处理,另K值没计算.不好说是否正确
ID:390416 发表于 2020-12-31 15:06
u8 xdata ADC_Read_Data=0;
u8 xdata ADC_Write_Data=0;//0~7
void ADC_Init()
{
        P1M1|=0x03;
        P1M0&=0xfc;
        P1ASF|=0x03;
        CLK_DIV&=0xdf;
        ADC_RES=0;
}

void ADC_Read_Data_Drive()
{
        ADC_RES=0;
        ADC_CONTR=0xe8|ADC_Write_Data;
        while(1)
        {
                if(ADC_CONTR&0x10)//不等于0
                {
                        ADC_Read_Data=ADC_RES;
                        break;
                }
        }
        ADC_CONTR=0;
}
使用单片机P1.2口的ADC转换,得到ADC转换结果0~255.然后确定在某个ADC范围是某个按键。比如 你图纸的k1,对应的ADC值可以设定为0~50.那么 90~150 可以认为是K2

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

Powered by 单片机教程网

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