?? 超聲波程序.lst
字號:
C51 COMPILER V8.05a 砡蒧波程序 05/27/2008 20:26:04 PAGE 1
C51 COMPILER V8.05a, COMPILATION OF MODULE 砡蒧波程序
OBJECT MODULE PLACED IN 超聲波程序.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 超聲波程序.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <REGX51.H>
2 #define uchar unsigned char
3 #define uint unsigned int
4 #define v 0.34 //聲波在空氣中的傳播速度
5
6 sbit out=P3^2;
7 bit flag=0;
8 uchar N;
9 uchar dis_SMG[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //數碼管顯示碼
10 uint time;
11 float s; //距離長度
12 uchar sm=0; //數碼管段位
13 uint fir,sec,thi,four; //顯示值
14
15 void scan( );
16 void delay( uint i) ; //延時函數
17
18 void main (void)
19 {
20 1 delay(500);
21 1 TMOD=0x11; //TO為計時(發脈沖的時間),T1為計數(算出超聲波的傳輸時間)
22 1 // IE1=1;
23 1 IT1=1;
24 1 EA=1;
25 1 ET0=1;
26 1 ET1=1;
27 1 EX1=1;
28 1
29 1 TH0=(65536-200)/256;
30 1 TL0=(65536-200)%256; //T0發200微秒的時間
31 1 TR0=1;
32 1 TH1=0x00;
33 1 TL1=0x00;
34 1 //高電平發脈沖
35 1 N=0; //計時標記
36 1
37 1 while(1)
38 1 { // if(TF1==1) { TF1=0;N++; }
39 2
40 2
41 2 if(flag==1)
42 2 { EA=0;
43 3 flag=0;
44 3
45 3 s=v*time*100;
46 3 fir=s/1000;
47 3 sec=(s-1000*fir)/100;
48 3 thi=(s-fir*1000-sec*100)/10;
49 3 four=s-1000*fir-100*sec-thi; }
50 2
51 2 scan(); }
52 1
53 1 }
54
55 void scan( ) //顯示函數
C51 COMPILER V8.05a 砡蒧波程序 05/27/2008 20:26:04 PAGE 2
56 {
57 1 switch(sm++)
58 1 {
59 2 case 1: P0=dis_SMG[fir];
60 2 P1=0x01; delay(20); break;
61 2 case 2: P0=dis_SMG[sec];
62 2 P1=0x02; delay(20); break;
63 2 case 3: P0=dis_SMG[thi];
64 2 P1=0x04; delay(20); break;
65 2 case 4: P0=dis_SMG[four];
66 2 P1=0x08; delay(20); break;
67 2 default: { } break;
68 2 }
69 1 if(sm>4) sm=0; }
70
71
72 void outer1(void)interrupt 2 using 2
73 {
74 1 EA=0;
75 1 TR1=0; //關定時器
76 1 time=(65536*N+TH1*256+TL1)/2;
77 1 flag=1; //標記開始算時間
78 1 EX1=0;
79 1 EA=1;
80 1
81 1 }
82
83
84 void timer0(void)interrupt 1 using 1
85 {
86 1 TR0=0;
87 1 out=0; //關閉3.2的高電平
88 1 TR1=1; //打開定時器1
89 1
90 1 }
91
92
93 void delay( uint i)
94 {
95 1 for(i;i>0;i--);
96 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 586 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 26 ----
IDATA SIZE = ---- ----
BIT SIZE = 1 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -