8279键盘显示C程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
8279键盘和显示程序#include 52.h> #include #include #defineCOM8279XBYTE [0xF2FF定义8279 控制口#defineDATA8279XBYTE [OxFOFF定义8279 数据口#define uchar unsigned char #define uint unsigned int uint keyval// 定义键内码传递参数 uint time// 定义延时参数 void delay(uint time) void key(void) void main(){delay (13OO)// 开机延时 COM8279 = 0xD2/4青除RAM 和FIFO delay (1) EA=1 EX1 = 1〃开总中断,开外部中断1; IT仁1〃外部中断1选用下降沿 COM8279=OxOO//8279键盘双键互锁,编码扫描,左端入口 COM8279=Ox12〃时钟分频设置,分频数为18 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:{P0=0x3F; DATA8279=P0; break;}case 0xC2:{P0=0x06; DATA8279=P0; break;}case 0xC1: {//0 号键赋值 //1 号键赋值; //2 号键赋值; P0=0x5B; DATA8279=P0; break;}case 0xc0://3 号键赋值;DATA8279=P0; break;}case 0xCB: {P0=0x66; DATA8279=P0; break;}case 0xCC: {P0=0x6D; DATA8279=P0; break;}case 0xC9:{P0=0x7D; DATA8279=P0; break;}case 0xC8://4 号键赋值; //5 号键赋值; //6 号键赋值; //7 号键赋值;{P0=0x07; DATA8279=P0; break;}case 0xD3://8 号键赋值; DATA8279=P0; break;}case 0xD2:{P0=0x6F; DATA8279=P0; break;}case 0xD1:{P0=0x77; DATA8279=P0; break;}case 0xD0:{P0=0x7C; DATA8279=P0; break; }//9 号键赋值; //A 号键赋值; //B 号键赋值; case 0xE3://C 号键赋值;{P0=0x39; DATA8279=P0; break;}case 0xE1:{P0=0x5E; DATA8279=P0; break;}case 0xE2:{P0=0x79; DATA8279=P0; break;}case 0xE0:{P0=0x71; DATA8279=P0; break;}default: break;}}//D 号键赋值; //E 号键赋值; //F 号键赋值;{P0=0x4F; {P0=0x7F;