立即注冊 登錄
返回首頁

uid:59980的個人空間

日志

一鍵多功能控制LED閃爍的匯編語言程序(絕對個人原創(chuàng))

已有 4092 次閱讀2014-10-14 20:24 |個人分類:鍵盤控制類

;;;;自己一時興起,寫的一鍵多功能匯編語言程序;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19:25 2014-10-14


LED EQU 30H;  給30H儲存單元起個名叫LED;
SP1 BIT P3.7; 給P3.7位起個名叫SP1;
ORG 0;         程序起始地址;

START: MOV LED,#0FEH;程序初始化;

NEXT: MOV A,LED;將初始化好的值送入ACC累加器中,設(shè)定P1.0燈閃爍;

KEY: ;;;;;;;;;;;;;;;;;;;;;;;;;;;按鍵判斷程序;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

          JB SP1,MIAN;   判斷按鍵SP1是否按下,否就去MIAN標(biāo)號處執(zhí)行;
 LCALL DELAY10MS; 按鍵消抖動;
 JB SP1,MIAN ;真的按下了,
 RL A;        A中的數(shù)據(jù)左移一位;
 JNB SP1,$;    判斷按鍵是否松開,沒松開就在此等待,松開了就順序執(zhí)行;
 CJNE A,#0EFH,MIAN; 判斷A是否等于立即數(shù)#0EFH;即是否到達(dá)P1.3位置了。不是返回MIAN標(biāo)號處執(zhí)行。
 JMP START;   是,跳回程序開頭,循環(huán)。
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;p1口閃爍主程序;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MIAN:
          MOV P1,A;       ;;;;;p1口的那個燈閃爍由A中的值決定。
 LCALL DELAY1S;  延時1秒
 MOV P1,#0FFH;   關(guān)閉P1口所有的燈。
 LCALL DELAY1S;  延時1秒
 JMP KEY;        跳到KEY標(biāo)號處執(zhí)行。

DELAY1S: 
  MOV    R3,#100 ;  延時子程序(1000ms) 修改R的值可以改變閃爍燈延時時間。取值范圍:0-255。
D1:    MOV    R4,#20 
D2:    MOV    R5,#248 
       DJNZ   R5,$ 
  DJNZ   R4,D2 
  DJNZ   R3,D1
  RET            ; 返回主程序
DELAY10MS:                 ;延時子程序(10ms)
D3:    MOV    R4,#20 
D4:    MOV    R5,#248 
       DJNZ   R5,$ 
       DJNZ   R4,D4 
       DJNZ   R3,D3
       RET            ;
       END  
            ; 匯編程序結(jié)束編程序結(jié)束

路過

雞蛋

鮮花

握手

雷人

評論 (0 個評論)

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

返回頂部