C語(yǔ)言實(shí)現(xiàn)LED燈閃爍控制配套51單片機(jī)開(kāi)發(fā)板。
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶,將通過(guò)不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:申請(qǐng)域名、虛擬主機(jī)、營(yíng)銷(xiāo)軟件、網(wǎng)站建設(shè)、烏翠網(wǎng)站維護(hù)、網(wǎng)站推廣。
#include??? //包含單片機(jī)寄存器的頭文件
/****************************************
函數(shù)功能:延時(shí)一段時(shí)間
*****************************************/
void delay(void)??????? //兩個(gè)void意思分別為無(wú)需返回值,沒(méi)有參數(shù)傳遞。
{
unsigned int i;?????? //定義無(wú)符號(hào)整數(shù),最大取值范圍65535。
for(i=0;i20000;i++)? //做20000次空循環(huán)。
;?????????????? //什么也不做,等待一個(gè)機(jī)器周期。
}
/*******************************************************
函數(shù)功能:主函數(shù) (C語(yǔ)言規(guī)定必須有也只能有1個(gè)主函數(shù))。
********************************************************/
void main(void)
{
while(1)????? //無(wú)限循環(huán)。
{
P0=0xfe;?? //P1=1111 1110B, P0.0輸出低電平。
delay();?? //延時(shí)一段時(shí)間。
P0=0xff;?? //P1=1111 1111B, P0.0輸出高電平。
delay();? //延時(shí)一段時(shí)間。
}
}
單片機(jī)驅(qū)動(dòng)LED燈的源程序:
#includereg52.h //頭文件。
#define uint unsigned int
#define uchar unsigned char
sbit LED1=P1^7; //位定義。
void delay_ms(uint);//mS級(jí)帶參數(shù)延時(shí)函數(shù)。
void main()
{
while(1)
{
LED1=0;
delay_ms(1000);
LED1=1;
delay_ms(1000);
}
}
void delay_ms(uint z) //延時(shí)子程序
{
uint x,y;
for(x=z;x0;x--)
for(y=110;y0;y--);
}
擴(kuò)展資料:
單片機(jī)應(yīng)用分類(lèi):
通用型:
這是按單片機(jī)(Microcontrollers)適用范圍來(lái)區(qū)分的。例如,80C51式通用型單片機(jī),它不是為某種專(zhuān)門(mén)用途設(shè)計(jì)的;專(zhuān)用型單片機(jī)是針對(duì)一類(lèi)產(chǎn)品甚至某一個(gè)產(chǎn)品設(shè)計(jì)生產(chǎn)的,例如為了滿足電子體溫計(jì)的要求,在片內(nèi)集成ADC接口等功能的溫度測(cè)量控制電路。
總線型:
這是按單片機(jī)(Microcontrollers)是否提供并行總線來(lái)區(qū)分的??偩€型單片機(jī)普遍設(shè)置有并行地址總線、 數(shù)據(jù)總線、控制總線,這些引腳用以擴(kuò)展并行外圍器件都可通過(guò)串行口與單片機(jī)連接。
另外,許多單片機(jī)已把所需要的外圍器件及外設(shè)接口集成一片內(nèi),因此在許多情況下可以不要并行擴(kuò)展總線,大大減省封裝成本和芯片體積,這類(lèi)單片機(jī)稱為非總線型單片機(jī)。
控制型:
這是按照單片機(jī)(Microcontrollers)大致應(yīng)用的領(lǐng)域進(jìn)行區(qū)分的。一般而言,工控型尋址范圍大,運(yùn)算能力強(qiáng);用于家電的單片機(jī)多為專(zhuān)用型。
通常是小封裝、低價(jià)格,外圍器件和外設(shè)接口集成度高。 顯然,上述分類(lèi)并不是惟一的和嚴(yán)格的。例如,80C51類(lèi)單片機(jī)既是通用型又是總線型,還可以作工控用。
參考資料來(lái)源:百度百科-單片機(jī)
流水燈程序是keil的自帶例子,你直接跑就是。
void wait (void) { /* wait function */
; /* only to delay for LED flashes */
}
void main (void) {
unsigned int i; /* Delay var */
unsigned char j; /* LED var */
while (1) { /* Loop forever */
for (j=0x01; j 0x80; j=1) { /* Blink LED 0, 1, 2, 3, 4, 5, 6 */
P1 = j; /* Output to LED Port */
for (i = 0; i 10000; i++) { /* Delay for 10000 Counts */
wait (); /* call wait function */
}
}
for (j=0x80; j 0x01; j=1) { /* Blink LED 6, 5, 4, 3, 2, 1 */
P1 = j; /* Output to LED Port */
for (i = 0; i 10000; i++) { /* Delay for 10000 Counts */
wait (); /* call wait function */
}
}
}
}
閃爍你可以再加幾行。
led_table
=
LED_0F
+
LED[2];
//這個(gè)
LED_0F是數(shù)據(jù)表的首地址,,+LED[2]
變成數(shù)組的第三個(gè)數(shù)的地址。
i
=
*led_table;
這里獲取值。。。
不過(guò)我想太麻煩了
改為
i
=
LED_0F
[
LED[2]
]
就可以了。