main.c
/**
* 文件名称:超声波测距实验
* 实验目的:1.掌握超声波测距原理
* 实验原理:1.定时器0用于数码管的扫描、定时200ms用于采样距离;
* 定时器1用于计时器,计算每次采样时从
* 发射声波到接收到声波的时间。距离除以2就为到
* 障碍物的实际距离。
*/
#include <stc15f2k60s2.h>
#include <intrins.h>
#include "stdint.h"
#include "timer.h"
#include "digitalTube.h"
#define somenop(); { \
_nop_();_nop_();_nop_();_nop_();_nop_(); \
_nop_();_nop_();_nop_();_nop_();_nop_(); \
}
sbit TX = P1^0; //发射引脚
sbit RX = P1^1; //接收引脚
void configTmr1();
void sendWave();
volatile bit flag200ms = 0;
void main() {
uint16_t count; //定时器1的计数值,即为时间间隔
uint8_t distance; //单位为cm,实测最大测量距离约为90cm
uint8_t tmp;
configTmr0(2);
configTmr1();
while (1) {
if (flag200ms) { //200毫秒更新一次数据
flag200ms = 0;
RX = 1; //!!