实验7 超声波测距实验
(1)实验目的
l 掌握超声波测距的原理
l 掌握超声波测距的软件编程
(2)实验器材
电源POWER模块、测距&振动&压力&角度模块、主控制器模块、LCD1602、超声波模块、连接线
(3)实验程序
ceju
#include <>
#include ""
#include ""
#define uchar unsigned char
#define uint unsigned int
//#define Trig P2^6
//#define Echo P2^7
void Time0_Init()
{
TMOD |=0X01; //定时0,工作方式1,16位定时器
TH0=0;
TL0=0;
ET0=1; //允许T0中断
EA=1; //开启总中断
}
sbit Trig=P2^6;
sbit Echo=P2^7;
double t;
int s;
int ge;
int shi;
int bai;
void main(void)
{
Time0_Init();
lcd_init();
while(1)
{
Trig=0;
Trig=1;
delay_ms(1);
Trig=0;
while(Echo==0);
{
}
TR0=1;
while(Echo==1)
{
}
TR0=0;
t=(double)(TH0*256+TL0)*;
TH0=0;
TL0=0;
s=(int)340*t/20000;
ge=s%10;
s=s/10;
shi=s%10;
s=s/10;
bai=s;
delay_ms(100);
lcd_display_str(0,0,"s=");
lcd_1602_display_num(1,1,bai);
lcd_1602_display_num(2,1,shi);
lcd_1602_display_num(3,1,ge);
}
}
(4)测试步骤
1. 将超声波模块插入测距&振动&压力&角度传感器模块J5,按表1的连线关系连好线。给模块上电。
2. 编写程序,并下载到主控制器。
3. 用物体挡住超声波模块,观察液晶显示的距离。移动物体,观察液晶显示的距离是否与实际吻合。
(5)实验结果
液晶显示屏上显示超声波模块距离阻挡物的距离(直线距离),最大可到400cm左右。
实验8 PWM直流电机调速实验
(1)实验目的
l 了解单片机硬件PWM的配置方法
l 掌握直流电机速度的控制方法
(2)实验器材
电源POWER模块、CPU_51模块、速度&加速度度传感器模块、LCD1602、超声波模块、连接线
(3)实验程序
#include ""
#include ""
#include <>
int ge,shi,bai,age,ashi;
sbit KEY1=P1^4;
int i=0;
int a;
//定时器初始化
void Time0_Init()
{
TMOD |= 0X01; //定时0,工作方式1,16位定时器
TH0 = (65536-46080)/256; //定时时间:50ms,50ms后进入中断
TL0 = (65536-46080)%256;
ET0 = 1; //允许T0中断
TR0 = 1; //启动定时器0
EA = 1; //开启总中断
}
void Time1_Init()
{
TMOD |= 0x50; //定时器1,工作方式1,16位计数器
TH1 = 0; //计数器赋初值
TL1 = 0;
TR1 = 1; //启动计数器
}
int count,speed = 100 ;
/*定时器0中断函数
count用于计数,计满即是1s,speed变量存1s内得到的脉冲数。
*/
void Time0_Int() interrupt 1
{
count++;
//lcd_1602_display_num(1,0,2);
if(count > 19)
{
speed = TH1*256+TL1; //取得1s,计数器1得到的脉冲数
count = 0;
TH1 = 0;
TL1 = 0;
}
TH0 = (65536-46080)/256; //定时器0,
超声波测距实验 来自淘豆网m.daumloan.com转载请标明出处.