?? c8279s.c
字號(hào):
/**********************************************************************************************
*名稱:C8279S.C *
*功能:8279顯示和鍵盤控制 *
*說明:主程序調(diào)用顯示和鍵盤輸出函數(shù),采用diss數(shù)組作緩沖區(qū).table為字符"0"--"F"所對應(yīng)的段碼表. *
*輸入輸出:8279的命令端口地址:0xdfff,數(shù)據(jù)口地址:0xdffe,晶振:6MHz,分頻數(shù):10 *
*接線圖如C8279S.JPG *
************************************************************************************************/
#include <reg51.h>
#include <absacc.h>
#define COM XBYTE [0xdfff] /*命令/狀態(tài)口 */
#define uchar unsigned char
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
uchar idata diss[8]={0,1,2,3,4,5,6,7};
sbit clflag=ACC^7;
uchar keyin();
uchar deky();
void disp(uchar idata *d);
void main(void)
{
uchar i;
COM=0xd1; /*總清除命令 */
do {ACC=COM;}
while(clflag==1); /*等待清除結(jié)束 */
COM=0x00;COM=0x2a; /*鍵盤、顯示方式:8個(gè),左輸入,;時(shí)鐘分頻:10分頻 */
while(1)
{for(i=0;i<8;i++)
{disp(diss); /*顯示緩沖區(qū)內(nèi)容*/
diss[i]=keyin(); /*鍵盤輸入到顯示緩沖*/
}
}
}
void disp(d) /*顯示函數(shù) */
uchar idata *d;
{ uchar i;
COM=0x90;
for(i=0;i<8;i++)
{COM=i+0x80;
DAT=table[*d];
d++;
}
}
uchar keyin(void) /*取鍵值函數(shù) */
{
uchar i;
while(deky()==0); /*無鍵按下等待*/
COM=0x40; /*讀FIFO RAM命令*/
i=DAT;i=i&0x3f; /*取鍵盤數(shù)據(jù)低6位 */
return(i); /*返回鍵值 */
}
uchar deky(void) /*判斷FIFO有鍵按下的函數(shù) */
{ uchar k;
k=COM;
return(k&0x0f); /*非零有鍵按下 */
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -