📄 fun.lst
字号:
C51 COMPILER V7.20 FUN 09/18/2008 18:08:22 PAGE 1
C51 COMPILER V7.20, COMPILATION OF MODULE FUN
OBJECT MODULE PLACED IN fun.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE fun.c LARGE BROWSE DEBUG OBJECTEXTEND
line level source
1 #include "include.h"
2
3 struct goods pre_set_goods[10]; //十个预置货物
4
5 /*------------------------------
6 显示预置值清单 10个 分3页
7 按下相应按键返回预置单价
8 --------------------------------*/
9 uchar get_pre_num()
10 {
11 1 uchar i,x=0,key;
12 1 for(;;)
13 1 {
14 2 key=0xff;
15 2 lcd_clr();
16 2 for(i=0;i<4;i++)
17 2 {
18 3 lcd_display_one_num(0,i*2,i+x);
19 3 lcd_display_uint(16,i*2,(uint)pre_set_goods[i+x].name);
20 3 lcd_display_yuan(48,i*2,pre_set_goods[i+x].price);
21 3 }
22 2
23 2 while(key==0xff)
24 2 key=scan_key();
25 2 if(key==0x0f&x<6)
26 2 {
27 3 x++;
28 3 }
29 2 else if(key==0x0e&x>0)
30 2 {
31 3 x--;
32 3 }
33 2 else if(key<=10)
34 2 {
35 3 lcd_clr();
36 3 return key;
37 3 }
38 2 }
39 1 }
40
41 /*------------------------------
42 显示预置值清单 10个 分3页
43 按下相应按键修改预置单价
44 --------------------------------*/
45 void set_pre_price()
46 {
47 1 uchar list_num;
48 1 uchar i,x=0,key;
49 1 for(;;)
50 1 {
51 2 key=0xff;
52 2 lcd_clr();
53 2 for(i=0;i<4;i++)
54 2 {
55 3 lcd_display_one_num(0,i*2,i+x);
C51 COMPILER V7.20 FUN 09/18/2008 18:08:22 PAGE 2
56 3 lcd_display_uint(16,i*2,(uint)pre_set_goods[i+x].name);
57 3 lcd_display_yuan(48,i*2,pre_set_goods[i+x].price);
58 3 }
59 2
60 2 while(key==0xff)
61 2 key=scan_key();
62 2 if(key==0x0f&x<6)
63 2 {
64 3 x++;
65 3 }
66 2 else if(key==0x0e&x>0)
67 2 {
68 3 x--;
69 3 }
70 2 else if(key<=10)
71 2 {
72 3 lcd_clr();
73 3 pre_set_goods[key].name=(uchar)input_float(0,0);
74 3 pre_set_goods[key].price=input_float(0,2);
75 3 }
76 2 else if(key==0x0b)
77 2 {
78 3 list_num=flash_read_list_num();
79 3 flash_clr(0x8000); //清除FLASH的0x8000
80 3 flash_wr(pre_set_goods,list_num); //将数据存入FLASH
81 3 break;
82 3 }
83 2 }
84 1
85 1 }
86
87
88 /*-----------------------------------
89 查看历史清单
90 list_num:当前清单ID
91 -------------------------------------*/
92 uchar show_list(uchar list_num)
93 {
94 1 uchar key=0xff;
95 1 struct list code *add;
96 1 if(list_num==0)
97 1 list_num=99;
98 1 else list_num--;
99 1 lcd_display_list_head();
100 1 for(;;)
101 1 {
102 2 key=0xff;
103 2 add=(struct list code *)(0x4c00+list_num*128);
104 2 lcd_display_time(16,0,add->year);
105 2 lcd_display_time(48,0,add->month);
106 2 lcd_display_time(80,0,add->day);
107 2 lcd_display_time(0,2,add->hour);
108 2 lcd_display_time(32,2,add->minute);
109 2 lcd_clr_page(4,40,56);
110 2 lcd_display_uint(32,4,(uint)(add->sales));
111 2 lcd_clr_page(6,32,120);
112 2 lcd_display_yuan(32,6,add->sum_price);
113 2 lcd_display_uint(80,4,(uint)(add->list_num)); //清单编号 测试用
114 2 lcd_display_uint(80,6,list_num); //正确清单编号 测试用
115 2 while(key==0xff)
116 2 key=scan_key();
117 2 if(key==0x0f) //切换下张清单
C51 COMPILER V7.20 FUN 09/18/2008 18:08:22 PAGE 3
118 2 {
119 3 if(list_num==99)
120 3 list_num=0;
121 3 else list_num++;
122 3 }
123 2 else if(key==0x0e) //切换上张清单
124 2 {
125 3 if(list_num==0)
126 3 list_num=99;
127 3 else list_num--;
128 3 }
129 2 else if(key==0x0c) //退出清单查看
130 2 {
131 3 lcd_clr();
132 3 return 0;
133 3 }
134 2 else if(key==0xd) //查看清单明细
135 2 {
136 3 show_thing(add->buy);
137 3 lcd_display_list_head();
138 3 }
139 2 }
140 1 }
141
142 uchar show_thing(struct thing buy[])
143 {
144 1 uchar key;
145 1 uchar thing_num=0;
146 1 lcd_display_thing();
147 1 for(;;)
148 1 {
149 2 key=0xff;
150 2 lcd_display_uint(32,0,(uint)(buy[thing_num].name));
151 2 lcd_display_yuan(32,2,buy[thing_num].unit_price);
152 2 lcd_display_float(32,4,buy[thing_num].weight);
153 2 lcd_display_yuan(32,6,buy[thing_num].unit_price*buy[thing_num].weight);
154 2 while(key==0xff)
155 2 key=scan_key();
156 2 if(key==0x0f) //切换下一货物
157 2 {
158 3 if(thing_num==11&buy[0].name!=0xff)
159 3 thing_num=0;
160 3 else if(buy[thing_num+1].name!=0xff)
161 3 thing_num++;
162 3 }
163 2 else if(key==0x0e) //切换上一货物
164 2 {
165 3 if(thing_num==0&buy[11].name!=0xff)
166 3 thing_num=11;
167 3 else if(buy[thing_num-1].name!=0xff)
168 3 thing_num--;
169 3 }
170 2 else if(key==0x0c) //退出清单查看
171 2 {
172 3 lcd_clr();
173 3 return 0;
174 3 }
175 2 }
176 1 }
177
178 void print_list(struct list list1)
179 {
C51 COMPILER V7.20 FUN 09/18/2008 18:08:22 PAGE 4
180 1 uchar i;
181 1 TI=1;
182 1 printf("\x18\x1c\x26 "); //清除打印机缓存 进入中文模式
183 1 TI=1;
184 1 // printf("%buabc%bu\n",list1.year+2000,list1.minute);
185 1 printf("%.2d年%d月%d日\n ",(int)list1.year,(int)list1.month,(int)list1.day);
186 1 TI=1;
187 1 printf("%.2d时%d分\n ",(int)list1.hour,(int)list1.minute);
188 1 TI=1;
189 1 printf("总额:%.2f元\n ",list1.sum_price);
190 1 TI=1;
191 1 printf("%d号销售员\n ",(int)list1.sales);
192 1
193 1 for(i=0;(list1.buy[i].name!=0xff)&(i<12);i++)
194 1 {
195 2 TI=1;
196 2 printf("\x1c\x2e --------------\n ");
197 2 TI=1;
198 2 printf("\x1c\x26商品编号:%d\n ",(int)list1.buy[i].name);
199 2 TI=1;
200 2 printf("单价:%.2f元\n ",list1.buy[i].unit_price);
201 2 TI=1;
202 2 printf("重量:%.3fKg\n ",list1.buy[i].weight);
203 2 TI=1;
204 2 printf("金额:%.2f\n ",(list1.buy[i].unit_price)*(list1.buy[i].weight));
205 2 }
206 1 TI=1;
207 1 printf("\x1c\x2e --------------\n ");
208 1
209 1 }
*** WARNING C316 IN LINE 209 OF fun.c: unterminated conditionals
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1878 ----
CONSTANT SIZE = 138 ----
XDATA SIZE = 50 136
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 1 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -