找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 2830|回復(fù): 0
收起左側(cè)

51單片機(jī)匯編學(xué)習(xí)例程(1)——KEY篇

[復(fù)制鏈接]
ID:100312 發(fā)表于 2019-12-13 20:16 | 顯示全部樓層 |閱讀模式
1.ASM1_KEY:       按鍵控制LED亮滅,3種情況
KEY.jpg
  1. /**
  2. ******************************************************************************
  3. *         @file            asm.asm
  4. *         @author          Alex——小白
  5. *         @version         V1.0
  6. *         @date            2019.9.1
  7. *         @brief           3種方法實(shí)現(xiàn)KEY to LED
  8. ******************************************************************************
  9. *         @attention        All Rights Reserved  
  10. **/

  11.                 ORG     0030H                        ;程序執(zhí)行的起始地址                                
  12.                 LJMP          Main                        ;跳轉(zhuǎn)到main函數(shù)
  13.                 ORG     0100H                        ;程序跳轉(zhuǎn)到0100H開始執(zhí)行
  14. ;方法1:
  15.         Main:                                                ;最簡(jiǎn)單的按鍵賦值(8個(gè)按鍵)
  16.                 MOV                P1,P0                        ;將P0狀態(tài)賦給P1
  17.                 SJMP        Main                        ;跳轉(zhuǎn)到main,死循環(huán)

  18. ;方法2:
  19. ;        Main:                                                ;P0.0按鍵控制P1.0的LED(1個(gè)按鍵)
  20. ;                JB                P0.0,Over                ;判斷按鍵是否檢測(cè)到,若無跳到Main
  21. ;                LCALL        Delay                        ;若有,延時(shí)消抖
  22. ;                JB                P0.0,Over                ;再次判斷按鍵是否檢測(cè)到
  23. ;                JNB                P0.0,[        DISCUZ_CODE_1        ]nbsp;                       ;長(zhǎng)按檢測(cè),若有則一直死循環(huán)
  24. ;                CPL                P1.0                        ;若有按鍵,則LED狀態(tài)翻轉(zhuǎn)(CPL表示去反)
  25. ;        Over:
  26. ;                SJMP        Main                        ;跳轉(zhuǎn)到main,死循環(huán)
  27.                
  28. ;方法3:
  29. ;        Main:                                                ;P0.0-1按鍵控制P1.0-1的LED(2個(gè)按鍵)
  30. ;                JB                P0.0,Next                ;判斷P0.0按鍵是否檢測(cè)到,若無跳到Next
  31. ;                LCALL        Delay                        ;若有,延時(shí)消抖
  32. ;                JB                P0.0,Next                ;再次判斷按鍵是否檢測(cè)到
  33. ;                JNB                P0.0,[        DISCUZ_CODE_1        ]nbsp;                       ;長(zhǎng)按檢測(cè),若有則一直死循環(huán)
  34. ;                CPL                P1.0                        ;若有按鍵,則LED狀態(tài)翻轉(zhuǎn)
  35. ;        Next:
  36. ;                JB                P0.1,Over                ;判斷P0.1按鍵是否檢測(cè)到,若無跳到Over
  37. ;                LCALL        Delay                        ;若有,延時(shí)消抖
  38. ;                JB                P0.1,Over                ;再次判斷按鍵是否檢測(cè)到
  39. ;                JNB                P0.1,[        DISCUZ_CODE_1        ]nbsp;                       ;長(zhǎng)按檢測(cè),若有則一直死循環(huán)
  40. ;                CPL                P1.1                        ;若有按鍵,則LED狀態(tài)翻轉(zhuǎn)
  41. ;        Over:               
  42. ;                SJMP        Main                        ;跳轉(zhuǎn)到main,死循環(huán)               
  43.                
  44.         Delay:                                                ;t=t1*20=10ms,修改R6的值即可更改時(shí)間(不精準(zhǔn))
  45.                 MOV                R6, #014H                ;014H=20
  46.         D1:                                                
  47.                 MOV                R7, #0FAH                ;t1=250*2=500
  48.         D2:               
  49.                 DJNZ        R7, D2                        ;R7=250自減,直到為0跳出循環(huán),雙周期
  50.                 DJNZ        R6, D1                        ;R6=020自減,直到為0跳出循環(huán),雙周期
  51.                 RET

  52.         END        

復(fù)制代碼

ASM1_KEY.zip (65.37 KB, 下載次數(shù): 15)



回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表