📄 fm24c04.lst
字号:
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 FM24C04 07/18/2006 09:59:25 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 FM24C04 07/18/2006 09:59:25 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<intrins.h>
1 =1 /*--------------------------------------------------------------------------
2 =1 INTRINS.H
3 =1
4 =1 Intrinsic functions for C51.
5 =1 Copyright (c) 1988-2001 Keil Elektronik GmbH and Keil Software, Inc.
6 =1 All rights reserved.
7 =1 --------------------------------------------------------------------------*/
8 =1
9 =1 extern void _nop_ (void);
10 =1 extern bit _testbit_ (bit);
11 =1 extern unsigned char _cror_ (unsigned char, unsigned char);
12 =1 extern unsigned int _iror_ (unsigned int, unsigned char);
13 =1 extern unsigned long _lror_ (unsigned long, unsigned char);
14 =1 extern unsigned char _crol_ (unsigned char, unsigned char);
15 =1 extern unsigned int _irol_ (unsigned int, unsigned char);
16 =1 extern unsigned long _lrol_ (unsigned long, unsigned char);
17 =1 extern unsigned char _chkfloat_(float);
5 #include "externxy.h"
1 =1 /**********************************************************
2 =1 * 文件名: variable.h
3 =1 ***********************************************************/
4 =1
5 =1 extern uchar code ver_num[2]; //软件版本号1.0.0.0
6 =1 extern uchar code keynumdata[];
7 =1 extern uchar code dotmem[8]; //小数点查表
8 =1 extern uchar code dotmode[9]; //5种小数工作模式,只能修改,不能添加。
9 =1 //**************************************************************
10 =1 extern bdata uchar bbyte; //位数组定义,可提髙速度
11 =1 extern bit a0;
12 =1 extern bit a1;
13 =1 extern bit a2;
14 =1 extern bit a3;
15 =1 extern bit a4;
16 =1 extern bit a5;
17 =1 extern bit a6;
18 =1 extern bit a7; //位数组定义,可提髙速度
19 =1 /*******************************************************/
20 =1 extern bdata uchar printstate; //打印机状态
C51 COMPILER V7.00 FM24C04 07/18/2006 09:59:25 PAGE 8
21 =1 extern bit p1busy;
22 =1 extern bit p1pe;
23 =1 extern bit p1sel;
24 =1 extern bit p1err;
25 =1 extern bit p2busy;
26 =1 extern bit p2pe;
27 =1 extern bit p2sel;
28 =1 extern bit p2err;
29 =1 //**********************************************************
30 =1 extern bdata uchar alarm; //K1SPK,DCFD1,DCFX1,K2SPK,DCFD2,DCFX2,
31 =1 extern bit k1spk; //0--鸣;1--不鸣
32 =1 extern bit DCFD1;
33 =1 extern bit DCFX1;
34 =1 extern bit k2spk;
35 =1 extern bit DCFD2;
36 =1 extern bit DCFX2;
37 =1 extern bit jsq1out; //计数器1输出
38 =1 extern bit jsq2out; //计数器2输出
39 =1 //***********************************************************
40 =1
41 =1 extern bdata uchar cmdmem; //提枪及计量数据
42 =1 extern bit tq1; // ;提枪1
43 =1 extern bit tq2; // ;提枪2
44 =1 extern bit k1key; // ;锁 0--设置
45 =1 extern bit k2key; // ;锁
46 =1 extern bit cgq1s1; // ;传感器11
47 =1 extern bit cgq1s2; // ;传感器12
48 =1 extern bit cgq2s1; // ;传感器21
49 =1 extern bit cgq2s2; // ;传感器22
50 =1 //////////////////////////////////////////
51 =1 extern bit cgq1s1old; //传感器11前次检测状态
52 =1 extern bit cgq1s2old; //传感器12前次检测状态
53 =1 extern bit cgq2s1old; //传感器21前次检测状态
54 =1 extern bit cgq2s2old; //传感器22前次检测状态
55 =1 extern bit updatea; //更新显示A工作面计量数据
56 =1 extern bit updateb; //更新显示B工作面计量数据
57 =1 extern bit update_worka; //通知更新a显示,由定时器控制
58 =1 extern bit update_workb; //通知更新b显示,由定时器控制
59 =1 extern bit scanfkey; //通知扫描銉盘
60 =1 extern bit dispkeyok; //通知显示更新key屏
61 =1 extern bit spear1_state; //枪1的状态
62 =1 extern bit spear2_state; //枪2的状态
63 =1 extern bit dispprn_a; //每秒通知显示打印机状态a
64 =1
65 =1 extern bit ration_a; //1--a枪为定量加油停机 因定额到通知取整
66 =1 extern bit ration_b; //1--b枪为定量加油停机 因定额到通知取整
67 =1 extern bit save_oka; //通知保存计量数据
68 =1
69 =1 extern bit ration_mode_a; //1--a枪为定升加油 0--a枪为定元加油模式
70 =1 extern bit ration_mode_b; //1--b枪为定升加油 0--b枪为定元加油模式
71 =1 extern bit vip_mode_a,vip_mode_b; //历史定量模式
72 =1
73 =1 //extern bit rece_ok; //正确接收到上位机指令标志
74 =1 //extern bit rece_add; //接收到上位机发送的ADD字节标志
75 =1 extern bit isp_err; //1--ISP编程错误标志
76 =1 extern bit IFACK; //record the SDA state to confirn if ACK has happened
77 =1 extern bit NO_ACK; //1==no ack flag
78 =1 extern bit BUS_FAULT; //bus fault flag
79 =1
80 =1 extern bit keyok_a,keyok_b; //按銉有效
81 =1 extern bit setdotok,setdotok_b; //设置定额数据时有无按下小数标记
82 =1 //extern bit saledot; //1--金额小数点为叁位 0--金额小数点为两位
C51 COMPILER V7.00 FM24C04 07/18/2006 09:59:25 PAGE 9
83 =1 extern bit locknooil_a,locknooil_b; //1--锁机状态
84 =1 extern bit save_ok; //1--有数据须保存
85 =1 extern bit cease_power; //停电
86 =1 extern bit dropt_a,dropt_b; //1-挂枪标志 用于上电时就则不能开电机
87 =1 extern bit messagesave_ok; //1--上位机已设置参数标志
88 =1 extern bit printformat_saveok; //通知保存打印格式
89 =1 extern bit setpas_a,setpas_b; //设置--高级特殊菜单
90 =1 /***************************************/
91 =1 extern idata uchar decimal_a; //LCD1小数点控制 1--显点 髙-->低: n,m,6,4,2,5,3,1 [m=1表示A使用2#打
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -