📄 voidce.lst
字号:
C51 COMPILER V7.20 VOIDCE 09/18/2008 18:08:22 PAGE 1
C51 COMPILER V7.20, COMPILATION OF MODULE VOIDCE
OBJECT MODULE PLACED IN voidce.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE voidce.c LARGE BROWSE DEBUG OBJECTEXTEND
line level source
1
2 #include "include.h"
3
4
5 unsigned char code dizhibiao[]={
6 0x00,0x00,0x00,0x4b,0x00,0x96,0x00,0xe1,0x01,0x2c,0x01,0x77,0x01,0xc2,0x02,0x0d,
7 0x02,0x58,0x02,0xa3,0x02,0xee,0x03,0x39,0x03,0x84,0x03,0xcf,0x04,0x1a,0x04,0x65,
8 0x04,0xb0,0x04,0xfb,0x05,0x46,0x05,0x91,0x05,0xdc,0x06,0x27,0x06,0x72,0x06,0xbd,
9 0x07,0x08,0x07,0x53,0x07,0x9e,0x07,0xe9,0x08,0x34,0x08,0x7f,0x08,0xca,0x09,0x15};
10
11
12 unsigned int duanhaozub[32];
13 //unsigned int duanhaozu[32]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0
-x0f,0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f};
14
15 int a,b,c,i;
16 /*--------------------------------------------
17 金额 9999.99
18 将一个浮点数按位拆开放入一个数组的第i位起
19 x:金额0x0f 总金额0x10
20 ----------------------------------------------*/
21
22 uchar voice_yuan(uchar x,float num)
23 {
24 1 uchar i=0;
25 1 uint num_int; //整数部分
26 1 uint num_fra; //小数部分
27 1 num_int=(uint)num;
28 1 num_fra=(uint)((num-num_int)*100);
29 1 //--------------------------------------------转换整数部分
30 1 duanhaozub[i]=x; //"金额"
31 1 i++;
32 1 if(num_int>=1000)
33 1 {
34 2 duanhaozub[i]=num_int/1000; //转换千位
35 2 i++;
36 2 duanhaozub[i]=(num_int%1000)/100;//转换百位
37 2 i++;
38 2 duanhaozub[i]=(num_int%100)/10; //转换十位
39 2 i++;
40 2 duanhaozub[i]=num_int%10; //转换个位
41 2 }
42 1 else if(num_int>=100)
43 1 {
44 2 duanhaozub[i]=num_int/100; //转换百位
45 2 i++;
46 2 duanhaozub[i]=(num_int%100)/10; //转换十位
47 2 i++;
48 2 duanhaozub[i]=num_int%10; //转换个位
49 2 }
50 1 else if(num_int>=10)
51 1 {
52 2 duanhaozub[i]=num_int/10; //转换十位
53 2 i++;
54 2 duanhaozub[i]=num_int%10; //转换个位
C51 COMPILER V7.20 VOIDCE 09/18/2008 18:08:22 PAGE 2
55 2 }
56 1 else
57 1 {
58 2 duanhaozub[i]=num_int; //转换个位
59 2 }
60 1 i++;
61 1 duanhaozub[i]=0x0b; //转换小数点
62 1 i++;
63 1 //-----------------------------------------------转换小数部分
64 1 duanhaozub[i]=num_fra/10; //转换十分位
65 1 i++;
66 1 duanhaozub[i]=num_fra%10; //转换千分位
67 1 i++;
68 1
69 1 duanhaozub[i]=0x0c; //"元"
70 1 i++;
71 1 return i;
72 1 }
73
74 /*--------------------------------------------
75 重量 99.999
76 将一个浮点数按位拆开放入一个数组的第i位起
77
78 ----------------------------------------------*/
79
80 uchar voice_zhong(float num)
81 {
82 1 uchar i=0;
83 1 uint num_int; //整数部分
84 1 uint num_fra; //小数部分
85 1 num_int=(uint)num;
86 1 num_fra=(uint)((num-num_int)*1000);
87 1 //--------------------------------------------转换整数部分
88 1 duanhaozub[i]=0x0e; //"金额"
89 1 i++;
90 1
91 1 if(num_int>=10)
92 1 {
93 2 duanhaozub[i]=num_int/10; //转换十位
94 2 i++;
95 2 duanhaozub[i]=num_int%10; //转换个位
96 2 }
97 1 else
98 1 {
99 2 duanhaozub[i]=num_int; //转换个位
100 2 }
101 1 i++;
102 1 duanhaozub[i]=0x0b; //转换小数点
103 1 i++;
104 1 //-----------------------------------------------转换小数部分
105 1 duanhaozub[i]=num_fra/100; //转换十分位
106 1 i++;
107 1 duanhaozub[i]=(num_fra%100)/10;
108 1 i++;
109 1 duanhaozub[i]=num_fra%10; //转换千分位
110 1 i++;
111 1
112 1 duanhaozub[i]=0x0d; //"元"
113 1 i++;
114 1 return i;
115 1 }
116
C51 COMPILER V7.20 VOIDCE 09/18/2008 18:08:22 PAGE 3
117
118
119 //***************************
120 //串行发送子程序 8BIT
121 void send(unsigned char isdx)
122 { unsigned char isxcounter;
123 1 SS=0;
124 1 SCLK=0;
125 1 for(isxcounter=0;isxcounter<8;isxcounter++)
126 1 {if((isdx&0x01)==1)
127 2 MOSI=1;
128 2 else
129 2 MOSI=0;
130 2 isdx=isdx>>1;
131 2 SCLK=1;
132 2 delay(24);
133 2 SCLK=0;
134 2 delay(24);
135 2 }
136 1 }
137 //****************************
138 //发送STOP指令,延时50MS
139 void isdstop(void)
140 {
141 1 delay(120);
142 1 send(0x30);
143 1 SS=1;
144 1 delay_ms(600);
145 1 }
146 //****************************
147 //发送上电指令,延时50MS
148 void isdpwrup(void)
149 {
150 1 delay(120);
151 1 SS=0;
152 1 send(0x20);
153 1 SS=1;
154 1 delay_ms(600);
155 1 }
156 //****************************
157 //发送掉电指令,延时50MS
158 void isdpwrdown(void)
159 {
160 1 delay(120);
161 1 send(0x10);
162 1 SS=1;
163 1 delay_ms(600);
164 1 }
165 //****************************
166
167 //****************************
168 //发送setplay指令
169 void setplay(unsigned char adh,unsigned char adl)
170 {
171 1 delay_ms(24);
172 1 send(adl);
173 1 delay(24);
174 1 send(adh);
175 1 delay(24);
176 1 send(0xe0);
177 1 SS=1;
178 1 send(0xf0);
C51 COMPILER V7.20 VOIDCE 09/18/2008 18:08:22 PAGE 4
179 1 SS=1;
180 1 }
181 //****************************
182 //PALY 全部的函数
183 void play(uchar n)
184 {
185 1 for(i=0;i<n;i++)
186 1 {
187 2 // a=duanhaozu[i]*2;//调用数组duanhaozu
188 2 a=duanhaozub[i]*2;//或者数组duanhaozub
189 2 _nop_();
190 2 b=dizhibiao[a];
191 2 _nop_();
192 2 a=a+1;
193 2 c=dizhibiao[a];
194 2 _nop_();
195 2 setplay(b,c);
196 2 delay(20);
197 2 while(ISDINT==1)//EOM未中断
198 2 {;}//若''中断‘’,向下执行
199 2 LED=1;
200 2 isdstop();
201 2 }
202 1 }
203
204
205 //************************************
206
*** WARNING C316 IN LINE 206 OF voidce.c: unterminated conditionals
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1272 ----
CONSTANT SIZE = 64 ----
XDATA SIZE = 72 20
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 + -