📄 sucessfull.c
字号:
#include <reg52.h>
#include <absacc.h>
#include <string.h>
#include <intrins.h>
#include <math.h>
sbit BUSY = P3^0;
// LCD128*64 数据线
#define LCD12864DataPort P0
#define uint unsigned int
#define uchar unsigned char
#define ulong unsigned long
const float RB = 0.000375 ;
const float VB = 51.4 ; //电阻电压放大倍数
float VX = 1.0; //电压放大倍数
//打印位定义区
sbit TX = P3^0;
sbit CS = P3^1;
bit bfdayin=0; //设置位 置0 设置电流 ,置1 设置打印
//AD位定义区
sbit adclk = P3^2; //ad0832时钟信号源
sbit ado = P3^3; //ad0832输出值
sbit adi = P3^3; //ad0832输出值
sbit adcs = P1^0; //adc0832片选
// LCD128*64 I/O 信号管脚 定义区
sbit di = P1^6; // 数据\指令 选择
sbit rw = P1^7; // 读\写 选择
sbit en = P1^3; // 读\写使能
sbit cs1 = P1^5; // 片选1,低有效(前64列)
sbit cs2 = P1^4; // 片选2,低有效(后64列)
sbit ksz = P2^5; // 设置/打印 复用键
sbit ktest = P2^4; // 测试键
sbit selc = P1^1; //100A/200A切换
sbit jav0 = P2^0; // 测试0档位
sbit jav1 = P2^1; // 测试1档位
sbit jav2 = P2^2; // 测试2档位
sbit jav3 = P2^3; // 测试3档位
sbit kstr = P1^2;//启动恒流源
ulong iZHENGSHU=0;
ulong iXIAOSHU=0; /*保存浮点数的整数和小数*/
data uchar ucT _at_ 0x007f ; //暂存第一次读的8位数据
uchar uczTable[4]={0,0,0,0}; //浮点显示数据缓冲区
uchar ucItmp; //电流临时存贮变量
unsigned char code ASC[]={
0x08,0xF8,0x88,0xC0,0x28,0x18,0x08,0x00,0x20,0x3F,0x20,0x01,0x26,0x38,0x20,0x00, //K
0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x20,0x3F,0x20,0x00,0x03,0x00,0x00,0x00, //F
0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, //-
0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00, //6
0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00, //1
0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00, //0
0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00, //4
0x00,0x00,0xC0,0x38,0xE0,0x00,0x00,0x00,0x20,0x3C,0x23,0x02,0x02,0x27,0x38,0x20, //A
0x10,0x12,0x92,0x7E,0x12,0x12,0xFE,0x12,0x12,0x10,0xFC,0x00,0x00,0xFF,0x00,0x00,
0x40,0x42,0x49,0x48,0x48,0x48,0x49,0x7E,0x48,0x48,0x48,0x4A,0x4C,0x4B,0x40,0x00 //型
};
unsigned char code hui[][16]={
{0x00,0xFE,0x02,0x02,0xF2,0x12,0x12,0x12,0x12,0x12,0xF2,0x02,0x02,0xFE,0x00,0x00},
{0x00,0x7F,0x40,0x40,0x47,0x44,0x44,0x44,0x44,0x44,0x47,0x40,0x40,0x7F,0x00,0x00},/*"回",0*/
{0x00,0x7E,0x22,0xE2,0x3E,0x20,0x10,0x08,0x0F,0xB4,0x44,0xA4,0x9C,0x04,0x00,0x00},
{0x20,0x3F,0x20,0x1F,0x11,0x11,0x02,0x7F,0x23,0x22,0x22,0x22,0x7E,0x03,0x01,0x00},/*"路",1*/
{0x00,0x00,0xF8,0x48,0x48,0x48,0x48,0xFF,0x48,0x48,0x48,0x48,0xF8,0x00,0x00,0x00},
{0x00,0x00,0x0F,0x04,0x04,0x04,0x04,0x3F,0x44,0x44,0x44,0x44,0x4F,0x40,0x70,0x00},/*"电",2*/
{0x00,0xFF,0x11,0x29,0xC7,0x01,0xFE,0x22,0x22,0x22,0x22,0x22,0xFE,0x00,0x00,0x00},
{0x00,0xFF,0x02,0x04,0x43,0x40,0x7F,0x42,0x42,0x42,0x42,0x42,0x7F,0x40,0x40,0x00},/*"阻",3*/
{0x08,0x31,0x86,0x60,0x00,0xFE,0x02,0xF2,0x02,0xFE,0x00,0xF8,0x00,0x00,0xFF,0x00},
{0x04,0xFC,0x03,0x00,0x80,0x47,0x30,0x0F,0x10,0x67,0x00,0x07,0x40,0x80,0x7F,0x00},/*"测",4*/
{0x40,0x42,0xDC,0x08,0x00,0x90,0x90,0x90,0x90,0x90,0xFF,0x10,0x12,0x1C,0x10,0x00},
{0x00,0x00,0x7F,0x20,0x10,0x20,0x20,0x1F,0x10,0x10,0x01,0x06,0x18,0x20,0x78,0x00},/*"试",5*/
{0x40,0x20,0xF0,0x0C,0x03,0x00,0x38,0xC0,0x01,0x0E,0x04,0xE0,0x1C,0x00,0x00,0x00},
{0x00,0x00,0xFF,0x00,0x40,0x40,0x20,0x10,0x0B,0x04,0x0B,0x10,0x20,0x60,0x20,0x00},/*"仪",6*/
};
unsigned char code yang[][16]={
{0x08,0x08,0x08,0xFF,0x88,0x48,0x02,0x42,0x62,0xD2,0x4A,0xC6,0x42,0x40,0xC0,0x00},
{0x02,0x42,0x81,0x7F,0x00,0x08,0x48,0x44,0x23,0x10,0x0C,0x43,0x80,0x40,0x3F,0x00},/*"扬",0*/
{0x00,0xE0,0x00,0x00,0xFF,0x20,0xC0,0x00,0xFE,0x10,0x60,0x80,0x00,0xFF,0x00,0x00},
{0x01,0x80,0x60,0x18,0x07,0x00,0x00,0x00,0x7F,0x00,0x00,0x01,0x00,0xFF,0x00,0x00},/*"州",1*/
{0x10,0x12,0x92,0x72,0xFE,0x51,0x91,0x00,0x22,0xCC,0x00,0x00,0xFF,0x00,0x00,0x00},
{0x04,0x02,0x01,0x00,0xFF,0x00,0x04,0x04,0x04,0x02,0x02,0x02,0xFF,0x01,0x01,0x00},/*"科",2*/
{0x00,0x10,0x3E,0x10,0x10,0xF0,0x9F,0x90,0x90,0x92,0x94,0x1C,0x10,0x10,0x10,0x00},
{0x40,0x20,0x10,0x88,0x87,0x41,0x46,0x28,0x10,0x28,0x27,0x40,0xC0,0x40,0x00,0x00},/*"发",3*/
{0x00,0x00,0xF8,0x48,0x48,0x48,0x48,0xFF,0x48,0x48,0x48,0x48,0xF8,0x00,0x00,0x00},
{0x00,0x00,0x0F,0x04,0x04,0x04,0x04,0x3F,0x44,0x44,0x44,0x44,0x4F,0x40,0x70,0x00},/*"电",4*/
{0x00,0x20,0x10,0x8C,0xA7,0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,0x24,0x04,0x04,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x30,0x40,0xF0,0x00},/*"气",5*/
};
unsigned char code dier[][16]= {
{0x40,0x42,0x4C,0xC4,0x00,0x22,0xAA,0xAA,0xAA,0xBF,0xAA,0xAA,0xAA,0x22,0x20,0x00},
{0x00,0x00,0x00,0x7F,0x20,0x10,0xFF,0x0A,0x0A,0x0A,0x4A,0x8A,0x7F,0x00,0x00,0x00},/*"请",0*/
{0x40,0x41,0xCE,0x04,0x00,0x80,0x40,0xBE,0x82,0x82,0x82,0xBE,0xC0,0x40,0x40,0x00},
{0x00,0x00,0x7F,0x20,0x90,0x80,0x40,0x43,0x2C,0x10,0x10,0x2C,0x43,0xC0,0x40,0x00},/*"设",1*/
{0x00,0x20,0x2F,0xA9,0xA9,0xAF,0xE9,0xB9,0xA9,0xAF,0xA9,0xA9,0x2F,0x20,0x00,0x00},
{0x80,0x80,0x80,0xFF,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xFF,0x80,0x80,0x80,0x00},/*"置",2*/
{0x08,0x31,0x86,0x60,0x00,0xFE,0x02,0xF2,0x02,0xFE,0x00,0xF8,0x00,0x00,0xFF,0x00},
{0x04,0xFC,0x03,0x00,0x80,0x47,0x30,0x0F,0x10,0x67,0x00,0x07,0x40,0x80,0x7F,0x00},/*"测",3*/
{0x40,0x42,0xDC,0x08,0x00,0x90,0x90,0x90,0x90,0x90,0xFF,0x10,0x12,0x1C,0x10,0x00},
{0x00,0x00,0x7F,0x20,0x10,0x20,0x20,0x1F,0x10,0x10,0x01,0x06,0x18,0x20,0x78,0x00},/*"试",4*/
{0x00,0x00,0xF8,0x48,0x48,0x48,0x48,0xFF,0x48,0x48,0x48,0x48,0xF8,0x00,0x00,0x00},
{0x00,0x00,0x0F,0x04,0x04,0x04,0x04,0x3F,0x44,0x44,0x44,0x44,0x4F,0x40,0x70,0x00},/*"电",5*/
{0x10,0x60,0x01,0x86,0x60,0x04,0x44,0x64,0x55,0x4E,0x44,0x64,0xC4,0x04,0x04,0x00},
{0x04,0x04,0xFC,0x03,0x40,0x30,0x0F,0x00,0x00,0x7F,0x00,0x3F,0x40,0x40,0x70,0x00},/*"流",6*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x36,0x36,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*":",7*/
};
unsigned char code yibai[][16]={
{0x00,0x10,0x10,0xF8,0xF8,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x3F,0x20,0x20,0x00},/*"1",0*/
{0x00,0xE0,0xF0,0x18,0x08,0x18,0xF0,0xE0,0x00,0x0F,0x1F,0x30,0x20,0x30,0x1F,0x0F},/*"0",1*/
{0x00,0xE0,0xF0,0x18,0x08,0x18,0xF0,0xE0,0x00,0x0F,0x1F,0x30,0x20,0x30,0x1F,0x0F},/*"0",2*/
{0x00,0x00,0xC0,0xF8,0xF8,0xE0,0x00,0x00,0x20,0x3C,0x3F,0x23,0x02,0x27,0x3F,0x38}/*"A",3*/
};
uchar code xiaoxiea[]={0x00,0x00,0xC0,0x38,0xE0,0x00,0x00,0x00,0x20,0x3C,0x23,0x02,0x02,0x27,0x38,0x20};/*"A",0*/
unsigned char code erbai[][16]={
{0x00,0x70,0x78,0x08,0x08,0x88,0xF8,0x70,0x00,0x30,0x38,0x2C,0x26,0x23,0x31,0x30},/*"2",0*/
{0x00,0xE0,0xF0,0x18,0x08,0x18,0xF0,0xE0,0x00,0x0F,0x1F,0x30,0x20,0x30,0x1F,0x0F},/*"0",1*/
{0x00,0xE0,0xF0,0x18,0x08,0x18,0xF0,0xE0,0x00,0x0F,0x1F,0x30,0x20,0x30,0x1F,0x0F},/*"0",2*/
{0x00,0x00,0xC0,0xF8,0xF8,0xE0,0x00,0x00,0x20,0x3C,0x3F,0x23,0x02,0x27,0x3F,0x38},/*"A",3*/
};
unsigned char code start[][16]={
{0x00,0x02,0x02,0xC2,0x02,0x02,0x02,0x02,0xFE,0x82,0x82,0x82,0x82,0x82,0x02,0x00},
{0x20,0x20,0x20,0x3F,0x20,0x20,0x20,0x20,0x3F,0x20,0x20,0x20,0x20,0x20,0x20,0x00},/*"正",0*/
{0x00,0x04,0x04,0xC4,0x64,0x9C,0x87,0x84,0x84,0xE4,0x84,0x84,0x84,0x84,0x04,0x00},
{0x04,0x02,0x01,0x7F,0x00,0x20,0x20,0x20,0x20,0x3F,0x20,0x20,0x20,0x20,0x20,0x00},/*"在",1*/
{0x08,0x31,0x86,0x60,0x00,0xFE,0x02,0xF2,0x02,0xFE,0x00,0xF8,0x00,0x00,0xFF,0x00},
{0x04,0xFC,0x03,0x00,0x80,0x47,0x30,0x0F,0x10,0x67,0x00,0x07,0x40,0x80,0x7F,0x00},/*"测",2*/
{0x40,0x42,0xDC,0x08,0x00,0x90,0x90,0x90,0x90,0x90,0xFF,0x10,0x12,0x1C,0x10,0x00},
{0x00,0x00,0x7F,0x20,0x10,0x20,0x20,0x1F,0x10,0x10,0x01,0x06,0x18,0x20,0x78,0x00},/*"试",3*/
{0x00,0x00,0xFC,0x08,0x08,0x08,0x08,0xFF,0x08,0x08,0x08,0x08,0xFC,0x08,0x00,0x00},
{0x00,0x00,0x07,0x02,0x02,0x02,0x02,0xFF,0x02,0x02,0x02,0x02,0x07,0x00,0x00,0x00},/*"中",4*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x36,0x36,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*":",5*/
};
unsigned char code shuzi[][16]={
{0x08,0xF8,0xF8,0x88,0x88,0x88,0xF8,0x70,0x20,0x3F,0x3F,0x20,0x03,0x0F,0x3C,0x30},/*"R",0*/
{0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04},/*"=",0*/
{0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00},/*"0",0*/
{0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00},/*"1",1*/
{0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00},/*"2",2*/
{0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00},/*"3",3*/
{0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00},/*"4",4*/
{0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00},/*"5",5*/
{0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00},/*"6",6*/
{0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00},/*"7",7*/
{0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00},/*"8",8*/
{0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00},/*"9",9*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00},/*".",10*/
{0x00,0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x7F,0x04,0x08,0x08,0x04,0x07,0x08,0x04,0x00,0x00,0x00,0x00},/*"μ",11*/
{0x00,0x00,0xF0,0x08,0x04,0x02,0x02,0x02,0x02,0x02,0x04,0x08,0xF0,0x00,0x00,0x00},
{0x00,0x0E,0x08,0x09,0x0A,0x0C,0x00,0x00,0x00,0x0C,0x0A,0x09,0x08,0x0E,0x00,0x00},/*"Ω",12*/
{0x00,0x08,0x08,0xF8,0x08,0x08,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00},/*"I",13*/
};
uchar code chucuo[][16]={
{0x08,0x08,0x08,0xFF,0x88,0x68,0x24,0x2C,0xB4,0x25,0x26,0x34,0x2C,0x24,0x20,0x00},
{0x02,0x42,0x81,0x7F,0x02,0x82,0x8A,0x4E,0x53,0x32,0x12,0x2E,0x42,0xC2,0x02,0x00},/*"接",0*/
{0x40,0x60,0x58,0xC7,0x62,0x00,0x90,0x90,0x90,0xFF,0x90,0x92,0x9C,0x94,0x80,0x00},
{0x20,0x22,0x23,0x12,0x12,0x12,0x20,0x20,0x10,0x13,0x0C,0x14,0x22,0x40,0xF8,0x00},/*"线",1*/
{0x40,0x30,0x2C,0xE7,0x24,0x24,0x40,0x48,0x7F,0x48,0x48,0x7F,0x48,0x48,0x40,0x00},
{0x01,0x01,0x01,0xFF,0x41,0x21,0x00,0xFF,0x49,0x49,0x49,0x49,0x49,0xFF,0x00,0x00},/*"错",2*/
{0x40,0x41,0xCE,0x04,0x00,0x40,0x5F,0x51,0x51,0xD1,0x51,0x51,0x5F,0x40,0x00,0x00},
{0x00,0x00,0x3F,0x10,0x88,0x42,0x22,0x12,0x0A,0x07,0x0A,0x12,0x22,0xE2,0x42,0x00},/*"误",3*/
};
uchar code secjieguo[][16]={
{0x08,0x31,0x86,0x60,0x00,0xFE,0x02,0xF2,0x02,0xFE,0x00,0xF8,0x00,0x00,0xFF,0x00},
{0x04,0xFC,0x03,0x00,0x80,0x47,0x30,0x0F,0x10,0x67,0x00,0x07,0x40,0x80,0x7F,0x00},/*"测",0*/
{0x40,0x42,0xDC,0x08,0x00,0x90,0x90,0x90,0x90,0x90,0xFF,0x10,0x12,0x1C,0x10,0x00},
{0x00,0x00,0x7F,0x20,0x10,0x20,0x20,0x1F,0x10,0x10,0x01,0x06,0x18,0x20,0x78,0x00},/*"试",1*/
{0x20,0x30,0xAC,0x63,0x10,0x00,0x08,0x48,0x48,0x48,0x7F,0x48,0x48,0x48,0x08,0x00},
{0x22,0x23,0x22,0x12,0x12,0x00,0x00,0x7E,0x22,0x22,0x22,0x22,0x22,0x7E,0x00,0x00},/*"结",2*/
{0x00,0x00,0x00,0x3E,0x2A,0x2A,0x2A,0xFE,0x2A,0x2A,0x2A,0x3E,0x00,0x00,0x00,0x00},
{0x21,0x21,0x11,0x11,0x09,0x05,0x03,0xFF,0x03,0x05,0x09,0x09,0x11,0x31,0x11,0x00},/*"果",3*/
{0x00,0x10,0x10,0x12,0x14,0x1C,0x10,0xF0,0x9F,0x10,0x10,0x10,0x10,0xF8,0x10,0x00},
{0x00,0x00,0x40,0x20,0x10,0x08,0x06,0x01,0x00,0x11,0x26,0x40,0x20,0x1F,0x00,0x00},/*"为",4*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x36,0x36,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*":",5*/
};
void delay1ms(uchar ui) /* 延时函数,晶振为11.0592m*/
{
uint i,z,j;
for ( j=0; j< ui; j++)
for ( i=0; i < 2 ; i++ )
for ( z=0; z <100; z++);
}
void Lcd12864delay(unsigned int utmp)
{
unsigned int i=50,ui;
for ( ui=0 ; ui < utmp; ui++)
while( i ) i--;
}
void CheckState()
{
unsigned char dat;
di=0;
rw=1;
do{
LCD12864DataPort=0xff;
en=1; dat=LCD12864DataPort; en=0;
dat=0x90 & dat; //仅当第4,7位为0时才可操作
}while(!(dat==0x00));
}
void WriteByte(unsigned char dat)
{
unsigned char i =0;
CheckState();
di=1; rw=0;
en=1;
LCD12864DataPort=dat;
en=0;
}
void SendCommandToLCD(unsigned char command)
{
CheckState();
rw=0;di=0;
LCD12864DataPort=command;
en=1; en=0;
}
void SetPage(unsigned char page)
{
page=page & 0x07; // 0<=line<=7
page=page|0xb8; //1011 1xxx
SendCommandToLCD(page);
}
void SetColumn(unsigned char column)
{
column=column &0x3f; // 0=<column<=63
column=column | 0x40; //01xx xxxx
SendCommandToLCD(column);
}
void SetStartLine(unsigned char startline) //0--63
{
startline=startline & 0x07;
startline=startline|0xc0; //1100 0000
SendCommandToLCD(startline);
}
void SetOnOff(unsigned char onoff)
{
onoff=onoff & 0x01;
onoff=0x3e | onoff; //0011 111x
SendCommandToLCD(onoff);
}
void SelectScreen(unsigned char screen)
{
switch(screen)
{
case 0:
cs1=1;//全屏
cs2=1;
break;
case 1:
cs1=1;//左屏
cs2=0;
break;
case 2:
cs1=0;//右屏
cs2=1;
break;
}
}
void Show88(unsigned char lin,unsigned char column,unsigned char* address)
{
unsigned char i;
SetPage(lin);
SetColumn(column);
for(i=0;i<8;i++)
WriteByte( *address++);
}
void ShowChar(unsigned char lin,unsigned char column,unsigned char* address)
{
unsigned char li;
unsigned char *add;
add = address;
li= lin;
Show88(li ,column,add );
li++;
add = add + 8;
Show88(li,column,add );
}
void showhz(unsigned char lin,unsigned char column,unsigned char* address)
{
unsigned char li , col;
unsigned char *add;
add = address;
li= lin;
col = column;
Show88(lin ,column,add );
add = add + 8;
col = col + 8;
Show88(li,col,add );
li++;
add = add + 8;
Show88(li,column,add );
add = add + 8;
Show88(li,col,add );
}
void ClearScreen(unsigned char screen)
{
unsigned char i,j;
SelectScreen(screen);
for(i=0;i<8;i++)
{
SetPage(i);
for(j=0;j<64;j++)
{
WriteByte(0x00);
}
}
}
void InitLCD() //初始化LCD
{
Lcd12864delay( 30); //硬件复位延时
SetOnOff(0); // 关显示
ClearScreen(1); // 清左屏
ClearScreen(2); // 清右屏
SelectScreen(0);
SetOnOff(1); //开显示
SelectScreen(0);
SetStartLine(0); //开始行:0
}
void lcdyibai()
{
//显示 “ 100A”
unsigned char *yibaitmp , coltmp , i;
yibaitmp = yibai;
SelectScreen( 1 );
coltmp = 48;
for ( i=0; i < 2; i++)
{
ShowChar(4,coltmp,yibaitmp);
coltmp = coltmp + 8;
yibaitmp = yibaitmp +16;
}
SelectScreen( 2 );
coltmp = 0;
for ( i=0; i < 2; i++)
{
ShowChar(4,coltmp,yibaitmp);
coltmp = coltmp + 8;
yibaitmp = yibaitmp +16;
}
}
void lcderbai() //显示 “200A"
{
unsigned char *erbaitmp , coltmp , i;
erbaitmp = erbai;
SelectScreen( 1 );
coltmp = 48;
for ( i=0; i < 2; i++)
{
ShowChar(4,coltmp,erbaitmp);
coltmp = coltmp + 8;
erbaitmp = erbaitmp +16;
}
SelectScreen( 2 );
coltmp = 0;
for ( i=0; i < 2; i++)
{
ShowChar(4,coltmp,erbaitmp);
coltmp = coltmp + 8;
erbaitmp = erbaitmp +16;
}
}
void adinit(uchar ucflag) //ad初始化函数 ucflag为ad读电流 电压标志 0为电流 1为电压
{
adcs = 1;
adi = 0;
adclk = 0;
adcs = 0;
adi = 1;
delay1ms(1);
adclk = 1;
if ( ucflag == 0 )
{
adi = 1;
adclk = 0;
delay1ms(1);
adclk = 1;
adi = 0 ;
adclk = 0;
delay1ms(1);
adclk = 1;
}
if ( ucflag == 1 )
{
adi = 1;
adclk = 0;
delay1ms(1);
adclk = 1;
adi = 1 ;
adclk = 0;
delay1ms(1);
adclk = 1;
}
}
//电流采样测试
void adDushu(uchar *ucmp, uchar uc1) /*ad0832读数据It Ut*/
{
uchar ucXhuan; //依次读8位数据
adinit(uc1);
delay1ms(1);
ucT = 0;
ado = 1;
adclk = 1;
delay1ms(1);
adclk = 0;
for (ucXhuan = 8; ucXhuan > 0; ucXhuan--)
{
ucT = ucT | ado;
ucT = ucT << 1;
adclk = 1;
delay1ms(1);
adclk = 0;
}
for ( ucXhuan = 0; ucXhuan < 8; ucXhuan++)
{
adclk = 1;
delay1ms(1);
adclk = 0;
}
*ucmp = ucT;
}
//浮点模块
void chucun_ch(uchar cTmp,uchar ucwei ) /*存贮一位字符函数*/
{
//ctmp 为插入数 ucwei为插入位置 uczTable 为数据缓冲
uczTable[ucwei] = cTmp;
}
void div_zhengshu_xiaoshu( float fTmp ) /*将浮点数分离成整数和小数,并将小数扩大一千倍*/
{
float fx,fz,ftm;
ftm = fTmp;
fx=modf(ftm, &fz);
iZHENGSHU=(long)fz;
fx=fx*1000;
iXIAOSHU=(long)fx;
}
long mod_1000( ulong* ulTmp) /*分离出千位数,并返回余下的部分*/
{
ulong ult1;
ult1 = *ulTmp / 1000;
*ulTmp = *ulTmp % 1000;
return ult1;
}
long mod_10( ulong* ulTmp) /*分离出十位数,并返回余下的部分*/
{
ulong ult1;
ult1 = *ulTmp / 10;
*ulTmp = *ulTmp % 10;
return ult1;
}
long mod_100( ulong* ulTmp) /*分离出百位数,并返回余下的部分*/
{
ulong ult1;
ult1 = *ulTmp / 100;
*ulTmp = *ulTmp % 100;
return ult1;
}
void number_char ( ulong ulTmp ,bit flag) /*浮点数转字符串函数*/
{
//ultmp 为待分离的数,flag为1 分离整数 为0分离小数
ulong ul1000, ul100, ul10;
uchar ucT=0;
if ( flag == 1 )
{
if ( ulTmp >= 1000 )
{
goto lab1;
}
if ( ulTmp >= 100 )
{
goto lab2;
}
if ( ulTmp >= 10 )
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -