我給妳個簡單的例子:
#include?<AT89X51.H>?//預處理文件裏面定義了特殊寄存器的名稱如P1?口定義為P1
void?main(void)
{
//定義花樣數據
const?unsigned?char?design[32]={0xFF,0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F,
0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,0xFE,0xFF,
0xFF,0xFE,0xFC,0xF8,0xF0,0xE0,0xC0,0x80,0x0,
0xE7,0xDB,0xBD,0x7E,0xFF};
unsigned?int?a;?//定義循環用的變量
unsigned?char?b;?//在C51?編程中因內存有限盡可能註意變量類型的使用
//盡可能使用少字節的類型,在大型的程序中很
受用
do{
for?(b=0;?b<32;?b++)
{
for(a=0;?a<30000;?a++);?//延時壹段時間
P1?=?design[b];?//讀已定義的花樣數據並寫花樣數據到P1?口
}
}while(1);
}
程序中的花樣數據可以自以去定義,因這裏我們的LED?要AT89C51?的P1?引腳為低電平才
會點亮,所以我們要向P1?口的各引腳寫數據O?對應連接的LED?才會被點亮,P1?口的八個引
腳剛好對應P1?口特殊寄存器的八個二進位,如向P1?口定數據0xFE,轉成二進制就是
11111110,最低位D0?為0?這裏P1.0?引腳輸出低電平,LED1?被點亮。如此類推,大家不難算
出自己想要做的效果了。?
留個郵箱給妳發個入門文檔