//-----------------------------------------------------------------
// 名称: 手机键盘仿真
//-----------------------------------------------------------------
// 说明: 按下仿手机键盘矩阵按键时,对应按键字符显示在1602LCD上
// 本例可选择输入电话号码或英语字符序列,实现的效果仿真
// 手机的电话或字符串输入(例如使用拼音输入法)效果.
//
//-----------------------------------------------------------------
#define F_CPU 1000000UL
#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>
#include <string.h>
#define INT8U unsigned char
#define INT16U unsigned int
//液晶及键盘相关函数,相关变量
extern void Initialize_LCD();
extern void Write_LCD_Command(INT8U cmd);
extern void Write_LCD_Data(INT8U dat);
extern void LCD_ShowString(INT8U x, INT8U y,char *str);
extern void Keys_Scan();
extern INT8U KeyMatrix_Down();
extern INT8U KeyNo;
//蜂鸣器定义
#define SPK() PORTA ^= _BV(PA0)
//12个键盘按键字符总表(每个按键有1~5个字符)
//注意串长应设为6,因为实际最大串长为5,设为6时才能使串尾附带结束标志'\0'
//另外,其中第一个字符串中"1"的后面有一个空格.
const char KeyPad_Chars[12][6] =
{"1 ","2ABC","3DEF","4GHI","5JKL","6MNO","7PQRS","8TUV","9WXYZ","*","0+","#"};
//-----------------------------------------------------------------
// 蜂鸣器
//-----------------------------------------------------------------
void Beep()
{
}
//-----------------------------------------------------------------
// 定时器0跟踪同位按键的时间间隔 (30*50ms = 1.5s)
//-----------------------------------------------------------------
ISR (TIMER0_OVF_vect)
{
}
//-----------------------------------------------------------------
// 功能键处理 *(9):切换输入,#(11)键清除内容
//-----------------------------------------------------------------
void Function_Key_Process()
{
}
//-----------------------------------------------------------------
// 主程序
//-----------------------------------------------------------------
int main()
{
}