欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    特别讲解模块化编程.pdf

    • 资源ID:70015082       资源大小:112.28KB        全文页数:4页
    • 资源格式: PDF        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    特别讲解模块化编程.pdf

    51 单片机lzh 电子论坛模块化编程模块化编程这一讲是由 Admin 编写!有什么问题的可以在 lzhlzh 电子论坛电子论坛的51 版块发帖提问!在刚接触单片机,刚编写代码的时候都只是有一个.h 和一个.c文件。把所有的函数都写在.c 里面。这样遇到复杂的系统时,代码量就很大,一下子就是几百行。而且把所有函数写在一个.c 里不利于移植,对于以后的开发有了很大的限制。为了解决这个缺点就必须学会模块化编程。将程序分解成一个一个模块。这样就有了多个.c和多个.h。下面开始讲解什么是模块化编程,怎么去模块化。我们以菜鸟学习 51 单片机之永远的流水灯里的程序为例子讲解。在不模块化情况下:51 单片机lzh 电子论坛上面这个程序是全部写在了 main.c 一个 C 文件里。完成了一个流水灯功能,程序非常简单,那么下面我们将程序模块化。模块化我们就建立一个 main.cled.cled.h这三个文件,那么这三个文件里分别写什么东西呢,下面一个一个的写。用来完成流水灯功能的模块程序已经写好了,现在就开始主函数的编写。主函数就只需要调用一个 Display_Led()函数就行了,看现在是怎么写的。#include#include intrins.h#define uchar unsigned char#define uint unsigned intvoid Delay_Ms(uint xms)uint i,j;for(i=0;ixms;i+)for(j=0;j110;j+);void Display_Led()uchar aa,j;aa=0 x7f;for(j=0;j8;j+)P1=aa;aa=_cror_(aa,1);Delay_Ms(500);void main()while(1)Display_Led();51 单片机lzh 电子论坛led.h 里内容如下#ifndef _LED_H_/理解为 if not define led.h#define _LED_H_/如果没有定义 led.h,这里就定义一个 led.h#include reg52.h/由于 led,c 里面要用到 51 单片机寄存器 P1,/所以这里包含 51 单片机的头文件#include intrins.h/循环移位用到#define uchar unsigned char#define uint unsigned int/这些宏定义都可以在头文件.h里定义void Delay_Ms(uint xms);void Display_Led();/将led.c里的函数在led.h里面申明#endif/定义结束led.c 里内容如下,将流水灯的主要程序放在这个.c 里面。作为单独的流水灯模块,在以后的程序中如果要用到这个流水灯程序就直接把 led.c 和 led.h 移植过去。#include“led.h”/这里包含 led.h 这个头文件void Delay_Ms(uint xms)uint i,j;for(i=0;ixms;i+)for(j=0;j110;j+);void Display_Led()uchar aa,j;aa=0 x7f;for(j=0;j8;j+)P1=aa;aa=_cror_(aa,1);Delay_Ms(500);51 单片机lzh 电子论坛模块化编程的时候要想到你把一个.c 和.h 文件给另一个人,那个人能够很轻松的运用你给的这个模块来实现效果那就算成功了。而不需要去改动很多东西。上面的例子只不过是很简单的一个小例子。对于模块化编程更深的理解要自己去编写程序。现在大家可以把以前的程序模块化试试,看有没有问题。下面给出几个模块化编程的注意点:先分模块一个个编程调试,确保无误后在一个个联合起来调试,千万不要写了一堆后再去调试,会很麻烦。一个点 c 文件对应的一个点 h 文件#ifndef _LED_H#define _LED_H/*内容*/endif全局变量前面加 extern如extern char Num;数组申明不能带数组的大小如:extern char Num;正确extern char Num8;错误二维数组extern char Num8;正确extern char Num68;错误extern char Num;错误#include“led.h”/在 main.c 里现在包含的也是 led.h 而不是 reg52.h 了void main()while(1)Display_Led();/这样直接调用就行。

    注意事项

    本文(特别讲解模块化编程.pdf)为本站会员(qwe****56)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

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

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开