📄 an11.bak
字号:
#include<graphics.h>
#include<stdlib.h>
#include<stdio.h>
#include<conio.h>
#include<math.h>
#include<dos.h>
#include<string.h>
#include<bios.h>
#include<io.h>
#include <fcntl.h>
#include<process.h>
#include<alloc.h>
//#include"display.h"
#define SPPDATA 0x0378
#define SPPSTAT 0x0379
#define SPPCNTL 0x037a
#define EPPADDR 0x037b
#define EPPDATA 0x37c
#define a 0
#define b 0
#define L 320
#define W 240
#define x0 0
#define y0 0
#define WORD unsigned int
#define BYTE unsiged char
#ifdef __cplusplus
#define __CPPARGS ...
#else
#define __CPPARGS
#endif
#define SER_RBF 0 // the read buffer
#define SER_THR 0 // the write buffer
#define SER_IER 1 // the int. enable register
#define SER_IIR 2 // the int. identification register
#define SER_LCR 3 // control data config. and divisor latch
#define SER_MCR 4 // modem control reg.
#define SER_LSR 5 // line status reg.
#define SER_MSR 6 // modem status of cts, ring etc.
#define SER_DLL 0 // the low byte of baud rate divisor
#define SER_DLH 1 // the hi byte of divisor latch
#define SER_BAUD_9600 12
#define SER_GP02 8 // enable interrupt
#define COM_1 0x3f8 // base port address of port 0
#define COM_2 0x2F8 // base port address of port 1
#define COM_3 0x3e8
#define COM_4 0x2e8
#define SER_STOP_1 0 // 1 stop bit per character
#define SER_STOP_2 4 // 2 stop bits per character
#define SER_BITS_5 0 // send 5 bit characters
#define SER_BITS_6 1 // send 6 bit characters
#define SER_BITS_7 2 // send 7 bit characters
#define SER_BITS_8 3 // send 8 bit characters
#define SER_PARITY_NONE 0 // no parity
#define SER_PARITY_ODD 8 // odd parity
#define SER_PARITY_EVEN 24 // even parity
#define SER_DIV_LATCH_ON 128 // used to turn reg 0,1 into divisor latch
#define PIC_IMR 0x21 // pic's interrupt mask reg.
#define PIC_ICR 0x20 // pic's interupt control reg.
#define INT_SER_PORT_0 0x0C // port 0 interrupt com 1
#define INT_SER_PORT_1 0x0B // port 0 interrupt com 2
#define INT_SER_PORT_2 0x0f //com 3
#define INT_SER_PORT_3 0x0d //com 4
//#define SERIAL_BUFF_SIZE 128 // current size of circulating receive buffer
// G L O B A L S /////////////////////////////////////////////////////////////
int malui_data_communt(int,int);
void huanwei(int h_count,int start_bei,int over_bei);
int pinlui_data_communt(int,int);
int huzaibo_data_communt(int,int);
void draw_number(int* m0,int* b0,int* xx,int* yy,int* curx,int* cury,char* p,int x,int length);
void change_han(int start,int end,int *xx,int *yy,int color);
void change_han_zz(int start,int end,int *xx,int *yy,int color);
int hanzib();
int hanzic();
void button_xu(int x,int y);
void anzi();
int falinn_data_communt(int,int);
int canshui_12_communt(int);
int canshui_11_communt(int);
int canshui_10_communt(int);
void buttonx(int x,int y);
void Mywin(int x1,int y1,int x2,int y2);
void MySwin(int x,int y,int length,int width);
void setmenu(int x1,int y,int x2,int m,int n);
void onSM1(int x1,int y1,int x2,int y2);
void onSMcls(int x1,int y1,int x2,int y2);
void draw_lin();
int drawline();
void serial_to(int countt,char *pp,int serial_portt);
void interrupt far (*Old_Isr)(__CPPARGS); // holds old com port interrupt handler
unsigned char ser_buffer[50]; // the receive buffer
int SERIAL_BUFF_SIZE=50;
int ser_end = -1,ser_start=-1; // indexes into receive buffer
unsigned char ser_ch;int char_ready=0; // current character and ready flag
int old_int_mask; // the old interrupt mask on the PIC
int open_port; // the currently open port
int serial_lock = 0; // serial ISR semaphore so the buffer
unsigned char jidai_communt_data[50];
int jidai_data_long;
int jidai_over;
int jidai_flag=0;
int jidai_he=0;
int led_dataok;
unsigned char ji_communt_data[20];
long int fist=0;
int jidai_he_t=0;
float test_tongxin;
float bili;
char cbili[3]="0.0";
char test_char[2];
int malui_chang_zh=0;
int huzaibo_chang_zh=0;
int bidui_chang_zh=0;
int cishu_chang_zh=0;
int pinlui_chang_zh=0;
int pinpian_chang_zh=0;
int gonglui_chang_zh=0;
int jiatiao_chang_zh=0;
int jiazai_chang_zh=0;
int serial_comtz;
int pserial_lock=0;
unsigned char pser_buffer[50];
int pSERIAL_BUFF_SIZE=50;
int pser_end = -1,pser_start=-1;
unsigned char pser_ch;
unsigned char shanxin_communt_data[50];
int shanxin_data_long;
int shanxin_over;
int shanxin_flag=0;
unsigned char sh_communt_data[20];
int sserial_lock=0;
unsigned char sser_buffer[50];
int sSERIAL_BUFF_SIZE=50;
int sser_end = -1,sser_start=-1;
unsigned char sser_ch;
unsigned char shanwei_communt_data[50];
int shanwei_data_long;
int shanwei_over;
unsigned char we_communt_data[20];
int shanwei_flag=0;
int shanwei_he=0;
int shanwei_he_zhuan;
unsigned char serial_com10[20];
unsigned char com10_ch;
int com_ser_end=-1;
int com_ser10=8;
float malui_data_float;
int malui_data_int;
int done;
int flag1=0;
int flag3=0;
int flag2=0;
int flag=0;
int up_flag=0;
int up_flag1=0;
int flag5=0;
int com1_flag5=0;
unsigned char communt_data[100];
char communt;
int tzhong_bidui=1;
int tzhong_tiaozhi=2;
int tzhong_jiazai=2;
int tzhong_dahuan=1;
int tzhong_falin=1;
int tzhong_jiazaimin=1;
int tzhong_jiatiao=2;
int tzhong_falinn=0;
int wait=0;
unsigned int led_data=0;
int jiazai_guan;
char malui_data_flow[]={"1.2"};
char smg_pinlui[]="1750000";
char smg_pinpian[]="15";
char smg_gonglui[]="00";
char smg_cishu[]="2000";
char huzaibo_data_char[]="9.60";
char smg_error[]="0000";
int pinlui_communt_data;
int malui_communt_data;
float pinlui_data_float;
char pinlui_zhong_data[2];
float huzaibo_float;
char char_comp_malui[]={"000"};
char char_comp_pinlui[]={"0000000"};
char char_comp_pinpian[]={"00"};
char char_comp_gonglui[]={"11"};
char char_comp_cishu[]={"1111"};
char char_comp_huzaibo[]={"0000"};
int int_comp_bidui=0;
int int_comp_falin=0;
int int_comp_tiaozhi=0;
int int_comp_jiatiao=0;
int int_comp_dahuan=0;
int int_comp_jiazai=0;
int int_comp_jiazailin=0;
int check;
static void interrupt far (*oldkb)();
static void interrupt newkb();
int key,update=0;
void set_bar(int *,int *,int,int,int,int,int);
void set_cur_line(int *,int *,int,int,int);
void set_chanel_data(char *,char *,int);
int hanzi();
int cmp_updata,cmp_updata1,cmp_updata2,cmp_updata3,cmp_updata4,cmp_updata5;
int pinlui_int;
int pinpian_int;
int gonglui_int;
int cishu_int;
int clr_led=1;
// char *malui_data_zizhen;
int h_x=1;
int huzaibo_data_8=8;
int huzaibo_data_4=4;
int huzaibo_data_2=2;
int huzaibo_data_1=1;
int malui_data_x=0;
int huzaibo_data_x;
int huzaibo_data_y;
float huzaibo_data_int;
char *huzaibo_string;
int jiazai_start=53;int jiazai_over=55;
int jiatiao_start=12;int jiatiao_over=14;
int jiazaimin_start=2;int jiazaimin_over=4;
int jiazait_start=57;int jiazait_over=59;
int chuan_start=65;int chuan_over=67;
// jiazait_start=57;jiazait_over=59;tzhong_jiazai=2;
int chuan_data_x=2;
int chuan_data_xx=2;
int jiazai_data_x=2;
int jiatiao_data_x=2;
int jiazaimin_data_x=1;
int jiazait_data_x=1;
int bar_y=1;
int k_key=0;
int shui_x=0;int shui_y=0;
int hanzic_start=0;int hanzic_over=4;
int zhong_com=7;
int zhong_com_data[100];
int zhong_done=0;
int xx,yy,b0,curx,cury;
unsigned char buffer_data[100];
unsigned char co_buffer_data[20];
void interrupt newkb()
{
key=inportb(0x60);
switch(key)
{
case 130:
key=49;update=1;cmp_updata=1;cmp_updata3=0;zhong_done=1;
break;
case 131:
key=50;update=1;cmp_updata=1;cmp_updata3=0;zhong_done=1;
break;
case 132:
key=51;update=1;cmp_updata=1;cmp_updata3=0;zhong_done=1;
break;
case 133:
key=52;update=1;cmp_updata=1;cmp_updata3=0;zhong_done=1;
break;
case 134:
key=53;update=1;cmp_updata=1;cmp_updata3=0;zhong_done=1;
break;
case 135:
key=54;update=1;cmp_updata=1;cmp_updata3=0;zhong_done=1;
break;
case 136:
key=55;update=1;cmp_updata=1;cmp_updata3=0;zhong_done=1;
break;
case 137:
key=56;update=1;cmp_updata=1;cmp_updata3=0;zhong_done=1;
break;
case 138:
key=57;update=1;cmp_updata=1;cmp_updata3=0;zhong_done=1;
break;
case 139:
key=48;update=1;cmp_updata=1;cmp_updata3=0;zhong_done=1;
break;
case 129:
key=27;update=1;cmp_updata1=0;cmp_updata2=0;cmp_updata4=1;zhong_done=1;wait=1;
break;
case 48:
key=115;update=1;cmp_updata=1;cmp_updata3=0;zhong_done=1;
break;
case 141:
key=61;update=1;zhong_done=1;
break;
case 32:
key=99;update=1;cmp_updata1=0;cmp_updata2=0;zhong_done=1;
break;
case 46:
key=113;update=1;cmp_updata=1;cmp_updata3=0;zhong_done=1;
break;
case 140:
key=45;update=1;cmp_updata1=0;cmp_updata2=0;zhong_done=1;
break;
case 30:
key=97;update=1;zhong_done=1; //自检
break;
case 31:
key=98;update=1;zhong_done=1; //解锁
break;
case 34:
key=101;update=1;zhong_done=1; //复位
break;
case 18:
key=85;update=1;zhong_done=1; //自毁
break;
case 143:
key=9;update=1;zhong_done=1;
break;
case 33:
key=100;update=1;zhong_done=1;
break;
default:
break;
}
(*oldkb)();
}
int main(void)
{
int hanzib();
int hanzic();
int m0,m1,add;
int b1,b2;
int i,j,k,f,x,y,h;
int errorcode;
int bkcolor,midx,midy,ch;
int gdriver=EGA,gmode=EGAHI;
int handle;int num;
int esc=0;
int graphdriver;
int graphmode;
FILE* wrfile;
FILE* fppa;
WORD modex[59][16];
char *p;
void *gothic_fontp;
unsigned fsize;
handle = open("Litt.chr", O_RDONLY|O_BINARY); //选择小号字体
if (handle == -1)
{
printf("unable to open font file 'GOTH.CHR'\n");
exit(1);
}
fsize=filelength(handle);
gothic_fontp = malloc(fsize);
if (gothic_fontp == NULL)
{
printf("unable to allocate memory for font file'GOTH.CHR'\n");
exit(1);
}
if (read(handle, gothic_fontp, fsize) != fsize)
{
printf("unable to read font file 'GOTH.CHR'\n");
exit(1);
}
close(handle);
if (registerfarbgifont(gothic_fontp) !=SMALL_FONT)
{
printf("unable to register font file'GOTH.CHR'\n");
exit(1);
}
initgraph(&gdriver,&gmode,"");
errorcode=graphresult();
if(errorcode!=grOk)
{
printf("Graphics error:%s\n",grapherrormsg(errorcode));
printf("Press any key to halt:");
getch();
exit(1);
}
/*y是垂直坐标,x是水平坐标,xx是文本水平坐标,yy是垂直文本坐标*/
//h=0;
xx=a+64;yy=b+87;h=2;
b0=b1=b2=m0=m1=0;/*m2_zhen=m2_data_flow=time=m3_zhen=m3_time=m4_zhen=m4_time=0;*/
curx=a+40;cury=b+21;xx=curx+4;yy=cury-2;
x=a+4+4+88;y=b+4+3+16+5;
//设置键盘中断
oldkb=getvect(9);
disable();
setvect(9,newkb);
enable();
anzi();
//while(!wait){}
delay(3000);
setgraphmode(getgraphmode());
h=1;b0=0;add=0;m0=1;
MySwin(x0,y0,L,W);
setcolor(9);
//outtextxy(a+5,10, "ss"); //title
i=0;j=0;
for(i=0;i<2;i++)
for(j=0;j<4;j++)
{
setcolor(6);
setmenu(a+7+10+155*i,b+30+24*j,a+7+10+140+155*i,i,j);
}
Mywin(a,b+30+24*j, a+L,b+20+24*j+70);
setfillstyle(1,15);
bar(a+4,b+30+24*j+4,a+L-4,b+30+24*j+60-3);
/*Mywin(a,b+20+24*j, a+L,b+10+24*j+70);
setfillstyle(1,7);
bar(a+4,b+10+24*j+4,a+L-4,b+10+24*j+60-3); */
setcolor(8);
line(a+4,b+20+24*j+70+1,a+L-4,b+20+24*j+70+1);
buttonx(a+76+7+1+10+155+46,b+31+1+24+24+22);
draw_lin();
hanzib(); //调用的汉字
huanwei(1,0,4);
wrfile=fopen("wrsave.dat","r");
for(i=0;i<3;i++)
fscanf(wrfile,"malui_data_flow=%c",&malui_data_flow[i]);
setfillstyle(1,7);
onSM1(a+4,b+24+6,a+79+10,b+45+6);
x=a+76+7+1+10;y=b+31+1;
set_bar(&x,&y,1,45,17,0,0);
setcolor(15);
outtextxy(a+76+7+1+15,b+31+2,malui_data_flow);
for(i=0;i<7;i++)
fscanf(wrfile,"smg_pinlui=%c",&smg_pinlui[i]);
x=a+76+7+1+10+155;y=b+31+1;
set_bar(&x,&y,7,60,17,0,0);
setcolor(8);
outtextxy(a+76+7+1+10+155+4,b+31+1+2,smg_pinlui);
for(i=0;i<2;i++)
fscanf(wrfile,"smg_pinpian=%c",&smg_pinpian[i]);
x=a+76+7+1+10+155;y=b+31+1+24;
set_bar(&x,&y,7,60,17,0,0);
setcolor(8);
outtextxy(a+76+7+1+10+155+4,b+31+1+2+24,smg_pinpian);
for(i=0;i<2;i++)
fscanf(wrfile,"smg_gonglui=%c",&smg_gonglui[i]);
x=a+76+7+1+10+155;y=b+31+1+24+24;
set_bar(&x,&y,7,60,17,0,0);
setcolor(8);
outtextxy(a+76+7+1+10+2+2+155,b+31+1+2+24+24,smg_gonglui);
for(i=0;i<4;i++)
fscanf(wrfile,"huzaibo_data_char=%c",&huzaibo_data_char[i]);
x=a+76+7+1+10;y=b+31+1+24;
set_bar(&x,&y,7,45,17,0,0);
setcolor(8);
outtextxy(a+76+7+1+10+2+2,b+31+1+2+24,huzaibo_data_char);
fscanf(wrfile,"tzhong_jiatiao=%d",&tzhong_jiatiao);
if(tzhong_jiatiao==1)
{jiazai_start=51;jiazai_over=53;}
else
{jiazai_start=53;jiazai_over=55;}
x=a+76+7+1+10;y=b+31+1+24+24+24;
set_bar(&x,&y,7,45,17,0,0);
x=a+76+7+1+10+5;y=b+31+1+24+24+24;
change_han(jiazai_start,jiazai_over,&x,&y,8);
fscanf(wrfile,"tzhong_jiazai=%d",&tzhong_jiazai);
if(tzhong_jiazai==1)
{jiazait_start=55;jiazait_over=57;}
else
{jiazait_start=57;jiazait_over=59;}
x=a+76+7+1+10;y=b+31+1+24+24;
set_bar(&x,&y,7,45,17,0,0);
x=a+76+7+1+10+5;y=b+31+1+24+24;
change_han(jiazait_start,jiazait_over,&x,&y,8);
fclose(wrfile);
//setcolor(1);
//bar(a+2,b+31+1+24+24+24+25,a+6+310,b+31+1+24+24+24+25+25);
malui_data_float=atof(&malui_data_flow);
huzaibo_data_y=malui_data_float;
huzaibo_data_y=36/huzaibo_data_y;
outportb(SPPCNTL,0x04);
outportb(SPPDATA,0);
i=0;
while(esc==0)
{
Open_Serial(COM_1,SER_BAUD_9600,SER_PARITY_NONE | SER_BITS_8 | SER_STOP_1);
Open_Serial(COM_2,SER_BAUD_9600,SER_PARITY_NONE | SER_BITS_8 | SER_STOP_1);
Open_Serial(COM_3,SER_BAUD_9600,SER_PARITY_NONE | SER_BITS_8 | SER_STOP_1);
while(!zhong_done)
{
if(jidai_over==1)
{
jidai_over=0;
i=0;
if(jidai_flag==1)
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -