熱門(mén): 51單片機(jī) | 24小時(shí)必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂(lè)園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
![]() |
使用模數(shù)轉(zhuǎn)換讀取按鍵可以節(jié)省IO。 在一個(gè)模擬輸入上,按鍵與不同的電阻器相連,方式是按下不同的按鍵可以導(dǎo)致模擬輸入讀取的電壓值不同,從而可以檢測(cè)到特定的按鍵。 |
汽車(chē)方向盤(pán)按鍵大多采用這種單線多開(kāi)關(guān)結(jié)構(gòu),思路與原理沒(méi)有問(wèn)題,消抖要考慮,最好加小電容硬件消拌 |
程序思想應(yīng)沒(méi)問(wèn)題,就是消抖,抗干擾怎么處理,另K值沒(méi)計(jì)算.不好說(shuō)是否正確 |
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; } 使用單片機(jī)P1.2口的ADC轉(zhuǎn)換,得到ADC轉(zhuǎn)換結(jié)果0~255.然后確定在某個(gè)ADC范圍是某個(gè)按鍵。比如 你圖紙的k1,對(duì)應(yīng)的ADC值可以設(shè)定為0~50.那么 90~150 可以認(rèn)為是K2 |
Powered by 單片機(jī)教程網(wǎng)