?? 脈寬測量.lst
字號:
C51 COMPILER V8.08 _隹聿_量 05/01/2010 20:56:09 PAGE 1
C51 COMPILER V8.08, 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 /*********************************************************************************************************
-**/
2 //DYP-ME007 超聲波測距模塊 DEMO 程序
3 //晶振:11。0592
4 //程序編寫:Tvrostar QQ: 77154401
5 //taobao店鋪:wxdz.taobao.com 廣州文軒電子
6 //接線:模塊TRIG接 P0.2 ECH0 接P0.1
7 //數碼管:共陽數碼管P1接數據口,P2.5 P2.4 P2.3接選通數碼管
8 /*********************************************************************************************************
-**/
9 #include <AT89x51.H> //器件配置文件
10 #include <intrins.h>
11 #define RX P0_1
12 #define TX P0_2
13 unsigned int time=0;
14 unsigned int timer=0;
15 unsigned char posit=0;
16 unsigned long S=0;
17 bit flag =0;
18 unsigned char const discode[] ={ 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xBF,0xff/*-*/};
19 unsigned char const positon[3]={ 0xdf,0xef,0xf7};
20 unsigned char disbuff[4] ={ 0,0,0,0,};
21 /********************************************************/
22 void Display(void) //掃描數碼管
23 {
24 1 if(posit==0)
25 1 {P1=(discode[disbuff[posit]])&0x7f;}
26 1 else
27 1 {P1=discode[disbuff[posit]];}
28 1 P2=positon[posit];
29 1 if(++posit>=3)
30 1 posit=0;
31 1 }
32 /********************************************************/
33 void Conut(void)
34 {
35 1 time=TH0*256+TL0;
36 1 TH0=0;
37 1 TL0=0;
38 1
39 1 S=(time*1.7)/100; //算出來是CM
40 1 if((S>=700)||flag==1) //超出測量范圍顯示“-”
41 1 {
42 2 flag=0;
43 2 disbuff[0]=10; //“-”
44 2 disbuff[1]=10; //“-”
46 2 }
47 1 else
48 1 {
49 2 disbuff[0]=S%1000/100;
50 2 disbuff[1]=S%1000%100/10;
51 2 disbuff[2]=S%1000%10 %10;
52 2 }
53 1 }
C51 COMPILER V8.08 _隹聿_量 05/01/2010 20:56:09 PAGE 2
54 /********************************************************/
55 void zd0() interrupt 1 //T0中斷用來計數器溢出,超過測距范圍
56 {
57 1 flag=1; //中斷溢出標志
58 1 }
59 /********************************************************/
60 void zd3() interrupt 3 //T1中斷用來掃描數碼管和計800MS啟動模塊
61 {
62 1 TH1=0xf8;
63 1 TL1=0x30;
64 1 Display();
65 1 timer++;
66 1 if(timer>=400)
67 1 {
68 2 timer=0;
69 2 TX=1; //800MS 啟動一次模塊
70 2 _nop_();
71 2 _nop_();
72 2 _nop_();
73 2 _nop_();
74 2 _nop_();
75 2 _nop_();
76 2 _nop_();
77 2 _nop_();
78 2 _nop_();
79 2 _nop_();
80 2 _nop_();
81 2 _nop_();
82 2 _nop_();
83 2 _nop_();
84 2 _nop_();
85 2 _nop_();
86 2 _nop_();
87 2 _nop_();
88 2 _nop_();
89 2 _nop_();
90 2 _nop_();
91 2 TX=0;
92 2 }
93 1 }
94 /*********************************************************/
95
96 void main( void )
97
98 {
99 1 TMOD=0x11; //設T0為方式1,GATE=1;
100 1 TH0=0;
101 1 TL0=0;
102 1 TH1=0xf8; //2MS定時
103 1 TL1=0x30;
104 1 ET0=1; //允許T0中斷
105 1 ET1=1; //允許T1中斷
106 1 TR1=1; //開啟定時器
107 1 EA=1; //開啟總中斷
108 1
109 1 while(1)
110 1 {
111 2 while(!RX); //當RX為零時等待
112 2 TR0=1; //開啟計數
113 2 while(RX); //當RX為1計數并等待
114 2 TR0=0; //關閉計數
115 2 Conut(); //計算
C51 COMPILER V8.08 _隹聿_量 05/01/2010 20:56:09 PAGE 3
116 2 }
117 1
118 1 }
119
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 410 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 28 ----
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 + -