电子工程师技术服务社区
- 社区首页
- 下载
- 数码管超声波测距.zip
资料描述
暑假里,闲着蛋疼。就做了个小程序,利用hsc_04超声波模块做了个测距离的程序。程序之前发过。这里我再发一次。介绍下我的小小超声波测距模块。
我从网上买的几块钱一个的超声波测距模块。用74hc164串口的方式显示数码管。用的是msp430g2331,编译环境是iar for 5.5.msp430g2331的p1的8的io口全部占用,还有两个特殊定义io口没有用。代码编译有几百bit,还是很吊的吧。
这些程序都由本人亲自调试编写,可以成功运行。
//主函数
#include"config.h"
int main( void )
{
extern_16m(); //msp430g2231最大1mhz速度,我按最大速度运行
init_ta(); //定时器设置,设置40ms中断一次,即一个数码管40ms显示一次
hc164_init(); //串转并模块74hc164引脚定义
hc_sr04(); //超声波测距模块io口定义
__bis_sr_register(gie); //开启总中断
while(1)
{
}
}
//config.h
#include"io430.h"
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
#define clk0 p1out&=~bit6
#define clk1 p1out|=bit6
#define hc_sr040 p1out&=~bit4
#define hc_sr041 p1out|=bit4
#define cpu_f ((double)1000000) //外部高频晶振16mhz
//#define cpu_f ((double)32768) //外部低频晶振32.768khz
#define delay_us(x) __delay_cycles((long)(cpu_f*(double)x/1000000.0))
#define delay_ms(x) __delay_cycles((long)(cpu_f*(double)x