單片機循環(huán)燈點(diǎn)亮實(shí)驗
一:實(shí)驗名稱(chēng):循環(huán)燈點(diǎn)亮
二:實(shí)驗目的:了解p1口 輸出,了解移位操作要通過(guò)累加器ACC來(lái)實(shí)現,掌握89C51的匯編指令。
三:實(shí)驗原理:
1.八個(gè)循環(huán)燈是由發(fā)光二極管組成的陣列,發(fā)光二極管采用共陽(yáng)極連接(這樣可以提高二極管的亮度)。
2.每個(gè)二極管外接一個(gè)電阻和一個(gè)非門(mén),這樣把p1口輸出的高電平轉換成了低電平,二極管正常導電,并發(fā)光點(diǎn)亮。
3.每個(gè)二極管對應賦一時(shí)點(diǎn)亮,但是p1口輸出的電平值,只能對應二極管陣列的一個(gè)確定的狀態(tài),不能實(shí)現循環(huán)點(diǎn)亮。所以要先把值賦給寄存器ACC,通過(guò)ACC實(shí)現移位操作,實(shí)現不同的二極管對應賦一,這樣確定的二極管實(shí)現高電平點(diǎn)亮,其余的為低電平。
4.計時(shí)實(shí)現了循環(huán)賦一,人的視覺(jué)還是感受不到燈在循環(huán),因為CPU晶振的頻率為6MHZ,一個(gè)震蕩周期T=1/6M,則一個(gè)機器周期為T(mén)'=12/6M=2us。這極其短暫的時(shí)間遠遠不到人眼所能分辨的范圍,所以要通過(guò)延時(shí)來(lái)實(shí)現效果的觀(guān)察。對89C51來(lái)說(shuō),延時(shí)可以通過(guò)硬件、軟件實(shí)現。本實(shí)驗通過(guò)軟件延時(shí),即通過(guò)匯編指令的循環(huán)來(lái)實(shí)現。
實(shí)驗程序如下:
org 0H
LJMP start
org 4100H
start:
MOV A, #1
loop:MOV P1, A
DD2:MOV R0, 10
MOV R1, #200
DD1:MOV R2, #126
DJNZ R2, $
DJNZ R1, DD1
DJNZ R0, DD2
RL A
JMP loop
end
從第七行到第十一行為循環(huán)語(yǔ)句,下面對匯編語(yǔ)言進(jìn)行解釋?zhuān)?/P>
org 4100H 起始地址為4100H
RLA R邏輯移位(左移)
JMP 無(wú)條件跳轉
DJNZ R2, $ DJNZ先減1在判斷是否等于零,若等于零則停止,若不等于零則跳轉到$
$指令本身所在地址
本實(shí)驗的循環(huán)周期為8s,即每隔一秒交替點(diǎn)亮下一個(gè)發(fā)光二極管。
本實(shí)驗有關(guān)的計算:
10(1*T'+200*T'+200*126*2T+200*2T) =10*0.1s=1s
四:本實(shí)驗單片機硬件知識
1.89C51上電復位后,程序計數器的內容為0000H,所以CPU總是從0000H開(kāi)始執行程序,但是0000H~0002H用作89C51上電復位后引導程序的存放單元。所以要加跳轉指令。
2.89C51上電復位后,RS1=RS0=0,CPU自動(dòng)選擇第0組為當前寄存器組。片內RAM地址00H~07H。
五:實(shí)驗心得
現在特別喜歡匯編語(yǔ)言,匯編不僅不區分大小寫(xiě),而且不限制中間空字符。通過(guò)本實(shí)驗發(fā)現有些事情并不像別人說(shuō)的那么難,只要是有一定得計算機知識,學(xué)習單片機很容易的。
評論