📄 key4x412232.c
字号:
* 局部静态变量:
*----------------------------------------修改历史------------------------------------------
* 当前版本 : 修改人: 修改日期:
* 修改说明 :
******************************************************************************************/
void clrscr(void)
{
uchar i;
uchar page;
for(page=0;page<4;page++)
{
LCD_SetPage(page);
for(i=0;i<61;i++)
{
LCD_SetColumn(i);
LCD_SetRam(0,0X00);
LCD_SetRam(1,0X00);
}
}
}
/******************************************************************************************
* 函数名称 :drawword
* 功能描述 ://layer 值为0,2;wenzi 码表中的几个字
* 参数 : 参数名称: 输入/输出? 类型 描述
*
* 返回值 :
* 作者 :
* 创建日期 :2006-12-19
* 全局变量 :
* 全局静态变量:
* 局部静态变量:
*----------------------------------------修改历史------------------------------------------
* 当前版本 : 修改人: 修改日期:
* 修改说明 :
******************************************************************************************/
drawword(uchar liedizhi,uchar layer,uchar wenzi)
{
uchar column,x;//layer 值为0,2;wenzi 码表中的几个字
bit zhucongmian;
// for(x=0;x<16;x++) //显示文字
for(x=0;x<8;x++)
{
column=liedizhi+x;
if(column>60)
{
zhucongmian=1; //右半屏显示
column-=61;
}
else
zhucongmian=0; //左半屏显示
// LCD_SetStartLine(0);//设置起始行
LCD_SetColumn(column);//设置起始列
LCD_SetPage(layer);
//LCD_SetRam(zhucongmian,*(pzm+wenzi*32+x)); //显示文字
LCD_SetRam(zhucongmian,*(pzm+wenzi*16+x));
// LCD_SetStartLine(0);//设置起始行
LCD_SetColumn(column);//设置起始列
LCD_SetPage(layer+1);
// LCD_SetRam(zhucongmian,*(pzm+wenzi*32+16+x)); //显示文字
LCD_SetRam(zhucongmian,*(pzm+wenzi*16+8+x)); //显示数字
}
}
//显示汉字
drawhanzi(uchar liedizhi,uchar layer,uchar wenzi)
{
uchar column,x;//layer 值为0,2;wenzi 码表中的几个字
bit zhucongmian;
for(x=0;x<16;x++) //显示文字
{
column=liedizhi+x;
if(column>60)
{
zhucongmian=1; //右半屏显示
column-=61;
}
else
zhucongmian=0; //左半屏显示
// LCD_SetStartLine(0);//设置起始行
LCD_SetColumn(column);//设置起始列
LCD_SetPage(layer);
LCD_SetRam(zhucongmian,*(pzm1+wenzi*32+x)); //显示文字
// LCD_SetStartLine(0);//设置起始行
LCD_SetColumn(column);//设置起始列
LCD_SetPage(layer+1);
LCD_SetRam(zhucongmian,*(pzm1+wenzi*32+16+x)); //显示文字
}
cs1=1;
}
/******************************************************************************************
* 函数名称 :delay1s
* 功能描述 :
* 参数 : 参数名称: 输入/输出? 类型 描述
*
* 返回值 :
* 作者 :
* 创建日期 :2006-12-19
* 全局变量 :
* 全局静态变量:
* 局部静态变量:
*----------------------------------------修改历史------------------------------------------
* 当前版本 : 修改人: 修改日期:
* 修改说明 :
******************************************************************************************/
void delay1s()
{
unsigned char j, k;
for(j=0;j<150;j++)
for(k=0;k<255;k++);
}
void delaykey()
{
for(i=50;i>0;i--)
for(j=200;j>0;j--);
}
void buzzer_driver_key(void)
{
PIN_BUZZER=0;
delay1s();
delay1s();
PIN_BUZZER=1;
}
uchar key_scan(void)
{
P0=0XF0;
x(0);
{ cs1=0;
delaykey();
if(PIN_KEY4==0)
{
delaykey();
if(PIN_KEY4==0)
{key=0x01 ; buzzer_driver_key(); x(1); return key;}
}
if(PIN_KEY5==0)
{
delaykey();
if(PIN_KEY5==0)
{key=0x04 ; buzzer_driver_key(); x(1); return key;}
}
if(PIN_KEY6==0)
{
delaykey();
if(PIN_KEY6==0)
{key=0x07 ; buzzer_driver_key(); x(1); return key;}
}
if(PIN_KEY7==0)
{
delaykey();
if(PIN_KEY7==0)
{key=10 ; buzzer_driver_key(); x(1); return key;}//'*'
}
x(1);
}
y(0);
{
delaykey();
if(PIN_KEY4==0)
{
delaykey();
if(PIN_KEY4==0)
{key=0x02 ; buzzer_driver_key(); y(1); return key;}
}
if(PIN_KEY5==0)
{
delaykey();
if(PIN_KEY5==0)
{key=0x05 ; buzzer_driver_key(); y(1); return key;}
}
if(PIN_KEY6==0)
{
delaykey();
if(PIN_KEY6==0)
{key=0x08 ; buzzer_driver_key(); y(1); return key;}
}
if(PIN_KEY7==0)
{
delaykey();
if(PIN_KEY7==0)
{key=0x00 ; buzzer_driver_key(); y(1); return key;}
}
y(1);
}
z(0);
{
delaykey();
if(PIN_KEY4==0)
{
delaykey();
if(PIN_KEY4==0)
{key=0x03 ; buzzer_driver_key(); z(1); return key;}
}
if(PIN_KEY5==0)
{
delaykey();
if(PIN_KEY5==0)
{key=0x06 ; buzzer_driver_key(); z(1); return key;}
}
if(PIN_KEY6==0)
{
delaykey();
if(PIN_KEY6==0)
{key=0x09 ; buzzer_driver_key(); z(1); return key;}
}
if(PIN_KEY7==0)
{
delaykey();
if(PIN_KEY7==0)
{key=11 ; buzzer_driver_key(); z(1); return key;}//'#'
}
z(1);
}
//return key;
cs1=1;
}
void main(void)
{ uchar keycode=0;
PIN_KEY1=1;
PIN_KEY2=1;
PIN_KEY3=1;
PIN_KEY4=1;
PIN_KEY5=1;
PIN_KEY6=1;
PIN_KEY7=1;
LCD_Init();
clrscr();
cs1=1;
pzm=zm;
pzm1=zm1;
while(1)
{
keycode=key_scan();
if(keycode==0x01)
{ drawword(0,2,0);
break;
}
} //while
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -