⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 key.h

📁 使用ds1302和LCM1602的时钟程序
💻 H
字号:
/*********************************************************************

目    的:   键盘扫描程序
	
目标系统:   基于AVR单片机+4行×7列 LinkKeyBoard实验板键盘
		                                                                
应用软件:   GCCAVR
		                                                                
版    本:   Version 2.0                                                          
		                                                                
圆版时间:   2006-09-25
	
开发人员:   YESON

说    明:   若用于商业用途,请保留此段文字或注明代码来源
	

*********************************************************************/


#include "avr/io.h"
#include "CmmICC.H"

#define  key_DDR  DDRA
#define  key_PORT PORTA
#define  key_PIN  PINA

#define  key_DDR  DDRA
#define  key_PORT PORTA
#define  key_PIN  PINA

uint8 key;  //全局变量,所有程序有效

void scankey()
{
        delay50ms(1);   //防抖延时函数,可以适当增加减少,改变按键反应时间
        key_DDR = 0X01;
	key_PORT = 0xFE;
	delay50us(1);
	if(key_PIN==0xFC)
		key=1;
	if(key_PIN==0xFA)	
		key=2;
	if(key_PIN==0xF6)	
		key=3;
	if(key_PIN==0xEE)	
		key=4;
	if(key_PIN==0xDE)	
		key=5;
	if(key_PIN==0xBE)	
		key=6;
	if(key_PIN==0x7E)	
		key=7;

	key_DDR = 0X02;
	key_PORT = 0xFD;
	delay50us(1);
	if(key_PIN==0xF9)	
		key=8;
	if(key_PIN==0xF5)	
		key=9;
	if(key_PIN==0xED)	
		key=10;
	if(key_PIN==0xDD)	
		key=11;
	if(key_PIN==0xBD)	
		key=12;
	if(key_PIN==0x7D)	
		key=13;

	key_DDR = 0X04;
	key_PORT = 0xFB;
	delay50us(1);
	if(key_PIN==0xF3)	
		key=14;
	if(key_PIN==0xEB)	
		key=15;
	if(key_PIN==0xDB)	
		key=16;
	if(key_PIN==0xBB)	
		key=17;
	if(key_PIN==0x7B)	
		key=18;

	key_DDR = 0X08;
	key_PORT = 0xF7;
	delay50us(1);	
	if(key_PIN==0xE7)	
		key=19;
	if(key_PIN==0xD7)	
		key=20;
	if(key_PIN==0xB7)	
		key=21;
	if(key_PIN==0x77)	
		key=22;

	key_DDR = 0X10;
	key_PORT = 0xEF;
	delay50us(1);	
	if(key_PIN==0xCF)	
		key=23;
	if(key_PIN==0xAF)	
		key=24;
	if(key_PIN==0x6F)	
		key=25;

	key_DDR = 0X20;
	key_PORT = 0xDF;
	delay50us(1);	
	if(key_PIN==0x9F)	
		key=26;
	if(key_PIN==0x5F)	
		key=27;

	key_DDR = 0X40;
	key_PORT = 0xBF;
	delay50us(1);	
	if(key_PIN==0x3F)	
		key=28;
        delay50ms(1);

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -