上一節介紹基礎,由於時間倉促,寫得十分模糊。這一節開始從一個個實際例子,向大家展示應廣單片機的各項功能。由於看本文的讀者層次不相同,這裏全部按照初學者視之。
廢話少說,上例程:
//========================================================
#include "extern.h"
KeyBounce equ 30*1000 //30ms
void FPPA0(void)
{
.ADJUST_IC SYSCLK=IHRC/2;
pac = 0b_1111_1110;
pa = 0b_0000_0000;
paph = 0b_0000_0001;
$ padier 0b_1111_1001;
while (1)
{
if( pa.0 == 0 )
{
if(--KeyBounce == 0)
{
if( pa.0 == 0 )
{
A = pa.3;
A ~= 0b00001000;
pa = A;
}
}
}
}
}
//========================================================
以上例程非常簡單
#include "extern.h"
是程序的頭文件。
void FPPA0(void)
相當於程序的 main() 函數。
.ADJUST_IC SYSCLK=IHRC/2;
是對芯片時鐘的設定,具體參考使用的單片機芯片來設定。
pac = 0b_1111_1110;
pa = 0b_0000_0000;
paph = 0b_0000_0001;
$ padier 0b_1111_1001;
是對芯片引腳設定。這裏設定 pa.0 爲輸入,啓用上拉電阻。具體設置可參考芯片手冊。
while (1)
無限循環函數,與大多數函數相似。
if( pa.0 == 0 )
判斷 pa.0 是否被人按下了。如果不是,直接跳過。如果被按下。if(--KeyBounce == 0)
程序連續判斷了30 * 1000 次後還是 被按下。執行:
A = pa.3;
A ~= 0b00001000;
pa = A;
取反 pa.3 的電平。程序的外圍器件將 pa.3 的引腳連接 LED 燈,取反 pa.3 的電平時,實現點亮或者熄滅一顆燈的效果。