您現(xiàn)在的位置是:首頁 >動態(tài) > 2023-08-02 20:00:13 來源:
at89c51最小系統(tǒng)圖(at89c51流水燈)
大家好,我是小夏,我來為大家解答以上問題。at89c51最小系統(tǒng)圖,at89c51流水燈很多人還不知道,現(xiàn)在讓我們一起來看看吧!
我給你個簡單的例子:
#include?<AT89X51.H>?//預處理文件里面定義了特殊寄存器的名稱如P1?口定義為P1
void?main(void)
{
//定義花樣數(shù)據(jù)
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;?//定義循環(huán)用的變量
unsigned?char?b;?//在C51?編程中因內存有限盡可能注意變量類型的使用
//盡可能使用少字節(jié)的類型,在大型的程序中很
受用
do{
for?(b=0;?b<32;?b++)
{
for(a=0;?a<30000;?a++);?//延時一段時間
P1?=?design[b];?//讀已定義的花樣數(shù)據(jù)并寫花樣數(shù)據(jù)到P1?口
}
}while(1);
}
程序中的花樣數(shù)據(jù)可以自以去定義,因這里我們的LED?要AT89C51?的P1?引腳為低電平才
會點亮,所以我們要向P1?口的各引腳寫數(shù)據(jù)O?對應連接的LED?才會被點亮,P1?口的八個引
腳剛好對應P1?口特殊寄存器的八個二進位,如向P1?口定數(shù)據(jù)0xFE,轉成二進制就是
11111110,最低位D0?為0?這里P1.0?引腳輸出低電平,LED1?被點亮。如此類推,大家不難算
出自己想要做的效果了。
本文到此講解完畢了,希望對大家有幫助。