- 1、本文档共15页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
物联网课程
实验设计
?
课题名称: 超声波调用直流电机
小组成员: 赵静 卞显萍 戴伟
组员学号: 2011110141;2011110118;2011110117
所在班级: 信息工程学院11级计科(1)班
实验日期: 2013年12月
?
一、实验目的:
(1)了解超声波传感器与直流电机的基本原理.
(2)掌握针对超声波与直流电机的编程方法.
二、实验内容:
将超声波和直流电机两个独立实验结合起来,通过鉴定采集超声波传感器信号在一定范围内来控制直流电机的正转和反转.
三、实验设备
(1)装有Keilc开发及调试环境的PC
(2)超声波传感器母板+通用调试母板+电机控制器母板
(3)串口线
四、实验原理及说明:
使用C8051F120的IO口P2.2产生超声波传感器发射端J12(TX40-16)所需要的波形,接收端J13(RX40-16)所接收的波形输入到P2.3,并由此计算出距离,然后把其距离数值上传给CC2430,同时当距离数值小于30厘米可以控制C8051F120的IO口P1.6直流电机进行反面转动,大于等于30厘米可以控制C8051F120的IO口P1.7直流电机进行正面转动。其原理图如下所示:
五、实验步骤
(1)启动Keil uVision3,打开工程ultr_wave.Uv2;
(2)连好实验设备。
(3)编译程序并生成可执行文件,将程序下载到目标板上。
(4)重启开发板,将遮挡物放在超声波上面,然后观察现象
六、实验代码:
#include c8051f120.h // SFR declarations
#include stdio.h
#include intrins.h
sfr16 RCAP2 = 0xca; // Timer2 capture/reload
sfr16 RCAP3 = 0xca; // Timer3 capture/reload
sfr16 RCAP4 = 0xca;
sfr16 TMR2 = 0xcc; // Timer2
sfr16 TMR3 = 0xcc; // Timer3
sfr16 TMR4 = 0xcc;
#define BAUDRATE 115200 // Baud rate of UART in bps
#define SYSCLK // Output of PLL derived from (INTCLK*2)
#define SAMPLE_DELAY 200 // Delay in ms before taking sample
unsigned int count = 0;
unsigned int count_s = 0;
unsigned int num= 0;
float distan = 0;
int x = 0;
sbit LED = P0^3;
sbit ctrl1 = P1^ 6;
sbit ctrl2 = P1^7;
// LED=1 means ONsbit SW1 = P3^7; // SW1=0 means switch pressed
sbit SW2 = P0^5;
sbit uts_tx=P2^3;
void OSCILLATOR_Init (void);
void PORT_Init (void);
void Comparator_Init(void);
void UART1_Init (void);
void Timer3_Init(void) ;
void Timer4_Init(void) ;
void Wait_MS (unsigned int ms);
//
void OSCILLATOR_Init_1 (void);
void PORT_Init_1 (void);
void Ext_Interrupt_Init (void);
void main (void)
{
WDTCN =
文档评论(0)