📄 disp_control.c
字号:
0x30,0xF1,0x80,0xFC,0x20,0x63,0x00,0x70,
0x40,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,/*"股",2*/
/* (32 X 32 , 宋体 )*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x40,0x04,0x00,
0x00,0x70,0x84,0x00,0x00,0xE0,0xE4,0x00,
0x00,0xC1,0xC6,0x00,0x00,0xC1,0x82,0x00,
0x01,0x81,0x83,0x00,0x01,0x83,0x01,0x00,
0x03,0x02,0x01,0x80,0x03,0x06,0x00,0xC0,
0x07,0x84,0x00,0xE0,0x07,0x0C,0x00,0x70,
0x0B,0x08,0x00,0x3C,0x1B,0x10,0x00,0x9C,
0x13,0x27,0xFF,0xC0,0x23,0x40,0xC1,0x80,
0x43,0x00,0xC1,0x80,0x03,0x00,0xC1,0x80,
0x03,0x00,0x81,0x80,0x03,0x01,0x81,0x80,
0x03,0x01,0x81,0x80,0x03,0x01,0x81,0x80,
0x03,0x01,0x01,0x80,0x03,0x03,0x01,0x80,
0x03,0x06,0x01,0x80,0x03,0x04,0x01,0x00,
0x03,0x08,0x3F,0x00,0x03,0x10,0x0F,0x00,
0x03,0xE0,0x04,0x00,0x00,0x00,0x00,0x00,/*"份",3*/
/* (32 X 32 , 宋体 )*/
};
/*const unsigned char RXPE[4][128]= { //RXPE R(0) X(1) P(2) E(3)
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x3F,0xFF,0xFF,0x00,0x03,0xE0,0x0F,0xF0,
0x03,0xE0,0x01,0xF8,0x03,0xE0,0x00,0xFC,
0x03,0xE0,0x00,0xFC,0x03,0xE0,0x00,0xFC,
0x03,0xE0,0x00,0xF8,0x03,0xE0,0x01,0xF8,
0x03,0xE0,0x0F,0xE0,0x03,0xFF,0xFE,0x00,
0x03,0xE0,0xFC,0x00,0x03,0xE0,0x7C,0x00,
0x03,0xE0,0x3E,0x00,0x03,0xE0,0x1F,0x00,
0x03,0xE0,0x0F,0x80,0x03,0xE0,0x0F,0xC0,
0x03,0xE0,0x07,0xE0,0x03,0xE0,0x03,0xE0,
0x03,0xE0,0x01,0xF0,0x03,0xE0,0x00,0xF8,
0x3F,0xFE,0x00,0x7F,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x1F,0xFE,0x0F,0xFE,0x03,0xF0,0x01,0xF0,
0x01,0xF8,0x01,0xC0,0x00,0xF8,0x03,0x80,
0x00,0x7C,0x07,0x00,0x00,0x3E,0x0E,0x00,
0x00,0x1F,0x1C,0x00,0x00,0x0F,0xB8,0x00,
0x00,0x07,0xF0,0x00,0x00,0x03,0xE0,0x00,
0x00,0x01,0xF0,0x00,0x00,0x03,0xF8,0x00,
0x00,0x07,0x7C,0x00,0x00,0x0E,0x3E,0x00,
0x00,0x1C,0x1F,0x00,0x00,0x38,0x0F,0x80,
0x00,0x70,0x07,0xC0,0x00,0xE0,0x07,0xE0,
0x01,0xC0,0x03,0xF0,0x03,0xC0,0x01,0xF8,
0x3F,0xF0,0x0F,0xFF,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x3F,0xFF,0xFF,0x00,0x03,0xE0,0x07,0xF0,
0x03,0xE0,0x01,0xF8,0x03,0xE0,0x00,0xFC,
0x03,0xE0,0x00,0x7E,0x03,0xE0,0x00,0x7E,
0x03,0xE0,0x00,0x7E,0x03,0xE0,0x00,0xFC,
0x03,0xE0,0x01,0xF8,0x03,0xE0,0x07,0xE0,
0x03,0xFF,0xFF,0x00,0x03,0xE0,0x00,0x00,
0x03,0xE0,0x00,0x00,0x03,0xE0,0x00,0x00,
0x03,0xE0,0x00,0x00,0x03,0xE0,0x00,0x00,
0x03,0xE0,0x00,0x00,0x03,0xE0,0x00,0x00,
0x03,0xE0,0x00,0x00,0x03,0xE0,0x00,0x00,
0x3F,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x3F,0xFF,0xFF,0xF0,0x03,0xE0,0x01,0xF8,
0x03,0xE0,0x00,0x7C,0x03,0xE0,0x00,0x1C,
0x03,0xE0,0x00,0x0E,0x03,0xE0,0x00,0x00,
0x03,0xE0,0x03,0x80,0x03,0xE0,0x03,0x80,
0x03,0xE0,0x07,0x80,0x03,0xFF,0xFF,0x80,
0x03,0xE0,0x07,0x80,0x03,0xE0,0x03,0x80,
0x03,0xE0,0x03,0x80,0x03,0xE0,0x00,0x00,
0x03,0xE0,0x00,0x00,0x03,0xE0,0x00,0x00,
0x03,0xE0,0x00,0x07,0x03,0xE0,0x00,0x0E,
0x03,0xE0,0x00,0x1E,0x03,0xE0,0x00,0xFC,
0x3F,0xFF,0xFF,0xF8,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
}; */ //图形方式
const unsigned char Character[2][16]={//显示字符行列式,高位在前(PCtoLCD)
0x00,0x00,0x00,0x1C,0x22,0x22,0x22,0x1C,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*,0*/
// C(0)
0x00,0x00,0x00,0x3E,0x42,0x42,0x80,0x80,
0x80,0x80,0x80,0x42,0x44,0x38,0x00,0x00,/*"C",1*/
};
const unsigned char chinese[2][32]={//先上-下,再左-右(精电);行列式,高位在前(PCtoLCD)
// 荣(0)
0x04,0x04,0x7F,0x04,0x04,0x7F,0x41,0x81,
0x3F,0x01,0x03,0x05,0x09,0x31,0xC1,0x01,
0x40,0x40,0xFE,0x40,0x40,0xFE,0x04,0x00,
0xFC,0x80,0x40,0x20,0x18,0x0E,0x04,0x00,/*"荣",0*/
//信(1)
0x08,0x0C,0x18,0x17,0x30,0x33,0x50,0x93,
0x10,0x13,0x12,0x12,0x12,0x13,0x12,0x00,
0x80,0x60,0x40,0xFE,0x00,0xF8,0x00,0xF8,
0x00,0xF8,0x08,0x08,0x08,0xF8,0x08,0x00,/*"信",1*/
};
/*const unsigned char MCT1[1][8]={
{0x06,0x09,0x09,0x06,0x00,0x00,0x00,0x00}//显示摄氏度o
};//图形方式*/
const unsigned char CGTAB[8]={
0x06,0x09,0x09,0x06,0x00,0x00,0x00,0x00,//o
};//文本方式
//const unsigned char MCT[3][128]= { //MCT
//
// 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
// 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
// 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
// 0xFF,0xC0,0x01,0xFF,0x0F,0xE0,0x03,0xF8,
// 0x0F,0xE0,0x03,0xF8,0x0F,0xF0,0x07,0xF8,
// 0x0F,0xF0,0x07,0xF8,0x0F,0xF8,0x0F,0xF8,
// 0x0E,0xF8,0x0E,0xF8,0x0E,0xF8,0x1E,0xF8,
// 0x0E,0x7C,0x1C,0xF8,0x0E,0x7C,0x3C,0xF8,
// 0x0E,0x7E,0x38,0xF8,0x0E,0x3E,0x78,0xF8,
// 0x0E,0x3F,0x70,0xF8,0x0E,0x1F,0x70,0xF8,
// 0x0E,0x1F,0xE0,0xF8,0x0E,0x0F,0xE0,0xF8,
// 0x0E,0x0F,0xC0,0xF8,0x0E,0x0F,0xC0,0xF8,
// 0x0E,0x07,0xC0,0xF8,0x0E,0x07,0x80,0xF8,
// 0xFF,0xE3,0x8F,0xFF,0x00,0x00,0x00,0x00,
// 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
// 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"M",0*/
// /* (32 X 32 , 宋体, 加粗 )*/
// 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
// 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
// 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
// 0x00,0x07,0xFF,0x38,0x00,0x7E,0x03,0xF8,
// 0x01,0xF8,0x00,0x7C,0x03,0xE0,0x00,0x3C,
// 0x07,0xC0,0x00,0x1C,0x0F,0x80,0x00,0x0E,
// 0x1F,0x80,0x00,0x00,0x1F,0x00,0x00,0x00,
// 0x3F,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,
// 0x3F,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,
// 0x3F,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,
// 0x1F,0x80,0x00,0x00,0x1F,0x80,0x00,0x0E,
// 0x0F,0xC0,0x00,0x0C,0x07,0xE0,0x00,0x38,
// 0x03,0xF0,0x00,0x70,0x00,0xFC,0x03,0xC0,
// 0x00,0x0F,0xFE,0x00,0x00,0x00,0x00,0x00,
// 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
// 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"C",1*/
// /* (32 X 32 , 宋体, 加粗 )*/
// 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
// 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
// 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
// 0x0F,0xFF,0xFF,0xF8,0x0F,0x03,0xE0,0x7C,
// 0x1E,0x03,0xE0,0x1C,0x1C,0x03,0xE0,0x0C,
// 0x38,0x03,0xE0,0x0E,0x00,0x03,0xE0,0x00,
// 0x00,0x03,0xE0,0x00,0x00,0x03,0xE0,0x00,
// 0x00,0x03,0xE0,0x00,0x00,0x03,0xE0,0x00,
// 0x00,0x03,0xE0,0x00,0x00,0x03,0xE0,0x00,
// 0x00,0x03,0xE0,0x00,0x00,0x03,0xE0,0x00,
// 0x00,0x03,0xE0,0x00,0x00,0x03,0xE0,0x00,
// 0x00,0x03,0xE0,0x00,0x00,0x03,0xE0,0x00,
// 0x00,0x03,0xE0,0x00,0x00,0x03,0xE0,0x00,
// 0x00,0x3F,0xFE,0x00,0x00,0x00,0x00,0x00,
// 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
// 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"T",2*/
// /* (32 X 32 , 宋体, 加粗 )*/
//};
//--------------------------------------------------------------------------------------------
//******************************************************************
//写入EEPROM中一个字****************************
void write_word(unsigned int addr,unsigned int dataSource)
{//擦除EEPROM中一个字
NVMCON=0x4044;
addr=addr&0xFFFF;
NVMADRU=0x7F;
NVMADR=addr;
asm volatile("push SR");
asm volatile("mov #0x00e0,w0");
asm volatile("ior SR");
NVMKEY=0x55;
NVMKEY=0xAA;
NVMCONbits.WR=1;
asm volatile("pop SR");
while(NVMCONbits.WR==1);
//将数据写入EEPROM写锁存器中
TBLPAG=0x7F;
WREG4=addr; //注意这里WREG1 与WREG0赋值顺序不能颠倒
WREG5=dataSource;
asm volatile("TBLWTL.W W5,[w4]");
//将数据写入EEPROM
NVMCON=0x4004;
asm volatile("push SR");
asm volatile("mov #0x00e0,w0");
asm volatile("ior SR");
NVMKEY=0x55;
NVMKEY=0xAA;
NVMCONbits.WR=1;
while(NVMCONbits.WR==1);
asm volatile("pop SR");
NVMCONbits.WREN=0;
}
//******************************************************************
//读EEPROM中的一个字
int read_eeprom(unsigned int addr)
{int value;
TBLPAG=0x7F;
WREG0=addr;
asm volatile("TBLRDL.W [W0],W4");
value=WREG4;
return value;
}
/***********************************************************
函数名称:延时函数
函数功能:
入口参数:
出口参数:
备 注:
***********************************************************/
void delay(uint cunt)
{
uint i;
for(i=cunt;i>1;i--);
}
void yanshi()
{
unsigned int i,j;
for(i=0;i<0x08;i++)
{
for(j=0;j<0xffff;j++); //asm("CLRWDT");//WDTCN=0xA5;
}
}
/***********************************************************************/
void tran_require(uint data)//发送中断1
{
data_length=1;
com1=data; //
tran1_com();
}
/**********************************************************************/
void tran_master(uint data)//发送中断0
{
data_length=1;
com1=data; //发送在主画面下标志
tran_com();
}
/********************************************************************/
void count_factor()
{
long uint temp,temp1; //计算有功、无功功率变量
P_factor=cosa;
temp=U_a_value/1000*I_a_value;
temp1=temp*cosa/100;
power_kw=temp1*1.732;
temp1=temp*sina/100;
power_kvar=temp1*1.732;
}
//--------------------------------------------------------------
//定时器1中断程序
//-------------------------------------------------------------
void __attribute__((interrupt, no_auto_psv))_T1Interrupt(void) //timer1 interrupt 10ms
{
IFS0bits.T1IF=0; //清除定时器1的中断标志
time_count++;
switch(status)
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -