语音控制小车越野型使用说明书v1 0_第1页
语音控制小车越野型使用说明书v1 0_第2页
语音控制小车越野型使用说明书v1 0_第3页
语音控制小车越野型使用说明书v1 0_第4页
语音控制小车越野型使用说明书v1 0_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 语音控制小车( 越野型)使用说明书V1.0 2006.02.18凌阳科技大学计划教育推广中心 北京海淀上地信息产业基地中黎科技园 1 号楼 5 层TEL: 86-10-62981668FAX: 86-10-62962425E-mail:http:/www: 版权声明凌阳科技股份有限公司保留对此文件修改之权利且不另行。凌阳科技股份有限公司所提供之信息相信为正确且可靠之信息, 但并不保证本文件中绝无错误。请于向凌阳科技股份有限公司提出订单前, 自行确定所使用之相关技术文件及规格为最新之版本。若因贵公司使用本公司之文件或产品, 而涉及第三人

2、之专利或著作权等智能财产权之应用及配合时, 则应由贵公司负责取得同意及授权, 本公司仅单纯贩售产品, 上述关于同意及授权, 非属本公司应为保证之责任. 又未经凌阳科技股份有限公司之正式书面许可, 本公司之所有产品不得使用于医疗器材, 维持生命系统及飞航等相关设备。 目录版权声明2目录3语音控制小车概述功能要求1参数说明1注意事项12硬件说明车体结构2小车实物图3硬件框图32.4 SPCE061A 精简开发板简介42.5 小车控制板5小车的功能实现原理93.1 直走的实现过程93.2 转弯的实现过程93.3 PWM 调速的原理93.4 语音识别原理简介1

3、0软件流程11344.14.2主程序流程图11程序中需要说明的几个问题125如何使用5.45.5连接硬件13代码下载13训练小车13声控小车14重新训练146应用举例166.1 一个简单的前进实例16常见问题1878附录8.4配件19资料获取途径19配套资料19公司联系方式20 语音控制小车(越野型)使用说明书1 语音控制小车概述1.1 功能要求语音控制小车注是凌阳大学计划推出的基于 SPCE061A 的代表性兴趣产品,它配合 61 板推出,综合应用了 SPCE061A 的众多资源,打破了传统教学中单片机学习枯燥和低效的现状。小车采用语音识别技术,

4、可通过语音命令对其行驶状态进行控制。 语音控制小车的主要功能: .可以通过简单的 I/O 操作实现小车的前进、后退、左转、右转功能; 配合 SPCE061A 的语音特色,利用系统的语音播放和语音识别资源,实现语音控制的功能; 可以在行走过程中声控改变小车运动状态; 在超出语音控制范围时能够自动停车。 1.2 参数说明车体:双电机两轮驱动 供电:电池(四节 AA:1.2V4 或 1.5V4 ) 工作电压:DC 4V6V工作电流:运动时约 200mA尺寸:200mm125mm65mm(长宽高)(如果加上 61 板高再加 15mm)1.3 注意事项.一定要注意电池的正负极

5、性,切勿装反; 长期不用请将电池取出电池盒; 由于语音信号的不确定性,语音识别的过程会出现一定的误差和不准确性; 由于小车行动比较灵活,速度比较快,在使用时一定要注意保持场地足够大,且保证不会对周围的物体造成伤害; 不要让小车长时间运行在堵转状态(堵转状态:由于小车所受阻力过大,造成小车电机加电但并不转动的现象),这样会造成很大的堵转电流,有可能会损坏小车的控制电路。 5.注:凌阳科技教育推广中心目前共推出三款语音控制小车:语音控制小车、语音控制小车(越野型)、语音控制小车(迷你型);其中语音控制小车最早推出目前已经停产,语音控制小车(越野型)和语音控制小车(迷你型)同时推出,二者结构和功能相

6、似,只是外形大小不同。该文是对语音控制小车(越野型) 的说明文档,下文简称语音控制小车。 Sunplus University ProgramE-mail: 1 语音控制小车(越野型)使用说明书2 硬件说明2.1 车体结构语音控制小车为四轮结构,车的结构示意图如图 2.1 所示。其中前面两个车轮由前轮电机控制,在连杆和支点作用下控制前轮左右摆动,来调节小车的前进方向。在自然状态下,前轮在弹簧作用下保持中间位置。后面两个车轮由后轮电机驱动,为整个小车提供动力,所以又称前面的为驱动轮,如图 2.2 所示。 为方向轮,后面

7、的两个 后轮前轮前轮驱动电机后轮驱动电机图 2.1 车体侧视图图 2.2 车体顶视图 Sunplus University ProgramE-mail: 2 语音控制小车(越野型)使用说明书2.2 小车实物图图 2.3 语音控制小车实物图整个小车分为三大部分:车体部分、61 板、控制板,如图 2.3 所示。 车体部分:小车车体主要为两个电机驱动装置,分前轮(方向)驱动和后轮(动力驱动)。在车体的下面有一个可以安装 4 节 AA 电池的电池盒,整个小车的电源就是由它来提供的。在小车的底部有一个小开关,它负责控制整个小车

8、的电源开通与关断。 61 板:61 板是小车的核心部分,它负责整个小车控制信号的产生,以及语音的播放和识别功能实现。在不使用小车时可以将 61 板从小车上拆下来,61 板仍然是完整的,可以用它来做其它的实验或开发。 控制板:控制板负责将来自 61 板的控制信号转化为能够驱动电动机的信号。(图中 61 板下面的黄色板子) 2.3 硬件框图小车控制系统硬件结构比较简单,如图 2.4 所示,主要分为两个部分:一个是 SPCE061A 精简开发板 (即“61”板),另外一个是电机控制板。电机控制板的工作就是根据 61 板的输出信号去启动和停止相应的电机,以及调整电机的正反转方向。正是通过开启和关闭相应

9、的电机,使电机在不同的组合状态运转,最终来实现小车的前进,等功能。 Sunplus University ProgramE-mail: 3 语音控制小车(越野型)使用说明书KEY1 KEY2IOA0 IOA1IOA2IOB8IOB9Bridge1M1KEY3 SPCE061AIOB10IOB11Bridge2M2图 2.4 系统的硬件组成框图2.4 SPCE061A 精简开发板简介2.4.1SPCE061A 总述SPCE061A 是凌阳科技推出的一款16位结构的微控制器。较高的处理速度和nSP的内核结构使它能 够非常

10、容易、快速地处理复杂的数字信号。同时SPCE061A内嵌32K字的FLASH SPCE061A微控制器是适用于语音识别领域的一种最佳选择。 ROM和2K字的SRAM。因此 2.4.2SPCE061A 性能 16位nSP微处理器; 工作电压(CPU) VDD为3.0V3.6V,(I/O) VDDH为VDD5.5V; CPU时钟:0.32MHz49.152MHz; 内置2K字SRAM; 内置32K FLASH; 可编程音频处理; 晶体振荡器; 系统处于休眠模式下(时钟处于停止状态),耗电仅为2A3.6V; 2个16位可编程定时器/计数器(可自动预置初始计数值); 2个10位DAC(数-模转换)输出

11、通道; 32位通用可编程输入/输出端口; 两级中断,14个中断源; 具备触键唤醒的功能; 使用凌阳音频编码SACM_S240方式(2.4K位/秒),能容纳210秒的语音数据; 锁相环PLL振荡器提供系统时钟信号; 32768Hz实时时钟; 7通道10位电压模-数转换器(ADC)和单通道声音模-数转换器; 声音模-数转换器输入通道内置麦克风放大器和自动增益控制(AGC)功能; 具备串行设备接口(UART,SIO); Sunplus University ProgramE-mail: 4 语音控制小车(越野型)使用说明书

12、 具有低电压复位(LVR)功能和低电压监测(LVD)功能; 内置在线仿真电路ICE(In- Circuit Emulator)接口;具有保密能力; 具有Watch-dog功能。 2.4.3精简开发板61 板“61 板”是 SPCE061A EMU BOARD 的简称,是以凌阳 16 位单片机 SPCE061A 为核心的精简开发 仿真实验板,大小相当于一张牌。 “61 板”除了具备单片机最小系统电路外,还包括有电源电路、复位电路、ICE 电路、音频电路(含 MIC 输入部分和 DAC 音频输出部分)等,“61 板”可以采用电池供 电。下图所示为该精简开发板的实物图。 图 2.5 “61”板实物图

13、2.5 小车控制板控制板主要包括:接口电路、电源电路和两路电机的驱动电路,控制板原理图如图 2.6 所示。 接口电路:接口电路负责将 61 板的I/O 接口信号传送给控制电路板,I/O 信号主要为控制电机需要的IOB8IOB11 这四路信号,同时为了方便后续的开发和完善,预留了 IOB12IOB15 以及 IOA8IOA15 接口, 可以在这些接口上添加一些传感器。 电源部分:整个小车有 4 个电源信号:电池电源,控制板工作电源,61 板工作电源,61 板的 I/O 输出电源。系统供电由电池提供,控制板直接采用电池供电(VCC),然后经二极管 D1 后产生 61 板电源 (VCC_61),通过

14、 61 板的 Vio 跳线产生 61 板的端口电源(V1)。 二极管 D1 作用: Sunplus University ProgramE-mail: 5 语音控制小车(越野型)使用说明书a) 降压,4 节电池提供的电压 VCC 最大可达到 6V,D1 可有效地降压。b) 保护,D1 可以防止电源接反烧坏 61 板。VCCJ1VCCVCC_61 J2D11212Q1 PNP8550Q3 PNP8550R1 200J3Q5 R32KNPN8050IOB9IN4007C ON2 CON2R220012V1V1J5J6Q6

15、 R42KNPN8050IOB8CON2Q2 NPN8050Q4 NPN8050IOB8 IOB9 IOB10 IOB11 IOB12 IOB13 IOB14 IOB15IOB8 IOB9 IOB10 IOB11 IOB12 IOB13 IOB14 IOB15 VCCCON10CON10V1V1Q7 PNP8550Q9 PNP8550 R5200J7J8CON2Q11R7IOB10R6200IOA8 IOA9 IOA10 IOA11 IOA12 IOA13 IOA14 IOA15IOA8 IOA9 IOA10 IOA11 IOA12 IOA13 IOA14 IOA152K21NPN8050Q1

16、2R8IOB11J4Q8 NPN80502KQ10NPN8050NPN8050 CON10CON10图 2.6 控制板原理图2.5.1动力电机驱动电路动力驱动由后轮驱动实现,负责小车的直线方向运动,包括前进和后退,后轮驱动电路是一个全桥驱动电路,如图 2.7 所示:Q1、Q2、Q3、Q4 四个三极管组成四个桥臂,Q1 和 Q4 组成一组,Q2 和 Q3 组成一组,Q5 控制 Q2、Q3 的导通与关断,Q6 控制 Q1 和 Q4 的导通与关断,而 Q5、Q6 由 IOB9 和 IOB8 控制,这样就可以通过 IOB8 和 IOB9 控制四个桥臂的导通与关断控制后轮电机的运行状态,使之正转反 转或

17、者停转,进而控制小车的前进和后退。 VCCQ1 PNP8550Q3R1 200Q5PNP8550 J3R3 2KIOB9R2 1200NPN8050 2 Q6 R42KNPN8050IOB8 CON2Q2NPN8050 Q4 NPN8050 图 2.7 后轮电机驱动电路 Sunplus University ProgramE-mail: 612345678910123456789101234567891012345678910 语音控制小车(越野型)使用说明书当 IOB8 为高电平、IOB9 为低电平时 Q1 和 Q

18、4 导通,Q2 和 Q3 截止,后轮电机正转,小车前进;反之当 IOB8 为低电平、IOB9 为高电平时 Q1 和 Q4 截止,Q2 和 Q3 导通,后轮电机反转,小车IOB8、IOB9 同为低电平时 Q1、Q2、Q3 和 Q4 都截止,后轮电机停转,小车停止运动。 注意:IOB8 和 IOB9 不能同时置高电平,这样会造成后轮驱动全桥短路现象。 ;而当2.5.2方向电机控制电路方向控制由前轮驱动实现,包括左转和右转,前轮驱动电路也是一个全桥驱动电路,如图 2.8 所示: Q7、Q8、Q9、Q10 四个三极管组成四个桥臂,Q7 和 Q10 组成一组,Q8 和 Q9 组成一组,Q11 控制 Q8

19、、Q9 的导通与关断,Q12 控制 Q7 和 Q10 的导通与关断,而 Q11、Q12 由 IOB10 和 IOB11 控制,这样就可 以通过 IOB10 和 IOB11 控制前轮电机的正转和反转,进而控制小车的左转和右转。 VCCQ7 PNP8550Q9 R5PNP8550200 CON2Q11R7IOB10R62K 2NPN8050200 1 Q12R8IOB11 J4Q82KNPN8050 Q10 NPN8050NPN8050图 2.8 前轮电机驱动电路当 IOB10 为高电平、IOB11 为低电平时 Q8 和 Q9 导通,Q7 和 Q10 截止,前轮电机正转,小车前轮朝左偏转;反之当

20、IOB10 为低电平、IOB11 为高电平时 Q8 和 Q9 截止,Q7 和 Q10 导通,前轮电机反转,小车前轮朝右偏转;而当 IOB10、IOB11 同为低电平时 Q8 和 Q9 截止,Q7 和 Q10 也截止,前轮电机停转, 在弹簧作用下前轮被拉回到中间位置,保持直向。 注意:IOB10、IOB11 不能同时为高电平,这样会造成前轮驱动全桥的桥臂短路。 结合以上对前轮和后轮的状态分析,得到小车的运行状态与输入的对照表,如下表所示: 表 2.1 基本的输入与小车运动状态对照表另外还有一些不常用的运行状态,比如右后转、左后转等,结合以上对前轮和后轮的状态分析,其端口对照如表 2.2 所示:

21、表 2.2 特殊的输入与小车的运动状态对照表 Sunplus University ProgramE-mail: 7IOB11IOB10IOB9IOB8后电机 前电机 小车 0000停转 停转 停 0001正转 停转 前进 0010反转 停转 0101正转 正转 左前转 1001正转 反转 右前转 语音控制小车(越野型)使用说明书注意:为了小车的安全请不要出现以下两种组合情况:表 2.3 禁止的输入状态列表 Sunplus University ProgramE-mail:u

22、 8IOB11IOB10IOB9IOB8后电机 前电机 小车 *11停转 *停 11*停转 停 IOB11IOB10IOB9IOB8后电机 前电机 小车 0110反转 正转 右后转 1010反转 反转 左后转 语音控制小车(越野型)使用说明书3 小车的功能实现原理3.1 直走的实现过程只要让小车的前轮保持自然状态(即不左偏又不右偏),然后让后轮正传即可实现小车的前进。对应表 3.1 所示: 表 3.1 前进对应端口状态表同理,只要小车的前轮保持自然状态(即不左偏又不右偏),然后让后轮反转即可实现小车的后退。对应表 3.2 所示: 表 3.2对应的端口状态表3.

23、2 转弯的实现过程在某些场合,小车还需要转弯,那么小车又是怎样实现转弯的呢? 这时只要小车的前轮作相应的偏转即可实现 右前转:如果需要小车实现右前转,可以让小车的前轮右偏,后轮正转,这样就可以实现小车的右转, 如表 3.3 所示: 表 3.3 右转对应的端口状态表左前转:如果需要小车实现左前转,可以让小车的前轮左偏,后轮正转,这样就可以实现小车的左转, 如表 3.4 所示: 表 3.4 左转对应的端口状态表3.3 PWM 调速的原理如果需要调速,可以直接调用 SPCE061A 的 PWM 资源,通过调节 PWM 的占空比来实现速度的调节。当 IOB11IOB8 输出的逻辑电平组合为“0001”

24、时,加在后轮电机上的驱动电压为 VCC;而当 IOB11IOB8 输出“0000”时,加在后电机上的电压为 0V。如果交替地向端口送“0001”和“0000”两种组合(PWM输出端口自动实现),那么加在小车电机两端的电压就在 VCC 和 0V 之间不停的跳变,对应的电机电压波 Sunplus University ProgramE-mail: 9IOB11IOB10IOB9IOB8后电机 前电机 小车 0101正转 正转 左前转 IOB11IOB10IOB9IOB8后电机 前电机 小车 1001正转 反转 右前转 I

25、OB11IOB10IOB9IOB8后电机 前电机 小车 0010反转 停转 倒车 IOB11IOB10IOB9IOB8后电机 前电机 小车 0001正转 停转 前进 语音控制小车(越野型)使用说明书形如图 3.1 示:VCCUo0V图 3.1 PWM 调速原理图此时加在电机两端的平均电压 Uo=Th/(Th+Tl)*VCC。 可以通过调整 PWM 的占空比,来改变 Th 和 Tl 的比值,从而改变 Uo 的大小。这样就可以通过 PWM 资源调节加在电机两端的平均电压,从而改变电机的转速,最终实现调节小车速度的目的。 另外也可以利用程序使端口产生 PWM 波形,控制小车的速度,在此不作赘述。 3

26、.4 语音识别原理简介语音识别主要分为“训练”和“识别”两个阶段。在训练阶段,单片机对采集到的语音样本进行分析处理,从中提取出语音特征信息,建立一个特征模型;在识别阶段,单片机对采集到的语音样本也进行类似的分析处理,提取出语音的特征信息,然后将这个特征信息模型与已有的特征模型进行对比,如果二者 达到了一定的匹配度,则输入的语音被识别。 语音识别的具体流程如图3.2 所示:语音特征模型图 3.2 语音识别流程说明框图 Sunplus University ProgramE-mail: 10开始 识别出语音指令 Y 返

27、回 识别过程 执行对应动作 获取识别结果 N 初始化识别器 开始 返 回中断服务 定时采集语音 开始 训练成功 N Y 返回 训练过程 执行训练,获取训练结果 初始化RAM Th Tl 语音控制小车(越野型)使用说明书4 软件流程4.1 主程序流程图以配套资料中的语音识别程序(Car_Demo)为例,说明语音识别小车的实现过程,图 4.1 所示为小车的主程序工作流程。 开始Y 已经训练过N 装载语音模型保存训练结果语音识别与执行N 重新训练Y 图 4.1 主程序流程图语音识别小车的主程序流程如图 4.1 所示,分为四大部分:初始化部分、训练部分、识别部分、重训操作。 初始化部分:初始化操作将

28、IOB8IOB11 设置为输出端,用以控制电机。必要时还要有对应的输入端设置和 PWM 端口设置等。 训练部分:训练部分完成的工作就是建立语音模型。程序一开始判断小车是否被训练过,如果没有训练过则要求对其进行训练,并且会在训练成功之后将训练的模型存储到 FLASH,在以后使用时不需要重新训练;如果已经训练过会把存储在 FLASH 中的模型调出来装载到辨识器中。 识别部分:在识别环节当中,如果辨识结果是名字,停止当前的动作并进入待命状态,然后等待动作命令。如果辨识结果为动作指令小车会语音告知相应动作并执行该动作,在运动过程中可以通过呼叫小车 Sunplus University Programh

29、ttp:/E-mail: 11等待复位 清模型存储区 进入识别模式 训练小车 初始化 语音控制小车(越野型)使用说明书的名字使小车停下来。 重训操作:考虑到有重新训练的需求,设置了重新训练的按键(61 板的 KEY3),循环扫描该按键,一旦检测到此键按下,则将擦除训练标志位(0xe000 单元),并等待复位。复位后,程序重新执行,当检测到训练标志位为 0xffff 时会要求重新对其进行训练。 在程序的代码中有详细的注释,请参看资料中的例程 Car_Demo。 4.2 程序中需要说明的几个问题在这个程序中有几个地方不易理解,需要特

30、别说明一下: 首先,小车有没有经过训练是怎么知道的?在这里利用了一个特殊的 FLASH 单元,当 FLASH 在初始化以后,如果没有进行过写操作的话,那么该单元的内容为 0xffff。(该示例程序中为 0xe000 单元),该单元内容在擦除后为 0xffff,在成功训练并存储后为 0x0055(该值由辨识器自动生成)。这样就可以根据这个单元的值来判断是否经过训练。 其次,为什么已经训练过的系统在重新运行时还要进行模型装载?在首次训练完成之后,辨识器中保存着训练的模型,但是一旦系统复位,辨识器中的模型就会丢失,所以在重新运行时必须把存储在 FLASH 中的语音模型装载到辨识器中去。 第三,关于语

31、音的一些具体问题,关于语音的一些具体问题请参看 SPCE061A 相关书籍中关于语音的详细介绍。 Sunplus University ProgramE-mail: 12 语音控制小车(越野型)使用说明书5 如何使用5.1 连接硬件1、采用普通 61 板(排针在 61 板正面) 控制板的 J5 焊接 10PIN 排针,用 10PIN 排线将 61 板的 J7(IOBH)与控制板的 J5 连接,连接时注意方向。最后把喇叭接好,小车的硬件连接就完成了。 2、采用特制 61 板(排针在 61 板) 控制板的 J6 焊接 1

32、0PIN 排孔,然后直接将 61 板扣接在控制板上面,61 板的 J7 直接与控制板的 J6 对接。最后把喇叭接好,小车的硬件连接就完成了。 5.2 代码下载硬件连接完成之后,检查无误,接下来就可以下载程序了。具体的步骤为:第一步:打开集成开发环境,打开“Car_Demo.spj”文件,编译链接。(注意:如果看不到 Car_Demo.spj, 请在弹出的对话框中选择打开类型为 spj 或者所有文件) 第二步:点击菜单 ProjectSelect Body,或者直接点击图标打开如图 5.1 所示的对话框:图 5.1 Select Body 对话框第三步:在弹出的对话框中选择 Body Name

33、为 SPCE060A_061A,选择 Probe 为 Auto,点击 OK 按 钮确定。 第四步:点击 IDE 工具栏上的图标,选择 Use ICE 模式。5.3 训练小车成功下载程序以后,去掉下载线并复位系统(如果使用 EZ-Probe 还应将Probe 选择跳线 S5 拔去),小车就会提示对它进行训练。训练采用应答式训练,每条指令的训练次数为两次,每一条命令的训练过程都是一步骤二:告诉小车“前进”; Sunplus University ProgramE-mail: 13 语音控制小车(越野型)使用说明书步骤三:

34、小车提示“请再说一遍”(重复训练提示音);步骤四:再次告诉小车“前进”(重复训练一次)。 这是一个完整的训练过程,如果训练成功,小车会自动进入下一条指令的训练,并会提示下一条指令对应的动作;如果没有训练成功,小车会提示“说什么暗语呀”或者“没有听到任何声音”等信息,这样的话就要重复刚才所说的四个步骤,直到成功为止。 整个的训练过程共有 5 次这样的训练,依次为:名称前进后退左拐右拐。整个的训 练流程如图5.2 所示:开始训练 N 左转训练成功 练名称训Y Y 成功 N N 右转训练成功 前进训Y Y 训练结束 倒车训 Y图 5.2 小车训练流程5.4 声控小车训练完小车之后,怎样进行声控操作,

35、让小车运动或者停下来呢? 可以直接对小车说前进,或者倒车、左拐、右拐等,小车如果识别出指令会有一个回应信号,告知你它要执行的动作,然后执行该动作。如果想要小车执行其它动作,直接告诉小车将要执行动作对应的指令即可。比如在前进时告诉小车“倒车”,小车识别出之后就会直接倒车。 如果在小车运动的过程中想要小车停下来,可以直接呼叫小车的名字,小车准确识别之后就会停下来。 5.5 重新训练在实际的使用过程当中,可能会对训练的结果不满意,或者其他人也想对它进行训练、控制。这样就要求小车可以被重新训练。为此,我们把 61 板的 KEY3 键定义为重新训练按钮,系统运行之后就会不断的扫描 61 板的 KEY3

36、键。如果检测到 KEY3 键按下,那么程序首先会把训练标志位(0xe000)单元擦除, 并会进入一个死循环等待复位的到来。复位到来之后,程序检测到训练标志单元内容为 0xffff,认为小车 Sunplus University ProgramE-mail: 14训练倒 训练成功提示 训练右转指令 训练前 指令 训练训练左转指令 指令 成功N 名 称 成功N 语音控制小车(越野型)使用说明书没有经过训练,就会要求对它进行训练。 Sunplus University Program.c

37、nE-mail: 15 语音控制小车(越野型)使用说明书6 应用举例接下来将介绍几个具体的程序实例,通过这些实例来说明小车究竟是怎样控制的,怎样来完成前进, 后退和转弯的以及怎样来完成速度的调节的。 6.1 一个简单的前进实例通过这个简单的控制实例,将会了解到小车动作的实现原理,掌握怎样通过简单的“0”“1”组合来 实现小车的前进,后退等各种动作。 6.1.1实例源代码下面是该实例对应的源代码。6.1.2源代码说明程序比较简单,下面逐句说明指令的功能。首先:#define #define #define#defineP_IOB_Data P_IOB_DirP

38、_IOB_Attrib(unsigned int *)0x7005 (unsigned int *)0x7007(unsigned int *)0x7008P_Watchdog_Clear (unsigned int *)0x7012 Sunplus University ProgramE-mail: 16#defineP_IOB_Data(unsigned int *)0x7005 #defineP_IOB_Dir(unsigned int *)0x7007 #defineP_IOB_Attrib(unsigned

39、 int *)0x7008 #defineP_Watchdog_Clear (unsigned int*)0x7012main()*P_IOB_Dir = 0xffff;*P_IOB_Attrib = 0xffff;/设置 IOB 为同相输出 *P_IOB_Data = 0x0100;/前进while(1)*P_Watchdog_Clear=0x0001;/清看门狗 语音控制小车(越野型)使用说明书以上是宏定义操作,在程序的开头对常用的单片机资源端口进行定义,在以后的程序中就可以直接引用这些宏名来代替端口地址完成端口操作。这样做的好处:一是可读性强,宏名能够直接表达出端口的含义;二是易于修改,

40、如果需要重新分配端口,可以在宏定义部分修改,而不必在程序中逐一修改。上面定义了一些用到的硬件资源包括 IO 端口和看门狗资源。 第二: *P_IOB_Dir = 0xffff;*P_IOB_Attrib = 0xffff;/设置 IOB 为同相输出端这两句共同完成 B 口的初始化工作,通过这两句把 B 口初始化为同相的输出口,以后直接通过 B 口 来向外输出 0、1 电平。 第三: *P_IOB_Data = 0x0100;/前进这是整个程序的核心部分,正是通过这条指令来完成数据输出的。执行完这条指令以后,对应的 B 口的 16 位数据为“0000 0001 0000 0000”,其中 B 1

41、1B 8 四位为“0001”,这样就实现了小车的前进功能(参看表 3.1),同样还可以通过向 P_IOB_Data 写不同的数值来实现不同的功能,具体的数值请参照表 2.1第四:*P_Watchdog_Clear=0x0001; /清看门狗 这是一条清看门狗的操作,在实际的系统中,为了保证系统能够稳健的运行,引入看门狗资源。必须在看门狗的计数器溢出之前对它进行重新赋值,否则看门狗计数器就会溢出,造成系统复位。在这里让程序进入一个循环,在循环中不停地清看门狗这样系统就不会复位。 6.1.3具体的操作步骤第一步:建立工程并参照上述代码编写新的代码,编译链接;第二步:点击菜单 ProjectSelect Body,或者直接点击 图标打开,在弹出的对话框中选择 BodyName 为 SPCE060A,选择 Probe 为 Auto,点击 OK 按钮确定; 第三步:点击 IDE 工具栏上的图标,选择 Use ICE 模式;第四步:按 F8 快捷按钮,下载代码; 第五步:去掉下载线(拔掉 S5 跳线),运行小车观察现象;在代码框中修改 P_IOB_Data 的值(查表 2.1 修改,比如后退:*P_IOB_Data = 0x0200),编译连接后 再重复四、五步,观察现象 Sunplus Universi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论