久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
樓主: 無量壽經
打印 上一主題 下一主題
收起左側

好書推薦《51單片機輕松入門—基于STC15W4K系列》

  [復制鏈接]
41#
ID:60379 發表于 2016-2-15 21:46 | 只看該作者
 
《51單片機輕松入門—基于STC15W4K系列》內容節選
2.5 模塊化編程
2.5.1  頭文件的編寫
   執行菜單File→New新建一個空白文件,然后保存,保存路徑選擇當前工程所在文件夾,為方便閱讀程序,文件名盡量與對應的*.c文件名相同,后綴名為*.h,模塊化編程通常是一個*.c文件對應一個*.h文件,頭文件編寫中首先要使用條件編譯命令防止頭文件重包含錯誤,例如:
#ifndef __STDIO_H__   //__ 是2個下劃線
#define __STDIO_H__   
……頭文件代碼塊
#endif
   一般格式是這樣的:
    #ifndef <標識>
    #define <標識>
……頭文件代碼塊
    #endif
    <標識>在理論上來說可以是自由命名的,為便于理解程序,實際使用一般是用頭文件名并且全部大寫,前后各加2個下劃線,并把文件名中的“.”變成一個下劃線。
2.5.2  條件編譯
一般情況下,源程序中所有的行都參加編譯,但是有時希望對其中一部分內容只在滿足一定條件才進行編譯,也就是對一部分內容指定編譯的條件,這就是“條件編譯”,條件編譯功能也可用條件語句來實現,但條件編譯可以節省程序存儲器空間,需要注意的是條件編譯命令行結尾沒有分號。
第1種條件編譯格式
    #ifdef 標識符
        語句段1;
#else
        語句段2
#endif
功能說明:如果標識符已被#define命令定義過,則編譯語句段1; 否則編譯語句段2。
示例: #define MASTER 1
           ┅┅
          #ifdef MASTER
               SPCTL=0xf0;
          #else
               SPCTL=0xe0;
          #endif
第2種條件編譯格式
     #ifndef  標識符
          語句段1;
#else
          語句段2
#endif
功能說明:如果標識符未被#define命令定義過,則編譯語句段1; 否則編譯語句段2。
第3種條件編譯格式
#if  常數表達式
語句段1;
#else
語句段2;
#endif
功能說明:若#if指令后的常數表達式為真(隨便什么數字,只要不是0),則編譯語句段1,否則編譯語句段2。
例如:
#define MAX 200
#if MAX>999
printf("compiled for bigger\n");
#else
printf("compiled for small\n");
#endif
2.5.3  多文件程序(模塊化編程)
我們第一章介紹的所有程序都很簡單,只需要編寫一個*.c文件,main()函數和普通函數都放在同一個*.c文件中,就是單文件程序,當程序量比較大時,我們應該對代碼進行分類,不同類型的代碼放到不同的*.c文件中,這就是多文件程序,也就是模塊化編程的方式,采用模塊化編程可以使整個工程脈絡清晰,代碼規劃合理,有利于代碼積累,重復利用,快速建立大型工程,在這里,我們把一個*.c或*.h文件就稱為一個模塊,模塊化編程主要注意以下幾點:
① 變量定義與初始化,函數體都放在 *.c文件中,類型定義、宏、端口定義、SFR聲明、函數聲明等都放在*.h文件中,若某個函數聲明不放在.H文件中,則其它程序無法調用這個函數。
② 一個*.c文件配套一個*.h文件,由于*.c文件中用到的宏定義等可能都是在*.h文件中,所以*.c文件中要使用 #include "*.h"將自己對應的頭文件包含進來,假設a.c文件需要調b.c文件中的函數,a.c除了包含自己對應的頭文件外還需要包含b.c對應的頭文件。
③ *.h中的所有內容都可以放在*.c中,但*.c中的變量定義初始化等不能放在*.h中。
④ 整個工程只能有一個main()函數。
多文件程序能夠實現的根本原理是C51將所有函數都認為是全局性的,而且是外部的, 可以被另一個文件中的任何一個函數調用,但是另一個文件調用該函數之前,則應在文件的開頭(即所有函數外的最上端)聲明被調函數,又因為聲明的被調函數可能會很多,所以有了包含頭文件的需要。
接下來看一個流水燈程序采用模塊化編程例子。
例2.35  完整的多文件程序
//*************** A模塊包含下面2個文件 **********************
// 文件a.h  聲明定義
#include "STC15W4K.H"
#define PORT P0
#define DelayTime 50000
void fun1(void);
void fun2(void);
// 文件a.c        // 具體實現
#include "b.h"     // 因為要用到"b.c"中delay(),所以必須有此命令
#include "a.h"     // 因為要用到"a.h"中的符號PORT和DelayTime,所以必須有此命令
void fun1(void)   // 流水燈(從左到右)
{
    unsigned char i=0,temp=0x80;
    for(i=0;i<8;i++)
    {
        PORT=~temp;
        temp>>=1;
        delay(DelayTime);
    }
}
void fun2(void)   // 流水燈(從右到左)
{
    unsigned chari=0,temp=0x01;
    for(i=0;i<8;i++)
    {
        PORT=~temp;
        temp<<=1;
        delay(DelayTime);
    }
}
//*************** B模塊包含下面2個文件 **********************
// 文件b.h   // 聲明定義
void delay(unsigned int time);
// 文件b.c   //具體實現
void delay(unsigned int time)
{
    while(time--);
}
//*************** 主文件main.c **********************
#include "a.h"    // 因為要用到"a.c"中fun1()、fun2(),所以必須有此命令
#include "b.h"    // 因為要用到"b.c"中delay(),所以必須有此命令
void main()
{
    while(1)
    {
        fun1();
        delay(10000);
        fun2();
        delay(10000);
    }
}

回復

使用道具 舉報

42#
ID:113610 發表于 2016-4-11 22:57 | 只看該作者
學習一下
回復

使用道具 舉報

43#
ID:57211 發表于 2016-4-12 11:30 | 只看該作者
比較系統,學習的好教材
回復

使用道具 舉報

44#
ID:114233 發表于 2016-4-14 17:19 | 只看該作者
好想要黑幣。。。
回復

使用道具 舉報

45#
ID:115104 發表于 2016-4-19 00:04 | 只看該作者
好東西啊
回復

使用道具 舉報

46#
ID:115164 發表于 2016-4-19 11:47 | 只看該作者
只是50頁的廣告而已,大家不要下了
回復

使用道具 舉報

47#
ID:60379 發表于 2016-4-21 19:47 | 只看該作者

回復

使用道具 舉報

48#
ID:116762 發表于 2016-4-26 11:19 | 只看該作者
mark!!!!!!!!!!!!!
回復

使用道具 舉報

49#
ID:117752 發表于 2016-5-1 00:30 | 只看該作者
不錯,下來看看……
回復

使用道具 舉報

50#
ID:73957 發表于 2016-5-1 12:27 | 只看該作者
感謝你的好東西
回復

使用道具 舉報

51#
ID:108066 發表于 2016-5-5 17:21 | 只看該作者
很不錯 內容很詳實
回復

使用道具 舉報

52#
ID:37356 發表于 2016-5-5 23:02 | 只看該作者
多謝樓主分享。!
回復

使用道具 舉報

53#
ID:80736 發表于 2016-5-7 11:25 | 只看該作者
好像不是完整版
回復

使用道具 舉報

54#
ID:119402 發表于 2016-5-8 23:50 | 只看該作者
哪里有完整的pdf呢
回復

使用道具 舉報

55#
ID:111874 發表于 2016-5-8 23:55 | 只看該作者
讓我瞅瞅
回復

使用道具 舉報

56#
ID:11064 發表于 2016-5-9 15:54 | 只看該作者
好書多謝了
回復

使用道具 舉報

57#
ID:119969 發表于 2016-5-11 09:43 | 只看該作者
謝謝
回復

使用道具 舉報

58#
ID:120162 發表于 2016-5-12 12:42 | 只看該作者
怎嗎玩
回復

使用道具 舉報

59#
ID:120549 發表于 2016-5-13 16:40 | 只看該作者
好書,頂起
回復

使用道具 舉報

60#
ID:121556 發表于 2016-5-17 21:43 | 只看該作者
haoshu
回復

使用道具 舉報

61#
ID:76927 發表于 2016-5-19 16:18 | 只看該作者
樓主真給力啊
回復

使用道具 舉報

62#
ID:122109 發表于 2016-5-20 09:04 | 只看該作者
幫助很大         
回復

使用道具 舉報

63#
ID:122177 發表于 2016-5-20 14:45 | 只看該作者
51單片機輕松入門—基于STC15W4K系列
回復

使用道具 舉報

64#
ID:82792 發表于 2016-5-20 16:28 | 只看該作者
STC15單片機STC15單片機STC15單片機
回復

使用道具 舉報

65#
ID:124449 發表于 2016-6-1 13:50 | 只看該作者
有配套的視頻下載嗎?
回復

使用道具 舉報

66#
ID:125296 發表于 2016-6-5 18:54 | 只看該作者
haoshu a
回復

使用道具 舉報

67#
ID:111520 發表于 2016-6-5 21:19 | 只看該作者
好東西,謝謝分享
回復

使用道具 舉報

68#
ID:126465 發表于 2016-6-13 09:47 | 只看該作者
找了好久了,這個論壇還不錯。
回復

使用道具 舉報

69#
ID:126488 發表于 2016-6-13 11:08 | 只看該作者
不錯哦
回復

使用道具 舉報

70#
ID:110032 發表于 2016-6-14 14:47 | 只看該作者
按時發生大發發
回復

使用道具 舉報

71#
ID:124395 發表于 2016-6-23 15:57 | 只看該作者
怎么還是目錄?
回復

使用道具 舉報

72#
ID:60379 發表于 2016-6-26 16:08 | 只看該作者
視頻已更新到30講
回復

使用道具 舉報

73#
ID:116662 發表于 2016-6-26 18:01 | 只看該作者
好全的資料,學習一下,謝謝分享
回復

使用道具 舉報

74#
ID:107352 發表于 2016-6-26 19:20 | 只看該作者
學習一下
回復

使用道具 舉報

75#
ID:128386 發表于 2016-6-28 11:14 | 只看該作者
這個資源是全本書嗎,聽名字不錯
回復

使用道具 舉報

76#
ID:127881 發表于 2016-6-28 20:42 | 只看該作者
mark一下
回復

使用道具 舉報

77#
ID:129066 發表于 2016-7-3 17:08 | 只看該作者
好東西,謝謝分享
回復

使用道具 舉報

78#
ID:22936 發表于 2016-7-17 16:39 | 只看該作者
請問樓主,您的開發板為什么用兩顆芯片,有什么特殊的嗎?
回復

使用道具 舉報

79#
ID:123875 發表于 2016-7-17 23:51 來自手機 | 只看該作者
二號機
回復

使用道具 舉報

80#
ID:129314 發表于 2016-7-18 20:06 | 只看該作者
有關于溫濕度控制器的教程嗎
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 涩爱av一区二区三区 | 九九综合九九 | 欧美国产日韩在线观看成人 | 欧美91| 久久久久黄 | 一区二区三区四区在线 | 精品久久久久久久久久 | 亚洲精品在线视频 | 久久久久久亚洲 | 国产真实精品久久二三区 | 九九久久免费视频 | 欧美亚洲视频在线观看 | 国产目拍亚洲精品99久久精品 | 亚洲国产精品一区二区三区 | 一级做受毛片免费大片 | 久久久久久国产精品 | 日日操天天射 | 四虎影院在线免费观看 | 色毛片| 国产精品日女人 | 一级全黄少妇性色生活免费看 | 中文字幕av一区二区三区 | 亚洲综合视频一区 | 成人精品一区 | 男女在线网站 | 欧美综合一区 | 欧美性tv| 91久久精品国产91久久 | 亚洲aⅴ精品 | 成人免费一级 | 国产精品自在线 | 午夜一区二区三区在线观看 | 一级黄色大片 | 亚洲成人综合社区 | 成人免费大片黄在线播放 | 亚洲精品日本 | 日本精品在线播放 | 国产97色 | 婷婷开心激情综合五月天 | 亚洲一级黄色 | 久久久精品一区二区三区四季av |