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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
打印 上一主題 下一主題
收起左側(cè)

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

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

回復(fù)

使用道具 舉報(bào)

42#
ID:113610 發(fā)表于 2016-4-11 22:57 | 只看該作者
學(xué)習(xí)一下
回復(fù)

使用道具 舉報(bào)

43#
ID:57211 發(fā)表于 2016-4-12 11:30 | 只看該作者
比較系統(tǒng),學(xué)習(xí)的好教材
回復(fù)

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

回復(fù)

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

51#
ID:108066 發(fā)表于 2016-5-5 17:21 | 只看該作者
很不錯(cuò) 內(nèi)容很詳實(shí)
回復(fù)

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

64#
ID:82792 發(fā)表于 2016-5-20 16:28 | 只看該作者
STC15單片機(jī)STC15單片機(jī)STC15單片機(jī)
回復(fù)

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

68#
ID:126465 發(fā)表于 2016-6-13 09:47 | 只看該作者
找了好久了,這個(gè)論壇還不錯(cuò)。
回復(fù)

使用道具 舉報(bào)

69#
ID:126488 發(fā)表于 2016-6-13 11:08 | 只看該作者
不錯(cuò)哦
回復(fù)

使用道具 舉報(bào)

70#
ID:110032 發(fā)表于 2016-6-14 14:47 | 只看該作者
按時(shí)發(fā)生大發(fā)發(fā)
回復(fù)

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

73#
ID:116662 發(fā)表于 2016-6-26 18:01 | 只看該作者
好全的資料,學(xué)習(xí)一下,謝謝分享
回復(fù)

使用道具 舉報(bào)

74#
ID:107352 發(fā)表于 2016-6-26 19:20 | 只看該作者
學(xué)習(xí)一下
回復(fù)

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 日韩中文字幕一区二区 | 亚洲人va欧美va人人爽 | 国外成人在线视频 | 国产精品精品视频一区二区三区 | 男人的天堂在线视频 | 免费1区2区3区 | 中文字幕精 | 中文字幕亚洲视频 | 日韩欧美在线视频播放 | 中文字幕 国产 | 亚洲国产日本 | av黄色在线| 天天天天天天天干 | 成人h片在线观看 | 国产精品久久久 | 国产视频三区 | 日韩精品免费在线观看 | 欧美成视频| 欧美日韩国产一区二区三区不卡 | 中文字幕99 | 精品视频一区二区 | av黄色在线播放 | 91精品国产色综合久久不卡98口 | 天堂视频中文在线 | 国产午夜视频 | 香蕉一区| 成人精品一区二区户外勾搭野战 | 亚洲欧美一区二区三区1000 | 欧美不卡一区二区三区 | 91精品国产综合久久久久久蜜臀 | 国产精品日本一区二区在线播放 | 91伊人| 国产乱码精品一品二品 | 五月香婷婷 | 国产精品成人久久久久 | 久久久无码精品亚洲日韩按摩 | 欧美日韩一区二区三区视频 | 91www在线观看| 亚洲精品国产a久久久久久 中文字幕一区二区三区四区五区 | 久久99视频 | 成人av一区二区三区 |