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