|
P0口接了八個(gè)led,采用共陽(yáng)的接法,通過(guò)以下程序可以讓這八個(gè)led按要求點(diǎn)亮。單片機(jī)中經(jīng)常會(huì)使用到數(shù)組,尤其以后的數(shù)碼管和led點(diǎn)陣,所有這部分學(xué)習(xí)放在前面。
led采用共陽(yáng)的接法的意思就是,led的兩個(gè)引腳中,陽(yáng)極通過(guò)一個(gè)限流電阻接在5V電源上,陰極接在可以控制的IO口上,這樣八個(gè)led都通過(guò)這種方式接,接好后就如下圖:
- #include <AT89X51.H>
- //定義數(shù)組
- unsigned char code table[]={0xfe,0xfd,0xfb,0xf7,
- 0xef,0xdf,0xbf,0x7f,
- 0xfe,0xfd,0xfb,0xf7,
- 0xef,0xdf,0xbf,0x7f,
- 0x7f,0xbf,0xdf,0xef,
- 0xf7,0xfb,0xfd,0xfe,
- 0x7f,0xbf,0xdf,0xef,
- 0xf7,0xfb,0xfd,0xfe,
- 0x00,0xff,0x00,0xff,
- 0x01};
- //定義無(wú)符號(hào)的變量i
- unsigned char i;
-
- //定義延時(shí)函數(shù)的聲明及實(shí)現(xiàn)
- void delay(void)
- {
- unsigned char m,n,s;
- for(m=20;m>0;m--)
- for(n=20;n>0;n--)
- for(s=248;s>0;s--);
- }
- void main(void)
- {
- while(1)
- {
- //判斷是否為數(shù)組最后一個(gè)元素,如不是,則繼續(xù)執(zhí)行
- if(table[i]!=0x01)
- {
- //把第i個(gè)元素賦給p2口
- P2=table[i];
- //循環(huán)變量i自加
- i++;
- //調(diào)用延時(shí)函數(shù)
- delay();
- }
- else
- {
- i=0;
- }
- }
- }
復(fù)制代碼 |
|