打印
[应用方案]

单片机的模块化编程简析

[复制链接]
652|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhamatu|  楼主 | 2020-8-25 10:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
zhamatu|  楼主 | 2020-8-25 10:03 | 只看该作者
二、单片机C语言程序模块化步骤
1、在同一文件夹下新建一个Main.C文件(或主文件或运行文件)和xxx.C文件(或功能文件)和xxx.h文件(头文件),其中xxx.C文件(或功能文件)和xxx.h文件(头文件)的文件名“xxx”要有意义,最好可以体现该文件的功能。
2、编写xxx.C文件(或功能文件)内容
(1)、包含xxx.h文件(或头文件)
include"led.h"  
(2)、声明变量或定义变量 //视具体情况,这步骤可省略。
uchar temp;//调用xxx.h文件(或头文件)中声明的变量temp
(3)、编写功能函数
   void Delay(uint time)
{   
     uchar i,j,k;   
     for(i=0;i<time;i++)
{
     for(j=0;j<110;j++);
    }
}
   void LedDisplay()
{
     led=0x7f;
    for(k=0;k<8;k++)
{
     led=_cror_(led,1);
     Delay(500);
    }
}

使用特权

评论回复
板凳
zhamatu|  楼主 | 2020-8-25 10:04 | 只看该作者
3、编写xxx.h文件(或头文件)内容
(1)、#ifndef  xxx //表示if not define xxx.h  
#ifndef __LED_H__  
(2)、#define  xxx   //表示如果没有定义 xxx.h ,这里就定义一个 xxx.h。
#define __LED_H__
(3)、单片机头文件或宏定义或声明变量或定义变量或声明功能函数   
#include "reg52.h" //由于xxx.C文件(或功能文件)的内容里面要用到51单片机寄存器P1
#include "intrins.h" //循环移位用到
#define uchar unsigned char//这些宏定义都可以在xxx.h 文件(或头文件)里定义
#define uint unsigned int //这些宏定义都可以在xxx.h 文件(或头文件)里定义
#define led P1
extern uchar temp;//在xxx.h文件(或头文件)声明变量temp供其他xxx.C文件(或功能文件)调用,extern只声明变量,不定义变量,注意区分。
void Delay(uint time);//将xxx.C文件(或功能文件)里编写的功能函数在xxx.h文件(或头文件)里面声明
void LedDisplay(); // 将xxx.C文件(或功能文件)里编写的功能函数在xxx.h文件(或头文件)里面声明
(4)、#endif // 定义结束
说明:xxx.h文件(或头文件)内容中的xxx不能相同,且按格式“__大写英文名称_H__”定义。

使用特权

评论回复
地板
zhamatu|  楼主 | 2020-8-25 10:05 | 只看该作者
4、编写Main.C文件(或主文件或运行文件)内容
(1)、包含单片机头文件
#include "reg52.h"
(2)、包含xxx.h文件(或头文件)
include"led.h"   
(3)、主函数
   void main()
{
     while(1)
  {
        LedDisplay();
      }
   }



使用特权

评论回复
5
别看我照片| | 2020-9-6 08:00 | 只看该作者
一直使用模块化进行编程,感觉模块化对我们的帮助特别大。

使用特权

评论回复
6
答案很长吧| | 2020-9-18 11:55 | 只看该作者
分类很多的,品种很多的,棒棒的。

使用特权

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

本版积分规则

63

主题

504

帖子

1

粉丝