国产精品免费无遮挡无码永久视频-国产高潮视频在线观看-精品久久国产字幕高潮-国产精品99精品无码视亚

查看: 5211|回復: 14
打印 上一主題 下一主題

單片機C語言編程模板(基礎模板)

[復制鏈接]
跳轉到指定樓層
樓主
發表于 2010-10-14 19:27:00 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
關鍵詞: 單片機C語言
[程序開始處的程序說明]

/*********************************************************************************************
程序名:   
編寫人:     
編寫時間:  年 月 日
硬件支持:  
接口說明:                               
/*********************************************************************************************
說明:

/*********************************************************************************************/

[單片機SFR定義的頭文件]

#include //通用89C51頭文件
#include //通用89C52頭文件
#include //STC11Fxx或STC11Lxx系列單片機頭文件
#include //STC12Cx052或STC12Cx052AD系列單片機頭文件
#include //STC12C5A60S2系列單片機頭文件

[更多庫函數頭定義]

#include     //設定插入點
#include     //字符處理
#include     //定義錯誤碼
#include     //浮點數處理
#include     //文件輸入/輸出
#include     //參數化輸入/輸出
#include //數據流輸入/輸出
#include     //定義各種數據類型最值常量
#include     //定義本地化函數
#include     //定義數學函數
#include     //定義輸入/輸出函數
#include     //定義雜項函數及內存分配函數
#include     //字符串處理
#include //基于數組的輸入/輸出
#include     //定義關于時間的函數
#include     //寬字符處理及輸入/輸出
#include     //寬字符分類
#include     //51基本運算(包括_nop_空函數)

[常用定義聲明]

sfr [自定義名] = [SFR地址] ; //按字節定義SFR中的存儲器名。例:sfr P1 = 0x90;
sbit [自定義名] = [系統位名] ; //按位定義SFR中的存儲器名。例:sbit Add_Key = P3 ^ 1;
bit [自定義名] ; //定義一個位(位的值只能是0或1)例:bit LED;
#define [代替名] [原名] //用代替名代替原名。例:#define LED P1 / #define TA 0x25

unsigned char [自定義名] ; //定義一個0~255的整數變量。例:unsigned char a;
unsigned int [自定義名] ; //定義一個0~65535的整數變量。例:unsigned int a;

[定義常量和變量的存放位置的關鍵字]

data    字節尋址片內RAM,片內RAM的128字節(例:data unsigned char a;)
bdata    可位尋址片內RAM,16字節,從0x20到0x2F(例:bdata unsigned char a;)
idata    所有片內RAM,256字節,從0x00到0xFF(例:idata unsigned char a;)
pdata    片外RAM,256字節,從0x00到0xFF(例:pdata unsigned char a;)
xdata    片外RAM,64K字節,從0x00到0xFFFF(例:xdata unsigned char a;)
code    ROM存儲器,64K字節,從0x00到0xFFFF(例:code unsigned char a;)


[選擇、循環語句]

if(1){

//為真時語句

}else{

//否則時語句

}

--------------------------

while(1){

//為真時內容

}

--------------------------

do{

//先執行內容

}while(1);

--------------------------

switch (a){
    case 0x01:
        //為真時語句
        break;
    case 0x02:
        //為真時語句
        break;
    default:
        //冗余語句
        break;
}

--------------------------

for(;;){

//循環語句

}

--------------------------


[主函數模板]

/*********************************************************************************************
函數名:主函數
調 用:無
參 數:無
返回值:無
結 果:程序開始處,無限循環
備 注:
/**********************************************************************************************/
void main (void){

    //初始程序

    while(1){

        //無限循環程序

    }
}
/**********************************************************************************************/


[中斷處理函數模板]
/*********************************************************************************************
函數名:中斷處理函數
調 用:無
參 數:無
返回值:無
結 果:
備 注:
/**********************************************************************************************/
void name (void) interrupt 1 using 1{

    //處理內容
}
/**********************************************************************************************/

[中斷入口說明]

interrupt 0 外部中斷0(ROM入口地址:0x03)
interrupt 1 定時/計數器中斷0(ROM入口地址:0x0B)
interrupt 2 外部中斷1(ROM入口地址:0x13)
interrupt 3 定時/計數器中斷1(ROM入口地址:0x1B)
interrupt 4 UART串口中斷(ROM入口地址:0x23)
(更多的中斷依單片機型號而定,ROM中斷入口均相差8個字節)

using 0 使用寄存器組0
using 1 使用寄存器組1
using 2 使用寄存器組2
using 3 使用寄存器組3


[普通函數框架]

/*********************************************************************************************
函數名:
調 用:
參 數:無
返回值:無
結 果:
備 注:
/**********************************************************************************************/
void name (void){

//函數內容

}
/**********************************************************************************************/

/*********************************************************************************************
函數名:
調 用:
參 數:0~65535 / 0~255
返回值:0~65535 / 0~255
結 果:
備 注:
/**********************************************************************************************/
unsigned int name (unsigned char a,unsigned int b){

//函數內容

return a; //返回值
}
/**********************************************************************************************/
沙發
發表于 2010-10-28 21:13:41 | 只看該作者
強頂一下
板凳
發表于 2010-11-29 22:43:42 | 只看該作者
ding....
地板
發表于 2010-11-30 00:48:51 | 只看該作者
地下室
發表于 2010-12-1 22:42:59 | 只看該作者
可能有用,因為從來沒有這樣正規寫過程序,也許以后會慢慢改過來
6
發表于 2010-12-3 23:48:57 | 只看該作者
太有用了
7
發表于 2010-12-5 23:21:45 | 只看該作者
太有用了
8
發表于 2010-12-7 11:25:07 | 只看該作者
模板都有了,強
9
發表于 2010-12-7 11:56:03 | 只看該作者
10
發表于 2010-12-9 21:27:16 | 只看該作者
正是我所需要的,謝謝!
11
發表于 2010-12-17 01:58:10 | 只看該作者
謝謝分享
12
發表于 2010-12-21 20:47:32 | 只看該作者
看來今后還是有必要規范自己的代碼風格了,這種模板看起來好看多了
13
發表于 2010-12-28 15:46:37 | 只看該作者
14
發表于 2011-1-9 20:33:33 | 只看該作者
對于菜鳥有積極的指導作用,頂!
15
發表于 2015-2-7 10:42:30 | 只看該作者
支持一下
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表