|
这是一个SRF05超声波测距的程序
使用的模块是LCD1602和SFR05
使用外部中断和定时器0- /*启动模块*/
- void StartModuleSRF05()
- {
- trig=1;
- _nop_(); _nop_(); _nop_(); _nop_();
- _nop_(); _nop_(); _nop_(); _nop_();
- _nop_(); _nop_(); _nop_(); _nop_();
- _nop_(); _nop_(); _nop_(); _nop_();
- trig=0;
- }
- void countSRF05()
- {
- distance=0.017*t; //距离计算
- disbuff[0]=distance/1000;
- disbuff[1]=distance/100%10;
- disbuff[2]=distance/10%10;
- disbuff[3]=distance%10;
-
- S[0]=disbuff[0]+'0';
- S[1]=disbuff[1]+'0';
- S[2]=disbuff[2]+'0';
- S[3]=disbuff[3]+'0';
-
- LcdShowStr(3,1,S);
- }
- void Interrupt_init0() interrupt 0 //外部中断
- {
- t=(TH0*256+TL0);
- TH0=0;
- TL0=0;
- }
复制代码
|
|