找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 2094|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

STC89C51單片機(jī)實(shí)驗(yàn)記錄心得 小小記錄,點(diǎn)滴進(jìn)步

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
匯編學(xué)習(xí)單片機(jī),小小記錄,點(diǎn)滴進(jìn)步
實(shí)驗(yàn)?zāi)康模阂粋(gè)LED閃爍的簡(jiǎn)單實(shí)驗(yàn)
實(shí)驗(yàn)代碼:
    ORG 0000H      
    LJMP MAIN      
    ORG 0030H      
MAIN:   
    CLR  P1.0      
    LCALL DELAY     
    SETB P1.0      
    LCALL DELAY
    LJMP MAIN        
DELAY:  MOV R5,#04H   
F3: MOV R6,#0FFH
F2: MOV R7,#0FFH
F1: DJNZ R7,F1         ;若為0程序向下執(zhí)行,若不為0程序跳轉(zhuǎn)到
    DJNZ R6,F2
    DJNZ R5,F3
    RET
    END
代碼解析:
ORG后面跟一個(gè)地址,是指該語(yǔ)句后的指令會(huì)放到這個(gè)地址里,一直順序存放,直到END
ORG 0000H:程序從此地址開(kāi)始運(yùn)行
ORG 030H :在0000H到0030H之間,很多地址都是留給中斷或者DOS保留的使用的,所以一般是從
0030H以后的地址開(kāi)始,加一條跳轉(zhuǎn)指令,跳轉(zhuǎn)到 MAIN 程序處
LED原理圖


現(xiàn)在要D8燈亮,則P1.0需要是低電平,CLR p1.0這條語(yǔ)句是將P1.0中的內(nèi)容清零,高電平取反為低電平,這時(shí)候LED就亮,接著調(diào)用延時(shí)子程序,即將立即數(shù)傳給寄存器R5,實(shí)現(xiàn)延時(shí)SETB p1.0是用來(lái)把其后面的寄存器的位置1,即將其變?yōu)楦唠娖,這時(shí)候LED就不亮,緊接著繼續(xù)調(diào)用延時(shí)程序
DJNZ指令的具體功能是使操作數(shù)的內(nèi)容減1,并判斷操作數(shù)是否等于0,如果不等于0,則跳轉(zhuǎn)至標(biāo)號(hào)處,如果等于0,則順序往下執(zhí)行。
#0FFH是單片機(jī)匯編語(yǔ)bai言程序中一個(gè)8位二進(jìn)du制數(shù)的16進(jìn)制表示方法,#表示這是一zhi個(gè)數(shù)字,0是匯編語(yǔ)言的規(guī)定,即當(dāng)16進(jìn)制數(shù)dao的高位數(shù)大于9時(shí),前面要加0,F(xiàn)F是這個(gè)16進(jìn)制數(shù)的數(shù)值,即255,H是16進(jìn)制數(shù)的尾綴。

子程序F3來(lái)實(shí)現(xiàn)某個(gè)燈的熄滅和點(diǎn)亮,0FFH即11111111B,最后一個(gè)等D8點(diǎn)亮

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表