版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Zigbee无线传感网技术与应用空调排气系统0201了解I/O的概念03掌握查看芯片资料方法05了解与、或、非的作用06掌握如何驱动排气扇04掌握使用万用表测量输出电压02了解什么是数字信号学习目标Learningobjectives任务一:测试输出信号任务要求要求读者查看芯片资料在ZigBee开发板上将对应的I/O口设置成输出,驱动对应的I/O口,输出高电平与低电平的电压。查看芯片资料与电路原理图,找到对应I/O口测量位置,使用万用表直流电压档测量I/O口输出电压变化情况。任务目标Missionobjectives01了解什么是数字信号03了解什么是I/O05掌握设置I/O口为输出模式方法06掌握使用万用表测量信号方法04掌握查看芯片资料方法02掌握常用的进制转换方法储备知识进入21世纪,在生活中常常听到“数字时代已经到来”这个说法,然而对于什么数字时代一无所知,在了解什么是数字时代之前先了解数字这个概念,这里说的数字并不是传统意义上的阿拉伯数字,作者理解数字是“通过简单的数字如0、1数字排列组合成大量的数字序列”这大量数字序列可以表示一个字、表示一张图片、表示一段视频、一步电影甚至一个世界。这就是现在“数字”所赋予的意义。1.数字时代已经到来数字时代就如同一部经典的科幻电影“黑客帝国”中的一幕经典的片段:主角“尼奥”在计算机虚拟世界“母体”中被反派角色用手枪打倒,就在被打倒的同时他突然觉醒了一个能力,就是看穿世界的能力,在他眼里整个世界就是一系列的数字阵列组合而成。储备知识他所见到的反派角色也成为了一大堆的数字阵列,他在其中就拥有的超能力无所不能。数字阵列如下图所示:1.数字时代已经到来虽然电影有许多虚假的成分,但是这些的片段的灵感与技术都源于生活当中,近期十分火爆的VR技术不就是跟电影中的设想很相识吗。这就是将来的数字时代,我们生活在一个无处不在的数字当中。作者剪辑了电影部分视频片段有兴趣读者可在配套资料找到相关电影片段。储备知识生活当中实际所看到的图片、视频等信息都是由数字构成的也就是0101afab123e的码构成,就是计算机中的二进制码或十六进制码,构成十六进制码的最小单位就是二进制码,在专业中所描述的数字信号只有两种0与1。在单片机编程中经常使用十六进制Hex与二进制Bin表示数值,这里针对没有基础的读者说明十六进制码与二进制码,如读者已经掌握本知识可跳过本内容。1.数字时代已经到来数字信号 十六进制十六进制即逢十六进一,与我们熟悉的十进制则逢十进一原理类似,这里有个问题1-9可以表示,但10-15则无法表示,所以十六进制则以A、B、C、D、E、F分别表示10、11、12、13、14、15。图:十六进制储备知识二进制即逢二进一,与进位原理与十进制的原理相同,二进制的原理比十六进制来的简单只有两种情况0或1,同时二进制也是构成计算机软件的最基本的元素,也是数字信号中最为基本的元素,上述的十六进制也是由二进制0或1组成。在微观计算机软件世界中二进制是构成计算机软件所有代码元素即机器语言。1.数字时代已经到来二进制二进制十分神奇,即0、1可以表示为有或没有、黑与白、阴与阳、是与非等,这与中国古代太极惊人相识。太极即是阐明宇宙从无极而太极,以至万物化生的过程。其中的太极即为天地未开、混沌未分阴阳之前的状态。易经系辞:“是故易有太极,是生两仪”。两仪即为太极的阴、阳二仪。储备知识二进制的明人是德国思想家莱布尼茨(1646-1716年),他大约在20岁时就已经知道了最初由欧洲来华传教士所介绍的中国《易经》。后来他虽然率先明出二进制,但由于没有找到对其可靠性及意义的有力支持,因此迟迟没有表其论文,直到1697年他与法国传教士白晋相识、随后通信交流对《易经》的看法之后,才使他看到古老《易经》的六十四卦和二进制的数码相对应,给予他极大的启和鼓舞,并于1705年把论文表出来,题为《关于仅用0和1两个符号的二进制算术的说明,并以此解释古代中国伏羲图的探讨》。1.数字时代已经到来图:太极图与二进制储备知识在单片机编程中较为常用的进制转换为二进制转十六进制的计算,所以以二进制转十六进制为主介绍进制转换,介绍最为简单并且快速的计算方法,要求读者掌握其中计算方法后在5秒内得到转换的结果。首先观察右图所示的二进制码与转换结果。计算十六进制步骤分3步走,接下来跟着步骤开始学习吧。1.数字时代已经到来十六进制转换二进制储备知识1.数字时代已经到来步骤1:拆分,将二进制以4位进行拆分,分为0011、1100两个二进制。图:拆分法步骤2:累加,记住一个公式8、4、2、1,分别对应到所在1的位置,并进行累加求和,为0的位置不作为累加。图:累加法储备知识1.数字时代已经到来步骤3:换字母,在得到对应的数字后将10以后的数据转换为字母,10-A、11-B、12-C、13-D、14-E、15-F。图:转换法储备知识1.数字时代已经到来00001111:_____00110101:_____10110001:_____10001111:_____10110011:_____10110001:_____11001111:_____00010011:_____11110011:_____10000111:_____00110011:_____11111111:_____
11001111:_____01010011:_____11110011:_____11000111:_____10110111:_____11111011:_____思考:通过学习转换进制的三步走,接下来思考几道进制转换的练习题并以在2分钟时间内计算中所有结果。储备知识在学习完十六进制转二进制之后,相信读者已经对于其中的转换有了基本的了解,接下来开始学习二进制转十六进制的方法。同样分3步走,同样要求在5秒钟得到最后结果,步骤如下所示。1.数字时代已经到来二进制转十六进制步骤1:拆分,将十六进制以一位为单位进行拆分。图:拆分法储备知识1.数字时代已经到来步骤2:转换,将字母F转换为数字。图:转换法储备知识1.数字时代已经到来步骤2:减法,将拆分的结果分别减去8、4、2、1,结果不为0或负数则该位为1,为0介绍后续的减法,直到无法减到0为止。图:计算数值储备知识1.数字时代已经到来ee:_______fe:_______18:_______21:_______bd:_______12:_______35:_______aa:_______98:_______11:_______81:_______87:_______思考:通过学习转换进制的三步走,接下来思考几道进制转换的练习题并以在2分钟时间内计算中所有结果。储备知识除了口算计算进制转换外,也可以使用windows提供的计算工具计算进制变换,但是作者还是建议读者尽量自行计算。计算步骤如下所示。1.数字时代已经到来系统自带计算器计算步骤1:在系统桌面中按下键盘快捷键“Windows+R”在启动运行窗体,在窗体中输入“calc”回车,或在开始菜单中附件找到计算机启动。建议使用快捷键方式提高工作效率。图:计算机运行储备知识1.数字时代已经到来步骤2:在启动界面中点击“查看”选择模式->程序员型->选择十六进制。图:计算器模式选择储备知识1.数字时代已经到来步骤3:输入计算内容“FE”,然后再次点击“二进制标签”。图:计算结果储备知识I/O,为In、Out的英文简称,其字面意思为输入和输出,再到计算机术语就是信号输入与信号输出,再到电子技术的术语就是电压或电流的输入与输出。Out输出可以将它理解成一跟包含开关的电缆线。当开关打开的时候则通上了电,关闭时则没有电这就是输出。2.这就是I/OIn输入与Out输出储备知识2.这就是I/OIn则表示输入,本身我接收方接收信号,也就是信号从另外的一端发送给自己,有时无法控制什么时候接收到信号,由另一端决定。图:输入表示储备知识为了理解单片机I/O口是处于输入还是输出,这里将项目一LED灯与芯片进行一个简单理解。2.这就是I/O单片机中的I/O口图:电路图在确定输出类型后,数字信号分为两种即0或1,在电子专业的表述是高电平与低电平,通常5V和3.3V电平大致是2V以上表示高电平,0.8V以下是低电平。电平:在数字电路中,分为高电平和低电平,分别用1和0表示。一个数字电路的管脚,总是存在一个电平的,要么高要么低,或者说要么1要到0。知识补充储备知识本案例提供的芯片手册,为了更好的用于教学,为官方提供的英文版本翻译而来,(作者又将其做了处理与网络版本相比去除了无用的广告部分),如果读者的英文水平较高也可使用英文版本作为开发手册使用更加贴近开发流程(较为新的芯片正常只有英文资料)。在正规公司的芯片资料中一般都会有目录,可大致浏览目录内容,查看头几页芯片介绍初步了解芯片特性,关键在于了解芯片的ROM、RAM、I/O口、片内频率、外设等信息为后续开发提供思入。在芯片资料中通过软件“搜索”功能搜索关键字,找到设置选项。如需要设置如下图所示,搜索关键字。3.查看芯片资料查看芯片概述(注:资料资料位于“项目二\cc2530芯片手册.pdf”)储备知识通过搜索可以找到一张CC253X方框图,如右图所示。这张方框图即介绍了芯片的所有功能模块与片内内存、时钟等信息,作为开发者需要了解其一些必要信息如:CC253X系列的芯片时钟为32MHz、128/256K的Flash、8K的RAM共有P0、P1、P2二个8位I/O口、一个5位I/O口等信息。3.查看芯片资料储备知识在开始设置I/O之前需要明确我们的任务目的,即找到设置I/O口为输出模式的寄存器,并查看对应“每位”功能加以计算得出赋值数值。3.查看芯片资料芯片I/O设置步骤1:通过上述搜索法,搜索所需的芯片I/O口设置对应资料,先试试搜索“I/O”关键字定位我们资料位置。看到一张表名称为“SFR概览”的表。图:设置I/O关键字储备知识3.查看芯片资料步骤2:SFR表示寄存器在芯片中对应的实际物理地址对应寄存器名称,查看表中对应的描述,查看对应表述中是否有提到端口输出的文字描述,可以看到PxSEL、PxINP、PxDIR(x表示1、2、3)均为设置IO口的设置功能寄存器。图:SFR表储备知识3.查看芯片资料外设功能:表示I/O作为如串口、ADC、PWM输出等其他功能时使用。8位Bit:计算机编程中通常以从0开始表示数据,即0-7表示8位数据。步骤3:搜索对应寄存器更加详细的描述信息,PxSEL如下图所示,可见PxSEL控制的是I/O口是否是作为通用I/O口或者以外设功能使用。设置成0为IO口1位外设口还用。图:设置P0SEL知识补充储备知识3.查看芯片资料步骤4:计算具体数据,假设需要将P0口中P0.0、P0.1作为外设口使用,其他口作为普通I/O口使用,需计算出结果,计算过程如下图所示。根据分析图?,其中7:0表示P0SEL第7位到第0位控制着P0.7-P0.0口的功能选择,故只需要将P0.0,P0.1设置为1其他几位设置成0即可。图:计算结果储备知识3.查看芯片资料(1)将P1.1、P1.4、P1.3设置为外设其他均为通用I/O使用,需修改___P1SEL___寄存器为
1a
数值。(2)将P2.0与P2.6设置为通用I/O口其他均为外设使用,需修改_P2SEL_寄存器为
BE
数值。(3)将P2.2、P2.7设置为外设其他均为通用I/O使用,需修改_________寄存器为__________数值。(4)将P0.2、P0.3设置为外设其他均为通用I/O使用,需修改_________寄存器为__________数值。思考:根据要求填写答案:储备知识3.查看芯片资料步骤5:在理解PxSEL后,继续搜索下一个关键字P0DIR(P0INP为输入的控制本项目重点讲解输出在后续项目会介绍)如下图所示。可见PxDIR,为控制I/O口方向的寄存器,其中7:0表示第7位到第0位。0表示输入,1表示输出。计算方式与刚刚所述的是一致的。储备知识3.查看芯片资料(1)将P2.0、P2.1、P2.6设置为输出其他均为输入,需修改__P2DIR___寄存器为___43___数值。(2)将P1.2与P1.7设置输出其他均为输入,需修改____P1DIR_____寄存器为____84____数值。(3)将P0.1、P0.2设置为输入其他均为输出,需修改_________寄存器为__________数值。(4)将P1.2、P1.3设置为输入其他均为输出,需修改_________寄存器为__________数值。思考:根据要求填写答案:4.编写代码任务实施本任务所需软件已安装至电脑可直接使用。本任务所需硬件:下载器*1、ZigBee开发板*1、5V电源适配器*1、USB下载线*1。环境准备4.编写代码任务实施步骤1:新建工程->工程名称为“IO输出”->保存->新建语言程序.c文件名称为“main.c”->设置Opion->编写最简单的代码,代码右图所示。(新建工程具体步骤,不再重复介绍)编写代码#include"iocc2530.h"voidmain(){
while(1){
}}4.编写代码任务实施#include"iocc2530.h"voidmain(){P1SEL=0xe4;P1DIR=0x1b;
while(1){
}}图:LED电路图步骤2:查看LED电路图计算并设置I/O口外设与输出模式,如下图所示,需设置P1.0、P1.1、P1.3、P1.4为输出、并为普通IO口使用,其他暂时作为外设与输入使用,计算结果赋给P1SEL、P1DIR两个寄存器。代码如下所示。1110
0100
0xE4
0001
1011
=
0x1bC语言十六进制表示:在C语言中表示十六进制的数值,使用“0x”表示十六进制数值,如不加则表示10进制数值,标准C语言中没有二进制的表示方式。知识补充步骤3:编写点亮D6、D5两个LED灯代码,即I/O口输出高电平代码P1=0x18,代码如下所示。#include"iocc2530.h"voidmain(){P1SEL=0xe4;P1DIR=0x1d;
while(1){P1=0x18;//输出P1.0、1、3、4高电平P1=0x00;//输出P1.0、1、3、4低电平}}任务实施4.编写代码其中0x18二进制表示为00011000,表示设置P1.4、P1.3IO口输出高电平。计算过程如下图所示。图:计算过程P1寄存器:“P1”寄存器为控制“P1”I/O实际输出高低电平的寄存器知识补充任务实施4.编写代码4.编写代码任务实施步骤4:运行程序,在点亮LED代码P1=0x18的位置设置断点->全速运行至断点代码位置->在程序指针指到代码段时释放断点(即点击红色圆圈)->再点击单步按钮执行该代码。图1:断点位置图2:取消断点4.编写代码任务实施步骤5:使用万用表测量->将量程设置为直流电压大于5V的档位上,测量P1.4电压值,由于芯片封装的限制无法直接测量芯片引脚的电压,故只能测量I/O连接器件的电压,分析电路可知D6+与GND,测量点位与万用表读数。图:测量点、万用表读数3.查看芯片资料寻找GND:方式一:通过分析电路图确定GND的位置方式二:一般情况下,为了防止干扰电路设计人员会将电子器件的外壳与GND连接,如下图所示:知识补充任务实施4.编写代码任务实施步骤6:单步调试执行下一条代码即P1=0x00,使用万用表测量电压,发现电压已经变为0.02V,证明程序执行成功,把电压设置成了低电平。单步调试加万用表测示可直观准确定位出程序所执行后的结果是否正确(根据寻找GND方式二测量电压)。图:方式二GND、万用表读数4.编写代码任务实施步骤7:全速执行代码,再次测量电压,发现电压只剩下0.79V同时灯的亮度也暗了。图:亮度与万用表读数4.编写代码任务实施分析程序,只有两条代码被不断执行:一是让I/O口输出高电平;二是让I/O口输出低电平,这时需要分析芯片执行一条指令的速度,CC2530芯片的默认时钟为32MHZ也就是一条指令理论上为0.032us,速度非常快,通俗说程序实际是执行高低电平不断变化,当由于速度非常快,万用表无法捕获速度的变化,人的肉眼自然也无法捕获故出现这种现象,这种现象叫PWM输出,会经常用在程序开发中。但如果需要实现亮一会再灭一会的效果时怎么办?故需要我们进一步学习任务二的内容。这是为什么呢4.编写代码任务实施一、编写程序,新建一个新的工程,完成如下操作:1、设置I/O口P1.0,P1.1,P1.2为普通I/O口使用;2、设置I/O口P1.0,P1.1 为输出口,其余为输入;3、在死循环程序中让P1.0、P1.1输出高电平与低电平两条代码。二、执行“配套资料\任务一\习题一\配套代码”全速执行,使用万用表测量出D3、D4、D5、D6LED灯的电压值,并填入下表中。D3:_______VD4:_______VD5:_______VD6:_______V思考练习:Zigbee无线传感网技术与应用空调排气系统0201了解I/O的概念03掌握查看芯片资料方法05了解与、或、非的作用06掌握如何驱动排气扇04掌握使用万用表测量输出电压02了解什么是数字信号学习目标Learningobjectives任务二:变化的I/O口任务要求要求读者掌握程序中与、或、非逻辑语法的用法,掌握单片机程序中延迟程序的写法,使用延迟程序修改任务一程序让LED效果慢下来,并使用万用表测量电压。01了解与、或、非逻辑语法的作用03了解延迟在单片机的作用05掌握编写闪烁LED方法04掌握编写延时子程序02了解逻辑语法在单片机的作用任务目标Missionobjectives储备知识逻辑运算符,共有三种常用的计算方式与、或、非,在单片机程序设计中起着十分关键的作用,这先与、或、非计算方式做一个介绍。单片机中的逻辑计算数字都是1或0进行。1.逻辑运算“与”计算“与”计算在C语言中以“&”符号来表示,注意这里为一个的“&”,两个表示对位操作,一个表示对字节的计算。“与”计算英文表示为and,在字面上的理解为and即和,如“我要一个杯子和一块布”字面上意思是说杯子和布我都要,其计算的方式与乘法类似。如右图:图:类似乘法的计算用一个口决表示即:“有0出0,全1出1”。与运算中只要一个有0的存在那么它的结果就为0。储备知识1.逻辑运算“或”计算“或”计算在C语言中以“|”符号来表示,注意这里为一个的“|”,两个表示对位操作,一个表示对字节的计算。“或”计算英文表示为or,在字面上的理解即或者,如“我要一杯酒或者一盏茶”,字面上的意思说我要酒或者茶,其计算方式类似加法计算。如右图:图:类似加法的计算用一个口决表示即:有1出1,全0出0”。或运算中只要一个有1的存在,那么她的结果就是1。储备知识1.逻辑运算“非”计算“非”计算在C语言中以“~”符号来表示,注意与“!”不同,“~”为对字节进行非运算。“非”计算即取反,如果数据为0那么非则为1,1非则为0。如下图:图:取反计算储备知识2.逻辑运算作用“或”计算逻辑运算符在单片机中一个最为重要作用就是对位的计算。如果需要实现将P1.0置成输出模式,然后在不改变原先的状态的情况下再将P1.5设置成输出,在不改变原先的状态的情况下再将P1.7设置成输出,下面列举一行代码,代码如下所示。P1DIR=0x01;//将P1口的P1.0设置为输出P1DIR=0x41;//将P1口的P1.5设置为输出P1DIR=0xC1;//将P1口的P1.7设置为输出储备知识2.逻辑运算作用P1DIR|=0x01;//将P1口的P1.0设置为输出P1DIR|=0x40;//将P1口的P1.5设置为输出P1DIR|=0x80;//将P1口的P1.7设置为输出这里提到有个前提是不影响原先状态的情况下,改变对操作每个位,此时则需要对先前的位进行保留重新计算新的位,大大增加了计算的量,如果这时使用逻辑运算符就可以减轻计算量,同时又可以使得I/O口的位操作变的十分方便,代码如下所示。代码如上所示,其中“|=”表示P1DIR或计算0x01数值。利用或计算的特点,在或计算中如果数据或上0则保留下原先的数据,或上1则强制变为1,如右图所示。图:或计算储备知识2.逻辑运算作用“与”计算在理解完“或”计算之后同样对“与”计算在单片机中的作用进行说明,实际“与”计算则作为或计算相反在使用。同样如果将P1DIR设置成先前的P1.0设置成输入,P1.5设置成输入,那么如果不考虑先前数据的情况下,可以使用“与”计算来进行操作。代码如下所示。P1DIR&=~0x01;//将P1口的P1.0设置为输入P1DIR&=~0x40;//将P1口的P1.5设置为输入P1DIR&=~0x80;//将P1口的P1.7设置为输入储备知识2.逻辑运算作用代码如上所示这里使用到了一个“非”的取反符号,让程序写起来更加容易,0x01取反的到一个0xfe的数据二进制即为11111110,根据与计算的原则任何数与上1得到的为其本身,与上0则强制清0,如下图所示。图:与计算储备知识在任务一中,是否遇到一个问题即程序上写了LED亮与灭的代码,但是全速运行的过程中并未出现同样的亮与灭效果,这是因为程序执行的速度很快,因为太快了所以看不出原先的亮灭的变化,这时希望它的执行速度可以慢下来,但是无法通过修改特殊寄存器的方式让程序慢下来,所以需要使用延迟程序来实现该功能。延迟顾名思义让程序先等一会在执行,延迟的思想在于如何等一会,在这一会的时间我们需要干些什么事情呢?答案就是做没有用的代码,如循环。代码如下所示。3.延迟妙用unsigned
inti=10000;while(i--);储备知识分析刚刚的代码,首先定义了一个整型的变量i,让i赋值10000,再让i一直减1直到i为0时退出循环,在这过程中在这个代码段循环了10000次,如果芯片的一条指令的速度为0.032us,则乘上10000得到320us的时间,也就是得到了停留时间。但是320us并不能达到需求。需要更大的延迟时间来满足要求,但是unsignedint最大值仅仅为65525,也就是最大延迟时间为65535*0.032=2097us时间。故我们需要再加一个嵌套循环来满足需求,代码如下所示。3.延迟妙用unsigned
inti1=100,i2=100;while(--i1){
while(--i2);i2=100;}储备知识3.延迟妙用unsignedint类型: 无符号整型,数值范围0–65535unsignedchar类型: 无符号字符型,数值范围0–255int类型: 整型,数值范围-32767–32768char类型: 字符型,数值范围-128-127知识补充储备知识分析刚刚的代码,代码中使用了两个循环,循环时间为100*100=10000,使用双重循环嵌套即可满足延迟需求,再将其写成一个函数形式方便调用,代码如下所示。3.延迟妙用voiddelay(unsigned
inti1){
unsigned
inti2;
while(--i1){i2=1000;
while(--i2);
}}将代码写成函数,方便调用,把i1变成调用函数的参数,即可自由控制延迟的时间。4.开始闪烁任务实施本任务所需软件已安装至电脑可直接使用。本任务所需硬件:下载器*1、ZigBee开发板*1、5V电源适配器*1、USB下载线*1。环境准备4.开始闪烁任务实施步骤1:新建工程->工程名称为“闪烁”->保存->新建语言程序.c文件名称为“main.c”->设置Opion->编写最简单的代码,代码如下所示。(新建工程具体步骤,不再重复介绍)编写程序#include"iocc2530.h"voidmain(){
while(1){
}}4.开始闪烁任务实施步骤2:使用逻辑运算符编写方式,编写I/O输入、输出设置,代码如下所示。P1.0P1.1P1.3P1.4设置成普通IO使用,不改变原先的其他口的设置。P1SEL
&=
~0x1b
,P1DIR|=0x1b#include"iocc2530.h"voidmain(){P1SEL&=~0x1b;P1DIR|=0x1b;
while(1)
{
}}4.开始闪烁任务实施代码小贴士:代码:P1SEL&=~0x1b;说明:使用“与”计算,0x1b=00011011取反11100100相与表示将P1.0、P1.1、P1.3、P1.4设置成普通IO口模式,其他口保持不变。代码:P1DIR|=0x1b;说明:使用“或”计算,0x1b=00011011相或将P1.0P1.1P1.3P1.4设置成输出模式,其他口保持不变。4.开始闪烁任务实施步骤3:在main函数上方编写延迟函数Delay,代码如下所示。#include"iocc2530.h"voiddelay(unsigned
inti1){
unsigned
inti2;
while(i1--){i2=1000;
while(--i2);}}voidmain(){P1SEL&=~0x1b;P1DIR|=0x1b;while(1){
}}代码小贴士:编写函数:在C语言编程中,编写完函数后,如需要调用它,则必需在调用的函数前声明该函数,否则将无法调用。4.开始闪烁任务实施步骤4:在主函数中while(1)循环中编写点亮与熄灭LED代码,代码如下所示。voidmain(){P1SEL&=~0x1b;P1DIR|=0x1b;
while(1){P1=0x1b;delay(100);P1=0x00;delay(100);}}4.开始闪烁任务实施步骤5:代码编写完成编译代码->在执行点亮代码位置设置断点->单步调试程序与执行延迟时间,如下图所示。图:断点调试4.开始闪烁任务实施步骤6:全速执行代码,发现灯按照要求开始闪烁,如下图所示。图:效果代码4.开始闪烁任务实施步骤6:再使用万用表测量电压,可见电压的明显变化,如下图所示。图:万用表测量4.编写代码任务实施一、编写程序,新建一个新的工程,完成如下任务:D6、D5点亮延迟约1秒后D6、D5熄灭,不断循环。D4、D3无需点亮全程熄灭。
二、编写程序,新建一个新的工程,完成如下任务:D4点亮其余熄灭延迟2秒D3点亮,D4熄灭延迟2秒D6点亮,D3熄灭延迟2秒D5点亮,D6熄灭延迟2秒返回第一步思考练习:Zigbee无线传感网技术与应用空调排气系统0201了解I/O的概念03掌握查看芯片资料方法05了解与、或、非的作用06掌握如何驱动排气扇04掌握使用万用表测量输出电压02了解什么是数字信号学习目标Learningobjectives任务三:定时控制空调排气系统任务要求要求读者在理解继电器原理、排气扇电路原理图基础上,连接线路并编写更加精确的延迟程序,进一步编写定时控制排气扇代码程序,让排气扇间隔1分钟开启一次,2分钟后关闭一次。01理解继电器原理03掌握连接排气扇线路05掌握编写定时控制排气扇代码04编写更加精确的延迟程序02理解排气扇电路原理图任务目标Missionobjectives储备知识1.电磁式继电器电磁式继电器概述继电器是一种电控制器件,是当输入量(激励量)的变化达到规定要求时,在电气输出电路中使被控量发生预定的阶跃变化的一种电器。它具有控制系统(又称输入回路)和被控制系统(又称输出回路)之间的互动关系。通常应用于自动化的控制电路中,它实际上是用小电流去控制大电流运作的一种“自动开关”。故在电路中起着自动调节、安全保护、转换电路等作用。储备知识1.电磁式继电器电磁式继电器工作原理它的具体工作过程是:当继电器线圈绕组通电以后,它所产生的磁场力就会带动机械杠杆,使之发生移位,从而使得原来处于闭合的开关触点(即常闭触点)变为断开,同时原来处于断开的开关触点(即常开触点)变为闭合。由此,实现了对被控制电路的供电切换,达到对被控制电路的控制。当继电器线圈绕组断电时,线圈失去了磁性,机械杠杆在复位弹簧作用下,完成了复位位移。机械杠杆在复位过程中又带动常闭开关触点恢复到原来的闭合状态,常开开关触点也恢复到原来断开状态。图:常用继电器储备知识1.电磁式继电器常开触点在常态(不通电)的情况下处于断开状态的触点叫常开触点。常开——NO(normalopen)通常情况下是断开状态,即线圈未得电的情况下断开的。图:常开示意图常闭触点在常态(不通电、无电流流过)的情况下处于闭合状态的触点叫常闭触点。常闭——NC(normalclose)通常情况下是关合状态,即线圈未得电的情况下闭合的。图:常闭示意图储备知识1.电磁式继电器继电器模块教材选用单联继电器模块,采用标准5V驱动,最大可控制250V交流电压、30V直流电压器件,其参数指标与模块示意图如下所示:产品概述:名称:松乐继电器货号:COM151301制造:松乐技术参数:型号:SRD-05VDC-SL-C电压:5V电流:10A-30VDC10A-250VAC引脚:5触点:单组储备知识1.电磁式继电器继电器模块为5个引脚,分别为COM,NC,NO,IN1、IN2,其中COM为公共端,NC为常闭端,NO为常开端,IN1、IN2位线圈控制脚。其原理为当IN1、IN2得电后继电器的常闭端将开路,常开端NO将导通。如下图所示。图:继电器内部原理图储备知识2.排气扇电路连接图教材使用的排气扇的驱动电压为24V,故需读者准备24V电源供电,继电器模块IN为线圈控制端接单片机2.0脚,COM公共端连接24V,NO常开端连接24V,原理为单片机控制P2.0口使继电器产生吸合常开端24V导通从而控制排气扇。如下图所示。图:排气扇电路原理图3.编写排气扇控制系统程序任务实施本任务所需软件已安装至电脑可直接使用。本任务所需硬件:下载器*1、ZigBee开发板*1、5V电源适配器*1、USB下载线*1、继电器模块*1、排气扇*1。环境准备3.编写排气扇控制系统程序任务实施
要求ZigBee通电1分钟后开启排气扇。
开启2分钟后关闭排气扇。
循环第一步骤任务要求连接线路根据排气扇电路连接图连接线路,继电器连接线路如图所示。3.编写排气扇控制系统程序任务实施编写更精确的延迟程序步骤1:新建工程->工程名称为“排气扇”->保存->新建语言程序.c文件名称为“main.c”->设置Opion->编写最简单的代码,代码如下所示。(新建工程具体步骤,不再重复介绍)#include"iocc2530.h"voidmain(){
while(1){
}}3.编写排气扇控制系统程序任务实施步骤2:在main函数上方编写延迟函数Delay并调用延迟程序,代码如下所示。#include"iocc2530.h"
voiddelay(unsigned
inti1){
unsigned
inti2;
while(i1--){i2=1000;
while(--i2);
}}
voidmain(){P1SEL&=~0x1b;P1DIR|=0x1b;while(1){
delay(100);}}3.编写排气扇控制系统程序任务实施
步骤3:假设该调用该延迟子程序为60秒,调用1次为10毫秒即调用参数为100,声明一个变量全局count,在程序上编写一个count++代码进行计数。代码
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 江西省宜春市靖安县靖安中学2026届高二上生物期末统考试题含解析
- 浙江省舟山市2026届英语高三上期末检测试题含解析
- 黑龙江省哈尔滨市尚志中学2026届数学高二上期末监测模拟试题含解析
- 国产医疗设备技术迭代与选型前瞻
- 噪声暴露与心血管疾病患者家庭护理方案优化
- 2026届甘肃省高台一中生物高一第一学期期末经典试题含解析
- 器官移植排斥反应不良事件的根本原因分析
- 湖南省湘潭市2026届高三生物第一学期期末复习检测试题含解析
- 重庆市云阳江口中学2026届数学高二上期末质量跟踪监视试题含解析
- 山西省霍州市煤电第一中学2026届高二上生物期末考试模拟试题含解析
- 2026海南交通投资控股公司秋招面笔试题及答案
- 2026 年中职机械基础(机械基础)试题及答案
- 胆囊癌课件教学课件
- 2025年昆明市呈贡区城市投资集团有限公司及下属子公司第二批招聘(11人)考试备考题库附答案
- “青苗筑基 浙里建证”浙江省建设投资集团2026届管培生招聘30人备考核心题库及答案解析
- 江苏百校大联考2026届高三语文第一学期期末学业质量监测试题含解析
- 代还按揭协议书
- 2026年失眠患者睡眠调理指南
- 2026年盘锦职业技术学院单招职业适应性测试题库及答案详解一套
- 2025年10月自考00610高级日语(二)试题及答案
- 2026年包头铁道职业技术学院单招职业技能考试题库带答案解析
评论
0/150
提交评论