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

📄 6963.h

📁 123 311111111111111111111111
💻 H
📖 第 1 页 / 共 2 页
字号:

#include <pic168xa.h>

bank1 unsigned int  wdv[9]={0,0,0,0,0,0,0,0,0} ;
bank1 unsigned int  wdi[9]={0,0,0,0,0,0,0,0,0} ;
bank1 unsigned int  jjk;
bank1 unsigned int  Dis_set[5];
bank1 unsigned int  stvdata,stidata;
bank2 unsigned char mov=0;
bank2 unsigned char ds_rtimer[6];
bank2 unsigned char test1_7[8]={ 0,0,0,0,0,0,0,0};	
bank2 unsigned char buff[4];
bank3 unsigned char cod=1;
bank3 unsigned char clockmouse=0;
bank3 unsigned char clk[6];
bank3 unsigned char xdisreal[]={0,15,0,15,0,15,0,15};
bank3 unsigned char ydisreal[]={2,2,3,3,4,4,5,5,};
bit  Shan_Bit;
bit  Min_Bit;   //分钟到
bit  clocktab=0;
bit  bclock=0;
//bank1  unsigned char tbuf;
//bank1  disbuff[8]={0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x33} ;  //1-9,,,S
unsigned char cccmod[9]={0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11};
////////////////////////////////////////

void  Delay_us(int i);
void  Delay_ms(int i);
void  Delay_Ims(int i);
void  checkbusy(void);
void  Write_Cmd(unsigned char CMDMODE);
void  Write_Data(unsigned char DATAMODE);
void  Com_One(uchar D1,uchar C1);
void  Com_Two(uchar D1,uchar D2,uchar C1);
void  Com_None(uchar C1);
void  ClearScreen(void);
void  ShowHZ(unsigned char lin,unsigned char column,unsigned int hzcode);
void  Lcd_init();
void  Write_asc(unsigned char x,unsigned char y,unsigned char code_asc);
void  diplayhzset();
void  displayset(unsigned int vdata,unsigned int idata ,unsigned int  ttimer ,unsigned char rtimer ,unsigned int edata,unsigned char  mouse );
void  zjdisplay();
void  zijianreal();
void  dis_real_tt(unsigned char i,unsigned char k);
void  dis_dis();
void  dis_real(unsigned int tvdata,unsigned int tidata ,unsigned char  chan   );
void  fun(unsigned int temp) ;
//void dis_real_rr(unsigned char h1,unsigned char h2,unsigned char m1,unsigned char m2,unsigned char xx);
//void  dis_real_rr();
void dis_real_rr(unsigned char xx);
void  mouse(unsigned char mov);
//void dis_real_rr(unsigned char hh1,unsigned char hh2,unsigned char mm1,unsigned char mm2,unsigned char xx);//显示时实时间
void  disclock (unsigned char clockmm );
void  dis_comd(unsigned char i);
void  dis_real_rrs();
void  dis_endtimer();
void  dis_tongxin();
////////////////////////////////////////
//#define   LineChar   30 

unsigned char const HZTable[][32]={
//0     1     2     3     4     5     6     7    8     9     10    11    12    13    14    15     
//设    置    电    压    流    充    时    间   记    录    分    钟    正    在    总    过 
//16    17    18    19    20    21    22    23   24    25    26  
//欠    满    自    检    状    态    查    到   通    信    
{0x01,0xF0,0x21,0x10,0x11,0x10,0x11,0x10,    //0 设
0x01,0x10,0x02,0x0E,0xF4,0x00,0x13,0xF8,
0x11,0x08,0x11,0x10,0x10,0x90,0x10,0xA0,
0x14,0x40,0x18,0xB0,0x13,0x0E,0x0C,0x04,},

{0x3F,0xF8,0x24,0x48,0x3F,0xF8,0x01,0x00,    // 1置
0x7F,0xFC,0x01,0x00,0x1F,0xF0,0x10,0x10,
0x1F,0xF0,0x10,0x10,0x1F,0xF0,0x10,0x10,
0x1F,0xF0,0x10,0x14,0xFF,0xFE,0x00,0x00,},

{0x02,0x00,0x02,0x00,0x02,0x10,0x7F,0xF8,    // 2电
0x42,0x10,0x42,0x10,0x7F,0xF0,0x42,0x10,
0x42,0x10,0x7F,0xF0,0x42,0x10,0x02,0x00,
0x02,0x04,0x02,0x04,0x01,0xFC,0x00,0x00,},

{0x00,0x08,0x3F,0xFC,0x20,0x80,0x20,0x80,    // 3压
0x20,0x80,0x20,0x80,0x20,0x88,0x2F,0xFC,
0x20,0x80,0x20,0xA0,0x20,0x98,0x20,0x88,
0x40,0x80,0x40,0x84,0x9F,0xFE,0x00,0x00,},

{0x00,0x80,0x40,0x48,0x37,0xFC,0x10,0x40,    // 4流
0x80,0x90,0x61,0x08,0x27,0xFC,0x08,0x04,
0x11,0x50,0x21,0x50,0xE1,0x50,0x21,0x50,
0x21,0x52,0x21,0x52,0x22,0x4E,0x24,0x40,},

{0x02,0x00,0x01,0x00,0x01,0x04,0xFF,0xFE,    // 5充
0x02,0x00,0x04,0x40,0x08,0x20,0x1F,0xF0,
0x04,0x50,0x04,0x40,0x04,0x40,0x04,0x40,
0x08,0x42,0x08,0x42,0x10,0x3E,0x60,0x00,},



{0x00,0x08,0x04,0x08,0x7E,0x08,0x44,0x08,    // 6时
0x47,0xFE,0x44,0x08,0x44,0x08,0x7C,0x88,
0x44,0x48,0x44,0x48,0x44,0x08,0x44,0x08,
0x7C,0x08,0x44,0x48,0x00,0x28,0x00,0x10,},

{0x20,0x04,0x1B,0xFE,0x08,0x04,0x40,0x24,    // 7间
0x4F,0xF4,0x48,0x24,0x48,0x24,0x48,0x24,
0x4F,0xE4,0x48,0x24,0x48,0x24,0x48,0x24,
0x4F,0xE4,0x48,0x24,0x40,0x14,0x40,0x08,},

{0x00,0x00,0x20,0x08,0x17,0xFC,0x10,0x08,    // 8记
0x00,0x08,0x00,0x08,0xF0,0x08,0x13,0xF8,
0x12,0x08,0x12,0x00,0x12,0x00,0x12,0x02,
0x16,0x02,0x1A,0x02,0x11,0xFE,0x00,0x00,},

{0x00,0x10,0x3F,0xF8,0x00,0x10,0x00,0x10,    // 9录
0x1F,0xF0,0x00,0x10,0x00,0x14,0xFF,0xFE,
0x01,0x08,0x11,0x10,0x09,0xA0,0x05,0x40,
0x09,0x20,0x11,0x1E,0x65,0x04,0x02,0x00,},

{0x00,0x80,0x04,0x80,0x04,0x40,0x08,0x40,    // 10分
0x08,0x20,0x10,0x10,0x20,0x08,0x4F,0xEE,
0x84,0x24,0x04,0x20,0x04,0x20,0x04,0x20,
0x04,0x20,0x08,0x20,0x11,0x40,0x20,0x80,},

{0x10,0x20,0x10,0x20,0x10,0x20,0x1C,0x24,    // 11钟
0x21,0xFE,0x21,0x24,0x7D,0x24,0x91,0x24,
0x11,0x24,0xFD,0xFC,0x11,0x24,0x10,0x20,
0x14,0x20,0x18,0x20,0x10,0x20,0x00,0x20,},

{0x00,0x08,0x7F,0xFC,0x01,0x00,0x01,0x00,    // 12正
0x01,0x00,0x01,0x00,0x11,0x10,0x11,0xF8,
0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x00,
0x11,0x00,0x11,0x04,0xFF,0xFE,0x00,0x00,},

{0x02,0x00,0x02,0x00,0x02,0x04,0xFF,0xFE,    // 13在
0x04,0x00,0x04,0x40,0x08,0x40,0x08,0x50,
0x13,0xF8,0x30,0x40,0x50,0x40,0x90,0x40,
0x10,0x40,0x10,0x44,0x17,0xFE,0x10,0x00,},

{0x10,0x10,0x08,0x20,0x04,0x40,0x00,0x10,    // 14总
0x1F,0xF8,0x10,0x10,0x10,0x10,0x10,0x10,
0x1F,0xF0,0x10,0x10,0x02,0x00,0x51,0x84,
0x50,0x92,0x90,0x12,0x0F,0xF0,0x00,0x00,},

{0x00,0x10,0x40,0x10,0x20,0x10,0x17,0xFC,    // 15过
0x00,0x10,0x00,0x10,0xF1,0x10,0x10,0x90,
0x10,0x90,0x10,0x10,0x10,0x10,0x10,0x50,
0x10,0x20,0x28,0x06,0x47,0xFC,0x00,0x00,},

{0x08,0x00,0x08,0x00,0x08,0x00,0x1F,0xFC,    // 16欠
0x10,0x04,0x21,0x08,0x41,0x10,0x81,0x00,
0x02,0x80,0x02,0x80,0x04,0x40,0x04,0x40,
0x08,0x20,0x10,0x10,0x20,0x0E,0xC0,0x04,},

{0x41,0x20,0x31,0x24,0x1F,0xFE,0x01,0x20,    // 17满
0x80,0x08,0x6F,0xFC,0x21,0x20,0x01,0x24,
0x1F,0xFE,0x29,0x24,0xE9,0x24,0x2A,0xD4,
0x2C,0x0C,0x28,0x04,0x28,0x14,0x28,0x08,},

{0x01,0x00,0x02,0x00,0x04,0x10,0x1F,0xF8,    // 18自
0x10,0x10,0x10,0x10,0x1F,0xF0,0x10,0x10,
0x10,0x10,0x10,0x10,0x1F,0xF0,0x10,0x10,
0x10,0x10,0x10,0x10,0x1F,0xF0,0x10,0x10,},

{0x10,0x40,0x10,0x40,0x10,0xA0,0x10,0xA0,    // 19检
0xFD,0x10,0x12,0x0E,0x35,0xF4,0x30,0x00,
0x58,0x40,0x56,0x48,0x91,0x4C,0x11,0x48,
0x11,0x50,0x10,0x04,0x1F,0xFE,0x10,0x00,},

{0x08,0x40,0x08,0x50,0x08,0x48,0x48,0x40,    // 20状
0x28,0x44,0x2F,0xFE,0x08,0x40,0x08,0x40,
0x18,0xA0,0x28,0xA0,0x49,0x10,0xC9,0x10,
0x09,0x08,0x0A,0x0E,0x0C,0x04,0x08,0x00,},

{0x01,0x00,0x01,0x04,0xFF,0xFE,0x01,0x00,    // 21态
0x02,0x80,0x04,0x40,0x0A,0x30,0x31,0x0E,
0xC0,0x04,0x02,0x00,0x29,0x10,0x29,0x08,
0x28,0x24,0x48,0x24,0x07,0xE0,0x00,0x00,},

{0x01,0x00,0x01,0x04,0xFF,0xFE,0x05,0x40,    // 22查
0x09,0x20,0x11,0x10,0x3F,0xFE,0xD0,0x14,
0x10,0x10,0x1F,0xF0,0x10,0x10,0x10,0x10,
0x1F,0xF0,0x00,0x04,0xFF,0xFE,0x00,0x00,},

{0x01,0x04,0x7F,0x84,0x08,0x04,0x10,0x24,    // 23到
0x22,0x24,0x41,0x24,0x7F,0xA4,0x08,0xA4,
0x0A,0x24,0x7F,0x24,0x08,0x24,0x08,0x24,
0x08,0x04,0x0F,0x84,0xF8,0x14,0x00,0x08,},

{0x03,0xF8,0x40,0x10,0x30,0xA0,0x10,0x48,    // 24通
0x03,0xFC,0x02,0x48,0xF2,0x48,0x13,0xF8,
0x12,0x48,0x12,0x48,0x13,0xF8,0x12,0x48,
0x12,0x68,0x2A,0x50,0x44,0x06,0x03,0xFC,
},

{0x08,0x80,0x08,0x44,0x0F,0xFE,0x10,0x00,    // 25信
0x10,0x08,0x37,0xFC,0x50,0x00,0x90,0x08,
0x17,0xFC,0x10,0x00,0x13,0xF8,0x12,0x08,
0x12,0x08,0x12,0x08,0x13,0xF8,0x12,0x08,},

};

const unsigned char Shuzi[][16]=
{
0x00,0x00,0x00,0x18,0x24,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x24,0x18,0x00,0x00,//数字  0  :  8*16
0x00,0x00,0x00,0x10,0x70,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x7C,0x00,0x00,//数字  1  : 8*16
0x00,0x00,0x00,0x3C,0x42,0x42,0x42,0x04,0x04,0x08,0x10,0x20,0x42,0x7E,0x00,0x00,//数字  2  : 8*16
0x00,0x00,0x00,0x3C,0x42,0x42,0x04,0x18,0x04,0x02,0x02,0x42,0x44,0x38,0x00,0x00,//数字  3  : 8*16
0x00,0x00,0x00,0x04,0x0C,0x14,0x24,0x24,0x44,0x44,0x7E,0x04,0x04,0x1E,0x00,0x00,//数字  4  : 8*16
0x00,0x00,0x00,0x7E,0x40,0x40,0x40,0x58,0x64,0x02,0x02,0x42,0x44,0x38,0x00,0x00,//数字  5  : 8*16
0x00,0x00,0x00,0x1C,0x24,0x40,0x40,0x58,0x64,0x42,0x42,0x42,0x24,0x18,0x00,0x00,//数字  6  : 8*16
0x00,0x00,0x00,0x7E,0x44,0x44,0x08,0x08,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x00,//数字  7  : 8*16
0x00,0x00,0x00,0x3C,0x42,0x42,0x42,0x24,0x18,0x24,0x42,0x42,0x42,0x3C,0x00,0x00,//数字  8  : 8*16
0x00,0x00,0x00,0x18,0x24,0x42,0x42,0x42,0x26,0x1A,0x02,0x02,0x24,0x38,0x00,0x00,//数字  9  : 8*16
};


//**************************************数字显示程序
void ShowShuzi(unsigned char lin,unsigned char column,unsigned char ch)
{
	unsigned char i;
	unsigned int StartAddr;
	StartAddr=0x0800+column*30 +lin; //定位起始行

	for(i=0;i<16;i++)
	{
		Com_Two( (unsigned char)(StartAddr), (unsigned char)(StartAddr>>8), 0x24); //set address
		Com_One( Shuzi[ ch ][i], 0xc0);
		StartAddr=StartAddr + 30;
	}
}
//**************************************************
void  Delay_us(int i)
{
    while(--i);
 //   asm("nop");
}	
//**************************************************
//# pragma interrupt_level 1
void  Delay_ms(int i)
{
	unsigned int k,j;
	for (j=0;j<i;j++)
	{		
		for (k=0;k<120;k++);		
	}
}
//**************************************************
void  Delay_Ims(int i)
{
	unsigned int k,j;
	for (j=0;j<i;j++)
	{		
		for (k=0;k<120;k++);		
	}
}
//************************************
void checkbusy(void)
{
	unsigned char data0;
	unsigned int i;
	i=0;
	Lcd_CD=1;
	Lcd_Ce=1;
	Lcd_Ce=0;
	Lcd_Rd=0;
	Lcd_Wr=1;
	TRISD=0XFF;
	asm("nop");
	asm("nop");
	data0=PORTD;
	Lcd_Rd=1;
	Lcd_Ce=1;
	while((data0&0x03)!=0x03)
	{
	i++;
	if(i==500) {i=0;goto aa;}
	}
aa:	
	TRISD=0X00;
	asm("nop");
	asm("nop");
}
//*****************************************************************************//
//*************************检查自动读入或者自动写入状态标志位******************//
//*****************************************************************************//
void Write_Cmd(unsigned char CMDMODE)//写命令
{
	checkbusy();
	Lcd_CD=1;//写指令通道
	Lcd_Ce=0;
	Lcd_Wr=0;
	Lcd_Rd=1;
	PORTD=CMDMODE;
	
	Lcd_Ce=1;
	Lcd_Wr=1;	
}
//************************************
void Write_Data(unsigned char DATAMODE)//写数据
{
	checkbusy();
	Lcd_CD=0;//写数据通道
	Lcd_Ce=0;
	Lcd_Wr=0;
	Lcd_Rd=1;
	PORTD=DATAMODE;

	Lcd_Ce=1;
	Lcd_Wr=1;
}	

//**************************单参数函数
void Com_One(uchar D1,uchar C1)
{
	Write_Data(D1);
	Write_Cmd(C1);
}
//**************************双参数函数
void Com_Two(uchar D1,uchar D2,uchar C1)
{
	Write_Data(D1);
	Write_Data(D2);
	Write_Cmd(C1);
}
//**************************无参数函数
void Com_None(uchar C1)
{
	Write_Cmd(C1);
}
//*************************
void ClearScreen(void)
{
	unsigned int i;
	Com_Two(0x00,0x00,0x24);//图像地址指针设置
	Com_None(0xb0);//自动些操作
	for(i=0x00;i<0x2000;i++) 	
	Write_Data(0x00); //写入 data=0;清除显示内存
	Com_None(0xb2);// 自动写结束
}
/*-----------------------------------------------------------------------------------*/
//显示8*16字符
//lin:行(0-7), column: 列(0-15)
//ch:字符代码(标准ASCII码)
//*************************汉字显示程序
void ShowHZ(unsigned char lin,unsigned char column,unsigned int hzcode)
{
	unsigned char i;
	unsigned int StartAddr;
	StartAddr=0x0800+column*30 + lin; 
	for(i=0;i<16;i++)
	{
	Com_Two( (unsigned char)(StartAddr), (unsigned char)(StartAddr>>8), 0x24);
	Com_One( HZTable[hzcode][i*2], 0xc0); 
	Com_One( HZTable[hzcode][i*2+1], 0xc0); 	StartAddr=StartAddr + 30;
	}
}
//************************************************************************
//**************************初始化液晶屏幕********************************
void Lcd_init()
{
	Com_None(0x90);//显示关
	Delay_ms(10);
	Com_None(0xa0);//设置光标形状
	Delay_us(1);
	Com_Two(0x00,0x00,0x40);//设置文本区首地址
	Com_Two(0x1E,0x00,0x41);//设置文本区域(宽度)
	Com_Two(0x00,0x08,0x42);//设置图形首地址/////////////0x800
	Com_Two(0x1e,0x00,0x43);//设置图形区域(宽度)
	Delay_us(1);
	Com_None(0x80);	//CGRAM方式,OR模式
	Delay_us(200);
	Com_None(0x9f);//图形显示开,文本显示开,光标显示开,光标闪烁开
	Delay_ms(100);
}
//*********************Lcd_ASC写入程序***********************************
void  Write_asc(unsigned char x,unsigned char y,unsigned char code_asc)
{
		unsigned int StartAddr;
		StartAddr=0+y*30 +x;
		Com_Two( (unsigned char)(StartAddr), (unsigned char)(StartAddr>>8), 0x24);
		Com_One( code_asc, 0xc0); 
}	

//****************************取得数字temp的各个位值******************
void fun(unsigned int temp) 
{ 
	unsigned char i;               // /*提取的次数*/
	unsigned int MidData;
	MidData=temp;
	
	for (i = 0; i < 4; i++) 
	{
	buff[i] = MidData % 10;         // /*提取当前变量最低位*/
	MidData = MidData / 10;            // /*去掉当前最低位值*/
	}
}
//**********************汉字显示*****************************
//xy
void diplayhzset()
{
	ShowHZ(12,0,0);
	
	ShowHZ(12,0,0);
	ShowHZ(16,0,1);   //第一行“设置”
	
	ShowHZ(0,32,2);
	ShowHZ(2,32,3);   //第2行“电压"
	Write_asc(10,5,'V'-0x20);
	
	ShowHZ(0,48,2); 
	ShowHZ(2,48,4);   //第2行“电流”
	Write_asc(10,7,'A'-0x20);
	
	ShowHZ(16,16,5);
	ShowHZ(18,16,17);
	ShowHZ(20,16,2);
	ShowHZ(22,16,4);   //第3行“充满电流”
	Write_asc(29,3,'A'-0x20);
	
	ShowHZ(16,32,5);
	ShowHZ(18,32,2);
	ShowHZ(20,32,6);
	ShowHZ(22,32,7);   //第3行“充电时间”
	
	ShowHZ(16,48,8);
	ShowHZ(18,48,9);
	ShowHZ(20,48,6);
	ShowHZ(22,48,7);   //第4行“记录时间”
	Write_asc(27,7,'M'-0x20);
}
//xy

⌨️ 快捷键说明

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