📄 linkkey.c
字号:
/*********************************************************************
微 雪 电 子 WaveShare http://www.waveShare.net
目 的: 测试"LinkKeyBoard"模块
目标系统: 基于AVR单片机
应用软件: ICCAVR
版 本: Version 1.0
圆版时间: 2005-03-2
开发人员: SEE
说 明: 若用于商业用途,请保留此段文字或注明代码来源
深 圳 微 雪 电 子 保 留 所 有 的 版 权
*********************************************************************/
/*01010101010101010101010101010101010101010101010101010101010101010101
----------------------------------------------------------------------
版本更新记录:
----------------------------------------------------------------------
实验内容:
循环显示按键,并使用PB口的LED指示灯指示按键的码值。
----------------------------------------------------------------------
硬件连接:
LinkKeyBoard:K0----K7
|
M16SD: PA0--PA7
----------------------------------------------------------------------
注意事项:
详见M16SD说明书
----------------------------------------------------------------------
10101010101010101010101010101010101010101010101010101010101010101010*/
#include <iom16v.h>
#include "D:\ICC_H\CmmICC.H"
#define LED_DDR DDRB
#define LED_PORT PORTB
#define KEY_DDR DDRA
#define KEY_PORT PORTA
#define KEY_PIN PINA
/*--------------------------------------------------------------------
函数名称:
函数功能:键盘检测
注意事项:
提示说明:
输 入:
返 回:
--------------------------------------------------------------------*/
void scanKey()
{
KEY_DDR = 0X01;
KEY_PORT = 0xFE;
delay50us(1);
if(KEY_PIN==0xFC)
LED_PORT=0x01;
if(KEY_PIN==0xFA)
LED_PORT=0x02;
if(KEY_PIN==0xF6)
LED_PORT=0x03;
if(KEY_PIN==0xEE)
LED_PORT=0x04;
if(KEY_PIN==0xDE)
LED_PORT=0x05;
if(KEY_PIN==0xBE)
LED_PORT=0x06;
if(KEY_PIN==0x7E)
LED_PORT=0x07;
KEY_DDR = 0X02;
KEY_PORT = 0xFD;
delay50us(1);
if(KEY_PIN==0xF9)
LED_PORT=0x08;
if(KEY_PIN==0xF5)
LED_PORT=0x09;
if(KEY_PIN==0xED)
LED_PORT=0x0A;
if(KEY_PIN==0xDD)
LED_PORT=0x0B;
if(KEY_PIN==0xBD)
LED_PORT=0x0C;
if(KEY_PIN==0x7D)
LED_PORT=0x0D;
KEY_DDR = 0X04;
KEY_PORT = 0xFB;
delay50us(1);
if(KEY_PIN==0xF3)
LED_PORT=0x0E;
if(KEY_PIN==0xEB)
LED_PORT=0x10;
if(KEY_PIN==0xDB)
LED_PORT=0x11;
if(KEY_PIN==0xBB)
LED_PORT=0x12;
if(KEY_PIN==0x7B)
LED_PORT=0x13;
KEY_DDR = 0X08;
KEY_PORT = 0xF7;
delay50us(1);
if(KEY_PIN==0xE7)
LED_PORT=0x14;
if(KEY_PIN==0xD7)
LED_PORT=0x15;
if(KEY_PIN==0xB7)
LED_PORT=0x16;
if(KEY_PIN==0x77)
LED_PORT=0x17;
KEY_DDR = 0X10;
KEY_PORT = 0xEF;
delay50us(1);
if(KEY_PIN==0xCF)
LED_PORT=0x18;
if(KEY_PIN==0xAF)
LED_PORT=0x19;
if(KEY_PIN==0x6F)
LED_PORT=0x1A;
KEY_DDR = 0X20;
KEY_PORT = 0xDF;
delay50us(1);
if(KEY_PIN==0x9F)
LED_PORT=0x1B;
if(KEY_PIN==0x5F)
LED_PORT=0x1C;
KEY_DDR = 0X40;
KEY_PORT = 0xBF;
delay50us(1);
if(KEY_PIN==0x3F)
LED_PORT=0x1D;
}
/*--------------------------------------------------------------------
函数名称:
函数功能:
注意事项:
提示说明:
输 入:
返 回:
--------------------------------------------------------------------*/
void main()
{
LED_DDR = 0XFF;
while(1)
scanKey();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -