打印
[51单片机]

【经典51懒人5步速成法-03】程序开发流程与设计要点

[复制链接]
3634|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ohy3686|  楼主 | 2018-2-23 20:13 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 ohy3686 于 2018-2-24 16:58 编辑

【经典51懒人5步速成法-03】程序开发流程与设计要点

广东职业技术学院  欧浩源

    单片机的程序开发在电脑上完成,程序的运行则在芯片中进行。开发和运行分别是在不同的平台上进行的,所以,程序开发之后需要下载到芯片之中。常规的嵌入式或者其他单片机的开发都需要有调试过程,最好有仿真器能够进行在线跟踪。然而,51单片机的开发大多数情况下都是ISP下载,也就是说你只能下载程序运行观察结果,不能够进行仿真调试。虽然这个对于开发来说不太有利,也是不规范的,但是51单片机的资源不多,完成可以胜任。
    在程序设计过程中,需要注意2点:
    <1> 要引入相关芯片的头文件。
    <2> 中断服务函数的特殊写法。

1、51单片机的继承开发环境
    基本上都是用keil集成开发环境。
   

2、开发流程。
    <1> 建立新工程或者打开已有工程:Project菜单项。
   
    <2> 如果是新建工程,单击“New uVision Project”菜单项,输入工程名字。
   
    <3> 为新工程选择芯片类型。
   
    <4> 给新建的工程中添加代码文件,如果没有代码文件可以新建一个空文件。
   
    <5> 配置工程的选项参数,主要的设置输出HEX文件。
   
    <6> 编写代码,根据不同的芯片引入对于的头文件。
   
    <7> 编译代码,有时候允许有警告存在。
   
    <8> 打开ISP下载软件,导入HEX代码文件。
   
    <9> 将程序代码烧写到芯片中,在断电状态下单击“下载”按钮,然后上电,程序就自动下载到芯片了。
   


3、程序设计要点
    <1> 引入头文件
    在单片机的程序设计中,很多时候需要操作特殊功能寄存器,而这些寄存器实际上就是芯片中的一个内存地址。我们要记住这些地址很难,而且代码编写也比较复杂。为了方便**和使用,我们给每一个特殊功能寄存器都起了一个名字。如果在程序设计中你想直接使用这些名字,那么你就需要引入对应当芯片头文件,例如51单片机,你需要引入“reg52.h”文件。
   
    特殊功能寄存器P0的地址为80H,引入这个头文件之后,你就可以使用P0这个名字了
    P0 = 0x02;
    <2> 中断服务函数的格式
    在51单片机中有5个中断源,每个中断源都有固定的入口地址(也就是中断向量)和中断号。我们在程序设计的过程中,不需要记住中断向量地址,但需要知道每个中断源对应的中断号(参考【经典51懒人5步速成法-01】)
    一般情况下,中断的处理函数有两个,其一为中断初始化函数,其二为中断服务函数。初始化函数就是一个普通的函数,而中断服务函数却有特殊的格式要求:
    A. 中断函数没有返回值,也不能带参数。
    B. 函数名后面要跟一个关键字interrupt,说明这是一个中断服务函数。
    C. 在关键字interrupt后面要跟上中断号,说明这个中断服务函数是为那个中断服务的。   

    中断服务函数的格式为:
    void 函数名() interrupt  中断号
    {  ----函数体----  }
    例如,定时器0的中断服务函数,我们C语言可以这样写:
   

4、小结
    对于单片机或嵌入式的程序设计,有很多代码是可以重用的,甚至可以直接复制。如果你能够在平时的学习和开发中不断归纳积累,整理出一个属于自己的程序库,那对于日后的项目开发简直是事倍功半。我们在下一节中就51单片机的三大外设的可重用代码进行一个小小的总结。

相关帖子

沙发
dirtwillfly| | 2018-2-23 20:50 | 只看该作者
不错,适合新手。可惜在这个板块没权限加精化

使用特权

评论回复
板凳
ohy3686|  楼主 | 2018-2-23 21:46 | 只看该作者
dirtwillfly 发表于 2018-2-23 20:50
不错,适合新手。可惜在这个板块没权限加精化

写完这个,回头望把CC2530的部分再整理一版
以前的内容有点乱,好好整整,应该也可以是一个不错的教程。

使用特权

评论回复
地板
一路向北lm| | 2018-2-24 07:36 | 只看该作者
不错,新手教程

使用特权

评论回复
5
青泉| | 2018-3-28 00:08 | 只看该作者

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:广东职业技术学院 欧浩源(ohy3686@foxmail.com)    [Zigbee技术&物联网应用] 群:168225322    [技术交流微信]:gzyohy (暗号:宝塔镇河妖)

322

主题

899

帖子

2745

粉丝