要讓小燈亮一會(huì)兒、滅一會(huì)兒,還必須要有一個(gè)延時(shí)的程序,下面就是讓小燈亮一會(huì)兒、滅一會(huì)兒,交替閃爍的程序:
MAIN:;程序開(kāi)始
SETB P1.0;讓P1.0輸出高電平
LCALL DELAY;這一行是調(diào)用延時(shí)子程序
;目的是讓P1.0保持高電平
;多停留一段時(shí)間
CLR P1.0;讓P1.0輸出低電平
LCALL DELAY;這一行也是調(diào)用延時(shí)子程序
;和剛才一樣,讓P1.0保持低
;電平停留一段時(shí)間,其實(shí)就
;是讓它多亮一會(huì)兒再熄滅
LJMP MAIN;跳轉(zhuǎn)到MAIN處執(zhí)行(循環(huán))
;以下是延時(shí)子程序,有關(guān)該延時(shí)程序的內(nèi)容以后再學(xué)
DELAY: MOV R7,#250
D1: MOV R6,#250
D2: DJNZ R6,D2
DJNZ R7,D1
RET
END
在以上匯編程序中,延時(shí)子程序每一行的具體含義先不管他,以后慢慢學(xué)到,上面的程序需要在一個(gè)名為“Keil uVision2”的軟件中匯編完成,匯編后得到一個(gè)*.hex文件,這就是目標(biāo)文件,然后用編程器將該文件“寫(xiě)”到單片機(jī)89s51中,這樣該89s51就具有自動(dòng)控制小燈閃爍的功能了。
在實(shí)驗(yàn)的時(shí)候,通常用發(fā)光二極管LED代替小燈,由于LED工作電壓小,由此LED要串接一個(gè)小電阻,用220歐姆——1k之間的都行,我用的是510歐姆的。





