利用8031單片機(jī),設(shè)計(jì)跑馬燈和流水燈
原題網(wǎng)址:http://zhidao.baidu.com/question/132136276.html
正常情形下使P1口八個(gè)發(fā)光二極管做流水燈顯示。
緊急情況下,使八個(gè)發(fā)光二極管做鴛鴦戲水顯示。
鴛鴦戲水就是一共是八個(gè)燈,一次亮四個(gè),奇數(shù)燈和偶數(shù)燈分開(kāi)亮。即:這次是1357燈亮,下次是2468燈亮。
要求用匯編語(yǔ)言編制程序,多謝。
問(wèn)題補(bǔ)充:要求在外部擴(kuò)展一個(gè)4KB的外部存儲(chǔ)器。
懸賞分:80 - 解決時(shí)間:2010-1-7 14:43
=====================================
最佳答案:
;------------------------------------
;題目要求在外部擴(kuò)展存儲(chǔ)器,就是說(shuō)P0P2口,我們不能使用,那么就用P1外接8個(gè)LED,用P3.2輸入“緊急”狀態(tài)。
;以下程序,仿真調(diào)試成功.
;------------------------------------
ORG 0000H ;程序開(kāi)始地址.
SJMP MAIN ;跳轉(zhuǎn)到MAIN.
ORG 0030H ;程序入口.
MAIN:
MOV 30H, #7FH ;設(shè)定常規(guī)發(fā)光的數(shù)據(jù)
MOV 31H, #55H ;設(shè)定緊急發(fā)光的數(shù)據(jù)
;------------------------------------
LOOP1:
MOV A, 30H ;取來(lái)常規(guī)數(shù)據(jù)
LOOP11:
RL A ;修改
MOV P1, A ;顯示
LCALL DELAY ;顯示的時(shí)間
JNB P3.2, LOOP2 ;如果是緊急,就轉(zhuǎn)移
SJMP LOOP11 ;重復(fù)
;------------------------------------
LOOP2:
MOV A, 31H ;取來(lái)緊急數(shù)據(jù)
LOOP22:
CPL A
MOV P1, A
LCALL DELAY
JB P3.2, LOOP1 ;如果是常規(guī),就轉(zhuǎn)移
SJMP LOOP22
;------------------------------------
DELAY: ;延時(shí)子程序,控制發(fā)光的時(shí)間
MOV R7, #250
DL1:MOV R6, #100
DL2:MOV R5, #10
DL3:DJNZ R5, DL3
DJNZ R6, DL2
DJNZ R7, DL1
RET
END
編輯:admin 最后修改時(shí)間:2018-05-18