avr单片机按键程序

什么是avr单片机 avr单片机是1997年由atmel公司研发出的增强型内置flash的risc(reduced instruction set cpu) 精简指令集高速8位单片机。可以广泛应用于计算机外部设备、工业实时控制、仪器仪表、通讯设备、家用电器等各个领域。avr单片机是 atmel 公司 1997 年推出的 risc 单片机。risc(精简指令系统计算机)是相对于cisc(复杂指令系统计算机)而言的。risc 并非只是简单地去减少指令,而是通过使计算机的结构更加简单合理而提高运算速度的。
risc 优先选取使用频率最高的简单指令,避免复杂指令:并固定指令宽度,减少指令格式和寻址方式的种类,从而缩短指令周期,提高运行速度。由于 avr 采用了 risc 的这种结构,使avr系列单片机都具备了1mips/mhz(百万条指令每秒/兆赫兹)的高速处理能力。
avr单片机按键程序 按键控制流程
state action
0检测是否有按下
1消抖
2检测是否有按下行扫描列读取出健值送出键值,并移至高4位
3 行扫描列读取出健值跟上一次比较相问计时(2s)加一。计调转下- 一个状态(长按);不同则转到1(组合键可以在这一状态下判断)
4 行扫描,列该取出健值跟上: 一次比较相同计时(100ms)加一,计满送出键值,不同则转到1
#idefine lpt 1200
#define lpt_send_data 200
#define judge_key_down 0
#detine waitkeystate 1g
4define send_key_value 2
#idefine judge_ loong press 3
#define loong press_ action 4
#define key_up_state 5
#define key_port portc
#define key_dd ddrc
#define key_in pinc
#define key_io 0xf0
/ 备配10 的输入输出h.1为输出0 为输入
#define key_l 0xf0
/1|输出来低位输出
#define key_r 0x0f
/行输入,高位读入
unsigned char key_pin[ h- {0x10,0x20,0x40,0x80} ;
const unsigned char key_table[-{
0x0o,0x01,0x02.0xf,0x3,.0xfjoxfjoxf.oxo4.0xf.oxf.xff.offoxf.oxt.oxf/ 第一行
0x 10,0x05.0x06,0x1f;.ox07,0xf.oxf,0of.38.oxfg.oxfq.xf.xf.oxf.oxf.oxtf;/ 第二行
0x20,0x09,0x0a,0xf,0xob,0xtf:oxf;oxf.oxoc,oxfofooxf.oxf.oxf(oqif.0./ 第三行
0x30,0x0d,0x0e,0xf,0x0f,0xf,oxtf.oxf;.0x 10,0xff.oxf,0xf.offixf,0xf.oxf‘1第四行
{
volatile unsigned char key_value_old;
volatile unsigned int key_time;
volatile unsigned char state;
volatile unsigned char j:
{
unsigned char key_scan(void)
unsigned char j;
for(j-0;j4j+ +)
{
key_port-key_pin[j l;
key_pinui
key_port“ i
/_nopo :_nopo;nop0;_nopo:_nop( );_nop( );
i( (key_in & key_r)!= 0x00 )
/reurn (key_lablelj + key_in]);/ i-0,5,10,15
/portd- key_table[i《c4 + key_in];
/iportd- key_in;
/key_part=0x0f;
/retum j;
switch(key_in )
case 0b00010001: return 0;
break;
case 0b00100001: return 1;
break;
case 0b00011000: return 12;
break;
case 0b00101000: return 13;
break;
case 0b01001000: recurn 14;
break;
case 0b10001000: return 15;
break;
defaul :break;
key_port” key_io;

把握智能时代的商机,TCL三年冲击千亿元销售额
工业机器人蓬勃发展 线缆/连接器需求水涨船高
人工智能、机器学习和深度学习三者的关系
双屏魅族PRO7终于来了,发布会时间确定!
仪表放大器的偏移电压会随着增益的变化而变化吗
avr单片机按键程序
小米推迟CDR发审_证监会给予“尊重”
各个行业怎么看待“元宇宙”
广东省无线电管理实施办法
世界上最薄的VR眼镜
英国政府将于明年年初公布第二批5G频谱的最终拍卖计划
高通实现技术突破,5G毫米波已能够商用
探析自动驾驶规划控制发展现状及热点研究
2019年汽车电子市场不乐观 沪电股份选择逆市布局汽车板
heap_4内存分配方法介绍
京东方正寻求为三星电子供应商OLED面板
准备AWS解决方案架构师考试的必要基础知识
研究显示:PC玩家的智商比手游玩家高
PI进入电机驱动器市场 推出首款BridgeSwitch IHB的电机驱动器
新型微带带通滤波器设计