① 求51單片機匯編語言取隨機數子程序
其實不必要寫成子程序,看你需要多少位的隨機數,要是8位的,就在主循環程序中放一條
INC NUMBER 指令,NUMBER是定義的某個內部RAM單元,如:NUMBER EQU 30H,需要隨機數時,從NUMBER中讀取就行了,隨機讀取的,這個數也是隨機的了。要是需要16位的,就用兩個內部RAM單元來隨機計數,一個做低8位,一個做8位就行了。在主循環程序中放如下指令:
MOV A , NUMBERL
INC A
MOV NUBBERL, A ;保存低8位
JNZ TONEXT
INC NUMBERH ;高8位加1
TONEXT: 其它指令
同樣,用隨機數時就從這兩個單元中讀取就行了。
② 單片機控制紅黃綠燈匯編程序
在單片機控制紅黃綠燈的匯編程序中,首先定義了三個LED燈的控制位,分別為紅燈(RED)、黃燈(YEL)、綠燈(GRE),它們分別對應P1.4、P1.5、P3.6埠。程序從地址0000H開始執行。
程序開始時,首先將RED燈置為低電平,使得紅燈亮起。接著,將綠燈(GRE)置為高電平,紅燈熄滅,綠燈亮起。程序調用了DL1S子程序四次,該子程序的具體功能未詳述,但可能用於延時控制。之後,將RED燈置為高電平,使綠燈熄滅,紅燈亮起。
接著,程序將YEL燈置為低電平,使黃燈亮起,同時保持RED燈為高電平,綠燈為低電平。程序再次調用DL1S子程序四次。隨後,將YEL燈置為高電平,使黃燈熄滅。接著將GRE燈置為高電平,黃燈熄滅,綠燈亮起。
最後,程序再次調用DL1S子程序四次,然後跳轉回地址0000H,形成循環。DL1S子程序的具體功能未詳述,但可能用於延時控制。
總結而言,該匯編程序通過控制單片機的埠,實現了紅黃綠燈的循環顯示,確保交通信號的正常運行。該程序利用了單片機的定時功能,通過調用DL1S子程序實現了對紅黃綠燈不同階段的控制。
③ 單片機匯編指令 ACALL 怎麼用
格式:ACALL add11 功能:絕對調用子程序
說明:
addr11:11 位目標地址,在下條指令的2K 范圍內轉移或調用