📄 main.lst
字号:
3 =1 #endif
4 =1 #ifndef uint
5 =1 #define uint unsigned int
6 =1 #endif
7 =1 #ifndef ulong
8 =1 #define ulong unsigned long
9 =1 #endif
10 =1 #include <INTRINS.H>
1 =2 /*--------------------------------------------------------------------------
2 =2 INTRINS.H
3 =2
4 =2 Intrinsic functions for C51.
5 =2 Copyright (c) 1988-2001 Keil Elektronik GmbH and Keil Software, Inc.
6 =2 All rights reserved.
7 =2 --------------------------------------------------------------------------*/
8 =2
9 =2 extern void _nop_ (void);
10 =2 extern bit _testbit_ (bit);
11 =2 extern unsigned char _cror_ (unsigned char, unsigned char);
12 =2 extern unsigned int _iror_ (unsigned int, unsigned char);
13 =2 extern unsigned long _lror_ (unsigned long, unsigned char);
14 =2 extern unsigned char _crol_ (unsigned char, unsigned char);
15 =2 extern unsigned int _irol_ (unsigned int, unsigned char);
16 =2 extern unsigned long _lrol_ (unsigned long, unsigned char);
17 =2 extern unsigned char _chkfloat_(float);
11 =1 #define GUNJLMODE 1 //1--单油品双枪双计量 2--双油品双枪双计量 3--单计量[1键2枪2阀] 4--单计量2键2枪2阀]
12 =1 /************************************************************/
13 =1 #define PCB 1 //0--不带打印机 1--带打印机
14 =1 #if PCB==0
=1 #define KEY_ADD 0xf700// //读按銉地址
=1 #define TQJLADD 0xef00// //读提枪计量数据地址
=1 #define READRPRINT 0xff00 //读打印机状态地址
=1 #define LCDAADD 0xdf00// //显示板LCDA地址
=1 #define LCDBADD 0xbf00// //显示板LCDB地址
=1 #define PRINTER1ADD 0xf800 //打印机1数据输出地址
=1 #define PRINTER2ADD 0xf900 //打印机,液晶
=1 #define DXD1ADD 0xfe00 //气缸1及蜂鸣器1输出地址
=1 #define DXD2ADD 0xfd00 //气缸2及蜂鸣器1输出地址
=1 #define KEY_DISPADD 0xfB00// //显示按銉屏地址1,2
=1 #else //---打印机型
26 =1 #define KEY_ADD 0xf800// //读按銉地址
27 =1 #define TQJLADD 0xf900// //读提枪计量数据地址
28 =1 #define READPRINT 0xfa00 //读打印机状态地址
29 =1 #define LCDAADD 0xfb00// //显示板LCDA地址
30 =1 #define LCDBADD 0xfc00// //显示板LCDB地址
C51 COMPILER V7.00 MAIN 07/18/2006 09:59:21 PAGE 5
31 =1 #define PRINTER1ADD 0xef00 //打印机1数据输出地址
32 =1 #define PRINTER2ADD 0xfd00 //打印机2数据输出地址
33 =1 #define DXD1ADD 0xf700 //气缸1及蜂鸣器1输出地址
34 =1 #define DXD2ADD 0xdf00 //气缸2及蜂鸣器1输出地址
35 =1 #define KEY_DISPADD 0xfe00// //按銉屏地址1,2
36 =1 #endif
37 =1 //-------------------------------------
38 =1 #define PASSSTARTADD 79 //锁机密码首地址
39 =1 #if GUNJLMODE==1
40 =1 #define mc2 mc1
41 =1 sbit dely1=P1^4; //临时时间继电器
42 =1 #else
=1 sbit mc2=P1^4; //电机2
=1 #endif
45 =1 /****************************************************************************
46 =1 * 端口定义
47 =1 *****************************************************************************/
48 =1 sbit jsq1=P4^0; //计数器1
49 =1 sbit jsq2=P4^1; //计数器2
50 =1
51 =1 sbit wdt=P1^0; //WDT
52 =1 sbit sr1=P1^1; //传感器1检测--有无检测
53 =1 sbit sr2=P1^2; //传感器2检测--有无检测
54 =1 sbit mc1=P1^3; //电机1
55 =1
56 =1
57 =1 #if PCB==0
=1 sbit SCL=P1^6; //EEPROM
=1 sbit SDA=P1^7; //EEPROM
=1 #else
61 =1 sbit SCL=P4^3; //EEPROM
62 =1 sbit SDA=P4^2; //EEPROM
63 =1 sbit T_CLK=P1^6; /*实时时钟时钟线引脚 ---DSCLK*/
64 =1 sbit T_IO=P1^7; /*实时时钟数据线引脚 ---DSDA*/
65 =1 sbit T_RST=P1^5; /*实时时钟复位线引脚---DSCE */
66 =1 sbit P1STB=P3^4;
67 =1 sbit P2STB=P3^5;
68 =1 #endif
69 =1 /***************************************************************************
70 =1 *
71 =1 ***************************************************************************/
72 =1
73 =1 /*****************************************************************************
74 =1 *函数原型
75 =1 *****************************************************************************/
76 =1 void InitializeSystem(void); //系统初始化
77 =1
78 =1 void disp_lcd1(ulong lcddata,uchar lcdadd); //LCDA_DISP
79 =1 void disp_lcd2(ulong lcddata,uchar lcdadd); //LCDB_DISP
80 =1
81 =1 void dcespk_out(void); //气缸及蜂鸣器输出
82 =1 void disp_dot1(uchar dotdata); //;LCD1小数点
83 =1 void disp_dot2(uchar dotdata); //;LCD2小数点
84 =1 void read_key(void); //读按键
85 =1 void keya_solve(void); //按键处理
86 =1 void keyb_solve(void); //按键处理
87 =1 void readbyteseq(uint add,uchar *ptr,uint readlen); //连续读EEPROM
88 =1 void writebyteseq(uint add,uchar *ptr,uint writelen); //连续写EEPROM
89 =1 uchar readbyte (uint add);
90 =1 void writebyte(uint add,uchar wbyte);
91 =1 void maths_a(void);
92 =1 void maths_b(void);
C51 COMPILER V7.00 MAIN 07/18/2006 09:59:21 PAGE 6
93 =1 void calculate_ration(uchar gunidid); //计算定量脉冲数
94 =1
95 =1
96 =1 void printer(uchar n,uchar sdata[],uchar prnidid); //打印机输出命令及数据
97 =1 void print_ipl(void); //打印机初始化
98 =1 void printer_time(uchar prnidid); //打印加油日期、时间
99 =1 void print_proof(uchar prnidid); //打印加油票据A/b
100 =1
101 =1
102 =1 void disp_key(void); //显示键盘屏1
103 =1 void disp_vip_a(void); //显示定量加油数据a
104 =1 void clr_exitdata_a(void); //功能:取消加油时,按退出键后清原来加油数据
105 =1 //void disp_printer_state1(void); //显示打印机1状态
106 =1 void disp_menu_a(void); //显示菜单a
107 =1 void disp_menu_b(void); //显示菜单b
108 =1 void disp_ration_ending(void); //计算、显示定量加油结局
109 =1 void disp_total_a(void); //显示TOTAL数据a
110 =1 void disp_return_a(void); //查询及菜单返回的显示界面
111 =1 void disp_updata_lcd(uint addab,uchar *ptr); //显示更新显示数据LCD1/LCD2
112 =1 void disp_memu1_oil(void); //显示加油菜单项--1#
113 =1 void disp_eeprom_history(uchar gunid,uchar dypass); //显示枪1/2历史加油记录
114 =1 void disp_lock_a(void); //显示锁机a
115 =1 void disp_time(uchar gunidid); //显示时钟a/b
116 =1 void disp_memu1_set(void); //显示设置菜单项--1#
117 =1 void disp_velocity_control(uchar gunidid); //显示提前量---流量控制
118 =1 void disp_close_num(uchar gunidid); //显示提前关机量---关机控制
119 =1 void disp_lcd_clear(uchar gunidid); //LCD清屏
120 =1 /*****************************************************************************/
121 =1 void eeprom_ipl(void); //EEPROM初始化程序
122 =1 void renew_sysdata(void); //恢复系统参数
123 =1 void backup_sysdata(void); //系统参数备份
124 =1 void iap_sys_read(uint add,uchar *pi,uchar amount); //读IAP系统参数
125 =1 uchar byte_verify(uint add);//IAP字节读
126 =1 void byte_program(uint add,uchar *ptr);//字节编程
127 =1 void sector_erase(uint add); //扇区擦除
128 =1 void trigger_isp(void); //触发ISP
129 =1 void set_isp_add(uint add); //送地址
130 =1 void iap_disable(void); //关闭IAP功能
131 =1 void clear_worka(void); //清除工作面A加油数据
132 =1 void disp_key_clear_a(void); //键盘小屏清屏a
133 =1 void disp_key_clear_b(void); //键盘小屏清屏b
134 =1
135 =1 void iap_sys_save(uint add,uchar *pi,uchar amount); //功能:保存IAP系统参数
136 =1 void oil_intmoney(uchar gunidid); //金额取整加油
137 =1
138 =1 bit pass_check(uchar gunidid); //检查锁机密码a/b
139 =1
140 =1 void RTInputByte(uchar); //* 输入 1Byte */
141 =1 uchar RTOutputByte(void); //* 输出 1Byte */
142 =1 void W1302(uchar, uchar);
143 =1 uchar R1302(uchar);
144 =1 void Set1302(void); /* 设置时间 */
145 =1 void Bcd2asc(uchar,uchar *);
146 =1 void Get1302(void); /* 读取1302当前时间 */
147 =1 void set_time(uchar number); //调时间日期
148 =1
149 =1 ///////////////////////////////////////////////////////
150 =1 void disp_total_b(void); //显示TOTAL数据b
151 =1 void disp_lock_b(void); //显示锁机b
152 =1 void disp_memu2_set(void); //显示设置菜单项--2#
153 =1 void disp_memu2_oil(void); //显示加油菜单项--2#
154 =1 void disp_return_b(void); //查询及菜单返回的显示界面b
C51 COMPILER V7.00 MAIN 07/18/2006 09:59:21 PAGE 7
155 =1 void clr_exitdata_b(void); //取消加油时,按退出键后清原来加油数据
156 =1 void print2_proof(void); //打印加油票据B
157 =1 void disp_vip_b(void); //显示定量加油数据b
158 =1 void clear_workb(void); //清除工作面B加油数据
159 =1 void printer_time_b(void); //打印加油日期、时间b
160 =1 void disp_ration_ending_b(void); //计算、显示定量加油结局b
161 =1 void disp_product(uchar gunidid); //显示选择的油品
162 =1 void disp_memu2_important(void); //显示特殊菜单项--2#
163 =1 void disp_memu1_important(void); //显示特殊菜单项--1#
164 =1 void disp_pass_vital(uchar gunidid); //进入特殊菜单的密码显示
165 =1 void rece_command(void); //通讯处理
166 =1 void accumulative_total_list_a(void); //累计转换至列表a
167 =1 void accumulative_total_list_b(void); //累计转换至列表b
168 =1 void backup_printer_format(void);
169 =1 void renew_printer_format(void);
170 =1 /**************END**************************************/
171 =1
172 =1
173 =1
174 =1
175 =1
176 =1
177 =1
4 #include "variable.h"
1 =1 /**********************************************************
2 =1 * 文件名: variable.h
3 =1 ***********************************************************/
4 =1
5 =1 uchar code ver_num[2]={0x01,0x02}; //软件版本号U1.0.0 --只能用BCD码
6 =1 uchar code keynumdata[]={0x7E,0x48,0x3D,0x6D,0x4B,0x67,0x77,0x4C,0x7F,0x6F,0x5F, // 0--10
7 =1 0x73,0x36,0x31,0x79,0x37,0x17,0x5B,0x53,0x32,0x51,0x5E, //11--21
8 =1 0x71,0x1F,0x11,0x33,0x7A,0x01,0x00,0x01,0x02,0x04,0x08,0x00,0x00}; //22--32
9 =1 //0,1,2,3,4,5,6,7,8,9,A, b,C,c,d,E,F,H,h,L,n,N, o,P,r,t,U,-,'全灭','Lock','fun
-ction','Volume','Money'
10 =1 uchar code dotmem[8]= {0x0f,0x01,0x0A,0x00,0x0C,0x04,0x02,0x08}; //小数点查表--小数显示函数用
11 =1 uchar code dotmode[9]={0x10,0x0e,0x38,0x31,0x02,0x00,0x04,0x20,0x00}; //5种小数工作模式,只能修改,不能
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -