Vision 3 - el.fotech.edu.twel.fotech.edu.tw/localuser/k1200/web1/single chip application/Keil... ·...
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之前置命令。
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;
:
LED=0xff; /*關閉 LED*/
:
}
區域變數
#include <reg51.h>
unsigned char LED, SPEAKER;
:
整體變數
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
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次
} // 延遲函數結束