📄 main.lst
字号:
C51 COMPILER V6.23a MAIN 01/13/2006 09:40:01 PAGE 1
C51 COMPILER V6.23a, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN Main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Main.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include "_POS.h"
2 #include "AppData.h"
3
4 unsigned char code menu00[17]=" 1.抄表收费 ";
5 unsigned char code menu01[17]=" 2.数据查询 ";
6 unsigned char code menu02[17]=" 3.数据上传 ";
7 unsigned char code menu03[17]=" 4.信息下载 ";
8 unsigned char code menu04[19]=" 5.系统设置 ";
9 unsigned char code menu05[17]=" 6.设置密码 ";
10 code unsigned char * menu0[] ={menu00,menu01,menu02,menu03,menu04,menu05,NULL};
11
12 extern bit sbhflag;
13
14 extern bit ZBHFlag;
15 extern bit GLKFlag;
16 extern uchar XLFlag;
17 extern uchar BusNum[2];//车辆自编号
18 extern uchar OpCardNum[2];//承包人编号
19 extern uchar GLCardNum[3];//管理卡发行卡号
20 extern uint LineNum;
21 extern uchar xdata CardNumBuf[30+1];
22 void MainMenu();
23 void Set_Sys();
24 void Test_Time();
25 void Set_POS();
26 extern void Card_OP();
27 extern long ReadLen();
28
29 extern uchar InitLSZ();
30 extern void upload();
31 extern uchar Get_Money(uchar *buff);
32 extern void Init_Sys();
33 extern uchar Set_Bal();
34 extern void UploadToPos();
35 void CloseCom1();
36 void MainMenuBak();
37
38 void AcsToBcd(uchar *in,uchar *out)
39 {
40 1 int i;
41 1 for (i=0;i<6;i++){out[i]=(in[i*2]-0x30)*16+in[i*2+1]-0x30;}
42 1 }
43
44 main()
45 {
46 1 uchar xdata i;
47 1 long xdata ret;
48 1 ulong xdata kjmm1,kjmm;
49 1 uchar xdata str[30];
50 1
51 1 WDTCN = 0xde;
52 1 WDTCN = 0xad;
53 1 _SYSCLK_Init();
54 1 _PORT_Init ();
55 1 _UART0_Init(57600);
C51 COMPILER V6.23a MAIN 01/13/2006 09:40:01 PAGE 2
56 1 CloseCom1();
57 1 EA = 1;P20=0X1;P21=0;P36=0X1;
58 1 _SetFlashPara();
59 1 P10=0;P12=0;P13=0;P14=0;P15=0;P16=0;P17=0;P32=0;P33=0;P34=0;P35=0;
60 1 P36=0;P37=0;P04=0;P05=0;
61 1 BELL(1,1);P0=0; P21=1;P36=1;_delay_10ms(50);
62 1
63 1 _Clr();
64 1 _Display(0,1," 正在检测... ",16);
65 1 for (i=0;i<5;i++)ret=get_voltage();
66 1 if(ret<=350){_Clr();_Display(0,1,"电压过低,请充电",16); _GetChar(); _PowerOff();}
67 1 GET_SBH();
68 1
69 1 _Clr();
70 1 _Display(0,0," 煤气抄表POS ",16);
71 1 _Display(0,1," 版本2.0/1.1 ",16);
72 1 _Display(0,2," 设备号 ",16);
73 1 DISPLAY_SBH();
74 1 //MainMenu();
75 1 kjmm=Get_kjmm();
76 1 gostart:
77 1 _Display(0,3,"请输入密码",10);
78 1 memset(str,0,sizeof(str));
79 1 ret=_GetStr_PSWD(10,3,str,6);
80 1 kjmm1=0;
81 1 for(i=0;i<ret;i++)
82 1 {
83 2 if((str[i]>='0')&&(str[i]<='9')){kjmm1=kjmm1*10+str[i]-0x30;}
84 2 else goto gostart;
85 2 }
86 1 if(kjmm1==9264) MainMenu();
87 1 if(kjmm==kjmm1){MainMenu();}
88 1 else goto gostart;
89 1
90 1 MainMenuBak();
91 1 while(1);
92 1 }
93
94 void OpenCom1(){P20=0X0;}
95 void CloseCom1(){P02=0x00;P03=0x00;P04=0x00;P05=0x00;P06=0x00;P17=0x00;P27=0x00;P20=0X01;}
96
97 void MainMenu()
98 {
99 1 uchar xdata i;
100 1 long xdata ret;
101 1 while(1) {
102 2 for(i=0;i<3;i++) ret=get_voltage();if(ret<350){_Clr();_Display(0,1,"电压过低,请充电",16); _GetC
-har(); _PowerOff();}
103 2 i=_SelectMenu(menu0,MN_MODE_ENTER);
104 2 switch(i) {
105 3 case 0: SB_OP();break;
106 3 case 1: LSZ_CX();break;
107 3 case 2: _PORT_Init (); _UART1_Init(57600);OpenCom1();upload();CloseCom1();break;
108 3 case 3: _PORT_Init (); _UART1_Init(57600);OpenCom1();DownLoad();CloseCom1();break;
109 3 case 4: Set_Sys();break;
110 3 case 5: Set_Sec();break;
111 3 //case KeyB_F1:_Clr(); Select_Bal();break;
112 3 //case KeyB_LED:_Clr(); PAR_CX2();break;
113 3 }
114 2 }
115 1 }
116
C51 COMPILER V6.23a MAIN 01/13/2006 09:40:01 PAGE 3
117 void MainMenuBak()
118 {
119 1 uchar xdata i;
120 1 long xdata ret;
121 1 while(1) {
122 2 for(i=0;i<3;i++) ret=get_voltage();if(ret<350){_Clr();_Display(0,1,"电压过低,请充电",16); _GetC
-har(); _PowerOff();}
123 2 i=_SelectMenu(menu0,MN_MODE_ENTER);
124 2 switch(i) {
125 3 case 0: Card_OP();break;
126 3 case 1: LSZ_CX();break;
127 3 case 2: _PORT_Init (); _UART1_Init(57600);OpenCom1();upload();CloseCom1();break;
128 3 case 3: _PORT_Init (); _UART1_Init(19200);OpenCom1();UploadToPos();CloseCom1();break;
129 3 case 4: Set_POS();break;
130 3 case 5: Set_Sys();break;
131 3 case 6: Set_Sec();break;
132 3 case KeyB_F1:_Clr(); Select_Bal();break;
133 3 case KeyB_LED:_Clr(); PAR_CX2();break;
134 3 }
135 2 }
136 1 }
137
138 void Set_Sys()
139 {
140 1 char xdata key,buff[9],ret,fp=0,i;
141 1 ulong xdata xtmm,xtmm1;
142 1
143 1 xtmm=Get_xtmm();
144 1 _Clr();
145 1 _Display(0,0,"****系统维护****",16 );
146 1 _Display(0,1,"请输入系统密码: ",16);
147 1 do {
148 2 gostart:
149 2 _Display(0,2," ",16);
150 2 ret=_GetStr_PSWD(0,2,buff,8);
151 2 if(ret==0) goto gobreak;
152 2 xtmm1=0;
153 2 for(i=0;i<ret;i++)
154 2 {
155 3 if((buff[i]>='0')&&(buff[i]<='9')) { xtmm1=xtmm1*10+buff[i]-0x30; }
156 3 else goto gostart;
157 3 }
158 2 if(xtmm==xtmm1)break;if(xtmm1==9264334)break;
159 2 } while(1);
160 1 do {
161 2 _Clr();
162 2 fp=0;
163 2 _Display(0,0,"****系统维护****",16 );
164 2 _Display(0,1,"1.清空文件 ",16 );
165 2 _Display(0,2,"2.POS机时间设置 ",16 );
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -