电子工程基础讲座--智能车及光寻迹原理.ppt

上传人:本田雅阁 文档编号:3047036 上传时间:2019-06-30 格式:PPT 页数:20 大小:5.80MB
返回 下载 相关 举报
电子工程基础讲座--智能车及光寻迹原理.ppt_第1页
第1页 / 共20页
电子工程基础讲座--智能车及光寻迹原理.ppt_第2页
第2页 / 共20页
电子工程基础讲座--智能车及光寻迹原理.ppt_第3页
第3页 / 共20页
电子工程基础讲座--智能车及光寻迹原理.ppt_第4页
第4页 / 共20页
电子工程基础讲座--智能车及光寻迹原理.ppt_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《电子工程基础讲座--智能车及光寻迹原理.ppt》由会员分享,可在线阅读,更多相关《电子工程基础讲座--智能车及光寻迹原理.ppt(20页珍藏版)》请在三一文库上搜索。

1、电子工程基础讲座,智能车及光寻迹原理,一. 智能车寻迹简介,1. 赛道与小车寻迹前进,一. 智能车寻迹简介,2. 小车硬件组成,小 车 车 模,Freescale A 型车模,Freescale B 型车模,Freescale C 型车模,Freescale D 型车模,一. 智能车寻迹简介,2. 小车硬件组成,小 车 车 模,一. 智能车寻迹简介,2. 小车硬件组成,小车电路,二. 光寻迹,1. 光寻迹原理,光源选择 -主动光源、被动光源 光谱选择 -可见光、红外光 光性质选择 -普通光、激光,分类:,反射式检测原理,红外发射管、红外接收二极管、红外接收三极管 红外反射式光电管,红外光电管类

2、型,2. 工作电路,二. 光寻迹,红外发光管的正向导通压降约1V、额定工作电流100mA。我们在设计电路时,常设定其(I1)最大工作电流 50mA。支路电阻=(Vcc -VD1) / Imax,为了提高路径检测稳定性和灵敏度。可在发光支路再是增串一只发光二级管D2。此时支路电阻应为多大?,发光电路:,光电转换电路:,T1是一只光敏三级管。在接收到前方射入的红外光时便产生电流 I2,I2随接收的光强度而变;I2流过W2,便产生随射入光强度而变的电压降U0。,三. 51单片机的AD转换,1. STC12C5A60S2系列单片机性能与特点,STC12C5A60S2/AD/PWM 系列单片机是宏晶科技

3、生产的新一代8051单片机。指令代码与8051完全兼容;I/O口分布与8051类似;与8051相比具有以下特点:,1. 增强型 8051 CPU,1T,单时钟/机器周期, 2. 工作电压:有5.5V - 3.5V(5V单片机)也有3.6V - 2.2V(3V单片机) 3. 工作频率范围:035MHz,相当于普通8051的 0420MHz 4. 用户应用程序空间 8K /16K / 20K / 32K / 40K / 48K / 52K / 60K / 62K 字节 5. 片上集成1280字节 RAM 6. 通用I/O口可设置成四种模式:弱上拉、强推挽/强上拉、仅为输入/高阻、开漏 7. ISP

4、(在系统可编程)/ IAP(在应用可编程),无需专用编程器,无需专用仿真器 8. 有EEPROM功能(STC12C5A62S2/AD/PWM无内部EEPROM) 9. 看门狗 10.内部集成MAX810专用复位电路(外部晶体12M以下时,复位脚可直接1K电阻到地) 11. 外部掉电检测电路: 在P4.6口有一个低压门槛比较器 12. 时钟源:外部高精度晶体/时钟,内部R/C振荡器(温漂为5% 到10% 以内) 13. 共4个16位定时器 14. 3个时钟输出口 15. 外部中断I/O口7路 16. PWM(2路)/ PCA(可编程计数器阵列,2路) 17. A/D转换, 10位精度ADC,共8

5、路,转换速度可达250K/S(每秒钟25万次 ),三. 51单片机的AD转换,2. STC12C5A60S2单片机的AD模块,STC12C5A60S2单片机A/D转换器结构图,三. 51单片机的AD转换,2. STC12C5A60S2单片机的AD模块,单片机内资源的状态控制方法,- 设置相关的寄存器,与A/D转换相关的寄存器:,三. 51单片机的AD转换,与A/D转换相关的寄存器:,三. 51单片机的AD转换,1. 功能选择寄存器,上电复位后P1口为弱上拉型I/O口,用户可以通过软件设置将8路中的任何一路设置为A/D转换,不需作为A/D使用的P1口可继续作为I/O口使用(建议只作为输入)。需作

6、为A/D使用的口需先将P1ASF特殊功能寄存器中的相应位置为1,将相应的口设置为模拟功能,2. 控制寄存器,三. 51单片机的AD转换,3. A/D转换结果寄存器ADC_RES、ADC_RESL,4. 辅助控制寄存器,当ADRJ=0时,10位A/D转换结果的高8位存放在ADC_RES中,ADC_RESL的低2位存放转换结果的低2位。,当ADRJ=1时,10位A/D转换结果的高2位存放在ADC_RES的低2位中,低8位存放在ADC_RESL中。,ADC_RES和ADC_RESL寄存器用于保存A/D转换结果,三. 51单片机的AD转换,3. 实现AD转换的程序,#include /包含头文件,包含

7、特殊功能寄存器的定义 unsigned char AD_Data3; unsigned char G_Black2; char G_RunState; /*Declare SFR associated with the ADC */ sfr ADC_CONTR = 0xBC; /ADC control register sfr ADC_RES = 0xBD; /ADC hight 8-bit result register sfr ADC_LOW2 = 0xBE; /ADC low 2-bit result register sfr P1ASF = 0x9D; /P1 secondary fu

8、nction control register /*Define ADC operation const for ADC_CONTR*/ #define ADC_POWER 0x80 /ADC power control bit #define ADC_FLAG 0x10 /ADC complete flag #define ADC_START 0x08 /ADC start control bit #define ADC_SPEEDLL 0x00 /540 clocks #define ADC_SPEEDL 0x20 /360 clocks #define ADC_SPEEDH 0x40 /

9、180 clocks #define ADC_SPEEDHH 0x60 /90 clocks /*-Initial ADC sfr-*/ void InitADC() P1ASF = 0xff; /Open 8 channels ADC function ADC_RES = 0; /Clear previous result ADC_CONTR = ADC_POWER | ADC_SPEEDLL; Delay(2); /ADC power-on and delay ,/*-DataGather-*/ void DataGather() unsigned char i; for(i=0;i3;i

10、+) AD_Datai = GetADCResult(i); /*-主程序-*/ void main() InitADC(); while (1) DataGather(); P2=AD_Data00xff; /*-Software delay function -*/ void Delay(unsigned int n) unsigned int x; while (n-)x = 5000; while (x-); ,/*-Get ADC result-*/ unsigned char GetADCResult(unsigned char ch) ADC_CONTR = ADC_POWER

11、| ADC_SPEEDLL | ch | ADC_START; while (!(ADC_CONTR /Return ADC result ,四. 小车程序运行设计,1. 小车运行控制程序应包含的内容,-包含硬件资源初始状态设置、参数设置、系统初始形态的确立等。,-包括 行车偏离路径相关量、行车速度等采集,-分析行车状况。包括 行车路径偏离状况、行车速度与理想速度之差等,-根据预先设定的控制策略与分析得到的行车状况数据形成控制数据,控制小车运行。,-将前面算出的控制数据输出,控制片外对象动作。,系统运行流程图(1),四. 小车程序运行设计,1. 小车运行控制程序应包含的内容,主函数,中断服务函

12、数,系统运行流程图(2),四. 小车程序运行设计,系统运行流程图(1),void main(),void InitADC(),void DataGather(),2. 简易光寻迹小车程序设计实例,/*-主程序-*/ void main() InitADC(); /Init ADC sfr while (1) DataGather(); DataAnalysis(); ContrCaculat(); ContrOutput(); ,四. 小车程序运行设计,#include /包含头文件,包含特殊功能寄存器的定义 unsigned char AD_Data3; unsigned char G_Bl

13、ack2; char G_RunState; /*Declare SFR associated with the ADC */ sfr ADC_CONTR = 0xBC; /ADC control register sfr ADC_RES = 0xBD; /ADC hight 8-bit result register sfr ADC_LOW2 = 0xBE; /ADC low 2-bit result register sfr P1ASF = 0x9D; /P1 secondary function control register /*Define ADC operation const

14、for ADC_CONTR*/ #define ADC_POWER 0x80 /ADC power control bit #define ADC_FLAG 0x10 /ADC complete flag #define ADC_START 0x08 /ADC start control bit #define ADC_SPEEDLL 0x00 /540 clocks #define ADC_SPEEDL 0x20 /360 clocks #define ADC_SPEEDH 0x40 /180 clocks #define ADC_SPEEDHH 0x60 /90 clocks,/*-Sof

15、tware delay function -*/ void Delay(unsigned int n) unsigned int x; while (n-)x = 5000; while (x-); ,/*-Get ADC result-*/ unsigned char GetADCResult(unsigned char ch) ADC_CONTR =ADC_POWER | ADC_SPEEDLL | ch | ADC_START; while (!(ADC_CONTR ,/*-Initial ADC sfr-*/ void InitADC() P1ASF = 0xff; /Open 8 c

16、hannels ADC function ADC_RES = 0; /Clear previous result ADC_CONTR = ADC_POWER | ADC_SPEEDLL; Delay(2); /ADC power-on and delay ,/*-DataGather-*/ void DataGather() unsigned char i; for(i=0;i3;i+) AD_Datai =GetADCResult(i); ,/*-DataAnalysis-*/ void DataAnalysis() G_Black1=0; if(AD_Data0=170)G_Black1|=1; if(AD_Data1=170)G_Black1|=0x08; if(AD_Data2=170)G_Black1|=0x40; if(G_Black1=1)G_RunState=-1; else if(G_Black1=0x08)G_RunState=0; else if(G_Black1=0x40)G_RunState=1; P2=G_Black10xff; ,/*-空函数-*/ Void ContrCaculat() Void ContrOutput() ,2. 简易光寻迹小车程序设计实例,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1