查表法8位ADC模拟输入按键扫描,按下图搭建电路。
- unsigned char code dis_buf[]={0,10,30,50,70,90,110,130,150};
- unsigned char key_value;//键值
- unsigned char ADC_value;//ADC转换值(8位)
- unsigned char i;
- void key_scan(ADC_value)
- {
- for(i=0;i<8;i++)
- {
- if(ADC_value>=dis_buf[i] && ADC_value<dis_buf[i+1])
- {
- key_value=i+1;
- break;//跳出当前循环
- }
- }
- }
复制代码
|