⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 c8279s.c

📁 单片机外围芯8279的C语言程序代码
💻 C
字号:
/**********************************************************************************************
*名称:C8279S.C                                                                                *
*功能:8279显示和键盘控制                                                                      *
*说明:主程序调用显示和键盘输出函数,采用diss数组作缓冲区.table为字符"0"--"F"所对应的段码表.		*
*输入输出:8279的命令端口地址:0xdfff,数据口地址:0xdffe,晶振:6MHz,分频数:10											*
*接线图如C8279S.JPG                                                                           *
************************************************************************************************/

#include <reg51.h>
#include <absacc.h>
#define COM XBYTE [0xdfff]			/*命令/状态口 */
#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);				/*等待清除结束 */
	COM=0x00;COM=0x2a;			/*键盘、显示方式:8个,左输入,;时钟分频:10分频 */
	while(1)
	  {for(i=0;i<8;i++)
	    {disp(diss);				/*显示缓冲区内容*/
	      diss[i]=keyin();			/*键盘输入到显示缓冲*/
	    }
	  }
}

void disp(d)				/*显示函数 */
uchar idata *d;
{ uchar i;
	COM=0x90;
	for(i=0;i<8;i++)
	  {COM=i+0x80;
	  	DAT=table[*d];
	  	d++;
	  }
}

uchar keyin(void)				/*取键值函数 */
{
	uchar i;
	while(deky()==0);			/*无键按下等待*/
	COM=0x40;							/*读FIFO RAM命令*/
	i=DAT;i=i&0x3f;				/*取键盘数据低6位 */
	return(i);						/*返回键值 */
}

uchar deky(void)				/*判断FIFO有键按下的函数 */
{ uchar k;
		k=COM;
		return(k&0x0f);			/*非零有键按下 */
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -