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

📄 hd7279.c

📁 本软件为7279显示控制器软件
💻 C
字号:
#include<reg66x.h>//#include<share.h>#include"lcjmain.h"#include"hd7279.h"//在下面添加相应的包含getbit()的头文件//#include"test7279main.h"#define xsfh	16#define xsO		17#define xsL		18#define xsM		19uchar code ledtab[20]={	0x7e,	//显示0	0x30,	//显示1	0x6d,	//显示2	0x79,	//显示3	0x33,	//显示4	0x5b,	//显示5	0x5f,	//显示6	0x70,	//显示7	0x7f,	//显示8	0x7b,	//显示9	0x77,	//显示A	0x1f,	//显示b	0x4e,	//显示C	0x3d,	//显示d	0x4f,	//显示E	0x47,	//显示F	0x01,	//显示-, 16	0x7e,	//显示O, 17	0x0e,	//显示L, 18	0x00,	//不显示, 19};uchar keyzalt;		//变化的键所在的位置					//0x04	横梁上升键状态改变					//0x08	横梁下降键状态改变					//0x10	点动上升键状态改变					//0x20	点动下降键状态改变					//0x40	速度上升键状态改变					//0x80	速度下降键状态改变uchar keyzsta;		//键的状态					//1--按下					//0--没按下bit havekey;		//=1	有键按下过//extern sta165;void write7279(uchar cmd, uchar dta){//	EA=0;	send_byte (cmd);	send_byte (dta);//	EA=1;}uchar read7279(uchar command){//	EA=0;	send_byte(command);	return(receive_byte());}void send_byte(uchar out_byte){	uchar data i;//	cs7279=0;	P2=(P2&0x1f)|cs7279;	long_delay();	for (i=0;i<8;i++)	{		if (out_byte&0x80)	dat7279=1;		else			dat7279=0;		clk7279=1;		short_delay();		clk7279=0;		short_delay();		out_byte=out_byte<<1;	}	dat7279=0;}uchar receive_byte(void){	uchar data i, data in_byte;	dat7279=1;	long_delay();	for (i=0;i<8;i++)	{		clk7279=1;		short_delay();		in_byte=in_byte<<1;		if (dat7279)		{			in_byte=in_byte|0x01;		}		clk7279=0;		short_delay();	}	dat7279=0;	return (in_byte);}void long_delay(void){	uchar data i;	for (i=0;i<0x30;i++);}void short_delay(void){	uchar data i;	for (i=0;i<8;i++);}void init7279(void){	uint data x;	for(x=0;x<0x2000;x++);	send_byte(CMD_RESET);//	send_byte(CMD_TEST);//	while(1);	keyzalt=0;	keyzsta=0;	havekey=0;}bit fbit;void setkey(BYTE led,int f,int v){	uchar data fxs[8];	uchar data i;/*	{	WORD x;	x=f;	i=(x>>12)&0x0f;	fxs[0]=ledtab[i];	i=(x>>8)&0x0f;	fxs[1]=ledtab[i];	i=(x>>4)&0x0f;	fxs[2]=ledtab[i];	i=x&0x0f;	fxs[3]=ledtab[i];	x=v;	i=(x>>12)&0x0f;	fxs[4]=ledtab[i];	i=(x>>8)&0x0f;	fxs[5]=ledtab[i];	i=(x>>4)&0x0f;	fxs[6]=ledtab[i];	i=x&0x0f;	fxs[7]=ledtab[i];	for(i=0;i<8;i++)	{		write7279(0x97-i, fxs[i]);	}//	write7279(0x97, fxs[0]);	return;	}*/	if(f<0)	{		fbit=1;		f=-f;	}	else	fbit=0;	if(f>=2000)	{		fxs[0]=ledtab[xsM];		fxs[1]=ledtab[xsM];		fxs[2]=ledtab[xsO];		fxs[3]=ledtab[xsL];	}	else	{		i=f/1000;		fxs[0]=ledtab[i];		i=(f%1000)/100;		fxs[1]=ledtab[i];		i=(f%100)/10;		fxs[2]=ledtab[i]|0x80;		i=(f%10);		fxs[3]=ledtab[i];		if(f<100)		{			fxs[0]=ledtab[xsM];			fxs[1]=ledtab[xsM];		}		else if(f<1000)		{			fxs[0]=ledtab[xsM];		}	}	if(fbit==1)	{		fxs[0]=fxs[0]|ledtab[xsfh];	}	fxs[4]=ledtab[xsM];	i=(v%1000)/100;	fxs[5]=ledtab[i];	i=(v%100)/10;	fxs[6]=ledtab[i];	i=v%10;	fxs[7]=ledtab[i];	if(v<10)	{		fxs[4]=ledtab[xsM];		fxs[5]=ledtab[xsM];		fxs[6]=ledtab[xsM];	}	else if(v<100)	{		fxs[4]=ledtab[xsM];		fxs[5]=ledtab[xsM];	}	else if(v<1000)	{		fxs[4]=ledtab[xsM];	}	if(led==1)	{		fxs[3]=fxs[3]|0x80;		fxs[7]=fxs[7]&0x7f;	}	else if(led==2)	{		fxs[3]=fxs[3]&0x7f;		fxs[7]=fxs[7]|0x80;	}	else	{		fxs[3]=fxs[3]&0x7f;		fxs[7]=fxs[7]&0x7f;	}	for(i=0;i<8;i++)	{		write7279(0x97-i, fxs[i]);	}	write7279(0x97, fxs[0]);}WORD getkey(WORD st){	bool  data keyflaga;	uchar data keyz;	uint  data keysta;	keyflaga=getbit(st,0);	if(!havekey)	{		if(keyflaga)		{			keyz=read7279(CMD_READ);			havekey=1;			if(keyz==hlupkey)			{					keyzalt=hlupalt;					keyzsta=0;					keyzsta=hlupalt;			}			else if(keyz==hldownkey)			{				keyzalt=hldownalt;				keyzsta=0;				keyzsta=hldownalt;			}			else if(keyz==ddupkey)			{				keyzalt=ddupalt;				keyzsta=0;				keyzsta=ddupalt;			}			else if(keyz==dddownkey)			{				keyzalt=dddownalt;				keyzsta=0;				keyzsta=dddownalt;			}			else if(keyz==vupkey)			{				keyzalt=vupalt;				keyzsta=0;				keyzsta=vupalt;			}			else if(keyz==vdownkey)			{				keyzalt=vdownalt;				keyzsta=0;				keyzsta=vdownalt;			}		}		else		{			keyzalt=0;			keyzsta=0;		}	}	else	{		if(!keyflaga)		{			havekey=0;			keyzsta=0;		}	}	keysta=(keyzalt<<8)+keyzsta;	return	keysta;}

⌨️ 快捷键说明

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