




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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.开始
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 可转债信用评级分析报告
- 养老服务中心设施设计评估报告:养老护理服务质量提升策略研究
- 电竞赛事赞助策略优化报告:2025年品牌合作市场分析
- 自动驾驶卡车在快递物流中的应用前景与快递行业未来发展研究报告
- 中医考试题及答案大全PDF
- 中医美容考试试题及答案
- 医疗器械临床试验项目质量管理体系优化报告2025年展望
- 中医三基训练医师试题及答案
- 2025年事业单位工勤技能-安徽-安徽机械热加工三级(高级工)历年参考题库含答案解析
- 2025年事业单位工勤技能-安徽-安徽客房服务员三级(高级工)历年参考题库含答案解析
- GA/T 1280-2024银行自助设备安全性规范
- 辽宁中考英语2022-2024真题汇编-教师版-专题05 阅读还原之五选四等
- 钢构彩瓦施工合同范本
- 广东省深圳市2024-2025学年高一上学期期中考试数学试卷(含答案)
- 第6讲立体几何(2022-2023年高考真题)(原卷版)
- 安宁疗护舒适照护
- 幕墙作业安全技术交底
- 中医耳针技术
- 混凝土板底疏松修补方案
- 小型文化传媒公司财务管理制度
- 山东省第二届化学分析检验人员行业职业技能竞赛理论试题库资料(含答案)
评论
0/150
提交评论