单个按键控制LED程序~按一下“SW6”,L7、L8发光,同时蜂鸣器发出声,再按一下“SW6”,L7、L8变暗,同时蜂鸣器停止发出声音

复制代码
 1     KEY_COMMON    bit    P3.2          ;按键公共端
 2     KEY_1        bit    p0.5
 3     BEEP        bit    p2.0            ;有缘蜂鸣器,其有两个引脚1VCC,2电容:振荡电路,电容大小即声音的高低
 4     LED_1        bit    p1.7
 5     LED_2        bit    p1.6
 6 
 7     org    0000H        
 8     jmp    MAIN
 9 
10 ;*******************************************    
11     org    0030H        ;Start program from 0030H        
12 MAIN:
13     mov    P0,#0FFH    ;Initialize the port    
14     mov    P1,#0FFH    
15     mov    P2,#0FFH    
16     mov    P3,#0FFH
17     
18     clr    KEY_COMMON    ;Clear the common line,接公共端清零
19 MAIN_LOOP:
20     jb    KEY_1,$        ;Wait for key down,引脚为高的时候跳转,否则始终执行该句话(不按即等)
21     call    DELAY        ;调用一个delay,前建消抖,通断好几次都看为一次
22     ;jnb    KEY_1,$
23     ;call    DELAY
24     cpl    LED_1        ;Change the state of LED1,LED_1,LED_2,BEEF三个端口取反
25     cpl    LED_2        ;Change the state of LED2
26     cpl    BEEP      
27     ;jnb    KEY_1,$    ;等着放开
28     ;call    DELAY    ;后建消抖
29     jmp    MAIN_LOOP     ;回到jb
3031     ret
32 ;****************************************************
33 DELAY:
34     mov    r7,#200
35 DELAY_LOOP:
36     mov    r6,#200。  ;赋初值
37     djnz    r6,$     ;循环200次
38     mov    r6,#200
39     djnz    r6,$
40 
41     djnz    r7,DELAY_LOOP
42     ret
43 ;****************************************************
44     END    
复制代码

 

posted on   罗小罗佳油  阅读(79)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程
点击右上角即可分享
微信分享提示