📄 lcd.c
字号:
#include <REGX51.H>
#include <ctype.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include "lcd.h"
#include "zimo.h"
#include "comm.h"
/*-------------------------- 开机信息显示------------------------*/
void StartMsg(void)
{
Clr_Scr(); // 先清屏 //
CS2=1;CS1=0;
hz_disp16(0,32,huan); // 欢
delay(2000);
hz_disp16(0,48,ying); // 迎
delay(2000);
CS2=0;CS1=1;
hz_disp16(0,0,shi1); // 使
delay(2000);
hz_disp16(0,16,yong); // 用
delay(2000);
CS2=1;CS1=0;
sz_disp16(2,32,sz5); // 51
sz_disp16(2,40,sz1);
delay(2000);
hz_disp16(2,48,dan); //单
delay(2000);
CS2=0;CS1=1;
hz_disp16(2,0,pian); // 片
delay(2000);
hz_disp16(2,16,ji); // 机
delay(2000);
CS2=1;CS1=0;
hz_disp16(5,16,zhi); // 制
delay(2000);
hz_disp16(5,32,zuo); // 作
delay(2000);
hz_disp16(5,48,maohao); // :
delay(2000);
CS2=0;CS1=1;
hz_disp16(5,0,yang); // 杨
delay(2000);
hz_disp16(5,16,fei); // 飞
delay(2000);
hz_disp16(5,32,gantanhao); // !
delay(2000);
}
/*-----------------------------4*4键盘扫描程序------------------------*/
unsigned char kbscan()
{
unsigned char sccode,recode;
P1=0xf0; /*发全"0"行扫描码,列线输入*/
if((P1&0xf0)!=0xf0) /*若有键按下*/
{
delay(1000); /*延时去抖动*/
if((P1&0xf0)!=0xf0)
{
sccode=0xfe; /*逐行扫描初值*/
while((sccode&0x10)!=0)
{
P1=sccode; /*输出行扫描码*/
if((P1&0xf0)!=0xf0) /*本行有键按下*/
{
recode=(P1&0xf0)|0x0f;
return((~sccode)+(~recode)); /*返回特征字节码*/
}
else sccode=(sccode<<1)|0x01; /*行扫描码左移一位*/
}
}
}
return(0);
}
/*------------------------------主函数---------------------------------*/
main()
{
unsigned char key;
init_lcd();
Disp_Img(FirstPage);
delay(10000);
StartMsg();
delay(10000);
init_serialcomm(); //初始化串口
send_string_com("welcome to aphero!",20);
while(1){
key=kbscan();
if(key!=0){ // 如果key不为0表示有键被按下//
Clr_Scr(); // 先清屏 //
switch(key)
{
case 0x11: // 按键为1//
CS2=1;CS1=0;
sz_disp16(0,0,sz1);
break;
case 0x21: // 按键为2//
CS2=0;CS1=1;
sz_disp16(0,0,sz2);
break;
case 0x41: // 按键为3//
CS2=1;CS1=0;
sz_disp16(1,0,sz3);
break;
case 0x81: // 按键为4//
CS2=0;CS1=1;
sz_disp16(2,0,sz4);
break;
case 0x12: // 按键为5//
CS2=1;CS1=0;
sz_disp16(2,0,sz5);
break;
case 0x22: // 按键为6//
CS2=0;CS1=1;
sz_disp16(3,0,sz6);
break;
case 0x42: // 按键为7//
CS2=1;CS1=0;
sz_disp16(4,0,sz7);
break;
case 0x82: // 按键为8//
CS2=0;CS1=1;
sz_disp16(5,0,sz8);
break;
case 0x14: // 按键为9//
CS2=1;CS1=0;
sz_disp16(6,0,sz9);
break;
case 0x24: // 按键为10//
CS2=0;CS1=1;
sz_disp16(6,0,sz1);
sz_disp16(6,8,sz0);
break;
case 0x44: // 按键为11//
CS2=1;CS1=0;
sz_disp16(6,0,sz1);
sz_disp16(6,8,sz1);
break;
case 0x84: // 按键为12//
CS2=0;CS1=1;
sz_disp16(0,0,sz1);
sz_disp16(0,8,sz2);
break;
case 0x18: // 按键为13//
CS2=1;CS1=0;
sz_disp16(0,0,sz1);
sz_disp16(0,8,sz3);
break;
case 0x28: // 按键为14//
CS2=0;CS1=1;
sz_disp16(0,0,sz1);
sz_disp16(0,8,sz4);
break;
case 0x48: // 按键为15//
CS2=1;CS1=0;
sz_disp16(0,0,sz1);
sz_disp16(0,8,sz5);
break;
case 0x88: // 按键为16//
CS2=0;CS1=1;
sz_disp16(0,0,sz1);
sz_disp16(0,8,sz6);
break;
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -