📄 sonic.lst
字号:
C51 COMPILER V9.02 SONIC 08/16/2011 15:20:43 PAGE 1
C51 COMPILER V9.02, COMPILATION OF MODULE SONIC
OBJECT MODULE PLACED IN .\output\sonic.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE sonic.c BROWSE DEBUG OBJECTEXTEND PRINT(.\output\sonic.lst) OBJECT(.\output
-\sonic.obj)
line level source
1 #include <atmel\at89x52.h>
2 #include <intrins.h>
3
4 #define TX P1_0
5 #define RX P1_1
6
7 unsigned char dspflag;
8 unsigned char cnt;
9 unsigned char tflag;
10 unsigned char code dsp_code_ca[] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
11
12 void display(unsigned int d);
13 void init_t(void);
14
15 void Pulse()
16 {
17 1 unsigned char i;
18 1 for (i =0 ;i<10; ++i) {
19 2 _nop_();
20 2 _nop_();
21 2 _nop_();
22 2 _nop_();
23 2 _nop_();
24 2 _nop_();
25 2 _nop_();
26 2 _nop_();
27 2 _nop_();
28 2 // _nop_(); //延时,调整发射频率
29 2
30 2 TX = ~TX;
31 2 }
32 1 }
33 unsigned int sonic()
34 {
35 1 unsigned int n;
36 1 RX=1;
37 1 TR1=0;
38 1 TH1=TL1=0;
39 1 Pulse();
40 1 TR1=1;
41 1 TF1=0;
42 1 for(n=0;n<160;n++); // 排出相邻干扰
43 1 while( RX ==1 && TF1 == 0 ) ;
44 1 TR1=0;
45 1 if ( TF1 ) {
46 2 n=9999;
47 2 }else{
48 2 n=(TH1<<8)+TL1;
49 2 n=(unsigned int) ( n*0.017);//0.018446); // 0.017*12/11.0592
50 2 }
51 1 return n;
52 1 }
53
54
C51 COMPILER V9.02 SONIC 08/16/2011 15:20:43 PAGE 2
55
56 void main()
57 {
58 1 unsigned int k;
59 1 unsigned int cnt;
60 1 init_t();
61 1 while(1)
62 1 {
63 2 // EA=0;
64 2 cnt = sonic();
65 2 // EA=1;
66 2 for(k=0;k<6000;k++)
67 2 display(cnt);;
68 2 }
69 1 }
70
71 void isr_t0(void) interrupt 1
72 {
73 1 tflag++;
74 1 if(tflag == 16)
75 1 {
76 2 tflag = 0;
77 2 dspflag ++;
78 2 if(dspflag == 3)
79 2 dspflag = 0;
80 2 }
81 1 }
82
83 void init_t(void)
84 {
85 1 TMOD = 0x12; // 超声用定时器1
86 1 TH0 = 0x06;
87 1 TL0 = 0x06;
88 1 ET0 = 1;
89 1 EA = 1;
90 1 TR0 = 1;
91 1 }
92 void display(unsigned int d)
93 {
94 1 if((dspflag == 0)&&(d>99))
95 1 {
96 2 P0 = 0xFF;
97 2 P2 |= 0xE0;
98 2 P2 &= 0x1F;
99 2
100 2 P0 = dsp_code_ca[d/100];
101 2 P2 |= 0xE0;
102 2 P2 &= 0x1F;
103 2 P0 = 0x20;
104 2 P2 |= 0xC0;
105 2 P2 &= 0x3F;
106 2 }
107 1 if((dspflag == 1)&&(d>9))
108 1 {
109 2 P0 = 0xFF;
110 2 P2 |= 0xE0;
111 2 P2 &= 0x1F;
112 2
113 2 P0 = dsp_code_ca[d%100/10];
114 2 P2 |= 0xE0;
115 2 P2 &= 0x1F;
116 2 P0 = 0x40;
C51 COMPILER V9.02 SONIC 08/16/2011 15:20:43 PAGE 3
117 2 P2 |= 0xC0;
118 2 P2 &= 0x3F;
119 2 }
120 1 if(dspflag == 2)
121 1 {
122 2 P0 = 0xFF;
123 2 P2 |= 0xE0;
124 2 P2 &= 0x1F;
125 2
126 2 P0 = dsp_code_ca[d%100%10];
127 2 P2 |= 0xE0;
128 2 P2 &= 0x1F;
129 2 P0 = 0x80;
130 2 P2 |= 0xC0;
131 2 P2 &= 0x3F;
132 2 }
133 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 398 ----
CONSTANT SIZE = 10 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 3 4
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -