單片機匯編語(yǔ)言編程:汽車(chē)轉向燈控制器

發(fā)布時(shí)間:2016-3-10 09:09    發(fā)布者:designapp
關(guān)鍵詞: 單片機 , 匯編語(yǔ)言 , 轉向燈
按照題目要求,編寫(xiě)了程序,用 PROTEUS 繪出了仿真電路圖。

;=============================================
;題目:汽車(chē)轉向燈控制器的編程
;1號鍵(左轉向)按下時(shí) 實(shí)現P3.6閃亮,P0-P2口左流水;
;2號鍵(右轉向)按下時(shí) 實(shí)現P3.7閃亮,P0-P2口右流水;
;3號鍵(剎車(chē)鍵)按下時(shí) 實(shí)現P0-P2口同時(shí)亮;
;4號鍵(緊急狀況鍵) 按下時(shí) 實(shí)現P3.6和P3.7同時(shí)閃亮。
;按鍵按住時(shí),執行上述程序,按鍵松開(kāi)后關(guān)閉所有燈。
;=============================================

;按照題目要求,編寫(xiě)了程序,用 PROTEUS 繪出了仿真電路圖,運行起來(lái)如下所示:
  


;程序如下:
L_T BIT 00H ;按鍵標志位
R_T BIT 01H
S_T BIT 02H
J_J BIT 03H
SAME EQU 30H;按鍵緩沖區
Runw EQU 31H ;31H 32H,共16位數,當做流水燈
SP_B EQU 33H ;棧底位置
;--------------------------------
ORG 0000H
SJMP START
ORG 000BH
SJMP T0_INT
;--------------------------------
START:
MOV TMOD, #01H
MOV TH0, #4CH ;定時(shí)
MOV R3, #5 ;250ms閃爍一次
SETB TR0
MOV IE, #82H ;開(kāi)中斷
MOV SP, #SP_B
MOV Runw, #255
MOV Runw + 1, #0
;--------------------------------
M_LOOP:
MOV A, P1 ;讀一次按鍵
ANL A, #0FH
MOV SAME, A ;保存
MOV R7, #40 ;延時(shí)約20ms
MOV R6, #0
DJNZ R6, $
DJNZ R7, $ - 4
MOV A, P1 ;再讀一次按鍵
ANL A, #0FH
CJNE A, SAME, M_LOOP ;兩次不等則是抖動(dòng)
CPL A
MOV C, ACC.3 ;保存按鍵信息
MOV R_T, C
MOV C, ACC.2
MOV J_J, C
MOV C, ACC.1
MOV S_T, C
MOV C, ACC.0
MOV L_T, C
SJMP M_LOOP ;繼續去讀
;--------------------------------
T0_INT:
MOV TH0, #4CH ;定時(shí)
PUSH ACC
DJNZ R3, T0_END ;不到5次就退出
MOV R3, #5
;----------------------;以下每隔250ms執行一次
LEFT:
JNB L_T, RIGHT
MOV A, Runw
RRC A
MOV Runw, A
MOV A, Runw + 1
RRC A
MOV Runw + 1, A
MOV A, Runw
MOV ACC.7, C
MOV Runw, A
MOV P2, Runw
MOV P0, Runw + 1
SETB P3.7
CPL P3.6
JMP T0_END
RIGHT:
JNB R_T, STOP
MOV A, Runw
RLC A
MOV Runw, A
MOV A, Runw + 1
RLC A
MOV Runw + 1, A
MOV A, Runw
MOV ACC.0, C
MOV Runw, A
MOV P2, Runw
MOV P0, Runw + 1
CPL P3.7
SETB P3.6
JMP T0_END
STOP:
JNB S_T, JINJI
MOV P2, #0
MOV P0, #0
SETB P3.7
SETB P3.6
JMP T0_END
JINJI:
JNB J_J, NOTHING
MOV P2, #255
MOV P0, #255
CPL P3.7
CPL P3.6
JMP T0_END
NOTHING: ;關(guān)閉所有的燈
MOV P2, #255
MOV P0, #255
SETB P3.7
SETB P3.6
T0_END:
POP ACC
RETI
;--------------------------------
END
;試驗的時(shí)候,應該釋放了前一個(gè)按鍵,再按下另一個(gè)按鍵,這才能有理想的結果。
本文地址:http://selenalain.com/thread-161871-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

相關(guān)在線(xiàn)工具

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页