?? 測(cè)距程序.lst
字號(hào):
C51 COMPILER V8.08 瞋距程序 05/01/2010 20:54:32 PAGE 1
C51 COMPILER V8.08, COMPILATION OF MODULE 瞋距程序
OBJECT MODULE PLACED IN 測(cè)距程序.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 測(cè)距程序.C BROWSE DEBUG OBJECTEXTEND
line level source
1 /*********************************************************************************************************
-**/
2 //DYP-ME007 超聲波測(cè)距模塊 DEMO 程序
3 //晶振:11。0592
4 //程序編寫(xiě):Tvrostar QQ: 77154401
5 //taobao店鋪:wxdz.taobao.com
6 //接線:模塊TRIG接 P1.2 ECH0 接P1.1
7 //串口波特率9600
8 /*********************************************************************************************************
-**/
9 #include <AT89X51.H>
10 #include <intrins.h>
11 #include <STDIO.H>
12
13 #define uchar unsigned char
14 #define uint unsigned int
15 #define RX P1_1
16 #define TX P1_2
17
18
19 unsigned int time=0;
20 unsigned int timer=0;
21 float S=0;
22 bit flag =0;
23
24
25 /********************************************************/
26 void Conut(void)
27 {
28 1 time=TH0*256+TL0;
29 1 TH0=0;
30 1 TL0=0;
31 1 S=(time*1.87)/100; //算出來(lái)是CM
32 1 if(flag==1) //超出測(cè)量
33 1 {
34 2 flag=0;
35 2 printf("-----\n");
36 2 }
37 1
38 1 printf("S=%f\n",S);
39 1 }
40 /********************************************************/
41 void delayms(unsigned int ms)
42 {
43 1 unsigned char i=100,j;
44 1 for(;ms;ms--)
45 1 {
46 2 while(--i)
47 2 {
48 3 j=10;
49 3 while(--j);
50 3 }
51 2 }
52 1 }
53 /********************************************************/
C51 COMPILER V8.08 瞋距程序 05/01/2010 20:54:32 PAGE 2
54 void zd0() interrupt 1 //T0中斷用來(lái)計(jì)數(shù)器溢出,超過(guò)測(cè)距范圍
55 {
56 1 flag=1; //中斷溢出標(biāo)志
57 1 }
58 /********************************************************/
59 void StartModule() //T1中斷用來(lái)掃描數(shù)碼管和計(jì)800MS啟動(dòng)模塊
60 {
61 1 TX=1; //800MS 啟動(dòng)一次模塊
62 1 _nop_();
63 1 _nop_();
64 1 _nop_();
65 1 _nop_();
66 1 _nop_();
67 1 _nop_();
68 1 _nop_();
69 1 _nop_();
70 1 _nop_();
71 1 _nop_();
72 1 _nop_();
73 1 _nop_();
74 1 _nop_();
75 1 _nop_();
76 1 _nop_();
77 1 _nop_();
78 1 _nop_();
79 1 _nop_();
80 1 _nop_();
81 1 _nop_();
82 1 _nop_();
83 1 TX=0;
84 1 }
85 /********************************************************/
86 void main(void)
87 {
88 1 TMOD=0x21; //設(shè)T0為方式1,GATE=1;
89 1 SCON=0x50;
90 1 TH1=0xFD;
91 1 TL1=0xFD;
92 1 TH0=0;
93 1 TL0=0;
94 1 TR0=1;
95 1 ET0=1; //允許T0中斷
96 1 TR1=1; //開(kāi)啟定時(shí)器
97 1 TI=1;
98 1
99 1 EA=1; //開(kāi)啟總中斷
100 1
101 1
102 1 while(1)
103 1 {
104 2 StartModule();
105 2 while(!RX); //當(dāng)RX為零時(shí)等待
106 2 TR0=1; //開(kāi)啟計(jì)數(shù)
107 2 while(RX); //當(dāng)RX為1計(jì)數(shù)并等待
108 2 TR0=0; //關(guān)閉計(jì)數(shù)
109 2 Conut(); //計(jì)算
110 2 delayms(100); //100MS
111 2
112 2 }
113 1
114 1 }
C51 COMPILER V8.08 瞋距程序 05/01/2010 20:54:32 PAGE 3
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 199 ----
CONSTANT SIZE = 13 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 8 ----
IDATA SIZE = ---- ----
BIT SIZE = 1 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -