51單片機(jī)延時(shí)10ms程序優(yōu)化版-使用匯編語言

51單片機(jī)匯編語言? 在使用51單片機(jī)進(jìn)行編程時(shí),DAA(Decimal Adjust After Addition)指令用于在加法操作后調(diào)整ALU(算術(shù)邏輯單元)中的...
51單片機(jī)匯編語言?
在使用51單片機(jī)進(jìn)行編程時(shí),DAA(Decimal Adjust After Addition)指令用于在加法操作后調(diào)整ALU(算術(shù)邏輯單元)中的結(jié)果,使之符合十進(jìn)制的計(jì)算規(guī)則。這個(gè)指令特別適用于BCD(Binary Coded Decimal)碼的操作。DAA指令的工作原理是:如果低四位或高四位超過9,則需要加上6,同時(shí)進(jìn)行進(jìn)位操作。
在進(jìn)行51單片機(jī)的編程時(shí),利用匯編語言實(shí)現(xiàn)四個(gè)共陰數(shù)碼管同時(shí)顯示數(shù)字1234是一個(gè)有趣的實(shí)驗(yàn)。實(shí)驗(yàn)中,P3口被用作片選信號,而P0口則負(fù)責(zé)段選,即控制數(shù)碼管的點(diǎn)亮狀態(tài)。要實(shí)現(xiàn)這一功能,可以使用proteus進(jìn)行仿真。在proteus中,創(chuàng)建一個(gè)四位一體的共陰數(shù)碼管模型,并將其連接到51單片機(jī)的P0和P3口。
在51單片機(jī)中,使用匯編語言編寫流水燈程序時(shí),可以采用多種方式實(shí)現(xiàn)燈的順序點(diǎn)亮和熄滅。下面是一個(gè)具體的實(shí)現(xiàn)例子,該程序通過循環(huán)逐步點(diǎn)亮和熄滅P1口的各個(gè)引腳,從而形成流水燈的效果。程序首先將初始值01H存入累加器A,并一個(gè)循環(huán)。
單片機(jī)匯編語言中的swap是半字節(jié)交換指令。SWAP A 這條指令,將累加器A的高、低4位數(shù)據(jù)交換,也就是低4位數(shù)據(jù)高4位,高4位數(shù)據(jù)低4位。例如:MOV A#00001111B SWAP A SWAP A后,A中的內(nèi)容變?yōu)?1110000B。
本文鏈接:http://m.tiantaijiaoyu.cn/kaifa/875891.html