📄 bh1415f.lst
字号:
C51 COMPILER V8.02 BH1415F 03/03/2008 12:50:43 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE BH1415F
OBJECT MODULE PLACED IN BH1415F.OBJ
COMPILER INVOKED BY: D:\Program Files\Keil\C51\BIN\C51.EXE BH1415F.c BROWSE DEBUG OBJECTEXTEND
line level source
*** WARNING C500 IN LINE 1 OF BH1415F.C: LICENSE ERROR (R208: RENEW LICENSE ID CODE (LIC))
1 #include<reg52.h>
2 #include<intrins.h>
3 //#define disdata P0吗 //段码输出口
4 #define discan P2
5 //#define condata P1; //位码
6 #define uint unsigned int
7 #define uchar unsigned char
8 //#define keyio P1
9 sbit keyio=P3^7 ;
10 uint data f_data={0x00},f_data1; //频率数据,数据运算是暂存用
11 sbit DA=P3^0; //数据输入
12 sbit CK=P3^1; //时钟
13 sbit CE=P3^2; //片选
14 //sbit DIN=P0^1; //小数点控制
15 //sbit monolamp=P1^0; 立体//立体声指示灯
16 uint h; // 延时参数
17 uchar code du[11]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0xff};
18 uchar code we[4]={0xef,0xdf,0xbf,0x7f};
19 uchar data display[4]={0x00,0x00,0x00,0x00};
20 uchar bdata condata=0x08; //1415控制字高五位,开机为立体声状态
21 //sbit mono=condata^3;
- sbit mono=c
-ondata^3; //单声道/立体声控制位
22 uchar data concommand[2];
23 uchar keytemp=0;
24 void delay(uint t)
25 {
26 1 for(;t>0;t--);
27 1 }
28 scan()
29 {
30 1 uchar k;
31 1 for(k=0;k<4;k++)
32 1 {
33 2 P0=du[display[k]];
34 2 //if(k==1) {DIN=0;}
35 2 discan=we[k];
36 2 delay(50);
37 2 P2=0xff;
38 2 }
39 1 }
40 /******频率数据转换为显示用BCD码函数**********/
41 turn_bcd()
42 {
43 1 display[3]=f_data/1000;if(display[3]==0){display[3]=10;}
44 1 f_data1=f_data%1000;
45 1 display[2]=f_data1/100;
46 1 f_data1=f_data%100;
47 1 display[1]=f_data1/10;
-
48 1 display[0]=f_data1%10;
49 1 }
50 /*******控制字合成函数************/
51 command()
C51 COMPILER V8.02 BH1415F 03/03/2008 12:50:43 PAGE 2
52 {
53 1 concommand[1]=f_data/256;
54 1 concommand[0]=f_data%256;
55 1 concommand[1]=concommand[1]+condata;
56 1 }
57 /*******写入1个字节函数*************/
58 write(uchar val)
59 {
60 1 uchar i;
61 1 CE=1;
62 1 for(i=8;i>0;i--)
63 1 {
64 2 DA=val&0x01;
65 2 _nop_(); _nop_();_nop_();_nop_();
66 2 CK=1;
67 2 _nop_(); _nop_();_nop_();_nop_();
68 2 CK=0;
69 2 val=val/2;
70 2
71 2 }
72 1 CE=0;
73 1 }
74 /*********控制字写入1415函数**************/
75 w1415()
76 {
77 1 write(concommand[0]);
78 1 write(concommand[1]);
79 1 }
80 /**********频率刷新********/
81 fup()
82 {
83 1 turn_bcd();
84 1 command();
85 1 w1415();
86 1 }
87 read_key()
88 { if(keyio==0)
89 1 {
90 2 delay(500
-
-
-
-
-
-
-
-
- );
91 2 if(keyio==0)
92 2 {
93 3 keytemp++;
94 3 if(keytemp==16)
95 3 keytemp=0;
96 3 }
97 2 switch(keytemp)
98 2 {
99 3 case 15 :{f_data++;if(f_data>1099){f_data=1099;}fup();break;}
100 3
101 3 case 14 :{f_data--;if(f_data<800){f_data=800;}fup();break;}
102 3
103 3 //case 190 :{mono=~mono;if(mono){monolamp=0;} else monolamp=1;fup();break;}
104 3
C51 COMPILER V8.02 BH1415F 03/03/2008 12:50:43 PAGE 3
105 3 case 13 :{f_data=1090;fup();break;}
106 3
107 3 case 12 :{f_data=1070;fup();break;}
108 3
109 3 case 11 :{f_data=1050;fup();break;}
110 3
111 3 case 10 :{f_data=1030;fup();break;}
112 3
113 3 case 9 :{f_data=1000;fup();break;}
114 3
115 3 case 8 :{f_data=970;fup();break;}
116 3
117 3 case 7 :{f_data=950;fup();break;}
118 3
119 3 case 6 :{f_data=930;fup();break;}
120 3
121 3 case 5 :{f_data=900;fup();break;}
122 3
123 3 case 4 :{f_data=870;fup();break;}
124 3
125 3 case 3 :{f_data=850;fup();break;}
126 3
127 3 case 2 :{f_data=830;fup();break;}
128 3
129 3 case 1 :{f_data=800;fup();break;}
130 3
131 3 default :break ;
132 3 }
133 2 }
134 1
135 1
136 1
137 1 /*keyio=0xf0;
138 1 keytemp=(~keyio)&0xf0;
139 1 if(keytemp!=0)
140 1 {
141 1 keytemp=keyio;
142 1 keyio=0x0f;
143 1 keytemp=keytemp|keyio;
144 1 while(((~keyio)&0x0f)!=0);
145 1 switch(keytemp)
146 1 {
147 1 case 238 :{f_data++;if(f_data>1099){f_data=1099;}fup();break;}
148 1
149 1 case 222 :{f_data--;if(f_data<800){f_data=800;}fup();break;}
150 1
151 1 //case 190 :{mono=~mono;if(mono){monolamp=0;} else monolamp=1;fup();break;}
152 1
153 1 case 126 :{f_data=1090;fup();break;}
154 1
155 1 case 237 :{f_data=1070;fup();break;}
156 1
157 1 case 221 :{f_data=1050;fup();break;}
158 1
159 1 case 189 :{f_data=1030;fup();break;}
160 1
161 1 case 125 :{f_data=1000;fup();break;}
162 1
163 1 case 235 :{f_data=970;fup();break;}
164 1
165 1 case 219 :{f_data=950;fup();break;}
166 1
C51 COMPILER V8.02 BH1415F 03/03/2008 12:50:43 PAGE 4
167 1 case 187 :{f_data=930;fup();break;}
168 1
169 1 case 123 :{f_data=900;fup();break;}
170 1
171 1 case 231 :{f_data=870;fup();break;}
172 1
173 1 case 215 :{f_data=850;fup();break;}
174 1
175 1 case 183 :{f_data=830;fup();break;}
176 1
177 1 case 119 :{f_data=800;fup();break;}
178 1
179 1 default :break;
180 1
181 1 }
182 1 }
183 1 keyio=0xff;*/
184 1 }
185 main()
186 {
187 1 P0=0xff;
188 1 discan=0xff;
189 1 keyio=0xff;
190 1 DA=0;CK=0;CE=0;
191 1 for(h=0;h<4;h++)
192 1 {
193 2 display[h]=8;
194 2 }
195 1 for(h=0;h<500;h++)
196 1 {
197 2 scan();
198 2 }
199 1 f_data=1000;
200 1 // monolamp=0;
201 1 fup();
202 1 while(1)
203 1 {
204 2 read_key();
205 2 scan();
206 2 }
207 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 541 ----
CONSTANT SIZE = 15 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 14 ----
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 + -