📄 adc_key_v1_0.c
字号:
//*******************************adc扩展16键盘********************************//
//*
//*键值在一定范围内判定
//*
//*
//****************************************************************************//
#include"iom16.h"
#include"intrinsics.h"
#define uchar unsigned char
#define XTAL 16
//****************************************************************************//
main(void)
{
DDRC=0XFF;
DDRD=0XFF;
uchar key=16;
uchar adc_datal;
uchar adc_datah;
int adc_data;
DDRA_Bit0=0; //ADC初始化
PORTA_Bit0=0;
ACSR=0x80;
ADMUX=0X40;
ADCSRA=0X27;
ADCSRA_Bit7=1;//ADEN
ADCSRA_Bit6=1;//ADSC
while(1)
{
adc_datal=ADCL;
adc_datah=ADCH;
adc_data=adc_datal+adc_datah*256;
if(adc_data==1023);
else
{
for(uchar i=0;i<50;i++)
__delay_cycles(1000*XTAL);
adc_datal=ADCL;
adc_datah=ADCH;
adc_data=adc_datal+adc_datah*256;
}
if(adc_data<=1023&&adc_data>=988);
else if(adc_data>=0&&adc_data<32) key=0;
else if(adc_data<96) key=1;
else if(adc_data<158) key=2;
else if(adc_data<219) key=3;
else if(adc_data<283) key=4;
else if(adc_data<348) key=5;
else if(adc_data<415) key=6;
else if(adc_data<478) key=7;
else if(adc_data<540) key=8;
else if(adc_data<604) key=9;
else if(adc_data<671) key=10;
else if(adc_data<737) key=11;
else if(adc_data<799) key=12;
else if(adc_data<861) key=13;
else if(adc_data<924) key=14;
else key=15;
if(key==16);//按键功能
else
{ADCSRA_Bit6=0;
switch(key)
{
case 0:{PORTC=0X01;PORTD=0X00;break;}
case 1:{PORTC=0X02;PORTD=0X00;break;}
case 2:{PORTC=0X04;PORTD=0X00;break;}
case 3:{PORTC=0X08;PORTD=0X00;break;}
case 4:{PORTC=0X10;PORTD=0X00;break;}
case 5:{PORTC=0X20;PORTD=0X00;break;}
case 6:{PORTC=0X40;PORTD=0X00;break;}
case 7:{PORTC=0X80;PORTD=0X00;break;}
case 8:{PORTD=0X01;PORTC=0X00;break;}
case 9:{PORTD=0X02;PORTC=0X00;break;}
case 10:{PORTD=0X04;PORTC=0X00;break;}
case 11:{PORTD=0X08;PORTC=0X00;break;}
case 12:{PORTD=0X10;PORTC=0X00;break;}
case 13:{PORTD=0X20;PORTC=0X00;break;}
case 14:{PORTD=0X40;PORTC=0X00;break;}
case 15:{PORTD=0X80;PORTC=0X00;break;}
default:{PORTD=0X00;PORTC=0X00;break;}
}
key=16;
ADCSRA_Bit4=0;
ADCSRA_Bit6=1;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -