zoukankan      html  css  js  c++  java
  • 经典51懒人5步速成法

    应用程序设计入门再高级的单片机也是解决问题的一个工具,如何灵活运用已掌握的外设模块来满足功能需求以解决实际问题,是我们学习单片机开发的目标。你的程序写得很快,每个外设用得很溜,并不能代表你解决问题的能力就很好。这需要通过实际开发的磨练与经验的积累。

    实际上每个工程师在不断的开发过程中,多多少少都会形成自己的思维模式和开发习惯。因此,在这一节我们所阐述的也只是本人的思维模式与设计习惯,可以抛砖引玉,作为参考。

    1、题目需求

    2、基本思路

    我的设计模式是自上而下,从整体到局部。所以,在编写代码之前,我的脑子里面基本上已经有了比较完整的轮廓,包括应该定义那些变量,应该安排那些函数,程序框架大致如何。

    从本题的需求分析中,我们可以获得以下的信息:

    秒闪功能,需要使用定时器0,得安排一个初始化函数Init_Timer0()和一个中断服务函数SeviceTimer0()。

    定时器0使用16位模式,在12MHz晶振情况下,最大的定时值也只有65.535ms,因此要定时500ms不能够直接实现,那么就需要多次定时进行累加。把定时器0的间隔定时确定为50ms比较方便,累计10次就是500ms了,那么就需要一个定时累计变量t_count。

    按键功能,首先要定义一个按键扫描函数ScanKeys(),在扫描过程中需要做去抖动处理,那么就要安排一个简易的延时函数Delay()。

    再检查思考一下,还有什么吗?没有了。

    3、程序框架

    严格来说,在开始编写代码之前,应该将程序的流程图和数据定义表做出来。

    不过,对于简单的功能,可以通过编写代码搭建整体框架的方式来体现。这就跟建设框架结构的房子一样,先把毛坯建好,再去做个单元进行装修。我比较喜欢这做。

    本题在基本思路分析指导下,可以搭建出程序框架结构。

    4、逐个填充

    定时器初始化函数:这个代码是可以重用的,直接拷贝过来就行了。

    定时器中断服务函数。

    按键扫描函数。

    就这样,一个简单的51单片机应用程序开发就完成了。

    5、小结

    作为入门学习,本系列教材到这里就结束了。实际上51单片机的内容也差不多就这么多了。至于那些上千页的书在讲述51单片机开发的,里面很多内容都是各种功能外设,与51内核无关,只是用51单片机操作那些外设而已。对于这部分的内容,你学习的不是51单片机了,而是那么功能外设。在实际的应用中,更多的是要应用各种外设来解决各种问题。所以,一个单片机的高手并不是把51单片机本身玩得有多溜,而是他心中掌握了多少功能模块的应用,设计了多少应用的代码,积累了多少项目的经验。

    入门教程结束了,而你们的征途才刚刚开始,加油!!!

  • 相关阅读:
    Ubuntu 14.04 FTP服务器--vsftpd的安装和配置
    Python IDE专用编辑器PyCharm下载及配置安装过程(Ubuntu环境)
    Ubuntu Server14.04 32位安装odoo8.0简单方法
    js打印出对象的方法
    odoo中pos模块由于删除partner导致发生(你试图访问的单据已经删除)错误的解决方法
    django的安装和搭建
    mongodb入门
    js数组的操作
    mongodb的优缺点
    Spring动态切换多数据源解决方案
  • 原文地址:https://www.cnblogs.com/zhugeanran/p/8533641.html
Copyright © 2011-2022 走看看