/*PCB机板增加读写FM24C64函数PAST 2018 1 6 21:30 CODE 28435*/
/*程序编辑按X+X-Y+Y-快速显示数据 测试完成 程序编号 程序行号 界面重新编排
参数设置 系统设置XY分子分母 光标位置选择 选中数字闪烁
进入手动操作 按返回退出 按空格键 数据清除L4346 13775061792*****/
#include <reg52.h>
#include <intrins.h>
#include <stdlib.h>
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
typedef unsigned char BYTE;
typedef unsigned int WORD;
uchar kcounter,kstatus; //按键计数标志 按键状态标志
char XCursor,YCursor; //XY光标
uchar SysCursor; //系统光标计数器
uint Prog_Number; //程序编号
uint Frequency; //频率
uint Prog_LineNum; //编程程序行号
uint RunLineNum; //运行程序行号
uchar Speed; //速度百分比
uint Frequency; //频率HZ
sbit cd=P7^7; //PIN 56
sbit ce=P4^5; //PIN 57
sbit rst=P4^6; //PIN 58
sbit wr=P7^6; //PIN 55
sbit rd=P7^5; //PIN 54
sbit fs=P6^0; //PIN 5
sbit OUT1=P2^7; //PIN 52 按键总线例
sbit OUT2=P7^4; //PIN 53
sbit OUT3=P5^2; //PIN 64
sbit OUT4=P5^3; //PIN 1
sbit IN1=P2^4; //PIN49 按键总线横
sbit IN2=P2^5; //PIN50
sbit IN3=P2^6; //PIN51
sbit IN4=P6^1; //PIN6
sbit IN5=P6^2; //PIN7
sbit IN6=P6^3; //PIN8
sbit IN7=P5^5; //PIN20
sbit STOP=P3^2; //停止
sbit INSERT=P3^3; //插入
sbit CP1=P2^2; //PIN47
sbit DIR1=P2^3; //PIN48
sbit EN1=P7^2; //PIN39
sbit CP2=P2^1; //PIN46
sbit DIR2=P7^1; //PIN38
sbit EN2=P7^0; //PIN37
sbit CP3=P3^5; //PIN34
sbit DIR3=P5^1; //PIN33
sbit EN3=P4^0; //PIN22
sbit INTPUT0=P2^0; //PIN45
sbit INTPUT1=P4^4; //PIN44
sbit INTPUT2=P4^3; //PIN43
sbit INTPUT3=P4^2; //PIN42
sbit INTPUT4=P4^1; //PIN41
sbit INTPUT5=P7^3; //PIN40
sbit INTPUT6=P3^7; //PIN36
sbit INTPUT7=P3^6; //PIN35
sbit OUTPUT0=P1^0; //PIN9
sbit OUTPUT1=P1^1; //PIN10
sbit OUTPUT2=P4^7; //PIN11
sbit OUTPUT3=P1^2; //PIN12
sbit SCL=P1^7; //PIN17 外部EEPROM 24C64PIN6
sbit SDA=P5^4; //PIN18 外部EEPROM 24C64PIN5
uchar i,j,k,l,m,n; //显示存储缓冲
ulong Key_val; //个位存储缓冲
ulong B_Data; //个位
ulong T_Data; //十位
ulong H_Data; //百位
ulong K_Data; //千位
ulong TK_Data; //万位
ulong M_Data; //十万位
bit ManuSet_Flag; //手动设定运行标志
bit ManuFast_Flag; //手动高速反显标志
bit JogOperating_Flag; //点动操作反显标志
bit JogOperatSet_Flag; //点动操作设定标志
bit ProgAdmin_Flag; //程序管理循环检测标志
bit ProgEdit_Flag; //程序编辑循环检测标志
bit ProgRead_Flag; //程序读入循环检测标志
bit ProgSave_Flag; //程序保存循环检测标志
bit ProgSaveas_Flag; //程序另存循环检测标志
bit DataSet_Flag; //参数设置循环检测标志
bit SystemDataSet_Flag; //系统参数设置循环检测标志
bit SystemSeifTest_Flag; //系统自检循环检测标志
bit SystemSet_Flag; //系统数据设置循环检测标志 分子分母最高时间点位起速
bit IOSet_Flag; //IO设置循环检测标志
bit XPosiNegate_Flag; //X值正负标志
bit YPosiNegate_Flag; //Y值正负标志
#define dataport P0 //P0为数据口
uint counter,val,vals,valm; //
uint aa=0,bb=0;
ulong D_Data; //点动输入值
ulong Buff_Data; //缓冲处理变量
ulong XBuff_Data; //X缓冲处理变量
ulong YBuff_Data; //Y缓冲处理变量
long X_Data,Y_Data; //XY当前值
long XRun_Data; //X设定值
long YRun_Data; //Y设定值
long DRun_Data; //点动运行值
sbit Rom_CS=P1^4; /*1字库IC接口定义Rom_CS就是字库IC的CS#*/
sbit Rom_SCK=P1^6; /*2字库IC接口定义:Rom_SCK就是字库IC的SCK*/
sbit Rom_OUT=P1^3; /*字库IC接口定义:Rom_OUT就是字库IC的OUT*/
sbit Rom_IN=P1^5; /*字库IC接口定义:Rom_IN就是字库IC的IN*/
uchar fontbuff[32]; //字库中读出的32位数据存放缓冲数组单元
uchar newbuff[32]; //字库中读出的32位数据转换缓冲存储
bdata char com_data; /********/
sbit mos_bit=com_data^7; /****高位****/
sbit low_bit=com_data^0; /****低位****/
void display_manufast(void);
void jog_operating(void);
void Dis_XMParameter(void); //显示X分子参数
void Dis_XDParameter(void); //显示X分母参数
void Dis_YMParameter(void); //显示Y分子参数
void Dis_YDParameter(void); //显示Y分母参数
void Dis_PPParameter(void); //显示点位参数
void Dis_HParameter(void); //显示最高参数
void Dis_SParameter(void); //显示起速参数
void Dis_TParameter(void); //显示时间参数
void Negate_XMParameter(void);//X分子参数闪烁
void Negate_XDParameter(void);//X分母参数闪烁
void Negate_YMParameter(void);//Y分子参数闪烁
void Negate_YDParameter(void);//Y分母参数闪烁
void Negate_PPParameter(void);//点位参数闪烁
void Negate_HParameter(void); //最高参数闪烁
void Negate_SParameter(void); //起速参数闪烁
void Negate_TParameter(void); //时间参数闪烁
uchar code Clearbuff[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,0X00,0X00,0X00,0X00,0X00,0X00,0X00
};
uint counter;
int code fontadd[32]={0,8,1,9,2,10,3,11, //竖置横排转横置横排点阵排列表
4,12,5,13,6,14,7,15,
16,24,17,25,18,26,19,27,
20,28,21,29,22,30,23,31};
int code xsadd[38]={0,16,32,48,64,80,96,112,128,144,160,176,192,208,224,240,256,272,288,304, //0-9清除XY.TPF%
320,336,352,368,384,400,416,432,448,464,480,496,512,528,544,560,576,592};//0-9首地址 每字16字节
uchar code tab0[618]={
0X00,0X3C,0X42,0X42,0X42,0X42,0X42,0X42,
0X42,0X42,0X42,0X42,0X42,0X42,0X3C,0X00,//0
0X00,0X30,0X50,0X10,0X10,0X10,0X10,0X10,
0X10,0X10,0X10,0X10,0X10,0X10,0X38,0X00,//1
0X00,0X3C,0X42,0X02,0X02,0X02,0X04,0X08,
0X10,0X20,0X20,0X40,0X40,0X42,0X7E,0X00,//2
0X00,0X3C,0X42,0X02,0X02,0X02,0X02,0X3C,
0X02,0X02,0X02,0X02,0X02,0X42,0X3C,0X00,//3
0X00,0X0C,0X14,0X24,0X24,0X44,0X44,0X84,
0X84,0XFE,0X04,0X04,0X04,0X04,0X04,0X00,//4
0X00,0X7E,0X40,0X40,0X40,0X40,0X7C,0X02,
0X02,0X02,0X02,0X02,0X42,0X42,0X3C,0X00,//5
0X00,0X3C,0X42,0X40,0X40,0X40,0X7C,0X42,
0X42,0X42,0X42,0X42,0X42,0X42,0X3C,0X00,//6
0X00,0X3E,0X42,0X04,0X04,0X08,0X08,0X10,
0X10,0X10,0X10,0X10,0X10,0X10,0X10,0X00,//7
0X00,0X3C,0X42,0X42,0X42,0X42,0X42,0X3C,
0X42,0X42,0X42,0X42,0X42,0X42,0X3C,0X00,//8
0X00,0X3C,0X42,0X42,0X42,0X42,0X42,0X3C,
0X02,0X02,0X02,0X02,0X02,0X42,0X3C,0X00,//9
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"清除"10,*/
0X00,0X00,0X42,0X42,0X24,0X24,0X18,0X18,
0X18,0X18,0X24,0X24,0X42,0X42,0X00,0X00,//X 11
0X00,0X00,0X41,0X41,0X22,0X14,0X08,0X08,
0X08,0X08,0X08,0X08,0X08,0X08,0X00,0X00,//Y 12
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X60,0X60,0X00,//. 13
0X00,0X3C,0X42,0X42,0X40,0X40,0X40,0X3C,//S 14
0X02,0X02,0X02,0X02,0X42,0X42,0X3C,0X00,
0X00,0X7F,0X08,0X08,0X08,0X08,0X08,0X08,//T 15
0X08,0X08,0X08,0X08,0X08,0X08,0X08,0X08,
0X00,0X7C,0X42,0X42,0X42,0X42,0X7C,0X40,//P 16
0X40,0X40,0X40,0X40,0X40,0X40,0X40,0X00,
0X00,0X7E,0X40,0X40,0X40,0X40,0X7C,0X40,//F 17
0X40,0X40,0X40,0X40,0X40,0X40,0X40,0X00,
0X00,0X22,0X52,0X52,0X24,0X04,0X08,0X08,//% 18
0X10,0X10,0X20,0X24,0X4A,0X4A,0X44,0X00,
0X00,0X42,0X42,0X62,0X62,0X52,0X52,0X4A,//N 19
0X4A,0X46,0X46,0X42,0X42,0X42,0X42,0X00,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,//填充
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, // 20
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,//清除光标
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,//21
0X00,0X40,0X40,0X40,0X40,0X40,0X40,0X40,//L
0X40,0X40,0X40,0X40,0X40,0X40,0X7E,0X00,//22
0X00,0X00,0X00,0X00,0X00,0X5C,0X62,0X42,//n
0X42,0X42,0X42,0X42,0X42,0X42,0X42,0X00,//23
0X00,0X1C,0X08,0X08,0X08,0X08,0X08,0X08,//I
0X08,0X08,0X08,0X08,0X08,0X08,0X1C,0X08,//24
0X00,0X02,0X02,0X02,0X04,0X04,0X08,0X08,//斜杠/
0X10,0X10,0X20,0X20,0X40,0X40,0X40,0X00,//25
0X00,0X7F,0X7F,0X60,0X60,0X60,0X60,0X60,//方框左部
0X60,0X60,0X60,0X60,0X60,0X7F,0X7F,0X00,//26
0X00,0XFE,0XFE,0X06,0X06,0X06,0X06,0X06,//方框右部
0X06,0X06,0X06,0X06,0X06,0XFE,0XFE,0X00,//27
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,//:分号
0X00,0X00,0X60,0X60,0X00,0X60,0X60,0X00,//28
0X00,0X7F,0X7F,0X60,0X6F,0X6F,0X6F,0X6F,//方框加点左部
0X6F,0X6F,0X6F,0X6F,0X00,0X7F,0X7F,0X00,//29
0X00,0XFE,0XFE,0X06,0XF6,0XF6,0XF6,0XF6,//方框加点右部
0XF6,0XF6,0XF6,0XF6,0X06,0XFE,0XFE,0X00,//30
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3F,//-左部
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,//31
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0XFC,//-右部
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,//32
0X00,0X00,0X07,0X08,0X10,0X20,0X20,0X20,//空心圆左部
0X20,0X20,0X20,0X10,0X08,0X07,0X00,0X00,//33
0X00,0X00,0XE0,0X10,0X08,0X04,0X04,0X04,//空心圆右部
0X04,0X04,0X04,0X08,0X10,0XE0,0X00,0X00,//34
0X00,0X00,0X07,0X0F,0X1F,0X3F,0X3F,0X3F,//实心圆左部
0X3F,0X3F,0X3F,0X1F,0X0F,0X07,0X00,0X00,//35
0X00,0X00,0XE0,0XF0,0XF8,0XFC,0XFC,0XFC,//实心圆右部
0XFC,0XFC,0XFC,0XF8,0XF0,0XE0,0X00,0X00,//36
0X00,0X00,0X00,0X00,0X00,0X49,0X2A,0X1C,//*
0X08,0X1C,0X2A,0X49,0X00,0X00,0X00,0X00//37
};
uchar code tab1[16]={
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0XFF,//-
0XFF,0X00,0X00,0X00,0X00,0X00,0X00,0X00 //
};
/*------------延时子程序---------------------*/
void delay(unsigned int t)
{
unsigned int i,j;
for(i=0;i<t;i++)
for(j=0;j<100;j++);
}
/**************************************/
void start()
{
SDA=1;_nop_();_nop_();_nop_();_nop_();
SCL=1;_nop_();_nop_();_nop_();_nop_();
SDA=0;_nop_();_nop_();_nop_();_nop_();
SCL=0;_nop_();_nop_();_nop_();_nop_();
}
/***************************************/
void stop()
{
SDA=0;_nop_();_nop_();_nop_();_nop_();
SCL=1;_nop_();_nop_();_nop_();_nop_();
SDA=1;_nop_();_nop_();_nop_();_nop_();
}
/***************************************/
void ack()
{
SCL=1;_nop_();_nop_();_nop_();_nop_();
SCL=0;_nop_();_nop_();_nop_();_nop_();
}
/***************************************/
void shift8(char a)
{
data uchar i;
com_data=a;
for(i=0;i<8;i++)
{
SDA=mos_bit;
SCL=1;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
SCL=0;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
com_data=com_data*2;
}
}
/***************************************/
void delay_iic(int v)
{
int i,j;
for(i=1;i<v;i++)
{
for(j=0;j<50;j++)
{
_nop_();
}
}
}
/***************************************/
uchar rd_24C64(char a)
{
data uint i,command;
SDA=1;_nop_();_nop_();_nop_();_nop_();
SCL=0;_nop_();_nop_();_nop_();_nop_();
start();
command=160;
shift8(command); /*****写入160*****/
ack();
shift8(0X0F); /*****写高八位地址 高三位无效*****/
ack();
shift8(a); //
ack();
start();
command=161;
shift8(command); /*****写入161*****/
ack();
SDA=1;_nop_();_nop_();_nop_();_nop_();
for(i=0;i<8;i++)
{
com_data=com_data*2;
SCL=1;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
low_bit=SDA;
SCL=0;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
}
stop();
return(com_data);
}
/***************************************/
void wr_24C64(char a,char b) //a地址 b数据
{
data uint command;
_nop_();_nop_();_nop_();_nop_();_nop_();
SDA=1;_nop_();_nop_();_nop_();_nop_();
SCL=0;_nop_();_nop_();_nop_();_nop_();
start();
command=160;
shift8(command); /*****写入160*****/
ack();
shift8(0X0F); /*****写高八位地址 高三位无效*****/
ack();
shift8(a); /*****写入低八位地址 a *****/
ack();
shift8(b); /*****写入 b *****/
ack();
stop();
_nop_();_nop_();_nop_();_nop_();_nop_();
}
/************延时函数****************/
void delay_nms(unsigned int n)
{
unsigned int i,j;
for(i=n;i>0;i--)
{
for(j=2000;j>0;j--)
{
}
}
}
/***状态检查函数*指令,数据读写状态检查**/
void Lcd_Busy()
{
uchar dat;
do
{
dataport=0xff;
ce=0;
cd=1;
wr=1;
rd=0;
dat=dataport;
rd=1;
dat=0x03&dat;//STA0,STA1是否准备好
}
while(dat!=0x03);
}
/*******数据自动写状态检查*****************/
void autowcheck()
{
uchar dat;
do
{
dataport=0xff;
ce=0;
cd=1;
wr=1;
rd=0;
dat=dataport;
rd=1;
dat=0x08&dat;//STA3是否准备好
}
while(dat==0x00);
}
/*------输入/出函数,与T6963通讯------------------------------------------------*/
// 向数据口发Data
void wr_data(uchar dat)
{
ce=0;
cd=0;
dataport=dat;
wr=0;
wr=1;
}
/*****写有1个参数命令***********/
void wr_com1(uchar command)
{
Lcd_Busy();
cd=1;
ce=0;
rd=1;
dataport=command;
wr=0;
wr=1;
}
/******写有 3 个参数命令*******************/
void wr_com3(uchar data1, uchar data2, uchar command)
{
Lcd_Busy();
wr_data(data1);
Lcd_Busy();
wr_data(data2);
wr_com1(command);
}
/*--------------------------------*/
void lcd_address(uchar urow,uchar ucol) //urow 为1---30(240/8=30),,ucol为1---64
{
uint ipos;
uchar urow1;
uchar ucol1;
urow1=urow-1; // 1---30
ucol1=ucol-1; // 1---64
ipos=ucol1*30+urow1;
wr_com3(ipos&0xff,0x08+ipos/256,0x24);
}
/************清屏*******************/
void ClearScreen()
{
unsigned int i;
wr_com3(0x00,0x00,0x24); //设置指针地址0000H
wr_com1(0xb0); //设置自动写状态
for(i=0;i<9600;i++) //320X240/8=9600
{
autowcheck();
wr_data(0x00);
}
wr_com1(0xb2); //自动写结束
}
/**********初始化LCD****************/
void InitLCD()
{
cd=1;
wr=1;
rd=1;
wr_com3(0x00,0x00,0x40); //设置文本显示区域首地址GraphAddr
wr_com3(0x1e,0x00,0x41); //设置文本显示区域宽度:1eH 1 1110 16+8+4+2=30
wr_com3(0x00,0x08,0x42); //设置图形显示区域首地址GraphAddr
wr_com3(0x1e,0x00,0x43); //设置图形显示区域宽度:1eH
wr_com1(0XA0); //设置显示方式: CGROM方式 文本\图形 "或"
wr_com1(0X80); //设置显示方式: CGROM方式 文本\图形 "或"
wr_com1(0X9C); //显示开关设置,开文本和图形显示*/
ClearScreen();
}
/*显示字库处理汉字字符表汉字点阵代码*/
void display_chines_16x16(uchar urow,uchar ucol,uchar *dp)
{
uchar i,j,K;
K=0;
for(j=0;j<16;j++)
{
lcd_address(urow,ucol+j);
wr_com1(0xb0); //设置自动写状态
for(i=0;i<2;i++)
{
autowcheck(); /*写数据到LCD,每写完一个8位的数据后列地址自动加1*/
wr_data(*(dp+fontadd[K]));
K++;
}
wr_com1(0xb2); // 自动写结束
}
}
/********************************************************/
void display_graphic_16x8(uchar urow,uchar ucol,int mm,uchar *dp)
{
uchar j;
for(j=0;j<16;j++)
{
lcd_address(urow,ucol+j);
wr_com1(0xb0); //设置自动写状态
autowcheck(); /*写数据到LCD,每写完一个8位的数据后列地址自动加1*/
wr_data(*(dp+mm));
dp++;
wr_com1(0xb2); // 自动写结束
}
}
/*********反码显示字库处理汉字字符表汉字点阵代码*********/
void display_negate_16x16(uchar urow,uchar ucol,uchar *dp)
{
uchar i,j,K;
K=0;
for(j=0;j<16;j++)
{
lcd_address(urow,ucol+j);
wr_com1(0xb0); //设置自动写状态
for(i=0;i<2;i++)
{
autowcheck(); /*写数据到LCD,每写完一个8位的数据后列地址自动加1*/
wr_data(~*(dp+fontadd[K]));
K++;
}
wr_com1(0xb2); // 自动写结束
}
}
/***********字库芯片程序*************************/
/***********送指令到字库IC***********************/
void send_command_to_ROM( uchar datu )
{
uchar i;
for(i=0;i<8;i++)
{
if(datu&0x80)
Rom_IN=1;
else
Rom_IN=0;
datu=datu<<1;
Rom_SCK=0;
Rom_SCK=1;
}
}
/*****(从字库IC中取汉字或字符数据(1个字节****/
static uchar ROMDATA( )
{
uchar i;
uchar ret_data=0;
Rom_SCK=1;
for(i=0;i<8;i++)
{
Rom_OUT=1;
delay(1);
Rom_SCK=0;
ret_data=ret_data<<1;
if( Rom_OUT )
ret_data=ret_data+1;
else
ret_data=ret_data+0;
Rom_SCK=1;
}
return(ret_data);
}
/*从相关地址High地址高字节Mid地址中字节Low地址低字节中连续读出DataLen个字节的数据到 pBuff的地址*/
void BytesDataFromROM(uchar ADHigh,ADMid, ADLow,DataLen,uchar *pBuff)
{
uchar i;
Rom_CS = 0;
Rom_SCK=0;
send_command_to_ROM(0x03);
send_command_to_ROM(ADHigh);
send_command_to_ROM(ADMid);
send_command_to_ROM(ADLow);
for(i=0;i<DataLen;i++ )
*(pBuff+i)=ROMDATA();
Rom_CS=1;
}
/******************************************************************/
ulong fontaddr=0;
void displayGB2312(uchar MSB,uchar LSB)
{
uchar i= 0;
uchar addrHigh,addrMid,addrLow ;
if(((MSB>=0xb0) &&(MSB<=0xf7))&&(LSB>=0xa1))
{
/*国标简体(GB2312)汉字在字库IC中的地址由以下公式来计算:*/
/*Address = ((MSB - 0xB0) * 94 + (LSB - 0xA1)+ 846)*32+ BaseAdd;BaseAdd=0*/
/*由于担心8位单片机有乘法溢出问题,所以分三部取地址*/
fontaddr = (MSB-0xb0)*94;
fontaddr += (LSB-0xa1)+846;
fontaddr = (ulong)(fontaddr*32);
addrHigh = (fontaddr&0xff0000)>>16; /*地址的高8位,共24位*/
addrMid = (fontaddr&0xff00)>>8; /*地址的中8位,共24位*/
addrLow = fontaddr&0xff; /*地址的低8位,共24位*/
BytesDataFromROM(addrHigh,addrMid,addrLow,32,fontbuff);/*取32个字节的数据,存到"fontbuf[32]"*/
i+=2;
}
else if(((MSB>=0xa1) &&(MSB<=0xa3))&&(LSB>=0xa1))
{
/*国标简体(GB2312)15x16点的字符在字库IC中的地址由以下公式来计算:*/
/*Address = ((MSB - 0xa1) * 94 + (LSB - 0xA1))*32+ BaseAdd;BaseAdd=0*/
/*由于担心8位单片机有乘法溢出问题,所以分三部取地址*/
fontaddr = (MSB- 0xa1)*94;
fontaddr += (LSB-0xa1);
fontaddr = (ulong)(fontaddr*32);
addrHigh = (fontaddr&0xff0000)>>16; /*地址的高8位,共24位*/
addrMid = (fontaddr&0xff00)>>8; /*地址的中8位,共24位*/
addrLow = fontaddr&0xff; /*地址的低8位,共24位*/
BytesDataFromROM(addrHigh,addrMid,addrLow,32,fontbuff);/*取32个字节的数据,存到"fontbuf[32]"*/
i+=2;
}
else if((MSB>=0x20) &&(MSB<=0x7e))
{
unsigned char fontbuff[16];
fontaddr = (MSB- 0x20);
fontaddr = (unsigned long)(fontaddr*16);
fontaddr = (unsigned long)(fontaddr+0x3cf80);
addrHigh = (fontaddr&0xff0000)>>16;
addrMid = (fontaddr&0xff00)>>8;
addrLow = fontaddr&0xff;
BytesDataFromROM(addrHigh,addrMid,addrLow,16,fontbuff);/*取16个字节的数据,存到"fontbuf[32]"*/
i+=1;
}
else
i++;
}
/*汉字旋转子程序 将字库读出竖置横排结构的32字节数据
旋转90度成横置横排结构,转换后点阵结构为
左上部 右上部
左下部 右下部
显示时先取左上部最顶端数据,再取右上部顶端数据,
再取左上部第二行数据,右上部第二行数据 ......*****/
void fontchange(void)
{
uchar fontbuf;
uint buff,i,step;
for(step=0;step<8;step++) //16X16 左上角部分 总循环8步
{
fontbuf=0; //初始化 字节运算缓存器等于0
buff=0; //字节缓冲器初始化.
for(i=0;i<8;i++) //第一层循环,取竖置横排8字节第1个点。
{
fontbuf<<=1; //数据自右向左移动,共移动7位,合并一字节
buff=fontbuff[i]>>step; //将当前转换的列地址fontbuff[i]右移step步.
buff&=0X01; //保留最低位置,
fontbuf|=buff; //字节缓存器等于新的运算字节和最低位相与
}
newbuff[step]=fontbuf; //将当前运算的一字节新数据存当前运算地址.
}
for(step=0;step<8;step++) //16X16 右上角部分总循环8步
{
fontbuf=0; //初始化 字节运算缓存器等于0
buff=0; //字节缓冲器初始化.
for(i=0;i<8;i++) //第一层循环,取竖置横排8字节第1个点。
{
fontbuf<<=1; //数据自右向左移动,共移动7位,合并一字节
buff=fontbuff[i+8]>>step; //将当前转换的列地址fontbuff[i]右移step步.
buff&=0X01; //保留最低位置,
fontbuf|=buff; //字节缓存器等于新的运算字节和最低位相与
}
newbuff[step+8]=fontbuf; //将当前运算的一字节新数据存当前运算地址.
}
for(step=0;step<8;step++) //16X16 左下角部分总循环8步
{
fontbuf=0; //初始化 字节运算缓存器等于0
buff=0; //字节缓冲器初始化.
for(i=0;i<8;i++) //第一层循环,取竖置横排8字节第1个点。
{
fontbuf<<=1; //数据自右向左移动,共移动7位,合并一字节
buff=fontbuff[i+16]>>step; //将当前转换的列地址fontbuff[i]右移step步.
buff&=0X01; //保留最低位置,
fontbuf|=buff; //字节缓存器等于新的运算字节和最低位相与
}
newbuff[step+16]=fontbuf; //将当前运算的一字节新数据存当前运算地址.
}
for(step=0;step<8;step++) //16X16 右下角部分总循环8步
{
fontbuf=0; //初始化 字节运算缓存器等于0
buff=0; //字节缓冲器初始化.
for(i=0;i<8;i++) //第一层循环,取竖置横排8字节第1个点。
{
fontbuf<<=1; //数据自右向左移动,共移动7位,合并一字节
buff=fontbuff[i+24]>>step; //将当前转换的列地址fontbuff[i]右移step步.
buff&=0X01; //保留最低位置,
fontbuf|=buff; //字节缓存器等于新的运算字节和最低位相与
}
newbuff[step+24]=fontbuf; //将当前运算的一字节新数据存当前运算地址.
}
}
/************************************/
void write_val()
{
uchar h,l,m,n; /****个十百千代码缓冲**/
h=val/1000; //千位
l=(val-h*1000)/100; //百位
m=(val-h*1000-l*100)/10; //十位
n=val-h*1000-l*100-m*10; //个位
wr_24C64(1,n); /*写入个位*/
wr_24C64(2,m); /*写入十位*/
wr_24C64(3,l); /*写入百位*/
wr_24C64(4,h); /*写入千位*/
}
/************************************/
void read_val()
{
uchar k_data,h_data,t_data,b_data; //
b_data=rd_24C64(1);delay_iic(200); // 个位
t_data=rd_24C64(2);delay_iic(200); // 十位
h_data=rd_24C64(3);delay_iic(200); // 百位
k_data=rd_24C64(4);delay_iic(200); // 千位
vals=k_data*1000+h_data*100+t_data*10+b_data;
}
/***************频率显示****************/
void Dis_Frequency()
{
uchar h,i,j,k;
h=Frequency/1000;
i=Frequency-h*1000/100;
j=Frequency-h*1000-i*100/10;
k=Frequency-h*1000-i*100-j*10;
display_graphic_16x8(15,49,xsadd[17],tab0); // F
display_graphic_16x8(16,49,xsadd[h],tab0); // 0 临时数据
display_graphic_16x8(17,49,xsadd[i],tab0); // 0
display_graphic_16x8(18,49,xsadd[j],tab0); // 0
display_graphic_16x8(19,49,xsadd[k],tab0); // 0
}
/****************手动自动时间显示******************/
void Display_Time()
{
display_graphic_16x8(9,33,xsadd[15],tab0);// T
display_graphic_16x8(11,33,xsadd[0],tab0);// 0 临时数据
display_graphic_16x8(12,33,xsadd[0],tab0);// 0
display_graphic_16x8(13,33,xsadd[0],tab0);// 0
display_graphic_16x8(14,33,xsadd[0],tab0);// 0
}
/***************手动自动计数器显示*******************/
void DisplayCounter()
{
display_graphic_16x8(9,49,xsadd[16],tab0);// P
display_graphic_16x8(10,49,xsadd[0],tab0);// 0 临时数据
display_graphic_16x8(11,49,xsadd[0],tab0);// 0
display_graphic_16x8(12,49,xsadd[0],tab0);// 0
display_graphic_16x8(13,49,xsadd[0],tab0);// 0
}
/**************手动自动程序行号显示******************/
void Dis_LineNum() //程序行号
{
uchar l,m,n;
l=RunLineNum/100;
m=RunLineNum-l*100/10;
n=RunLineNum-l*100-m*10;
display_graphic_16x8(22,17,xsadd[23],tab0); // n
display_graphic_16x8(23,17,xsadd[l],tab0); // 0
display_graphic_16x8(24,17,xsadd[m],tab0); // 0
display_graphic_16x8(25,17,xsadd[n],tab0); // 0
}
/**************程序行号 编辑状态**********************/
void Dis_ProgLineNum() //程序行号
{
uint l,m,n;
l=Prog_LineNum/100;
m=(Prog_LineNum-l*100)/10; //
n=Prog_LineNum-l*100-m*10;
display_graphic_16x8(5,1,xsadd[23],tab0); // n
display_graphic_16x8(6,1,xsadd[l],tab0); // 0
display_graphic_16x8(7,1,xsadd[m],tab0); // 0
display_graphic_16x8(8,1,xsadd[n],tab0); // 0
}
/****************X方向实际位置显示******************/
void XDirRun_Data()
{
if(XPosiNegate_Flag==1) //X值正负标志
display_graphic_16x8(10,1,xsadd[21],tab0);//正
else
display_graphic_16x8(10,1,0,tab1);//负标志-
i=XBuff_Data/100000;
j=(XBuff_Data/10000)%10;
k=(XBuff_Data/1000)%10;
l=(XBuff_Data/100)%10;
m=(XBuff_Data/10)%10;
n=XBuff_Data%10;
display_graphic_16x8(9,1,xsadd[11],tab0);// X
display_graphic_16x8(11,1,xsadd[i],tab0);// 0
display_graphic_16x8(12,1,xsadd[j],tab0);// 0
display_graphic_16x8(13,1,xsadd[k],tab0);// 0
display_graphic_16x8(14,1,xsadd[l],tab0);// 0
display_graphic_16x8(15,1,xsadd[13],tab0);//.
display_graphic_16x8(16,1,xsadd[m],tab0);// 0
display_graphic_16x8(17,1,xsadd[n],tab0);// 0
}
/****************Y方向实际位置显示******************/
void YDirRun_Data()
{
if(YPosiNegate_Flag==1) //X值正负标志
display_graphic_16x8(10,17,xsadd[21],tab0);//正
else
display_graphic_16x8(10,17,0,tab1);//负标志-
i=YBuff_Data/100000;
j=(YBuff_Data/10000)%10;
k=(YBuff_Data/1000)%10;
l=(YBuff_Data/100)%10;
m=(YBuff_Data/10)%10;
n=YBuff_Data%10;
display_graphic_16x8(9,17,xsadd[12],tab0);// Y
display_graphic_16x8(11,17,xsadd[i],tab0);// 0
display_graphic_16x8(12,17,xsadd[j],tab0);// 0
display_graphic_16x8(13,17,xsadd[k],tab0);// 0
display_graphic_16x8(14,17,xsadd[l],tab0);// 0
display_graphic_16x8(15,17,xsadd[13],tab0);//.
display_graphic_16x8(16,17,xsadd[m],tab0);// 0
display_graphic_16x8(17,17,xsadd[n],tab0);// 0
}
/****************速度百分比显示******************/
void Dis_percentage()
{
display_graphic_16x8(21,49,xsadd[37],tab0);// *
display_graphic_16x8(22,49,xsadd[1],tab0);// 1
display_graphic_16x8(23,49,xsadd[0],tab0);// 0
display_graphic_16x8(24,49,xsadd[0],tab0);// 0
display_graphic_16x8(25,49,xsadd[18],tab0);// %
}
/**********************************/
void dis_data()
{
XDirRun_Data(); // X运行值
YDirRun_Data(); // Y运行值
DisplayCounter(); // 计数器
Display_Time(); // 时间
Dis_percentage(); // 百分比
}
/*****************开机界面显示****************************/
/***自动执行*手动操作*程序管理*参数设置*******************/
void display_a()
{
displayGB2312(0XD7,0XD4);
fontchange();
display_chines_16x16(1,1,newbuff);
displayGB2312(0XB6,0XAF);
fontchange();
display_chines_16x16(3,1,newbuff);
displayGB2312(0XD6,0XB4);
fontchange();
display_chines_16x16(5,1,newbuff);
displayGB2312(0XD0,0XD0);
fontchange();
display_chines_16x16(7,1,newbuff); //自动执行
displayGB2312(0XCA,0XD6);
fontchange();
display_chines_16x16(1,17,newbuff);
displayGB2312(0XB6,0XAF);
fontchange();
display_chines_16x16(3,17,newbuff);
displayGB2312(0XB2,0XD9);
fontchange();
display_chines_16x16(5,17,newbuff);
displayGB2312(0XD7,0XF7);
fontchange();
display_chines_16x16(7,17,newbuff); //手动操作
displayGB2312(0XB3,0XCC);
fontchange();
display_chines_16x16(1,33,newbuff);
displayGB2312(0XD0,0XF2);
fontchange();
display_chines_16x16(3,33,newbuff);
displayGB2312(0XB9,0XDC);
fontchange();
display_chines_16x16(5,33,newbuff);
displayGB2312(0XC0,0XED);
fontchange();
display_chines_16x16(7,33,newbuff); //程序管理
displayGB2312(0XB2,0XCE);
fontchange();
display_chines_16x16(1,49,newbuff);
displayGB2312(0XCA,0XFD);
fontchange();
display_chines_16x16(3,49,newbuff);
displayGB2312(0XC9,0XE8);
fontchange();
display_chines_16x16(5,49,newbuff);
displayGB2312(0XD6,0XC3);
fontchange();
display_chines_16x16(7,49,newbuff); //参数设置
dis_data(); //调用存储内部数据
Dis_Frequency();
Dis_LineNum(); //手动自动行号显示
}
/***手动高速*点动操作*回程序零*回机械零***********************/
void display_b()
{
display_manufast();
jog_operating();
displayGB2312(0XBB,0XD8); //回程序零
fontchange();
display_chines_16x16(1,33,newbuff);
displayGB2312(0XB3,0XCC);
fontchange();
display_chines_16x16(3,33,newbuff);
displayGB2312(0XD0,0XF2);
fontchange();
display_chines_16x16(5,33,newbuff);
displayGB2312(0XC1,0XE3);
fontchange();
display_chines_16x16(7,33,newbuff);
displayGB2312(0XBB,0XD8); //回机械零
fontchange();
display_chines_16x16(1,49,newbuff);
displayGB2312(0XBB,0XFA);
fontchange();
display_chines_16x16(3,49,newbuff);
displayGB2312(0XD0,0XB5);
fontchange();
display_chines_16x16(5,49,newbuff);
displayGB2312(0XC1,0XE3);
fontchange();
display_chines_16x16(7,49,newbuff);
}
/*******反显手动高速********************************/
void negatedisplay_manufast()
{
displayGB2312(0XCA,0XD6);
fontchange();
display_negate_16x16(1,1,newbuff); //手动高速
displayGB2312(0XB6,0XAF);
fontchange();
display_negate_16x16(3,1,newbuff);
displayGB2312(0XB8,0XDF);
fontchange();
display_negate_16x16(5,1,newbuff);
displayGB2312(0XCB,0XD9);
fontchange();
display_negate_16x16(7,1,newbuff);
}
/*******显示手动高速********************************/
void display_manufast()
{
displayGB2312(0XCA,0XD6);
fontchange();
display_chines_16x16(1,1,newbuff); //手动高速
displayGB2312(0XB6,0XAF);
fontchange();
display_chines_16x16(3,1,newbuff);
displayGB2312(0XB8,0XDF);
fontchange();
display_chines_16x16(5,1,newbuff);
displayGB2312(0XCB,0XD9);
fontchange();
display_chines_16x16(7,1,newbuff);
}
/*************反显点动操作***********************/
void negatejog_operating()
{
displayGB2312(0XB5,0XE3); //点动操作
fontchange();
display_negate_16x16(1,17,newbuff);
displayGB2312(0XB6,0XAF);
fontchange();
display_negate_16x16(3,17,newbuff);
displayGB2312(0XB2,0XD9);
fontchange();
display_negate_16x16(5,17,newbuff);
displayGB2312(0XD7,0XF7);
fontchange();
display_negate_16x16(7,17,newbuff);
}
/*************点动操作***********************/
void jog_operating()
{
displayGB2312(0XB5,0XE3); //点动操作
fontchange();
display_chines_16x16(1,17,newbuff);
displayGB2312(0XB6,0XAF);
fontchange();
display_chines_16x16(3,17,newbuff);
displayGB2312(0XB2,0XD9);
fontchange();
display_chines_16x16(5,17,newbuff);
displayGB2312(0XD7,0XF7);
fontchange();
display_chines_16x16(7,17,newbuff);
}
/****************************************/
void Prog_Edit()
{
displayGB2312(0XB3,0XCC);
fontchange();
display_chines_16x16(1,1,newbuff); //程序编辑
displayGB2312(0XD0,0XF2);
fontchange();
display_chines_16x16(3,1,newbuff);
displayGB2312(0XB1,0XE0);
fontchange();
display_chines_16x16(5,1,newbuff);
displayGB2312(0XBC,0XAD);
fontchange();
display_chines_16x16(7,1,newbuff);
}
/****************************************/
void Prog_Read()
{
displayGB2312(0XB3,0XCC);
fontchange();
display_chines_16x16(1,17,newbuff); //程序读入
displayGB2312(0XD0,0XF2);
fontchange();
display_chines_16x16(3,17,newbuff);
displayGB2312(0XB6,0XC1);
fontchange();
display_chines_16x16(5,17,newbuff);
displayGB2312(0XC8,0XEB);
fontchange();
display_chines_16x16(7,17,newbuff);
}
/****************************************/
void Prog_Save()
{
displayGB2312(0XB3,0XCC);
fontchange();
display_chines_16x16(1,33,newbuff); //程序保存
displayGB2312(0XD0,0XF2);
fontchange();
display_chines_16x16(3,33,newbuff);
displayGB2312(0XB1,0XA3);
fontchange();
display_chines_16x16(5,33,newbuff);
displayGB2312(0XB4,0XE6);
fontchange();
display_chines_16x16(7,33,newbuff);
}
/****************************************/
void Prog_Saveas()
{
displayGB2312(0XB3,0XCC);
fontchange();
display_chines_16x16(1,49,newbuff); //程序另存
displayGB2312(0XD0,0XF2);
fontchange();
display_chines_16x16(3,49,newbuff);
displayGB2312(0XC1,0XED);
fontchange();
display_chines_16x16(5,49,newbuff);
displayGB2312(0XB4,0XE6);
fontchange();
display_chines_16x16(7,49,newbuff);
}
/*************程序管理界面***************************/
void display_Prog() //程序管理界面
{
Prog_Edit();
Prog_Read();
Prog_Save();
Prog_Saveas();
}
/***************保存成功**************************************/
void Dis_SaveSuccess()
{
displayGB2312(0XB1,0XA3);
fontchange();
display_chines_16x16(15,1,newbuff);
displayGB2312(0XB4,0XE6);
fontchange();
display_chines_16x16(17,1,newbuff);
displayGB2312(0XB3,0XC9);
fontchange();
display_chines_16x16(19,1,newbuff);
displayGB2312(0XB9,0XA6);
fontchange();
display_chines_16x16(21,1,newbuff);
}
/*************显示点动输入数据*******************************/
void Dis_JogData()
{
display_graphic_16x8(21,33,xsadd[i],tab0);//
display_graphic_16x8(22,33,xsadd[j],tab0);//
display_graphic_16x8(23,33,xsadd[k],tab0);//
display_graphic_16x8(24,33,xsadd[l],tab0);//
display_graphic_16x8(25,33,xsadd[m],tab0);//
display_graphic_16x8(26,33,xsadd[n],tab0);//
display_graphic_16x8(15,33,xsadd[counter],tab0);//显示数据
}
/*************点动输入数据处理***********************/
void JogData_dealwith()//ijklmn
{
i=Buff_Data/100000;
j=(Buff_Data/10000)%10;
k=(Buff_Data/1000)%10;
l=(Buff_Data/100)%10;
m=(Buff_Data/10)%10;
n=Buff_Data%10;
}
/*************点动输入数据计算***********************/
void JogData_calculate (uchar Key_Counter,val)
{
if(Key_Counter==1)
{
B_Data=val; //个位 等于按键值
D_Data=B_Data; //点动缓冲器等于个位值
}
if(Key_Counter==2)
{
T_Data=B_Data; //十位 等于个位
B_Data=val; //个位 等于按键值
D_Data=10*T_Data+B_Data; //点动缓冲器等于
}
if(Key_Counter==3)
{
H_Data=T_Data; //百位等于十位
T_Data=B_Data; //十位等于个位
B_Data=val; //个位等于按键值
D_Data=100*H_Data+10*T_Data+B_Data;//点动缓冲器等于
}
if(Key_Counter==4)
{
K_Data=H_Data; //千位等于百位
H_Data=T_Data; //百位等于十位
T_Data=B_Data; //十位等于个位
B_Data=val; //个位等于按键值
D_Data=1000*K_Data+100*H_Data+10*T_Data+B_Data;
}
if(Key_Counter==5)
{
TK_Data=K_Data; //万位等于千位
K_Data=H_Data; //千位等于百位
H_Data=T_Data; //百位等于十位
T_Data=B_Data; //十位等于个位
B_Data=val; //个位等于按键值
D_Data=10000*TK_Data+1000*K_Data+100*H_Data+10*T_Data+B_Data;
}
if(Key_Counter==6)
{
M_Data=TK_Data; //兆位等于万位
TK_Data=K_Data; //万位等于千位
K_Data=H_Data; //千位等于百位
H_Data=T_Data; //百位等于十位
T_Data=B_Data; //十位等于个位
B_Data=val; //个位等于按键值
D_Data=100000*M_Data+10000*TK_Data+1000*K_Data+100*H_Data+10*T_Data+B_Data;
}
if(Key_Counter>6)
{
D_Data=0;
counter=0;
}
Buff_Data=D_Data; //数据缓冲等于点动缓冲器
JogData_dealwith(); //个位十位百位千位万位十万位兆位分离
}
/***************程序编辑界面频率显示****************/
void Dis_EditFrequency()
{
uchar h,i,j,k;
h=Frequency/1000;
i=Frequency-h*1000/100;
j=Frequency-h*1000-i*100/10;
k=Frequency-h*1000-i*100-j*10;
display_graphic_16x8(5,49,xsadd[17],tab0); //
display_graphic_16x8(6,49,xsadd[h],tab0); //
display_graphic_16x8(7,49,xsadd[i],tab0); //
display_graphic_16x8(8,49,xsadd[j],tab0); //
display_graphic_16x8(9,49,xsadd[k],tab0); //
}
/****************编辑界面X方向实际位置显示******************/
void XEditRun_Data()
{
if(XPosiNegate_Flag==1) //X值正负标志
display_graphic_16x8(6,17,xsadd[21],tab0);//正
else
display_graphic_16x8(6,17,0,tab1);//负标志-
i=XBuff_Data/100000;
j=(XBuff_Data/10000)%10;
k=(XBuff_Data/1000)%10;
l=(XBuff_Data/100)%10;
m=(XBuff_Data/10)%10;
n=XBuff_Data%10;
display_graphic_16x8(5,17,xsadd[11],tab0);// X
display_graphic_16x8(7,17,xsadd[i],tab0);// 0 实际数据
display_graphic_16x8(8,17,xsadd[j],tab0);// 0
display_graphic_16x8(9,17,xsadd[k],tab0);// 0
display_graphic_16x8(10,17,xsadd[l],tab0);// 0
display_graphic_16x8(11,17,xsadd[13],tab0);//.
display_graphic_16x8(12,17,xsadd[m],tab0);// 0
display_graphic_16x8(13,17,xsadd[n],tab0);// 0
}
/****************编辑界面Y方向实际位置显示******************/
void YEditRun_Data()
{
if(YPosiNegate_Flag==1) //X值正负标志
display_graphic_16x8(20,17,xsadd[21],tab0);//正
else
display_graphic_16x8(20,17,0,tab1);//负标志-
i=YBuff_Data/100000;
j=(YBuff_Data/10000)%10;
k=(YBuff_Data/1000)%10;
l=(YBuff_Data/100)%10;
m=(YBuff_Data/10)%10;
n=YBuff_Data%10;
display_graphic_16x8(19,17,xsadd[12],tab0);// Y
display_graphic_16x8(21,17,xsadd[i],tab0);// 0 临时数据
display_graphic_16x8(22,17,xsadd[j],tab0);// 0
display_graphic_16x8(23,17,xsadd[k],tab0);// 0
display_graphic_16x8(24,17,xsadd[l],tab0);// 0
display_graphic_16x8(25,17,xsadd[13],tab0);//.
display_graphic_16x8(26,17,xsadd[m],tab0);// 0
display_graphic_16x8(27,17,xsadd[n],tab0);// 0
}
/**********************************/
void DisFun_Data()
{
XEditRun_Data();
YEditRun_Data();
display_graphic_16x8(19,1,xsadd[22],tab0); // L
display_graphic_16x8(20,1,xsadd[0],tab0); // 0
display_graphic_16x8(21,1,xsadd[0],tab0); // 0
display_graphic_16x8(15,49,xsadd[16],tab0); // P
display_graphic_16x8(16,49,xsadd[0],tab0); // 0 临时数据
display_graphic_16x8(19,49,xsadd[14],tab0); // S
display_graphic_16x8(20,49,xsadd[0],tab0); // 0
Dis_EditFrequency();
}
/**************程序编号***临时数据*******************/
void Dis_ProgNum() //程序编号
{
uchar h,i,j,k;
h=Prog_Number/1000;
i=Prog_Number-h*1000/100;
j=Prog_Number-h*1000-i*100/10;
k=Prog_Number-h*1000-i*100-j*10;
display_graphic_16x8(24,1,xsadd[16],tab0); // P
display_graphic_16x8(25,1,xsadd[23],tab0); // n
display_graphic_16x8(26,1,xsadd[0],tab0); // 0
display_graphic_16x8(27,1,xsadd[0],tab0); // 0
display_graphic_16x8(28,1,xsadd[0],tab0); // 0
display_graphic_16x8(29,1,xsadd[0],tab0); // 0
}
/************************************/
void Line_Insert()
{
displayGB2312(0XD6,0XB1); //直
fontchange();
display_chines_16x16(10,1,newbuff);
displayGB2312(0XCF,0XDF); //线
fontchange();
display_chines_16x16(12,1,newbuff);
displayGB2312(0XB2,0XE5); //插
fontchange();
display_chines_16x16(14,1,newbuff);
displayGB2312(0XB2,0XB9);
fontchange(); //补
display_chines_16x16(16,1,newbuff);
}
/**********************************/
void Display_Function()
{
displayGB2312(0XBC,0XD3); //加一
fontchange();
display_chines_16x16(1,1,newbuff);
displayGB2312(0XD2,0XBB);
fontchange();
display_chines_16x16(3,1,newbuff);
displayGB2312(0XBC,0XF5); //减一
fontchange();
display_chines_16x16(1,17,newbuff);
displayGB2312(0XD2,0XBB);
fontchange();
display_chines_16x16(3,17,newbuff);
displayGB2312(0XB2,0XE5); //插行
fontchange();
display_chines_16x16(1,33,newbuff);
displayGB2312(0XD0,0XD0);
fontchange();
display_chines_16x16(3,33,newbuff);
displayGB2312(0XC9,0XBE); //删行
fontchange();
display_chines_16x16(1,49,newbuff);
displayGB2312(0XD0,0XD0);
fontchange();
display_chines_16x16(3,49,newbuff);
Line_Insert(); //显示直线插补
}
/***系统参数*系统自检*IO*设置***********************/
void DataSet()
{
displayGB2312(0XCF,0XB5); //系统
fontchange();
display_chines_16x16(1,1,newbuff);
displayGB2312(0XCD,0XB3);
fontchange();
display_chines_16x16(3,1,newbuff);
displayGB2312(0XB2,0XCE); //参数
fontchange();
display_chines_16x16(5,1,newbuff);
displayGB2312(0XCA,0XFD);
fontchange();
display_chines_16x16(7,1,newbuff);
displayGB2312(0XCF,0XB5); //系统
fontchange();
display_chines_16x16(1,17,newbuff);
displayGB2312(0XCD,0XB3);
fontchange();
display_chines_16x16(3,17,newbuff);
displayGB2312(0XD7,0XD4); //自检
fontchange();
display_chines_16x16(5,17,newbuff);
displayGB2312(0XBC,0XEC);
fontchange();
display_chines_16x16(7,17,newbuff);
display_graphic_16x8(1,33,xsadd[24],tab0); //I/O
display_graphic_16x8(2,33,xsadd[25],tab0); //
display_graphic_16x8(3,33,xsadd[0],tab0); //
displayGB2312(0XC9,0XE8);
fontchange();
display_chines_16x16(5,33,newbuff);
displayGB2312(0XD6,0XC3);
fontchange();
display_chines_16x16(7,33,newbuff); //设置
}
/**************选项**********************/
void Dis_Option()
{
displayGB2312(0XD1,0XA1); //
fontchange();
display_chines_16x16(1,1,newbuff);
displayGB2312(0XCF,0XEE);
fontchange();
display_chines_16x16(3,1,newbuff);
}
/**************系统**********************/
void Dis_System()
{
displayGB2312(0XCF,0XB5); //
fontchange();
display_chines_16x16(1,17,newbuff);
displayGB2312(0XCD,0XB3);
fontchange();
display_chines_16x16(3,17,newbuff);
}
/**************厂值**********************/
void Dis_Factor_Value()
{
displayGB2312(0XB3,0XA7); //
fontchange();
display_chines_16x16(1,33,newbuff);
displayGB2312(0XD6,0XB5);
fontchange();
display_chines_16x16(3,33,newbuff);
}
/**************保存**********************/
void Dis_Save()
{
displayGB2312(0XB1,0XA3);
fontchange();
display_chines_16x16(1,49,newbuff);
displayGB2312(0XB4,0XE6);
fontchange();
display_chines_16x16(3,49,newbuff);
}
/**************反显选项**********************/
void NegateDis_Option()
{
displayGB2312(0XD1,0XA1); //
fontchange();
display_negate_16x16(1,1,newbuff);
displayGB2312(0XCF,0XEE);
fontchange();
display_negate_16x16(3,1,newbuff);
}
/**************反显系统**********************/
void NegateDis_System()
{
displayGB2312(0XCF,0XB5); //
fontchange();
display_negate_16x16(1,17,newbuff);
displayGB2312(0XCD,0XB3);
fontchange();
display_negate_16x16(3,17,newbuff);
}
/**************反显厂值**********************/
void NegateDis_Factor_Value()
{
displayGB2312(0XB3,0XA7); //
fontchange();
display_negate_16x16(1,33,newbuff);
displayGB2312(0XD6,0XB5);
fontchange();
display_negate_16x16(3,33,newbuff);
}
/**************反显保存**********************/
void NegateDis_Save()
{
displayGB2312(0XB1,0XA3);
fontchange();
display_negate_16x16(1,49,newbuff);
displayGB2312(0XB4,0XE6);
fontchange();
display_negate_16x16(3,49,newbuff);
}
/******正显选项********显示系统参数四项内容********/
void PosiDis_Option()
{
Dis_Option();
NegateDis_System();
NegateDis_Factor_Value();
NegateDis_Save();
}
/******正显系统********显示系统参数四项内容********/
void PosiDis_System()
{
NegateDis_Option();
Dis_System();
NegateDis_Factor_Value();
NegateDis_Save();
}
/******正显厂值********显示系统参数四项内容********/
void PosiDisFactor_Value()
{
NegateDis_Option();
NegateDis_System();
Dis_Factor_Value();
NegateDis_Save();
}
/******正显保存********显示系统参数四项内容********/
void PosiDis_Save()
{
NegateDis_Option();
NegateDis_System();
NegateDis_Factor_Value();
Dis_Save();
}
/*************左上方框******************/
void DisLeft_BlackOn()
{
display_graphic_16x8(12,1,xsadd[26],tab0);// 方框左
display_graphic_16x8(13,1,xsadd[27],tab0);// 方框右
}
/*************右上方框******************/
void DisRight_BlackOn()
{
display_graphic_16x8(22,1,xsadd[26],tab0);// 方框左
display_graphic_16x8(23,1,xsadd[27],tab0);// 方框右
}
/*************左下方框******************/
void DisLeft_BlackDown()
{
display_graphic_16x8(12,17,xsadd[26],tab0);// 方框左
display_graphic_16x8(13,17,xsadd[27],tab0);// 方框右
}
/*************右下方框******************/
void DisRight_BlackDown()
{
display_graphic_16x8(22,17,xsadd[26],tab0);// 方框左
display_graphic_16x8(23,17,xsadd[27],tab0);// 方框右
}
/*************X正限***********************/
void DIS_XPositive_limits()
{
display_graphic_16x8(7,1,xsadd[11],tab0);// X
displayGB2312(0XD5,0XFD);
fontchange();
display_chines_16x16(8,1,newbuff);
displayGB2312(0XCF,0XDE);
fontchange();
display_chines_16x16(10,1,newbuff);
}
/*************X负限***********************/
void DIS_XNegative_limits()
{
display_graphic_16x8(17,1,xsadd[11],tab0);// X
displayGB2312(0XB8,0XBA);
fontchange();
display_chines_16x16(18,1,newbuff);
displayGB2312(0XCF,0XDE);
fontchange();
display_chines_16x16(20,1,newbuff);
}
/**************Y正限**********************/
void DIS_YPositive_limits()
{
display_graphic_16x8(7,17,xsadd[12],tab0);// Y
displayGB2312(0XD5,0XFD);
fontchange();
display_chines_16x16(8,17,newbuff);
displayGB2312(0XCF,0XDE);
fontchange();
display_chines_16x16(10,17,newbuff);
}
/***************Y负限*********************/
void DIS_YNegative_limits()
{
display_graphic_16x8(17,17,xsadd[12],tab0);// Y
displayGB2312(0XB8,0XBA);
fontchange();
display_chines_16x16(18,17,newbuff);
displayGB2312(0XCF,0XDE);
fontchange();
display_chines_16x16(20,17,newbuff);
}
/**************显示正限,负限**********************/
void DisSystem_Value()
{
DIS_XPositive_limits(); //
DisLeft_BlackOn();
DIS_XNegative_limits(); //
DisRight_BlackOn();
DIS_YPositive_limits(); //
DisLeft_BlackDown();
DIS_YNegative_limits(); //
DisRight_BlackDown();
}
/**************显示正限,负限**********************/
void DisIoSet_Value()
{
DIS_XPositive_limits(); //
DIS_XNegative_limits(); //
DIS_YPositive_limits(); //
DIS_YNegative_limits(); //
}
/****************系统参数光标计算处理**************/
void Dis_SystemCursorCalculate(char XDirData,YDirData)
{ //X=0|1 Y=0-3
if(XDirData==0&&YDirData==0) //X等于0Y等于0
SysCursor=0; //X分子
if(XDirData==0&&YDirData==1) //X等于0Y等于1
SysCursor=1; //Y分子
if(XDirData==0&&YDirData==2) //X等于0Y等于2
SysCursor=2; //起速
if(XDirData==0&&YDirData==3) //X等于0Y等于3
SysCursor=3; //时间
if(XDirData==1&&YDirData==0) //X等于1Y等于0
SysCursor=4; //X分母
if(XDirData==1&&YDirData==1) //X等于1Y等于1
SysCursor=5; //Y分母
if(XDirData==1&&YDirData==2) //X等于1Y等于2
SysCursor=6; //最高
if(XDirData==1&&YDirData==3) //X等于1Y等于3
SysCursor=7; //点位
display_graphic_16x8(28,33,xsadd[XDirData],tab0);// 光标指针显示
display_graphic_16x8(29,33,xsadd[YDirData],tab0);// 光标指针显示
}
/****************系统光标闪烁***************/
void Sys_CursorBlinking(char Sys_Cursor)
{
if(Sys_Cursor==0)
{
Negate_XMParameter();//X分子参数闪烁
delay_nms(100);
Dis_XMParameter(); //显示X分子参数
delay_nms(200);
}
if(Sys_Cursor==1)
{
Negate_YMParameter();//Y分子参数闪烁
delay_nms(100);
Dis_YMParameter(); //显示Y分子参数
delay_nms(200);
}
if(Sys_Cursor==2)
{
Negate_SParameter(); //起速参数闪烁
delay_nms(100);
Dis_SParameter(); //显示起速参数
delay_nms(200);
}
if(Sys_Cursor==3)
{
Negate_TParameter(); //时间参数闪烁
delay_nms(100);
Dis_TParameter(); //显示时间参数
delay_nms(200);
}
if(Sys_Cursor==4)
{
Negate_XDParameter();//X分母参数闪烁
delay_nms(100);
Dis_XDParameter(); //显示X分母参数
delay_nms(200);
}
if(Sys_Cursor==5)
{
Negate_YDParameter();//Y分母参数闪烁
delay_nms(100);
Dis_YDParameter(); //显示Y分母参数
delay_nms(200);
}
if(Sys_Cursor==6)
{
Negate_HParameter(); //最高参数闪烁
delay_nms(100);
Dis_HParameter(); //显示最高参数
delay_nms(200);
}
if(Sys_Cursor==7)
{
Negate_PPParameter();//点位参数闪烁
delay_nms(100);
Dis_PPParameter(); //显示点位参数
delay_nms(200);
}
display_graphic_16x8(29,49,xsadd[Sys_Cursor],tab0);// 光标指针显示
}
/***************画方框*********************/
void Draw_Line()
{
uchar x;
for(x=1;x<28;)
{
display_graphic_16x8(x,1,xsadd[31],tab0);// line左
x++;
display_graphic_16x8(x,1,xsadd[32],tab0);// line右
}
for(x=1;x<28;)
{
display_graphic_16x8(x,17,xsadd[31],tab0);// line左
x++;
display_graphic_16x8(x,17,xsadd[32],tab0);// line右
}
for(x=1;x<28;)
{
display_graphic_16x8(x,33,xsadd[31],tab0);// line左
x++;
display_graphic_16x8(x,33,xsadd[32],tab0);// line右
}
for(x=1;x<28;)
{
display_graphic_16x8(x,49,xsadd[31],tab0);// line左
x++;
display_graphic_16x8(x,49,xsadd[32],tab0);// line右
}
}
/***************显示文件名*********************/
void Dis_FileName()
{
displayGB2312(0XCE,0XC4);
fontchange();
display_chines_16x16(18,17,newbuff);
displayGB2312(0XBC,0XFE);
fontchange();
display_chines_16x16(20,17,newbuff);
displayGB2312(0XC3,0XFB);
fontchange();
display_chines_16x16(22,17,newbuff);
display_graphic_16x8(24,17,xsadd[28],tab0);//:
display_graphic_16x8(19,33,xsadd[1],tab0);//
display_graphic_16x8(20,33,xsadd[2],tab0);//
display_graphic_16x8(21,33,xsadd[3],tab0);//
display_graphic_16x8(22,33,xsadd[4],tab0);//
display_graphic_16x8(23,33,xsadd[5],tab0);//
display_graphic_16x8(24,33,xsadd[6],tab0);//
display_graphic_16x8(25,33,xsadd[7],tab0);//
display_graphic_16x8(26,33,xsadd[8],tab0);//
display_graphic_16x8(27,33,xsadd[9],tab0);//
display_graphic_16x8(19,49,xsadd[1],tab0);//
display_graphic_16x8(20,49,xsadd[2],tab0);//
display_graphic_16x8(21,49,xsadd[3],tab0);//
display_graphic_16x8(22,49,xsadd[4],tab0);//
display_graphic_16x8(23,49,xsadd[5],tab0);//
display_graphic_16x8(24,49,xsadd[6],tab0);//
display_graphic_16x8(25,49,xsadd[7],tab0);//
display_graphic_16x8(26,49,xsadd[8],tab0);//
display_graphic_16x8(27,49,xsadd[9],tab0);//
}
/*************正显输入***********************/
void Dis_Intput()
{
displayGB2312(0XCA,0XE4);
fontchange();
display_chines_16x16(1,1,newbuff);
displayGB2312(0XC8,0XEB);
fontchange();
display_chines_16x16(3,1,newbuff);
}
/**************正显设入**********************/
void Dis_SetIntput()
{
displayGB2312(0XC9,0XE8);
fontchange();
display_chines_16x16(1,17,newbuff);
displayGB2312(0XC8,0XEB);
fontchange();
display_chines_16x16(3,17,newbuff);
}
/***************正显输出*********************/
void Dis_Output()
{
displayGB2312(0XCA,0XE4);
fontchange();
display_chines_16x16(1,33,newbuff);
displayGB2312(0XB3,0XF6);
fontchange();
display_chines_16x16(3,33,newbuff);
}
/**************正显设出**********************/
void Dis_SetOutput()
{
displayGB2312(0XC9,0XE8);
fontchange();
display_chines_16x16(1,49,newbuff);
displayGB2312(0XB3,0XF6);
fontchange();
display_chines_16x16(3,49,newbuff);
}
/**************反显输入**********************/
void NDis_Intput()
{
displayGB2312(0XCA,0XE4);
fontchange();
display_negate_16x16(1,1,newbuff);
displayGB2312(0XC8,0XEB);
fontchange();
display_negate_16x16(3,1,newbuff);
}
/***************反显设入*********************/
void NDis_SetIntput()
{
displayGB2312(0XC9,0XE8);
fontchange();
display_negate_16x16(1,17,newbuff);
displayGB2312(0XC8,0XEB);
fontchange();
display_negate_16x16(3,17,newbuff);
}
/***************反显输出*********************/
void NDis_Output()
{
displayGB2312(0XCA,0XE4);
fontchange();
display_negate_16x16(1,33,newbuff);
displayGB2312(0XB3,0XF6);
fontchange();
display_negate_16x16(3,33,newbuff);
}
/***************反显设出*********************/
void NDis_SetOutput()
{
displayGB2312(0XC9,0XE8);
fontchange();
display_negate_16x16(1,49,newbuff);
displayGB2312(0XB3,0XF6);
fontchange();
display_negate_16x16(3,49,newbuff);
}
/***************系统自检正显输入*****************/
void SysNegate_Intput()
{
Dis_Intput();
NDis_SetIntput();
NDis_Output();
NDis_SetOutput();
}
/***************系统自检正显设入*****************/
void SysNegate_Setput()
{
NDis_Intput();
Dis_SetIntput();
NDis_Output();
NDis_SetOutput();
}
/***************系统自检正显输出*****************/
void SysNegate_Output()
{
NDis_Intput();
NDis_SetIntput();
Dis_Output();
NDis_SetOutput();
}
/***************系统自检正显设出*****************/
void SysNegate_SetOutput()
{
NDis_Intput();
NDis_SetIntput();
NDis_Output();
Dis_SetOutput();
}
/***************实心圆***************/
void Intput1()
{
display_graphic_16x8(10,1,xsadd[35],tab0);//实心圆左部
display_graphic_16x8(11,1,xsadd[36],tab0);//实心圆右部
}
/************************************/
void Intput2()
{
display_graphic_16x8(17,1,xsadd[35],tab0);//实心圆左部
display_graphic_16x8(18,1,xsadd[36],tab0);//实心圆右部
}
/************************************/
void Intput3()
{
display_graphic_16x8(24,1,xsadd[35],tab0);//实心圆左部
display_graphic_16x8(25,1,xsadd[36],tab0);//实心圆右部
}
/************************************/
void Intput4()
{
display_graphic_16x8(10,17,xsadd[35],tab0);//实心圆左部
display_graphic_16x8(11,17,xsadd[36],tab0);//实心圆右部
}
/************************************/
void Intput5()
{
display_graphic_16x8(17,17,xsadd[35],tab0);//实心圆左部
display_graphic_16x8(18,17,xsadd[36],tab0);//实心圆右部
}
/************************************/
void Intput6()
{
display_graphic_16x8(24,17,xsadd[35],tab0);//实心圆左部
display_graphic_16x8(25,17,xsadd[36],tab0);//实心圆右部
}
/************************************/
void Intput7()
{
display_graphic_16x8(10,33,xsadd[35],tab0);//实心圆左部
display_graphic_16x8(11,33,xsadd[36],tab0);//实心圆右部
}
/************************************/
void Intput8()
{
display_graphic_16x8(17,33,xsadd[35],tab0);//实心圆左部
display_graphic_16x8(18,33,xsadd[36],tab0);//实心圆右部
}
/**************空心圆**********************/
void NIntput1()
{
display_graphic_16x8(10,1,xsadd[33],tab0);//空心圆左部
display_graphic_16x8(11,1,xsadd[34],tab0);//空心圆右部
}
/************************************/
void NIntput2()
{
display_graphic_16x8(17,1,xsadd[33],tab0);//空心圆左部
display_graphic_16x8(18,1,xsadd[34],tab0);//空心圆右部
}
/************************************/
void NIntput3()
{
display_graphic_16x8(24,1,xsadd[33],tab0);//空心圆左部
display_graphic_16x8(25,1,xsadd[34],tab0);//空心圆右部
}
/************************************/
void NIntput4()
{
display_graphic_16x8(10,17,xsadd[33],tab0);//空心圆左部
display_graphic_16x8(11,17,xsadd[34],tab0);//空心圆右部
}
/************************************/
void NIntput5()
{
display_graphic_16x8(17,17,xsadd[33],tab0);//空心圆左部
display_graphic_16x8(18,17,xsadd[34],tab0);//空心圆右部
}
/************************************/
void NIntput6()
{
display_graphic_16x8(24,17,xsadd[33],tab0);//空心圆左部
display_graphic_16x8(25,17,xsadd[34],tab0);//空心圆右部
}
/************************************/
void NIntput7()
{
display_graphic_16x8(10,33,xsadd[33],tab0);//空心圆左部
display_graphic_16x8(11,33,xsadd[34],tab0);//空心圆右部
}
/************************************/
void NIntput8()
{
display_graphic_16x8(17,33,xsadd[33],tab0);//空心圆左部
display_graphic_16x8(18,33,xsadd[34],tab0);//空心圆右部
}
/**************输入状态显示**********************/
void IntPutStatus()
{
display_graphic_16x8(8,1,xsadd[0],tab0);//0
display_graphic_16x8(9,1,xsadd[1],tab0);//1
NIntput1();
display_graphic_16x8(15,1,xsadd[0],tab0);//0
display_graphic_16x8(16,1,xsadd[2],tab0);//2
NIntput2();
display_graphic_16x8(22,1,xsadd[0],tab0);//0
display_graphic_16x8(23,1,xsadd[3],tab0);//3
NIntput3();
display_graphic_16x8(8,17,xsadd[0],tab0);//0
display_graphic_16x8(9,17,xsadd[4],tab0);//4
NIntput4();
display_graphic_16x8(15,17,xsadd[0],tab0);//0
display_graphic_16x8(16,17,xsadd[5],tab0);//5
NIntput5();
display_graphic_16x8(22,17,xsadd[0],tab0);//0
display_graphic_16x8(23,17,xsadd[6],tab0);//6
NIntput6();
display_graphic_16x8(8,33,xsadd[0],tab0);//0
display_graphic_16x8(9,33,xsadd[7],tab0);//7
NIntput7();
display_graphic_16x8(15,33,xsadd[0],tab0);//0
display_graphic_16x8(16,33,xsadd[8],tab0);//8
NIntput8();
}
/*************IO设置界面显示数据显示*****************/
void IOsetLiftOn()
{
display_graphic_16x8(12,1,xsadd[0],tab0);// X正限
display_graphic_16x8(13,1,xsadd[0],tab0);// X
}
/*************IO设置界面显示数据显示*****************/
void IOsetRightOn()
{
display_graphic_16x8(22,1,xsadd[0],tab0);// X负限
display_graphic_16x8(23,1,xsadd[0],tab0);// X
}
/**************IO设置界面显示数据显示*************/
void IOsetLiftDwon()
{
display_graphic_16x8(12,17,xsadd[0],tab0);// Y正限
display_graphic_16x8(13,17,xsadd[0],tab0);// Y
}
/**************IO设置界面显示数据显示*************/
void IOsetRightDwon()
{
display_graphic_16x8(22,17,xsadd[0],tab0);// Y 负限
display_graphic_16x8(23,17,xsadd[0],tab0);// Y
}
/**************报警********************************/
void Dis_Alarm()
{
displayGB2312(0XB1,0XA8);
fontchange();
display_chines_16x16(8,33,newbuff);
displayGB2312(0XBE,0XAF);
fontchange();
display_chines_16x16(10,33,newbuff);
display_graphic_16x8(12,33,xsadd[0],tab0);//
display_graphic_16x8(13,33,xsadd[0],tab0);//
}
/*************X零点*********************************/
void Dis_XZeroPoint()
{
display_graphic_16x8(7,49,xsadd[11],tab0);// X
displayGB2312(0XC1,0XE3);
fontchange();
display_chines_16x16(8,49,newbuff);
displayGB2312(0XB5,0XE3);
fontchange();
display_chines_16x16(10,49,newbuff);
display_graphic_16x8(12,49,xsadd[0],tab0);//
display_graphic_16x8(13,49,xsadd[0],tab0);//
}
/*************Y零点*********************************/
void Dis_YZeroPoint()
{
display_graphic_16x8(17,49,xsadd[12],tab0);// Y
displayGB2312(0XC1,0XE3);
fontchange();
display_chines_16x16(18,49,newbuff);
displayGB2312(0XB5,0XE3);
fontchange();
display_chines_16x16(20,49,newbuff);
display_graphic_16x8(22,49,xsadd[0],tab0);//
display_graphic_16x8(23,49,xsadd[0],tab0);//
}
/*************急停*********************************/
void Dis_EmergencyStop()
{
displayGB2312(0XBC,0XB1);
fontchange();
display_chines_16x16(18,33,newbuff);
displayGB2312(0XCD,0XA3);
fontchange();
display_chines_16x16(20,33,newbuff);
display_graphic_16x8(22,33,xsadd[0],tab0);//
display_graphic_16x8(23,33,xsadd[0],tab0);//
}
/***************IO设置界面显示*********************/
void DisIOset()
{
displayGB2312(0XCA,0XE4); //输入
fontchange();
display_chines_16x16(1,1,newbuff);
displayGB2312(0XC8,0XEB);
fontchange();
display_chines_16x16(3,1,newbuff);
displayGB2312(0XCA,0XE4); //输出
fontchange();
display_chines_16x16(1,17,newbuff);
displayGB2312(0XB3,0XF6);
fontchange();
display_chines_16x16(3,17,newbuff);
displayGB2312(0XBC,0XD3); //加一
fontchange();
display_chines_16x16(1,33,newbuff);
displayGB2312(0XD2,0XBB);
fontchange();
display_chines_16x16(3,33,newbuff);
displayGB2312(0XBC,0XF5); //减一
fontchange();
display_chines_16x16(1,49,newbuff);
displayGB2312(0XD2,0XBB);
fontchange();
display_chines_16x16(3,49,newbuff);
IOsetLiftOn();
IOsetRightOn();
IOsetLiftDwon();
IOsetRightDwon();
Dis_Alarm();
Dis_XZeroPoint();
Dis_YZeroPoint();
Dis_EmergencyStop();
}
/*************显示X分子文字***********************/
void Dis_XMolecular() //1
{
display_graphic_16x8(7,1,xsadd[11],tab0);// X
displayGB2312(0XB7,0XD6);
fontchange();
display_chines_16x16(8,1,newbuff);
displayGB2312(0XD7,0XD3);
fontchange();
display_chines_16x16(10,1,newbuff);
}
/*************显示X分母文字**********************/
void Dis_XDenominator() //1
{
display_graphic_16x8(17,1,xsadd[11],tab0);// X
displayGB2312(0XB7,0XD6);
fontchange();
display_chines_16x16(18,1,newbuff);
displayGB2312(0XC4,0XB8);
fontchange();
display_chines_16x16(20,1,newbuff);
}
/*************显示Y分子文字***********************/
void Dis_YMolecular() //17
{
display_graphic_16x8(7,17,xsadd[12],tab0);// Y
displayGB2312(0XB7,0XD6);
fontchange();
display_chines_16x16(8,17,newbuff);
displayGB2312(0XD7,0XD3);
fontchange();
display_chines_16x16(10,17,newbuff);
}
/*************显示Y分母文字**********************/
void Dis_YDenominator() //17
{
display_graphic_16x8(17,17,xsadd[12],tab0);// Y
displayGB2312(0XB7,0XD6);
fontchange();
display_chines_16x16(18,17,newbuff);
displayGB2312(0XC4,0XB8);
fontchange();
display_chines_16x16(20,17,newbuff);
}
/**************显示点位**********************/
void Dis_PointPosition()//49
{
displayGB2312(0XB5,0XE3);
fontchange();
display_chines_16x16(18,49,newbuff);
displayGB2312(0XCE,0XBB);
fontchange();
display_chines_16x16(20,49,newbuff);
}
/**************显示最高*********************/
void Dis_Highest() //33
{
displayGB2312(0XD7,0XEE);
fontchange();
display_chines_16x16(18,33,newbuff);
displayGB2312(0XB8,0XDF);
fontchange();
display_chines_16x16(20,33,newbuff);
}
/**************显示起速**********************/
void Dis_StartSpeed() //33
{
displayGB2312(0XC6,0XF0);
fontchange();
display_chines_16x16(8,33,newbuff);
displayGB2312(0XCB,0XD9);
fontchange();
display_chines_16x16(10,33,newbuff);
}
/**************显示时间**********************/
void Dis_Time() //49
{
displayGB2312(0XCA,0XB1);
fontchange();
display_chines_16x16(8,49,newbuff);
displayGB2312(0XBC,0XE4);
fontchange();
display_chines_16x16(10,49,newbuff);
}
/*************显示X分子参数***********************/
void Dis_XMParameter() //1
{
display_graphic_16x8(12,1,xsadd[0],tab0); //临时数据
display_graphic_16x8(13,1,xsadd[0],tab0); //临时数据
display_graphic_16x8(14,1,xsadd[0],tab0); //临时数据
display_graphic_16x8(15,1,xsadd[0],tab0); //临时数据
}
/*************X分子参数闪烁***********************/
void Negate_XMParameter() //1
{
display_graphic_16x8(12,1,xsadd[20],tab0); //临时数据
display_graphic_16x8(13,1,xsadd[20],tab0); //临时数据
display_graphic_16x8(14,1,xsadd[20],tab0); //临时数据
display_graphic_16x8(15,1,xsadd[20],tab0); //临时数据
}
/*************显示X分母参数**********************/
void Dis_XDParameter() //1X分母参数
{
display_graphic_16x8(22,1,xsadd[0],tab0); //临时数据
display_graphic_16x8(23,1,xsadd[0],tab0); //临时数据
display_graphic_16x8(24,1,xsadd[0],tab0); //临时数据
display_graphic_16x8(25,1,xsadd[0],tab0); //临时数据
}
/*************X分母参数闪烁**********************/
void Negate_XDParameter() //1X分母参数
{
display_graphic_16x8(22,1,xsadd[20],tab0); //临时数据
display_graphic_16x8(23,1,xsadd[20],tab0); //临时数据
display_graphic_16x8(24,1,xsadd[20],tab0); //临时数据
display_graphic_16x8(25,1,xsadd[20],tab0); //临时数据
}
/*************显示Y分子参数***********************/
void Dis_YMParameter() //17显示Y分子参数
{
display_graphic_16x8(12,17,xsadd[0],tab0); //临时数据
display_graphic_16x8(13,17,xsadd[0],tab0); //临时数据
display_graphic_16x8(14,17,xsadd[0],tab0); //临时数据
display_graphic_16x8(15,17,xsadd[0],tab0); //临时数据
}
/*************Y分子参数闪烁***********************/
void Negate_YMParameter() //17显示Y分子参数
{
display_graphic_16x8(12,17,xsadd[20],tab0); //临时数据
display_graphic_16x8(13,17,xsadd[20],tab0); //临时数据
display_graphic_16x8(14,17,xsadd[20],tab0); //临时数据
display_graphic_16x8(15,17,xsadd[20],tab0); //临时数据
}
/*************显示Y分母参数**********************/
void Dis_YDParameter() //17 显示Y分母参数
{
display_graphic_16x8(22,17,xsadd[0],tab0); //临时数据
display_graphic_16x8(23,17,xsadd[0],tab0); //临时数据
display_graphic_16x8(24,17,xsadd[0],tab0); //临时数据
display_graphic_16x8(25,17,xsadd[0],tab0); //临时数据
}
/*************Y分母参数闪烁**********************/
void Negate_YDParameter() //17 显示Y分母参数
{
display_graphic_16x8(22,17,xsadd[20],tab0); //临时数据
display_graphic_16x8(23,17,xsadd[20],tab0); //临时数据
display_graphic_16x8(24,17,xsadd[20],tab0); //临时数据
display_graphic_16x8(25,17,xsadd[20],tab0); //临时数据
}
/**************显示点位参数**********************/
void Dis_PPParameter()//49 显示点位参数
{
display_graphic_16x8(22,49,xsadd[0],tab0); //临时数据
display_graphic_16x8(23,49,xsadd[0],tab0); //临时数据
display_graphic_16x8(24,49,xsadd[0],tab0); //临时数据
display_graphic_16x8(25,49,xsadd[0],tab0); //临时数据
}
/**************点位参数闪烁**********************/
void Negate_PPParameter()//49 显示点位参数
{
display_graphic_16x8(22,49,xsadd[20],tab0); //方块
display_graphic_16x8(23,49,xsadd[20],tab0); //
display_graphic_16x8(24,49,xsadd[20],tab0); //
display_graphic_16x8(25,49,xsadd[20],tab0); //
}
/**************显示最高参数*********************/
void Dis_HParameter() //33 显示最高参数
{
display_graphic_16x8(22,33,xsadd[0],tab0); //临时数据
display_graphic_16x8(23,33,xsadd[0],tab0); //临时数据
display_graphic_16x8(24,33,xsadd[0],tab0); //临时数据
display_graphic_16x8(25,33,xsadd[0],tab0); //临时数据
}
/**************最高参数闪烁*********************/
void Negate_HParameter() //33 显示最高参数
{
display_graphic_16x8(22,33,xsadd[20],tab0); //方块
display_graphic_16x8(23,33,xsadd[20],tab0); //
display_graphic_16x8(24,33,xsadd[20],tab0); //
display_graphic_16x8(25,33,xsadd[20],tab0); //
}
/**************显示起速参数**********************/
void Dis_SParameter() //33 显示起速参数
{
display_graphic_16x8(12,33,xsadd[0],tab0); //临时数据
display_graphic_16x8(13,33,xsadd[0],tab0); //临时数据
display_graphic_16x8(14,33,xsadd[0],tab0); //临时数据
display_graphic_16x8(15,33,xsadd[0],tab0); //临时数据
}
/***************起速参数填充闪烁********************/
void Negate_SParameter() //33 显示起速参数
{
display_graphic_16x8(12,33,xsadd[20],tab0); //方块
display_graphic_16x8(13,33,xsadd[20],tab0); //
display_graphic_16x8(14,33,xsadd[20],tab0); //
display_graphic_16x8(15,33,xsadd[20],tab0); //
}
/**************显示时间参数**********************/
void Dis_TParameter() //49 显示时间参数
{
display_graphic_16x8(12,49,xsadd[0],tab0); //临时数据
display_graphic_16x8(13,49,xsadd[0],tab0); //临时数据
display_graphic_16x8(14,49,xsadd[0],tab0); //临时数据
display_graphic_16x8(15,49,xsadd[0],tab0); //临时数据
}
/***************时间参数填充闪烁******************/
void Negate_TParameter()
{
display_graphic_16x8(12,49,xsadd[20],tab0); //方块
display_graphic_16x8(13,49,xsadd[20],tab0); //
display_graphic_16x8(14,49,xsadd[20],tab0); //
display_graphic_16x8(15,49,xsadd[20],tab0); //
}
/***************前进*********************/
void DIS_Forward()
{
displayGB2312(0XC7,0XB0);
fontchange();
display_chines_16x16(26,49,newbuff);
displayGB2312(0XBD,0XF8);
fontchange();
display_chines_16x16(28,49,newbuff);
}
/****************后退********************/
void DIS_Relreal()
{
displayGB2312(0XBA,0XF3);
fontchange();
display_chines_16x16(26,49,newbuff);
displayGB2312(0XCD,0XCB);
fontchange();
display_chines_16x16(28,49,newbuff);
}
/****************左移********************/
void DIS_Moveleft()
{
displayGB2312(0XD7,0XF3);
fontchange();
display_chines_16x16(26,49,newbuff);
displayGB2312(0XD2,0XC6);
fontchange();
display_chines_16x16(28,49,newbuff);
}
/****************右移********************/
void DIS_MoveRight()
{
displayGB2312(0XD3,0XD2);
fontchange();
display_chines_16x16(26,49,newbuff);
displayGB2312(0XD2,0XC6);
fontchange();
display_chines_16x16(28,49,newbuff);
}
/***************前进*********************/
void Clear_Forward()
{
display_chines_16x16(26,49,Clearbuff);
display_chines_16x16(28,49,Clearbuff);
}
/****************后退********************/
void Clear_Relreal()
{
display_chines_16x16(26,49,Clearbuff);
display_chines_16x16(28,49,Clearbuff);
}
/****************左移********************/
void Clear_Moveleft()
{
display_chines_16x16(26,49,Clearbuff);
display_chines_16x16(28,49,Clearbuff);
}
/****************右移********************/
void Clear_MoveRight()
{
display_chines_16x16(26,49,Clearbuff);
display_chines_16x16(28,49,Clearbuff);
}
/************************************/
void DisSystem()
{
PosiDis_System(); //正显
Dis_XMolecular(); //显示X分子
Dis_XMParameter(); //显示X分子参数
Dis_XDenominator(); //显示X分母
Dis_XDParameter(); //显示X分母参数
Dis_YMolecular(); //显示Y分子
Dis_YMParameter(); //显示Y分子参数
Dis_YDenominator(); //显示Y分母
Dis_YDParameter(); //显示Y分母参数
Dis_PointPosition();//显示点位
Dis_PPParameter(); //显示点位参数
Dis_Highest(); //显示最高
Dis_HParameter(); //显示最高参数
Dis_StartSpeed(); //显示起速
Dis_SParameter(); //显示起速参数
Dis_Time(); //显示时间
Dis_TParameter(); //显示时间参数
}
/************************************/
void timer0() interrupt 1
{
aa=aa+1;
if(aa==30)
OUTPUT0=!OUTPUT0,
aa=0;
}
/************************************/
void t2int() interrupt 12 //中断入口
{
bb=bb+1;
if(bb==100)
OUTPUT2=!OUTPUT2,
bb=0;
}
PCB机打孔机程序(一)
最新推荐文章于 2024-08-23 16:58:06 发布