一、MDK uVision開(kāi)發(fā)環(huán)境界面介紹
二、什么是宏定義
- 宏定義就是用我們?nèi)吮容^好理解的字符串來(lái)代替某個(gè)數(shù)或字符串。宏定義是由#define空格+新字符串+空格+被代替的數(shù)或字符串。如下面的例子:
- #define TRUE 1 //用TRUE來(lái)代替1
- #define FALSE 0 //用FALSE來(lái)代替0
- #define Pin_LED P32 //用Pin_LED來(lái)代替P32
- #define PinLed_High() Pin_LED=1 //用Pin_LedHigh()來(lái)代替Pin_LED=1
三、#include 含義
在C語(yǔ)言中,經(jīng)常會(huì)用到其它已經(jīng)定義好的文件,這時(shí)我們不必重新寫(xiě)一遍,只需要用#include <文件名>的格式,就可以把文件包含到我們的程序項(xiàng)目中。如:#include 就表示將已有的STC15.H文件加入到我們的項(xiàng)目當(dāng)中。<>表示這個(gè)文件的路徑是在MDK的安裝目錄中。
四、什么是函數(shù)
在C語(yǔ)言中,我們經(jīng)常會(huì)用到函數(shù)。如C語(yǔ)言程序的入口函數(shù)main。一個(gè)函數(shù)通常用來(lái)表示一個(gè)程序功能塊。這個(gè)功能塊有輸入參數(shù)和輸出參數(shù)。就像一個(gè)水箱有一個(gè)進(jìn)水口和一個(gè)出水口。如下面的函數(shù):
五、什么是函數(shù)原型
- 在C語(yǔ)言中,所謂函數(shù)原型,就是指我們只定義了一個(gè)函數(shù)的名字和輸入、輸出參數(shù),但并沒(méi)有在函數(shù)中實(shí)現(xiàn)功能。如下面的例子:
- void PinLED_DirOut(void);
- 表示這是個(gè)LED燈的管腳輸出控制函數(shù)定義。
- 輸入?yún)?shù)為無(wú)效參數(shù),輸出參數(shù)也為無(wú)效參數(shù)。
六、單片機(jī)輸出口設(shè)置和輸出
為了讓單片機(jī)能點(diǎn)亮/熄滅指示燈,我們必須控制與LED指示燈相連接的引腳。在這里,P32表示是單片機(jī)的輸出品P3的第2個(gè)腳。從原理圖上可以看出,如果要點(diǎn)亮LED指示燈,則必須將P32這個(gè)引腳輸出低電平。下面是與P32引腳有關(guān)的宏定義:
#define Pin_LED P32
#define Pin_LED_M1 P3M1
#define Pin_LED_M0 P3M0
#define Pin_LED_BIT BIT2
#define PinLed_High() Pin_LED=1
#define PinLed_Low() Pin_LED=0
我們要讓單片機(jī)P32引腳控制LED指示燈,就必須將P32引腳設(shè)置為輸出模式,下面這個(gè)函數(shù)就是設(shè)置P32為輸出的代碼:
//Pin_LED_M1實(shí)際上就是P3M1
//Pin_LED_M0實(shí)際上就是P3M0
//P3M1和P3M0兩個(gè)寄存器單元,是用來(lái)配置P3口各引腳的輸入/輸出模//式
void PinLED_DirOut(void)
{
Pin_LED_M1 &=~Pin_LED_BIT;
Pin_LED_M0 |=Pin_LED_BIT;
}
七、點(diǎn)亮LED指示燈的完整源程序
* #include < STC15.h >
*
* #define BIT0 0x01
* #define BIT1 0x02
* #define BIT2 0x04
* #define BIT3 0x08
* #define BIT4 0x10
* #define BIT5 0x20
* #define BIT6 0x40
* #define BIT7 0x80
* #define TRUE 1
* #define FALSE 0
* #define BEEP_ON 1
* #define BEEP_OFF 0
* #define Pin_LED P32
* #define Pin_LED_M1 P3M1
* #define Pin_LED_M0 P3M0
* #define Pin_LED_BIT BIT2
* #define PinLed_High()Pin_LED=1
* #define PinLed_Low()Pin_LED=0
*
* void PinLED_DirIn(void);
* void PinLED_DirOut(void);
*
* void main(void)
* {
* PinLED_DirOut();
* PinLed_Low();
* while(TRUE)
* {
*
* }
* }
八、單片機(jī)程序編譯
在uVision開(kāi)發(fā)環(huán)境的菜單中,選擇[Project(項(xiàng)目)]->[Build Target(編譯目標(biāo))],然后開(kāi)始編譯程序。
九、找到單片機(jī)燒寫(xiě)文件
在項(xiàng)目文件夾下找到剛才編譯好的燒寫(xiě)文件(HEX文件),在本項(xiàng)目中為STC15WPrj.hex文件。
十、下載燒寫(xiě)文件到單片機(jī)中
(1)先在網(wǎng)上找到STC單片機(jī)下載程序STC-ISP(V6.89).exe,然后下載到本地。
(2)啟動(dòng)STC-ISP(V6.89C)程序,然后點(diǎn)擊[打開(kāi)程序文件],在文件夾中找到剛才編譯好的STC15WPrj.hex文件。
(3)斷開(kāi)單片機(jī)電源,然后點(diǎn)擊[下載/編程],然后再將單片機(jī)電源接通,則接下來(lái)等待下載完成。
十一、單片機(jī)點(diǎn)亮LED指示燈輸出結(jié)果
至此,一個(gè)完整的單片機(jī)編寫(xiě)、編譯、下載過(guò)程就講完了。
-
單片機(jī)
+關(guān)注
關(guān)注
6043文章
44622瀏覽量
638519 -
led燈
+關(guān)注
關(guān)注
22文章
1592瀏覽量
108407 -
C語(yǔ)言
+關(guān)注
關(guān)注
180文章
7614瀏覽量
137703 -
函數(shù)
+關(guān)注
關(guān)注
3文章
4346瀏覽量
62968 -
MDK
+關(guān)注
關(guān)注
4文章
209瀏覽量
32152
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論