/*只是按键控制,以'tel'为正端,从上至下,从左至右,为1~16,矩阵按键用P1口控制*/
#include<reg51.h>
#include<absacc.h>
#include<INTRINS.H>
#define uint unsigned int
#define uchar unsigned char
sbit SID=P2^1;
sbit CLK=P2^0;
sbit CS=P2^2;
uchar temp,num,hang,lie,key,tem;
uint s,m,n;
uchar Buf[4] = {0xef, 0xdf, 0xbf, 0x7f};
void lcd_init();
void lcd_order(uchar);
void delay(uint);
void xian(uchar);
uchar keyscan(void) ;
void main()
{
lcd_init();
lcd_order(0x01);
delay(1);
lcd_order(0x80);
lcd_order(0x30); //一次送8位数据,基本指令集
while(1)
{
key=keyscan();
switch(key)
{
case 0:xian(1);break;
case 1:xian(2);break;
case 2:xian(3);break;
case 3:xian(4);break;
case 4:xian(5);break;
case 5:xian(6);break;
case 6:xian(7);break;
case 7:xian(8);break;
case 8:xian(9);break;
case 9:xian(10);break;
case 10:xian(11);break;
case 11:xian(12);break;
case 12:xian(13);break;
case 13:xian(14);break;
case 14:xian(15);break;
case 15:xian(16);break;
default:break;
}
delay(100);
}
}
void lcd_init() //初始化LCD
{
CS=0; //准备时间和维持时间分别为60ns
delay(10);
CS=1; //只有CS为1时,数据才能输入
CLK=0;
delay(20);
lcd_order(0x30); //0000 1 DL=1(默认) 0 RE=0(使用基本指令集) X X 一次送8位数据,基本指令集
delay(1);