找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1607|回复: 4
打印 上一主题 下一主题
收起左侧

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

[复制链接]
跳转到指定楼层
楼主
请问这个程序,求大神分享一下思路

51hei图片20201230200554.png (15.47 KB, 下载次数: 79)

51hei图片20201230200554.png

51hei图片20201230200548.jpg (86.66 KB, 下载次数: 63)

51hei图片20201230200548.jpg
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
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
回复

使用道具 举报

板凳
ID:712493 发表于 2020-12-31 23:26 来自手机 | 只看该作者
程序思想应没问题,就是消抖,抗干扰怎么处理,另K值没计算.不好说是否正确
回复

使用道具 举报

地板
ID:282850 发表于 2021-1-1 00:07 | 只看该作者
汽车方向盘按键大多采用这种单线多开关结构,思路与原理没有问题,消抖要考虑,最好加小电容硬件消拌
回复

使用道具 举报

5#
ID:420836 发表于 2021-1-1 09:19 | 只看该作者
使用模数转换读取按键可以节省IO。 在一个模拟输入上,按键与不同的电阻器相连,方式是按下不同的按键可以导致模拟输入读取的电压值不同,从而可以检测到特定的按键。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

Powered by 单片机教程网

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