Vision 3 - el.fotech.edu.twel.fotech.edu.tw/localuser/k1200/web1/single chip application/Keil... ·...

49

Transcript of Vision 3 - el.fotech.edu.twel.fotech.edu.tw/localuser/k1200/web1/single chip application/Keil... ·...

Vision 3部分:快速穿越Vision整合設計環境。

Keil C語言部分 :認識Keil C語言之基本架構。認識Keil C之變數、常數與資料型態。認識記憶體形式與工作模式。認識Keil C之運算子、控制流程、函數與中斷函數。認識Keil C之陣列與指標。認識Keil C之前置命令。

File 標籤

切換到檔案管理頁面

Regs 標籤

切換到暫存器頁面 Books 標籤

切換到輔助說明頁面

Functions 標籤

切換到函數頁面

Templates 標籤

切換到樣板頁面

除錯通道欄位

Debug Channel

執行時間欄位 游標位置欄位

鍵盤大/小寫狀況

鍵盤數字鍵狀況

鍵盤捲動鍵狀況

覆蓋/插入模式

檔案之存取屬性

指定系統所要採用

的時鐘脈波頻率

指定採用內部程式記憶體

指定記憶體模式 指定程式記憶體大小

指定作業系統

指定外部記憶體

指定程式記憶體庫

請改為 12

指定輸出檔案

所要儲存的資料夾

指定所要產生執行檔的名稱 產生可執行檔

產生除錯資料

產生 16 進位檔 指定建立函數庫

建構完成後的操作

指定建立批次檔

指定 16進位檔的格式 請選取本選項

發現錯誤 無法完成建構

完成建構

delay(int x) 函數定義

{ 函數起始符號

函數結束符號

int i,j;

for(i=0;i<x;i++)

}

宣告區

程式區

#include <reg51.h> 指定標頭檔

delay(int);

unsigned char x,y;

main() 主程式

{ 主程式起始符號

主程式結束符號

int i,j;

unsigned char LED;

LED=0xff; /*關閉 LED*/

}

宣告區

程式區 註解

宣告區

main() 主程式定義

{ 主程式起始符號

主程式結束符號

int i,j;

unsigned char LED;

LED=0xff; /*關閉 LED*/

}

宣告區

程式區

註解

main()

{

int i,j;

LED=0xff; /*關閉 LED*/

}

區域變數

#include <reg51.h>

unsigned char LED, SPEAKER;

整體變數

main()

{

int i,j;

}

區域變數

#include <reg51.h>

delay(int x)

{

int i,j;

}

區域變數

主程式

函數

}

AND(及運算)

x=0x26=00100110

y=0xe2=11100010

z=x&y=00100010=0x22

OR(或運算)

x=0x26=00100110

y=0xe2=11100010

z=x|y=11100110=0xe6

XOR(互斥或運算)

x=0x26=00100110

y=0xe2=11100010

z=x^y=11000100=0xc4

NOT(取補數運算)

x=0x26=00100110

z=~x=11011001=0xd9

<<(左移運算)

x=0x26=00100110

z=x<<2=10011000=0x98

>>(右移運算)

x=0x26=00100110

z=x>>1=00010011=0x13

運算式

成立?

指令區塊 1

yes no

指令區塊 2

else

運算式

成立?

指令區塊 1

yes

no

指令區塊 4

else

no

運算式 3

成立?

指令區塊 3

yes

no

else if

運算式 1

成立?

指令區塊 1

yes no

運算式 2

成立?

指令區塊 2

yes

else if

運算式

運算式=常數 1

指令區塊 1

break

指令區塊 2

break

指令區塊 3

break

指令區塊 n

break

運算式=常數 2 運算式=常數 3 運算式=其它

default

void Sub_name(int x) 函數定義

{ 函數起始符號

函數結束符號

int i,j;

unsigned char LED;

LED=0xff; /*關閉 LED*/

}

宣告區

程式區

註解

傳出引數 傳入引數 函數名義

連接電路

流程圖 開 始

輸出 0x0f

即 00001111

呼叫延遲副程式

delay(10000)

主程式

反相輸出

即 11110000

呼叫延遲副程式

delay(10000)

Delay

從 1 數到 x

即數 10000 下

延遲副程式

返 回

/* ch01.c - LED高低位元交互閃爍程式 */ //==宣告區

===============================================

#include <reg51.h> // 定義8051暫存器之標頭檔,P2-17~19 #define LED P2 // 定義LED接至Port 2 void delay(int); // 宣告延遲函數 //==主程式

===============================================

main() // 主程式開始 { LED=0x0f; // 初值=0000 1111,狀態為左4個亮,右4個滅(共陽) while(1) // 無窮迴圈,程式一直跑 { delay(10000); // 呼叫延遲函數 LED=~LED; // LED反相輸出 } // while迴圈結束 } // 主程式結束

//==副程式==============================================

void delay(int x) // 延遲函數開始,x=延遲次數

{ int i; // 宣告整數變數i

for (i=0;i<x;i++); // 計數x次

} // 延遲函數結束

1. 指向 Source Group1 項

2. 按滑鼠左鍵拉下選單

3. 選取 Add Files to Group Source Group1 項