disp_control.c
来自「此程序中有LCD显示」· C语言 代码 · 共 1,437 行 · 第 1/5 页
C
1,437 行
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 + =
减小字号Ctrl + -
显示快捷键?