📄 main.lst
字号:
159 =1 sbit P47oe=padmodc^7;
160 =1 sbit P46oe=padmodc^6;
161 =1 sbit P45oe=padmodc^5;
162 =1 sbit P44oe=padmodc^4;
163 =1 sbit P43oe=padmodc^3;
164 =1 sbit P42oe=padmodc^2;
165 =1 sbit P41oe=padmodc^1;
166 =1 sbit P40oe=padmodc^0;
167 =1
168 =1 sbit P57oe=padmodd^7;
169 =1 sbit P56oe=padmodd^6;
170 =1 sbit P55oe=padmodd^5;
171 =1 sbit P54oe=padmodd^4;
172 =1 sbit P53oe=padmodd^3;
173 =1 sbit P52oe=padmodd^2;
174 =1 sbit P51oe=padmodd^1;
175 =1 sbit P50oe=padmodd^0;
176 =1
177 =1 sbit PWMF=optiona^7;
178 =1 sbit DIV253=optiona^6;
179 =1 sbit SivAbs1=optiona^5;
180 =1 sbit SivAbs0=optiona^4;
181 =1 sbit ENSCL=optiona^3;
182 =1 sbit Msel=optiona^2;
183 =1 sbit MIICF1=optiona^1;
184 =1 sbit MIICF0=optiona^0;
185 =1
186 =1 */
4 #include <intrins.h>
1 =1 /*--------------------------------------------------------------------------
2 =1 INTRINS.H
3 =1
4 =1 Intrinsic functions for C51.
5 =1 Copyright (c) 1988-2001 Keil Elektronik GmbH and Keil Software, Inc.
6 =1 All rights reserved.
7 =1 --------------------------------------------------------------------------*/
8 =1
9 =1 extern void _nop_ (void);
10 =1 extern bit _testbit_ (bit);
11 =1 extern unsigned char _cror_ (unsigned char, unsigned char);
12 =1 extern unsigned int _iror_ (unsigned int, unsigned char);
13 =1 extern unsigned long _lror_ (unsigned long, unsigned char);
14 =1 extern unsigned char _crol_ (unsigned char, unsigned char);
15 =1 extern unsigned int _irol_ (unsigned int, unsigned char);
16 =1 extern unsigned long _lrol_ (unsigned long, unsigned char);
17 =1 extern unsigned char _chkfloat_(float);
5
6 unsigned char fskd;//发射脉冲宽度
7 sbit dcport= P1^0;
8 sbit clk1=P1^7;
9 sbit clk2=P3^5;
10 sbit power_sw=P1^2;
11 extern bit key1();//音量/+
12 extern bit key2();//音量/-
13 extern bit key3();//菜单
14 extern bit key4();//开关机
C51 COMPILER V7.01 MAIN 06/10/2003 09:42:39 PAGE 7
15 extern bit key7();//AV1/AV2/AV3/TV
16 extern void vol_char();
17
18 void qdfs();
19 extern void time_asd();
20 extern void read_24c02();
21 extern void osd_pz();
22 extern void key_menu();
23 extern void jintu(char r);//进度条
24 extern bit key4();//开关机
25 extern bit jsf;
26 extern bit jsfa;//接收到回波标志
27 extern void osd_start();//OSD初始化
28 extern void osd_start1();//OSD初始化
29 extern void osd_clr();
30 extern void osd_char_a(unsigned char row,unsigned char column,//单字符-格式(a)
31 unsigned int char_rom_address, unsigned char color,
32 unsigned char background,unsigned char blink);//字符颜色,背景颜色,是否闪烁
33
34 extern unsigned int data juli;//回波距离
35 extern unsigned int pu;//平均距离
36 extern char fbr;
37 bit st;
38 bit tiao;
39 unsigned char urb;
40 extern unsigned int xdata bojina;//近距离报警区
41 extern unsigned int xdata bojinb;//中距离报警
42 extern unsigned int xdata bojinc;//远距离
43
44 extern unsigned char vol;
45
46 main()
47 {
48 1 int i;
49 1 int e;
50 1 osd_pz();//配置芯片功能
51 1 time_asd();
52 1 fskd=0x10;
53 1 osd_start1();
54 1 read_24c02();//读取设置参数
55 1 while(1)
56 1 {
57 2 WDT=0x47;
58 2 key_menu();//进入菜单
59 2 if(key1())//音量+
60 2 {
61 3 e=30000;
62 3 vol=vol+3;
63 3 if(vol>=253)
64 3 vol=253;
65 3 DA3=vol;
66 3 if(!tiao)
67 3 osd_start();
68 3 vol_char();
69 3 jintu(vol);
70 3 }
71 2 if(key2())//音量-
72 2 {
73 3 e=30000;
74 3 vol=vol-3;
75 3 if((vol<=0)|(vol>253))
76 3 vol=0;
C51 COMPILER V7.01 MAIN 06/10/2003 09:42:39 PAGE 8
77 3 DA3=vol;
78 3 if(!tiao)
79 3 osd_start();
80 3 vol_char();
81 3 jintu(vol);
82 3 tiao=1;
83 3 }
84 2 if(key4())
85 2 power_sw=~power_sw;
86 2 e--;
87 2 if(e<=0)
88 2 {
89 3 i=0;
90 3 tiao=0;
91 3 }
92 2 if((!dcport)&(!tiao))
93 2 {
94 3 i=i-1;
95 3 if(i<=0)
96 3 {
97 4 osd_start1();
98 4 i=3000;
99 4 }
100 3 qdfs();//准备启动1次发射
101 3
102 3 }
103 2 else {i=0;P42=~P42;
104 3 osd_clr();
105 3
106 3 }
107 2
108 2 }
109 1 }
110
111
112 void qdfs()
113 {
114 1 unsigned char csu;
115 1 unsigned char i;
116 1 bit bt;
117 1 jsf=0;
118 1 jsfa=0;
119 1 juli=0;
120 1 csu=fskd;
121 1 P43=1;
122 1 EX0=0;
123 1 IE0=0;
124 1 for(clk1=0,clk2=0,i=csu;i!=0;i--)
125 1 { if(bt)
126 2 { clk1=0;
127 3 clk2=1;
128 3 _nop_();
129 3 _nop_();
130 3 _nop_();
131 3 _nop_();
132 3 bt=!bt;
133 3 }
134 2 else{
135 3 clk1=1;
136 3 clk2=0;
137 3 _nop_();
138 3 _nop_();
C51 COMPILER V7.01 MAIN 06/10/2003 09:42:39 PAGE 9
139 3 _nop_();
140 3 _nop_();
141 3 bt=!bt;}
142 2
143 2 }
144 1 clk1=0;clk2=0;
145 1 TH1=0x8b; //s-1厘米单位分辨率
146 1 TL1=0x8b;
147 1 ET1=1;
148 1 TR1=1;
149 1 for(i=0;i<100;i++)
150 1 _nop_();
151 1 P43=0;
152 1 EX0=1;
153 1 while(!(jsf|jsfa));
154 1
155 1 if(jsfa)
156 1 {
157 2 urb=urb+1;
158 2 if(urb>=6)
159 2 {
160 3 urb=0;
161 3 if((fbr==10)&(pu<bojina))
162 3 { if(st)
163 4 osd_start1();
164 4 st=0;
165 4 osd_char_a(4, 8, 28, 0x06, 0, 0);
166 4 osd_char_a(4, 10, 29, 0x06, 0, 0);
167 4 osd_char_a(4, 12, 1, 0x06, 0, 0);
168 4 osd_char_a(4, 14, 25, 0x06, 0, 0);
169 4 }
170 3 else if((fbr==-10)&(pu>bojinc)){ if(st)
171 4 osd_start1();
172 4 st=0;
173 4 osd_char_a(4,10, 1, 0x06, 0, 0);
174 4 osd_char_a(4, 12, 21, 0x06, 0, 0);
175 4
176 4 }
177 3 else ;
178 3 }
179 2 }
180 1 else{
181 2 if(!st)
182 2 osd_start1();
183 2 st=1;
184 2 if(pu>2000)
185 2 osd_start1();
186 2 else{
187 3 i=pu/1000;
188 3 if(i!=0)
189 3 osd_char_a(4, 8,i+1 , 0x06, 0, 0);
190 3 osd_char_a(4, 10, (pu%1000)/100+1, 0x06, 0, 0);
191 3 osd_char_a(4, 12, 118, 0x06, 0, 0);
192 3 osd_char_a(4, 14, (pu%100)/10+1, 0x06, 0, 0);
193 3 osd_char_a(4, 16, pu%10+1, 0x06, 0, 0);
194 3 osd_char_a(4, 18, 23, 0x06, 0, 0);
195 3 }
196 2 /* us=us+1;
197 2 if(pu<=bojinc)
198 2 {
199 2 if(pu<=bojinb)
200 2 {
C51 COMPILER V7.01 MAIN 06/10/2003 09:42:39 PAGE 10
201 2 if(pu<=bojina)
202 2 p53=0;
203 2 else {if(us>=10){p35=~p35;us=0;}}
204 2 else {if(us<=20)p35=1;
205 2 else p35=0;
206 2 if(pu>=30)
207 2 us=0;}
208 2 }
209 2 }
210 2 */
211 2 }
212 1 }
213
C51 COMPILER V7.01 MAIN 06/10/2003 09:42:39 PAGE 11
NAME CLASS MSPACE TYPE OFFSET SIZE
==== ===== ====== ==== ====== ====
key4 . . . . . . . . . . . . . . . . . EXTERN CODE PROC ----- -----
P1 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0090H 1
P3 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00B0H 1
osd_start1 . . . . . . . . . . . . . . EXTERN CODE PROC ----- -----
_jintu . . . . . . . . . . . . . . . . EXTERN CODE PROC ----- -----
dcport . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0090H 1
osd_pz . . . . . . . . . . . . . . . . EXTERN CODE PROC ----- -----
jsfa . . . . . . . . . . . . . . . . . EXTERN DATA BIT ----- 1
main . . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
i. . . . . . . . . . . . . . . . . . AUTO XDATA INT 0000H 2
e. . . . . . . . . . . . . . . . . . AUTO XDATA INT 0002H 2
fskd . . . . . . . . . . . . . . . . . PUBLIC XDATA U_CHAR 0000H 1
read_24c02 . . . . . . . . . . . . . . EXTERN CODE PROC ----- -----
tiao . . . . . . . . . . . . . . . . . PUBLIC DATA BIT 0000H 1
qdfs . . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
csu. . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0007H 1
i. . . . . . . . . . . . . . . . . . AUTO XDATA U_CHAR 0000H 1
bt . . . . . . . . . . . . . . . . . AUTO DATA BIT 0000H 1
juli . . . . . . . . . . . . . . . . . EXTERN DATA U_INT ----- 2
fbr. . . . . . . . . . . . . . . . . . EXTERN XDATA CHAR ----- 1
IE0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0089H 1
jsf. . . . . . . . . . . . . . . . . . EXTERN DATA BIT ----- 1
urb. . . . . . . . . . . . . . . . . . PUBLIC XDATA U_CHAR 0001H 1
ET1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00ABH 1
time_asd . . . . . . . . . . . . . . . EXTERN CODE PROC ----- -----
EX0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A8H 1
TH1. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 008DH 1
TL1. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 008BH 1
vol. . . . . . . . . . . . . . . . . . EXTERN XDATA U_CHAR ----- 1
vol_char . . . . . . . . . . . . . . . EXTERN CODE PROC ----- -----
TR1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008EH 1
osd_start. . . . . . . . . . . . . . . EXTERN CODE PROC ----- -----
key_menu . . . . . . . . . . . . . . . EXTERN CODE PROC ----- -----
pu . . . . . . . . . . . . . . . . . . EXTERN XDATA U_INT ----- 2
st . . . . . . . . . . . . . . . . . . PUBLIC DATA BIT 0001H 1
_osd_char_a. . . . . . . . . . . . . . EXTERN CODE PROC ----- -----
osd_clr. . . . . . . . . . . . . . . . EXTERN CODE PROC ----- -----
clk1 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0097H 1
clk2 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B5H 1
bojina . . . . . . . . . . . . . . . . EXTERN XDATA U_INT ----- 2
bojinc . . . . . . . . . . . . . . . . EXTERN XDATA U_INT ----- 2
key1 . . . . . . . . . . . . . . . . . EXTERN CODE PROC ----- -----
power_sw . . . . . . . . . . . . . . . ABSBIT ----- BIT 0092H 1
key2 . . . . . . . . . . . . . . . . . EXTERN CODE PROC ----- -----
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 907 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = 2 5
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = 2 1
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -