您好,欢迎访问三七文档
移动机器人基础培训第一节微控制器(MCU)基础任务1让LED按照规定的时序闪亮021435t/sonoff完成任务的步骤•明确任务•分析任务•构思解决方案•安装硬件•编写程序•下载、运行、测试•总结与讨论一、明确任务LED•LightEmittingDiode发光二极管–A阳极(比较长的那根管脚)–K阴极(比较短的那根管脚)–下面的电路可以使LED发光AKAK470欧姆5伏470Ω5V接地电势零点二、分析任务•本任务要求LED按照如下的时序图闪亮•实际上是要求Va按照如下的时序变化021435t/s5V0V021435t/sonoff470ΩVa三、构思解决方案解决方案•MicroControlUnit微控制器•Input-OutputPort输入输出端口•MCU能按顺序执行命令(程序)让I/O口按照规定的时序输出电压。470Ω接地VssI/O口电源MCU开关程序•让指定的I/O口输出5V电压•延时1秒•让I/O口输出0V电压•延时1秒•让I/O口输出5V电压•延时2秒•让I/O口输出0V•结束021435t/s5V0V四、安装硬件教学底板BasicStamp2MCU电池盒电池Pin1:SOUT在编程或者调试(DEBUG)时传送串口数据Pin2:SIN在编程时接收串口数据Pin3:ATN连接到串口DTR(数据终端准备)信号线通知可以给Stamps编程了Pin4:VSS信号地(0V).P0P1P2P3P4P5P6P7P8P9P10P11P12P13P14P15Pins5-20:通用输入/输出(I/O)脚P0到脚P15Pin21:VDD整定的5V输入脚Pin22:RES复位脚-低电平复位Pin23:VSS电源地(0V)Pin24:VIN直流电源输入(5.5-15V)BasicStamp2MCU教学底板面包板电机连接插座5V稳压器外接电源插口串行接口三位开关复位开关电源指示灯I/O插座电源和接地插座安装硬件1、把BasicStamp2插入教学底板上的24脚插座上,注意BS2上的白色标志点与插座上的缺口相对应。白色标志点缺口安装硬件2、确认教学底板上的电源开关处在关闭位置(0),连接电源。电源开关安装硬件3、安装LED电路。(1)LED阴极连接到电源和接地插座上的Vss插孔;(2)LED阳极连接到面包板;(3)找出一只470Ω电阻,电阻上的色环为黄-紫-棕;(4)电阻的一端接到与LED阳极相通的面包板插孔,另一端连接到I/O插头上的P15插孔。470ΩP15Vss安装硬件4、连接计算机,串口线一端连接到教学底板上的串行接口,另一端连接到PC机上的COM口插座。安装硬件5、检查、测试硬件连接。(1)检查电源连接。打开教学底板上的电源开关(1),电源指示灯应点亮。(2)检查与PC机之间的通讯。•打开BasicStamp编辑器–第一次打开编辑器时,编辑器会询问几个问题,只需点击OK按钮•使用菜单选项RunIdentify或者直接点击ID按钮•COM口连接确认框应当如下图所示:•如果四个栏目中有任何一个的显示内容与上图不同,都说明连接有问题,需要检查连接。五、编写程序编写PBasic程序•让第15号I/O口输出5V电压•延时1秒•让第15号I/O口输出0V电压•延时1秒•让第15号I/O口输出5V电压•延时2秒•让第15号I/O口输出0V•结束021435t/s5V0V•HIGH15•PAUSE1000•LOW15•PAUSE1000•HIGH15•PAUSE2000•LOW15•END把程序键入到编辑器添加必要的说明语句'{$STAMPBS2}'{$PBASIC2.5}HIGH15PAUSE1000LOW15PAUSE1000HIGH15PAUSE2000LOW15END保存到你自己的文件夹•文件名:Task1.bs2•文件夹:六、下载运行测试下载运行脱机运行•关闭教学底板的电源•断开串口线•重新打开教学底板电源、按一下复位键•观察LED的亮灭,检查是否完成预定任务。•关闭教学底板的电源(任何一个试验完成后)电源开关复位开关七、总结与讨论完成工程任务的顺序•明确任务•分析任务•构思解决方案•安装硬件•编写程序•下载、运行、测试•总结与讨论讨论•在上述过程中,PC机和BASICStamp软件的作用是什么?–A)控制MCU执行程序,按照时序输出5V或0V电压。–B)提供一个编写程序的平台,并把程序翻译成MCU能执行的代码下载给MCU,由MCU独立运行。X√编译环境讨论•什么是程序?让第15号I/O口输出5V电压延时1秒让第15号I/O口输出0V电压延时1秒让第15号I/O口输出5V电压延时2秒让第15号I/O口输出0V结束程序是一系列按照一定顺序执行的命令。讨论•什么是PBasic程序?–用PBasic语言书写的程序。•怎么看懂和编写PBasic程序?–记住常用语句和语法;–使用帮助。'{$STAMPBS2}'{$PBASIC2.5}HIGH15PAUSE1000LOW15PAUSE1000HIGH15PAUSE2000LOW15END帮助按钮Syntax:PAUSEDuration•FunctionPausetheprogram(donothing)forthespecifiedDuration.•Durationisavariable/constant/expression*(0-65535)thatspecifiesthedurationofthepause.TheunitoftimeforDurationisonemillisecond.ExplanationPAUSEdelaystheexecutionofthenextprograminstructionforthespecifiednumberofmilliseconds.Forexample:Flash:LOW0PAUSE100HIGH0PAUSE100GOTOFlashThiscodecausespin0togolowfor100ms,thenhighfor100ms.任务2让LED按照规定的时序循环闪亮021435t/sonoff68710911重复10次•明确任务•分析任务–这个任务与任务1类似,可以在任务1的基础上通过修改程序完成。•构思解决方案–硬件与任务1相同–编写程序重复执行下列命令10次:让第15号I/O口输出5V电压延时1秒让第15号I/O口输出0V电压延时1秒让第15号I/O口输出5V电压延时2秒让第15号I/O口输出0V延时1秒让第15号I/O口输出5V延时3秒让第15号I/O口输出0V延时1秒结束021435t/sonoff68710911设置重复次数为10;当重复次数大于0时重复执行下列命令:让第15号I/O口输出5V电压延时1秒让第15号I/O口输出0V电压延时1秒让第15号I/O口输出5V电压延时2秒让第15号I/O口输出0V延时1秒让第15号I/O口输出5V延时3秒让第15号I/O口输出0V延时1秒重复次数减少1次结束021435t/sonoff68710911设置重复次数为10;当重复次数大于0时重复执行下列命令:让第15号I/O口输出5V电压延时1秒让第15号I/O口输出0V电压延时1秒让第15号I/O口输出5V电压延时2秒让第15号I/O口输出0V延时1秒让第15号I/O口输出5V延时3秒让第15号I/O口输出0V延时1秒重复次数减少1次结束RepeatNum=10;DOWHILE(RepeatNum0)HIGH15PAUSE1000LOW15PAUSE1000HIGH15PAUSE2000LOW15PAUSE1000HIGH15PAUSE3000LOW15PAUSE1000RepeatNum=RepeatNum-1LOOPENDRepeatNum=10;DOWHILE(RepeatNum0)HIGH15PAUSE1000LOW15PAUSE1000HIGH15PAUSE2000LOW15PAUSE1000HIGH15PAUSE3000LOW15PAUSE1000RepeatNum=RepeatNum-1LOOPEND变量Variable•一个变量是程序中一个保存数据的地方,对应MCU中一个存储数据的地方,由编辑器负责安排;•每个变量都有自己的名字,我们要在程序的前面声明这个变量,也就是告诉编辑器我们的程序要使用这样一个变量;变量的类型•每个变量都在MCU中占用一个存储数据的空间,空间的大小是用bit(比特)或者byte(字节)为单位的。1byte=8bit。•BasicStamp2内共有32个字节的存储空间,其中只有28个字节可以供我们的程序使用。为了节约存储空间,我们要根据变量的取值范围告诉编译器这个变量需要多大的空间,即声明变量的类型。•PBASIC语言把变量分为以下4种基本类型:Bit可以用来存储0或者1占用1bitNib可以用来存储0到15占用4bitByte可以用来存储0到255占用8bitWord可以用来存储0-65535占用16bit•声明变量的语法:变量名VAR变量类型RepeatNumVARNib'{$STAMPBS2}'{$PBASIC2.5}RepeatNumVARNibRepeatNum=10;DOWHILE(RepeatNum0)HIGH15PAUSE1000LOW15PAUSE1000HIGH15PAUSE2000LOW15PAUSE1000HIGH15PAUSE3000LOW15PAUSE1000RepeatNum=RepeatNum-1LOOPEND•键入程序•保存到task2.bs2•下载运行•测试结果改进方案•控制循环的其他方法'{$STAMPBS2}'{$PBASIC2.5}RepeatNumVARNibFORRepeatNum=1TO10HIGH15PAUSE1000LOW15PAUSE1000HIGH15PAUSE2000LOW15PAUSE1000HIGH15PAUSE3000LOW15PAUSE1000NEXTEND改进方案•简化程序的方法FORi=1TO3HIGH15PAUSEi*1000LOW15PAUSE1000NEXT'{$STAMPBS2}'{$PBASIC2.5}RepeatNumVARNibFORRepeatNum=1TO10HIGH15PAUSE1000LOW15PAUSE1000HIGH15PAUSE2000LOW15PAUSE1000HIGH15PAUSE3000LOW15PAUSE1000NEXTEND改进方案•简化程序的方法'{$STAMPBS2}'{$PBASIC2.5}RepeatNumVARNibiVARNibFORRepeatNum=1TO10FORi=1TO3HIGH15PAUSEi*1000LOW15PAUSE1000NEXTNEXTEND改进方案•添加注释'Task2byFeiYuenong'{$STAMPBS2}'{$PBASIC2.5}RepeatNumVARNib'NumberofrepeatiVARNibFORRepeatNum=1TO10FORi=1TO3HIGH15'MakeP15output5VPAUSEi*1000'Waitforisecond(s)LOW15PAUSE1000NEXTNEXTEND改进方案•添加常数'Task2byFeiYuenong'{$STAMPBS2}'{$PBASIC2.5}TimeUnitCON1000RepeatNumVARNib'NumberofrepeatiVARNibFORRepeatNum=1TO10FORi=1TO3HIGH15'MakeP15output5VPAUSEi*TimeUnit'WaitforiTimeUnit(s)LOW15PAUSETimeUnitNEXTNEXTEND调试方法•通过调试终端了解程序的运行状态–DEBUG'Task2byFeiYuenong'{$STAMPBS2}'{$PBASIC2.5}TimeUnitCON1000RepeatNumVARNi
本文标题:工程设计实践2
链接地址:https://www.777doc.com/doc-147782 .html