文档详情

完成一个流水灯项目.ppt

发布:2025-04-02约5.07千字共10页下载文档
文本预览下载声明

第6讲完成一个流水灯项目亚博科技51单片机开发板28课配套视频教程?本讲任务:?分别用位输出操作、移位操作、循环移位操作完成3个典型流水灯的设计。?掌握下列C语言知识点:?宏定义、函数和函数调用、循环结构、while语句、关系运算和逻辑值?掌握流程图绘制。?完成闪烁灯的设计。?如何完成函数调用。01亚博科技51单片机开发板28课配套视频教程02流水灯设计完成一个典型流水灯的设计程序就是人的思想的反映,编程最重要的就是你的编程思路,有什么样的思路就会编出什么样的程序。先看上一讲的点一个发光管程序:1、思路分析。流程图是整理我们思路的好工具,同时也能保证若干年以后你还能轻易看懂自己编写的程序。2、程序讲解(这个程序是利用了位输出操作)。宏定义函数和函数调用如何熄灭发光管循环结构,while语句详解、关系运算和逻辑值如何改变流水灯流动的速度亚博科技51单片机开发板28课配套视频教程亚博科技51单片机开发板28课配套视频教程01本讲需要学习的新知识?数电、模电方面同上一讲一样,有不熟悉的同学也可回看上一讲的内容,本讲在C语言方面增加了一个新的函数。?延时函数delay?for循环语句02亚博科技51单片机开发板28课配套视频教程了解一下延时函数01?学过汇编你就会知道,每条指令都占一定的时间(或者机02器周期)的,如果你让机器什么都不做,即空指令的话,03机器就会延时,然后你在计算好每次延时到底有多长,外04面套一个循环(或者多重循环),根据你想要的延时时间05即可计算出来循环的次数,延时函数基本上都是这种原06理,它的参数就是用来控制循环次数的。07怎样编写精确的延时函数实现延时通常有两种方法:一种是硬件延时,要用到定时器/计数器,这种方法可以提高CPU的工作效率,也能做到精确延时;另一种是软件延时,这种方法主要采用循环体进行。?1使用定时器/计数器实现精确延时?2软件延时与时间计算?在很多情况下,定时器/计数器经常被用作其他用途,这时候就只能用软件方法延时。下面介绍几种软件延时的方法。?2.1短暂延时?2.2在C51中嵌套汇编程序段实现延时?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课配套视频教程一个简单的延时函数只需要了解一下,不需要记住,学会调用它就可以了。?/*------------------------------------------------?延时函数,含有输入参数unsignedintt,无返回值?unsignedint是定义无符号整形变量,其值的范围是?0~65535?------------------------------------------------*/?voidDelay(unsignedintt)?{?while(--t);?}亚博科技51单片机开发板28课配套视频教程?初始化就是把变量赋为默认值,把控件设为默认状态,把没准备的准备好。但是如果是整个系统初始化那就不一样了。在汇编语言中,为变量分配空间时,初始化过的变量的初值位于可执行文件代码段数据后,会占用一定空间,不必要的初始化会造成磁盘空间的浪费。在C语言等高级语言中,为每一个变量赋初值被视为良好的编程习惯,有助于减少出现Bugs的可能性。因此,是否对不必要的变量初始化依情况而定。亚博科技51单片机开发板28课配套视频教程0102了解一下实验板初始化实验板初始化函数?只需要了解一下,不需要记住,学会调用它就可以了。?bst-v51.h?bst-v51.c亚博科技51单片机开发板28课配套视频教程0104

显示全部
相似文档