鍵盤顯示模塊調(diào)試
其程序框圖如下圖所示:
#include
#includeCC.h>
#definecomXBYTE[0X9FFF];8279命令入口地址
#definedatXBYTE[0x9eff];8279數(shù)據(jù)入口地址
#defineucharunsignedchar
#defineuintunsignedint
sbitcflag=ACC^7;
ucharj=0,sq;
ucharcodekeytab[16]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,
0x0a,0x0b,0x0c,0x0d,0x0e,0x0f};;鍵碼表
ucharcodetab[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,
0x7c,0x39,0x5e,0x79,0x71};;字形表
voiddelay(uintt);;延時(shí)函數(shù)
voidclr();;清除8279RAM數(shù)據(jù)
voidserve();;8279中斷服務(wù)函數(shù)
voidmain(void);主函數(shù)
{uinti;
com=0xd1;;送清除指令
do{ACC=com;}
while(cflag!=0);;查狀態(tài)寄存器DU,直到DU為零
com=0x34;;定標(biāo)值20
com=0x10;;寫8279工作模式:左端送入,8字符顯示
delay(200);;延時(shí)
com=0x90;;寫入8279顯示RAM起始0單元,自動(dòng)加1
EA=1;;開中斷
EX0=1;
IT0=1;
do{}
while(1);;等待按鍵中斷
}
voidserve()interrupt0;中斷服務(wù)函數(shù)
{
uinti;
com=0x40;;讀FIFO中的鍵值
sq=dat&0x3f;;保留鍵編碼部分
for(i=0;i<16;i++)
{if(sq==keytab[i])break;;查鍵碼表
}
dat=tab[i];;查字形表,將按鍵值送顯示
}
voiddelay(uintt);延時(shí)函數(shù)
{uinti,j;
for(i=0;i
}
voidclr(void);清除8279顯示RAM數(shù)據(jù)函數(shù)
{com=0xd1;
do{ACC=com;}
while(cflag!=0);
j=0;
com=0x90;
dat=0x40;
}
測試過程中,每按一鍵,數(shù)碼管顯示相應(yīng)的值,即調(diào)試成功。