📄 bbbb.lst
字号:
C51 COMPILER V7.00 BBBB 09/14/2006 16:35:49 PAGE 1
C51 COMPILER V7.00, COMPILATION OF MODULE BBBB
OBJECT MODULE PLACED IN bbbb.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE bbbb.c OPTIMIZE(9,SIZE) BROWSE ORDER DEBUG OBJECTEXTEND
stmt level source
1 /*********************************************
2 * 文件名:bbbb.c
3 *********************************************/
4 #include <REG51STC.H>
5 #include <ABSACC.H>
6 #include "CMD16887.H"
7 #include <INTRINS.H>
8 #include "externxy.h"
9 /***************************************************************
10 * 功能:显示锁机b
11 * 输入密码过程中是从右到左,即第1个输入的在最右边--个位。
12 ***************************************************************/
13 void disp_lock_b(void)
14 { void *ptr;
15 1 uchar i,j;
16 1 uchar dispmem[16];
17 1 if(menu2==4)
18 1 {
19 2 if(temp_memb!=4)
20 2 {
21 3 keyb_num[0]=keynumdata[temp_memb];
22 3 keyb_num[1]=keynumdata[27];
23 3 keyb_num[2]=keynumdata[3];
24 3 keyb_num[3]=keynumdata[0];
25 3 }
26 2 else
27 2 { ptr=&ration_num_b;
28 3 writebyteseq(PASSSTARTADD+4,ptr,4);
29 3 keyb_num[0]=keynumdata[3];
30 3 keyb_num[1]=keynumdata[3];
31 3 keyb_num[2]=keynumdata[3];
32 3 keyb_num[3]=keynumdata[3];
33 3 }
34 2 }
35 1 else
36 1 {
37 2 keyb_num[0]=keynumdata[19];
38 2 keyb_num[1]=keynumdata[27];
39 2 keyb_num[2]=keynumdata[3];
40 2 keyb_num[3]=keynumdata[0];
41 2 }
42 1 if(locknooil_b) keyb_num[4]=0x01;
43 1 else keyb_num[4]=0x02;
44 1
45 1 if(multiple_b==1)j=0;
46 1 else if(multiple_b==10)j=1;
47 1 else if(multiple_b==100)j=2;
48 1 else if(multiple_b==1000)j=3;
49 1 else j=4;
50 1 for(i=0;i<j;i++)
51 1 {
52 2 dispmem[i]=0x0e; //'-'
53 2 }
54 1 for(i=j;i<16;i++)
55 1 {
C51 COMPILER V7.00 BBBB 09/14/2006 16:35:49 PAGE 2
56 2 dispmem[i]=0x0f;
57 2 }
58 1
59 1
60 1 ptr=&dispmem;
61 1 disp_updata_lcd(LCDBADD,ptr);
62 1 disp_dot2(5); //LCD1小数点--无
63 1 }
64 /**************************************************
65 * 功能: ; 显示定量加油数据b
66 ***************************************************/
67 void disp_vip_b(void)
68 { uchar i,j,temp;
69 1 uchar dispmem[6];
70 1 uchar lcdadd,dotdata;
71 1 bit bymem;
72 1 disp_ration_ending_b();
73 1 if(ration_mode_b)
74 1 {
75 2 keyb_num[4]=0x04; //定升
76 2 dispmem[5]=0x0a; //L
77 2 lcdadd=0x04;
78 2 dotdata=dotmode[decimal_b];
79 2 dotdata&=0x36;
80 2 disp_lcd2(ration_num_b,0x0a); //公升
81 2 }
82 1 else
83 1 {
84 2 keyb_num[4]=0x08; //定元
85 2 dispmem[5]=0x0c; //L
86 2 lcdadd=0x0a;
87 2 dotdata=dotmode[decimal_b];
88 2 dotdata&=0x2d;
89 2 disp_lcd2(ration_num_b,0x04);
90 2 }
91 1 disp_dot2(dotdata); //LCD2小数点
92 1 dispmem[4]=0x0f;dispmem[3]=0x0f;dispmem[2]=0x0f;dispmem[1]=0x0f;dispmem[0]=0x0f;
93 1 AUXR |=0x02;
94 1 for(i=6;i>0;i--)
95 1 { ACC=0x38;
96 2 XBYTE[LCDBADD]=ACC; //ST
97 2 bbyte=dispmem[i-1];
98 2 temp=bbyte*16+i+lcdadd-1;
99 2 for(j=8;j>0;j--)
100 2 { bbyte=temp;
101 3 bymem=(bit)(bbyte&0x80);
102 3 temp<<=1;
103 3 bbyte=0x38;
104 3 a1= bymem; //DS-->DATA
105 3 XBYTE[LCDBADD]=bbyte;
106 3 ACC|=0x01;
107 3 XBYTE[LCDBADD]=ACC; //CP-->CLK ↑
108 3 ACC&=0xfe;
109 3 XBYTE[LCDBADD]=ACC; //CP-->CLK ↓
110 3 }
111 2 ACC=0x3c;
112 2 XBYTE[LCDBADD]=ACC; //ST-->INH
113 2 }
114 1 AUXR &=0xfd;
115 1
116 1 }
117 /***********************************************************
C51 COMPILER V7.00 BBBB 09/14/2006 16:35:49 PAGE 3
118 * 功能:计算、显示定量加油结局b
119 ***********************************************************/
120 void disp_ration_ending_b(void)
121 {
122 1 xdata uchar tt[6];
123 1 ulong ma;
124 1 uint aa,bb;
125 1 uchar i;
126 1 uchar strdot; //小数点位置
127 1 bbyte=dotmode[decimal_b]; //小数点
128 1
129 1 if(ration_mode_b)
130 1 { //升
131 2 if(a4){ma=ration_num_b*120/100; strdot=2;}
132 2 else if(a1){ma=ration_num_b*120/1000;strdot=3;}
133 2 else {ma=ration_num_b*120;strdot=0;}
134 2 }
135 1 else
136 1 {
137 2 if(a5)aa=100; //单价小数点
138 2 else if(a2)aa=1000;
139 2 else aa=1;
140 2
141 2 if(a3){bb=100;strdot=2;} //金额小数点
142 2 else if(a0){bb=10;strdot=1;}
143 2 else {bb=1;strdot=0;}
144 2 ma=ration_num_b*120*aa/bb/price_b;
145 2 }
146 1
147 1 //ma=nn;
148 1 //ration_pulse_a=ma; //定量脉冲
149 1 calculate_ration(1);
150 1 ma=ration_num_b;
151 1 tt[5]=ma%10;ma/=10;
152 1 tt[4]=ma%10;ma/=10;
153 1 tt[3]=ma%10;ma/=10;
154 1 tt[2]=ma%10;ma/=10;
155 1 tt[1]=ma%10;ma/=10;
156 1 tt[0]=ma%10;ma/=10;
157 1
158 1 for(i=0;i<5;i++)
159 1 { if(i==(5-strdot))break;
160 2 if(tt[i]==0x00) tt[i]=28;
161 2 else break;
162 2 }
163 1 if(multiple_b==1000)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -