8279键盘和显示程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
8279键盘和显示程序
#include
#include
#include
#define COM8279 XBYTE [0xF2FF] //定义8279控制口
#define DATA8279 XBYTE [0xF0FF] //定义8279数据口
#define uchar unsigned char
#define uint unsigned int
uint keyval //定义键内码传递参数uint time //定义延时参数
void delay(uint time)
void key(void)
void main()
{
delay(1300) //开机延时
COM8279 = 0xD2 //清除RAM和FIFO delay(1)
EA=1
EX1=1 //开总中断,开外部中断1;IT1=1 //外部中断1选用下降沿COM8279=0x03 //8279键盘N键巡回,编码扫描,左端入口COM8279=0x2a //时钟分频设置,分频数为10
COM8279=0x70 //设置读显示命令
COM8279=0x90; //设置写显示命令
while(1)
}
void delay (uint time) //传递参数为time
{
uchar j
while (time--) //用time-1来进行循环
{
for (j=100;j>0;j--) //用j来进行125次循环,大约8us }
}
}
void intsvr1(void) interrupt 2 using 1
{
keyval=DATA8279
key()
}
//按键确认程序
void key(void)
{
switch(keyval)
{
case 0xC3: //0号键赋值
{
P0=0x3F;
DATA8279=P0;
break;
}
case 0xC2: //1号键赋值;
{
P0=0x06;
DATA8279=P0;
break;
}
case 0xC1: //2号键赋值;
{
P0=0x5B;
DATA8279=P0;
break;
}
case 0xc0: //3号键赋值;{
P0=0x4F;
DATA8279=P0;
break;
}
case 0xCB: //4号键赋值;{
P0=0x66;
DATA8279=P0;
break;
}
case 0xCC: //5号键赋值;{
P0=0x6D;
DATA8279=P0;
break;
}
case 0xC9: //6号键赋值;{
P0=0x7D;
DATA8279=P0;
break;
}
case 0xC8: //7号键赋值;
{
P0=0x07;
DATA8279=P0;
break;
}
case 0xD3: //8号键赋值;{
P0=0x7F;
DATA8279=P0;
break;
}
case 0xD2: //9号键赋值;{
P0=0x6F;
DATA8279=P0;
break;
}
case 0xD1: //A号键赋值;{
P0=0x77;
DATA8279=P0;
break;
}
case 0xD0: //B号键赋值;{
P0=0x7C;
DATA8279=P0;
break;
}
case 0xE3: //C号键赋值;{
P0=0x39;
DATA8279=P0;
break;
}
case 0xE1: //D号键赋值;{
P0=0x5E;
DATA8279=P0;
break;
}
case 0xE2: //E号键赋值;{
P0=0x79;
DATA8279=P0;
break;
}
case 0xE0: //F号键赋值;{
P0=0x71;
DATA8279=P0;
break;
}
default:
break;
}
}