完成一个流水灯项目.ppt

上传人:tian****1990 文档编号:14422980 上传时间:2020-07-20 格式:PPT 页数:32 大小:349.50KB
收藏 版权申诉 举报 下载
完成一个流水灯项目.ppt_第1页
第1页 / 共32页
完成一个流水灯项目.ppt_第2页
第2页 / 共32页
完成一个流水灯项目.ppt_第3页
第3页 / 共32页
资源描述:

《完成一个流水灯项目.ppt》由会员分享,可在线阅读,更多相关《完成一个流水灯项目.ppt(32页珍藏版)》请在装配图网上搜索。

1、第6讲,完成一个流水灯项目,亚博科技 51单片机开发板28课配套视频教程,流水灯设计, 本讲任务: 分别用位输出操作、移位操作、循环移位操作完成3个典 型流水灯的设计。 掌握下列C语言知识点: 宏定义、函数和函数调用、循环结构、while语句、关系 运算和逻辑值 掌握流程图绘制。 完成闪烁灯的设计。 如 何 完 成 函 数 调 用。,亚博科技 51单片机开发板28课配套视频教程,完成一个典型流水灯的设计,程序就是人的思想的反映,编程最重要的就是你的编程思路,有什么样的思路就会编出什么样的程序。 先看上一讲的点一个发光管程序: 1、思路分析。流程图是整理我们思路的好工具,同时也能保证若干年以后你

2、还能轻易看懂自己编写的程序。 2、程序讲解(这个程序是利用了位输出操作) 。 宏定义 函数和函数调用 如何熄灭发光管 循环结构,while语句详解、关系运算和逻辑值 如何改变流水灯流动的速度,亚博科技 51单片机开发板28课配套视频教程,亚博科技 51单片机开发板28课配套视频教程,本讲需要学习的新知识 数电、模电方面同上一讲一样,有不熟悉的同学也可回看上一讲的内容,本讲在C语言方面增加了一个新的函数。 延时函数delay for循环语句,了解一下延时函数 学过汇编你就会知道,每条指令都占一定的时间(或者机 器周期)的,如果你让机器什么都不做,即空指令的话, 机器就会延时,然后你在计算好每次延

3、时到底有多长,外 面套一个循环(或者多重循环),根据你想要的延时时间 即可计算出来循环的次数 ,延时函数基本上都是这种原 理,它的参数就是用来控制循环次数的。,亚博科技 51单片机开发板28课配套视频教程,怎样编写精确的延时函数,实现延时通常有两种方法:一种是硬件延时,要用到定时器/计数器,这种方法可以提高CPU的工作效率,也能做到精确延时;另一种是软件延时,这种方法主要采用循环体进行。 1 使用定时器/计数器实现精确延时 2 软件延时与时间计算 在很多情况下,定时器/计数器经常被用作其他用途,这时候就只能用软件方法延时。下面介绍几种软件延时的方法。 2.1 短暂延时 2.2 在C51中嵌套汇

4、编程序段实现延时 2.3 使用示波器确定延时时间 2.4 使用反汇编工具计算延时时间,亚博科技 51单片机开发板28课配套视频教程,认识一个For 循环语句, For (表达式1;表达式2;表达式3) 语句(内部可为空) 执行过程: 1.求解一次表达式1. 2.求解表达式2,若其值为真(非0 即为真),则执行 for中语句。然后执行第3步。否则结束for 语句,直接跳出,不再执行第3步。 3.求解表达式3. 4.跳到第2步重复执行。,亚博科技 51单片机开发板28课配套视频教程,一个简单的延时函数,只需要了解一下,不需要记住,学会调用它就可以了。 /*- 延时函数,含有输入参数 unsigne

5、d int t,无返回值 unsigned int 是定义无符号整形变量,其值的范围是 065535 -*/ void Delay(unsigned int t) while(-t); ,亚博科技 51单片机开发板28课配套视频教程,了解一下实验板初始化, 初始化就是把变量赋为默认值,把控件设为默认状态,把没准备的准备好。 但是如果是整个系统初始化那就不一样了。在汇编语言中,为变量分配空间时,初始化过的变量的初值位于可执行文件代码段数据后,会占用一定空间,不必要的初始化会造成磁盘空间的浪费。在C语言等高级语言中,为每一个变量赋初值被视为良好的编程习惯,有助于减少出现Bugs的可能性。因此,是否

6、对不必要的变量初始化依情况而定。,亚博科技 51单片机开发板28课配套视频教程,实验板初始化函数 只需要了解一下,不需要记住,学会调用它就可以了。 bst-v51.h bst-v51.c,亚博科技 51单片机开发板28课配套视频教程,宏定义,#号是预处理指令,用#开头。 #define ON (新的名称 ) 1(原来的名称) 作用:在程序书写时可用新的名称代替原来的名称书写,以达到简化或直观的效果。编译器在预处理的时候,自动将新的名称还原为原来的名称。 书写位置:源程序开头,函数的外面,亚博科技 51单片机开发板28课配套视频教程,3个流水灯程序框图,亚博科技 51单片机开发板28课配套视频教

7、程,开始详细讲解流水灯项目开发,设计目的 从实际工程应用出发,在理论和实践上掌握流水灯系统的基本组成,工作原理。对设计流水灯有一个完整的概念,使设计出来的流水灯达到本设计任务书的技术要求。,亚博科技 51单片机开发板28课配套视频教程,8位流水灯开发过程,亚博科技 51单片机开发板28课配套视频教程, 一、任务描述:这次开发的目的是什么 (如要实现什么功能,应用在什么地方,对性能、功耗、实时性等有什么要求) 任何一个应用单片机开发的产品,从客户提出要求到完成方案设计,再到产品样机的调试,直至正式投入试运行,这个过程称为单片机应用系统得开发。单片机应用系统开发过程所用的设备统称为开发工具。由于单

8、片机的软件资源有限,并且自身没有调试能力,因此必须配备相应的开发工具来排除开发过程中的软件错误,生成目标程序。 本任务通过左移亮灯电路来讲解单片机系统开发设计时电路原理图的设计方法和步骤。通过本任务的学习,掌握单片机应用电路和程序的开发过程。,二、任务分析, 根据这次开发的目的展开分析,要用到什么模块,而且每个模块可能会用许多选择,这就要根据价钱,性能,功耗,实时性等方面的要求来选择了 8只发光二极管亮灯数据左移一位。 首先对单片机工作条件(电源、时钟和复位电路)进行设计,然后根据设计任务要求对I/O接口电路进行设计;本任务学习用DZ-80C52集成的串口模块烧写器器进行单片机程序下载。,亚博

9、科技 51单片机开发板28课配套视频教程,三、任务演示, 分配任务,因为,有些开发项目可能不是一个人能够完成的,是要一个团队来做,那么就要根据每个人的特点来分配任务了。如,硬件,软件,算法,调度,测试,界面,采购等。,亚博科技 51单片机开发板28课配套视频教程,四、项目开发相关知识,(一)单片机产品开发流程 1、项目评估:出初步技术开发方案,据此出预算,包括可能的开发成本、样机成本、开发耗时、样机制造耗时、利润空间等 2、项目实施: (1)设计电原理图 (2)设计印刷电路板(PCB)图 (3)把PCB图发往制版厂做板 (4)定购开发系统和元件 (5)装配样机:PCB板拿到后开始样机装配,设计

10、中的错漏会在装配过程开始显现,尽量去补救。,亚博科技 51单片机开发板28课配套视频教程,样机调试,(6)样机调试:这个过程需要用到电烙铁、刻刀、不同参数的元件、各种调试和仿真软件、样机的模拟工作环境等。 (7)整理数据:研发过程中得到的重要数据记录保存下来,比如更新电原理图里的元件参数、PCB元件库里的三维模型,还要记录暴露出来的设计上的失误、分析失误的原因、采用的补救方案等等。,亚博科技 51单片机开发板28课配套视频教程,完善样版机,(8)如果项目进入生产阶段或确有需要,可以根据修正后的技术方案按以上各个步骤重做一台完善的V1.1版样机。 (9)编写设备文档:包括编写产品说明书、拍摄外观

11、图片等。 (10)沟通和修改,在开发过程中 ,不能完全的根据任务来区分,团队之间要有适当的沟通,根据需要来对计划做相应的修改,如:中断的分配,GPIO的分配,算法的复杂性,接口的定义之类的。,亚博科技 51单片机开发板28课配套视频教程,测试和更改,11)测试和更改,最终,各个模块是要组合起来的,这时可能会碰到许多问题。如,代码太大而内存不够,时效响应不够灵敏,代码执行构成中出现死循环,模块优先级的选择出现不妥,临界点没有纠错功能等,这就要不断的整合,反复的更改,调试,可能会出现许多方案,再根据实际情况 最后定夺 小提示:开发过程中做好备案,代码写好注释,如果允许,不同模块、不同系统层次的接口

12、分别来写,合理分配资源。,亚博科技 51单片机开发板28课配套视频教程,一个完整实验源码,/*- 名称:IO口高低电平控制 内容:左移,直至LED全部点亮,左移符号 /包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义 void Delay(unsigned int t); / 函数声明 /*- 主函数 - */ void main (void) unsigned char i; / 定义一个无符号字符型局部变量 i 取值范围 0255 Delay(50000); P1=0 xfe; / 赋初始值 for(i=0;i8;i+) / 加入 for循环,表明for循环大括号中的程序循环

13、执行8次 Delay(50000); P1=1; while (1) / 主循环 / 主循环中添加其他需要一直工作的程序 /*- 延时函数,含有输入参数 unsigned int t,无返回值 unsigned int 是定义无符号整形变量,其值的范围是 065535 - */ void Delay(unsigned int t) while(-t); ,亚博科技 51单片机开发板28课配套视频教程,函数的引入,函数是C语言的主要特点,也是我们学习的一个重点。 主函数:主人,只有一个。 从家里的电脑坏了说起。 在实际编程中,我们会遇到两种情况: 1、需要使用别人的程序,现在是网络共享时代,要学

14、会在网络中找到你需要的东西,例如 DS1302时钟的功能函数,DS18B20功能函数 2、某一段程序会反复用到,这时,我们需要用到函数和函数调用其他功能函数:工人(下属,可以被调用完成某项工作的人),以有多个,可实现某种功能的一段相对独立的,可以被调用的代码 。 相互间的调用关系 注意:我们一般所说函数,指的都是功能函数,亚博科技 51单片机开发板28课配套视频教程,实现函数调用的前提:调用者必须能看到被调用者,调用者必须能看到被调用者程序如何才能找到要 调用的函数呢?有三种方法: 第一种、将被调用函数写在当前代码之前。 第二种、将被调用函数的函数声明写在当前代码 之前。 第三种:使用头文件

15、。,亚博科技 51单片机开发板28课配套视频教程,如何完成函数的调用,函数调用: 就是在一个函数体中引用另外一个已经定义的函数 完成函数的调用三种方式: 1、函数语句。函数名(实际参数表);有参调用和无参调用 2、函数表达式。(以后讲) 3、函数参数。(以后讲) 函数的调用注意掌握4个要点:被调函数名称、功能、参数、返回值。 函数内部语句不必了解!,亚博科技 51单片机开发板28课配套视频教程,While循环语句, While (关系表达式或逻辑值); While (关系表达式或逻辑值)一条语句; While (关系表达式或逻辑值) 注意:这里没有分号 语句1; 语句2; 语句3; 语句n;

16、特点:先判断条件表达式,后执行语句。 原则:若条件表达式的值为真,那么执行语句。否则跳出 while 语句。,亚博科技 51单片机开发板28课配套视频教程,关系运算和逻辑值,关系运算12=0 逻辑值:真(1或非0),假(0) 计算机中三种运算千万不要搞混了: 1、算术运算:参与运算的对象是数,结果也是数,运算符是加减乘 除; 2、逻辑运算:参与运算的对象是逻辑量,结果也是逻辑量,运算符 是与或非; 3、关系运算:参与运算的对象是数,结果是逻辑量,运算符如下: = = =等于(注意:与赋值符=,完全不同!) != 不等于,亚博科技 51单片机开发板28课配套视频教程,关系运算和逻辑值,关系运算1

17、2=0 逻辑值:真(1或非0),假(0) 计算机中三种运算千万不要搞混了: 1、算术运算:参与运算的对象是数,结果也是数,运算符是加减乘 除; 2、逻辑运算:参与运算的对象是逻辑量,结果也是逻辑量,运算符 是与或非; 3、关系运算:参与运算的对象是数,结果是逻辑量,运算符如下: = = =等于(注意:与赋值符=,完全不同!) != 不等于,亚博科技 51单片机开发板28课配套视频教程,如何改变流水灯流动的速度, 1、改变调用延时函数的实参。 2、更换不同频率的晶振。(复习以前讲过的时钟的快慢决定了程序运行速度),亚博科技 51单片机开发板28课配套视频教程,左移和右移,位运算:按位对变量进行运

18、算。 左移和右移属于位运算。 格式:P12;/*右移二位*/ 一般我们比较多的是对8位无符号数进行移位操作,移出的数丢弃,空位自动补0。 注意点:位运算不改变参与运算的变量的值,如果希望改变参与运算的变量的值,应利用相应的赋值操作! 用循环左移编写第二个流水灯程序。例程,亚博科技 51单片机开发板28课配套视频教程,循环左移和循环右移,C51没有专门的循环左移和循环右移指令,但我们可以调用C51库函数实现循环左移和循环右移(具体可以见C:keilC51HLPC51lib.chm): 1、必须先包含intrins.h 2、i=_crol_(i,1);/*将i循环左移1位*/ 3、i=_cror_(i,1);/*将i循环右移1位*/ 用循环左移编写第三个流水灯程序。例程,亚博科技 51单片机开发板28课配套视频教程,循环左移和循环右移,C51没有专门的循环左移和循环右移指令,但我们可以调用C51库函数实现循环左移和循环右移(具体可以见C:keilC51HLPC51lib.chm): 1、必须先包含intrins.h 2、i=_crol_(i,1);/*将i循环左移1位*/ 3、i=_cror_(i,1);/*将i循环右移1位*/ 用循环左移编写第三个流水灯程序。例程,亚博科技 51单片机开发板28课配套视频教程,流水灯电路原理图,亚博科技 51单片机开发板28课配套视频教程,

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!