该【超声波测距实验 】是由【zhuwo11】上传分享,文档一共【27】页,该文档可以免费在线阅读,需要了解更多关于【超声波测距实验 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。实验7超声波测距实验
(1)实验目的
掌握超声波测距的原理
掌握超声波测距的软件编程
⑵实验器材
电源POWER模块、测距&振动&压力&角度模块、主控制器模块、LCD1602、超声波模块、连接线
⑶实验程序
ceju
#>
#include""
#include""
#defineucharunsignedchar
#defineuintunsignedint
〃#defineTrigP2A6
〃#defineEcho卩2八7
voidTimeO_Init()
TMOD1=0X01;
TH0=0;
〃定时0,工作方式1,16位定时器
TLO=O;
ET0=1;
〃允许T0中断
EA=1;
}
〃开启总中断
sbitTrig=P2A6;
sbitEcho=P2A7;
doublet;
ints;
intge;
intshi;
intbai;
voidmain(void){
TimeO_Init();
lcd_init();
while(l)
{
Trig=O;
Trig=l;
delay_ms(l);
Trig=0;
while(Echo==0);
{
}
TR0=1;
while(Echo==l)
{
}
TRO=O;
t=(double)(TH0*256+TL0)*;
THO=O;
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(O,O,"s=");
lcd_1602_display_num(1,1,bai);
lcd_1602_display_num(2,1,shi);
lcd_1602_display_num(3,1,ge);
}
}
(4)测试步骤
将超声波模块插入测距&振动&压力&角度传感器模块J5,按表1的连线关系连好线。给模块上电。
编写程序,并下载到主控制器。
用物体挡住超声波模块,观察液晶显示的距离。移动
物体,观察液晶显示的距离是否与实际吻合。
(5)实验结果
液晶显示屏上显示超声波模块距离阻挡物的距离(直线距离),最大可到400cm左右。
实验8PWM直流电机调速实验
(1)实验目的
了解单片机硬件PWM的配置方法
口掌握直流电机速度的控制方法
⑵实验器材
电源POWER模块、CPU_51模块、速度&加速度度传
感器模块、LCD1602、超声波模块、连接线
⑶实验程序
#include""
#include""
#>
intge,shi,bai,age,ashi;
sbitKEY1=P1A4;
inti=0;
inta;
〃定时器初始化
voidTimeO_Init()
{
TMOD1=0X01;//定时0,工作方式1,16位定时器
TH0=(65536-46080)/256;//定时时间:50ms,50ms后进入中断
TL0=(65536-46080)%256;
ET0=1;//允许T0中断
TR0=1;〃启动定时器0
EA=1;//开启总中断
}
voidTime1_Init()
{
TMOD|=0x50;〃定时器1,工作方式1,16位计数器
TH1=0;//计数器赋初值
TL1=0;
TR1=1;〃启动计数器
}intcount,speed=100;
/*定时器0中断函数
count用于计数,计满即是1s,speed变量存1s内得到的脉冲数。
voidTimeO_Int()interrupt1
{
count++;
〃lcd_1602_display_num(l,0,2);
if(count>19)
{
speed=TH1*256+TL1;〃取得Is,计数器1得到的脉冲数
count=0;
TH1=0;
TL1=0;
}
TH0=(65536-46080)/256;//定时器0,重新赋初值
TL0=(65536-46080)%256;
}
/*PWM初始化
,通过改变CCAP0H和
CCAP0L的值,可以改变PWM的占空比。
voidPWM_Init()
{
//PCA工作模式寄存器,设置PCA/PWM时钟源输入为sysclk/12关闭PCA溢出计数中断
CMOD=0X00;
CCON=0X00;//PCA控制寄存器
CCAPM0=0X42;//PCA比较/捕获寄存器,
pwm输出,无中断
CL=0X00; //PCA的16位计数器
CH=0X00; //PCA捕获/比较寄存器,当PCA模块
用于PWM模式时,他们用来控制输出的占空比
CCAP0L=0XC0;//占空比25%CCAP0H=CCAP0L=0X80
时占空比50%0(V)0X40时75%
CCAP0H=0XC0;
CR=1; 〃启动PCA定时器
}
intb;
voidmain(void)inttest_li=O;lcd_init();TimeO_Init();Timel_Init();PWM_Init();
while(l){
while(KEYl){;}〃开关不闭合不改变
if(i==O)
{CCAPOL=OXCO;
CCAPOH=0XC0;
a=25;}
elseif(i==1)
{CCAP0L=0X80;
CCAP0H=0X80;
a=50;}
else{CCAP0L=0X40;
CCAP0H=0X40;
a=75;}
b=speed;
ge=b%10;
b=b/10;
shi=b%10;
超声波测距实验 来自淘豆网m.daumloan.com转载请标明出处.