历史上的今天
返回首页

历史上的今天

今天是:2024年12月14日(星期六)

2019年12月14日 | 51单片机汇编学习例程(1)——KEY篇

2019-12-14 来源:51hei

1.ASM1_KEY:按键控制LED亮灭,3种情况
KEY.jpg?imageView2/2/w/550

/**

******************************************************************************

*         @file            asm.asm

*         @author          Alex——小白

*         @version         V1.0

*         @date            2019.9.1

*         @brief           3种方法实现KEY to LED

******************************************************************************

*         @attention        All Rights Reserved  

**/


                ORG     0030H                        ;程序执行的起始地址                                

                LJMP          Main                   ;跳转到main函数

                ORG     0100H                        ;程序跳转到0100H开始执行

;方法1:

        Main:                                        ;最简单的按键赋值(8个按键)

                MOV                P1,P0             ;将P0状态赋给P1

                SJMP        Main                     ;跳转到main,死循环


;方法2:

;        Main:                                 ;P0.0按键控制P1.0的LED(1个按键)

;                JB                P0.0,Over   ;判断按键是否检测到,若无跳到Main

;                LCALL        Delay            ;若有,延时消抖

;                JB                P0.0,Over   ;再次判断按键是否检测到

;                JNB                P0.0,[        DISCUZ_CODE_1        ]nbsp;                       ;长按检测,若有则一直死循环

;                CPL                P1.0       ;若有按键,则LED状态翻转(CPL表示去反)

;        Over:

;                SJMP        Main              ;跳转到main,死循环

                

;方法3:

;        Main:                                 ;P0.0-1按键控制P1.0-1的LED(2个按键)

;                JB                P0.0,Next   ;判断P0.0按键是否检测到,若无跳到Next

;                LCALL        Delay            ;若有,延时消抖

;                JB                P0.0,Next   ;再次判断按键是否检测到

;                JNB                P0.0,[        DISCUZ_CODE_1        ]nbsp;                       ;长按检测,若有则一直死循环

;                CPL                P1.0       ;若有按键,则LED状态翻转

;        Next:

;                JB                P0.1,Over   ;判断P0.1按键是否检测到,若无跳到Over

;                LCALL        Delay            ;若有,延时消抖

;                JB                P0.1,Over   ;再次判断按键是否检测到

;                JNB                P0.1,[        DISCUZ_CODE_1        ]nbsp;                       ;长按检测,若有则一直死循环

;                CPL                P1.1       ;若有按键,则LED状态翻转

;        Over:                

;                SJMP        Main              ;跳转到main,死循环                

                

        Delay:                                 ;t=t1*20=10ms,修改R6的值即可更改时间(不精准)

                MOV                R6, #014H                ;014H=20

        D1:                                                

                MOV                R7, #0FAH                ;t1=250*2=500

        D2:                

                DJNZ        R7, D2             ;R7=250自减,直到为0跳出循环,双周期

                DJNZ        R6, D1             ;R6=020自减,直到为0跳出循环,双周期

                RET


        END        

推荐阅读

史海拾趣

ConnectBlue公司的发展小趣事

ConnectBlue公司成立于2000年,当时正值无线通信技术快速发展的时期。公司创始人凭借对无线技术的深刻理解和市场需求的敏锐洞察,决定专注于无线系统的研发和生产。起初,公司面临资金紧张和技术难题,但创始团队凭借坚韧不拔的精神,克服了一个又一个困难,成功开发出了一系列具有竞争力的无线模块产品。

迈翔科技(COILMX)公司的发展小趣事

随着技术的不断进步和产品线的不断丰富,迈翔科技开始积极拓展国内外市场。公司不仅在国内市场取得了良好的销售业绩,还成功打入了欧美、东南亚等国际市场。同时,公司也与众多知名企业建立了长期稳定的合作关系,进一步提升了品牌影响力和市场竞争力。

无锡友达公司的发展小趣事

面对电子行业的快速发展和智能化趋势,无锡友达积极响应,加快智能化转型和升级。公司不仅在产品设计和生产上引入智能化技术,还通过建立智能化管理系统,提升企业的运营效率和产品质量。此外,无锡友达还积极参与各类行业展会和交流活动,与业界同行共同探讨智能化转型的未来趋势。

Hi-G Relays公司的发展小趣事

无锡友达注重企业文化建设和团队建设,致力于为员工创造一个良好的工作环境和发展空间。公司设有完善的培训及考核晋升制度,员工上升空间广阔。同时,无锡友达还积极与省内各大高校合作,建立产学研基地,培养出一二级工程师50余名。这些优秀的人才为公司的发展提供了有力的人才保障。

请注意,以上故事均为根据公开信息概括的框架性内容,具体细节可能因实际情况而有所不同。

Elektron公司的发展小趣事

随着技术的不断进步和市场需求的不断变化,Elektron公司不断进行技术创新和产品升级。公司成功开发出适用于船上使用的单点和多点焊接整流器以及弧光灯的电影整流器等产品,进一步扩大了市场份额。同时,Elektron还注重产品质量和性能的提升,通过引进先进的生产设备和工艺,不断提高产品的可靠性和耐用性。

灿科盟(Ckmtw)公司的发展小趣事

为了提升产品质量,增强客户信任,灿科盟在2008年成功通过了ISO9001:2000版质量管理体系认证。这一认证标志着公司在质量管理方面达到了国际标准,也为公司赢得了更多客户的青睐。此后,公司继续加强质量管理体系建设,不断提升产品质量和服务水平。

问答坊 | AI 解惑

用万用表怎样进行PCB抄板!!!!

请问有谁用万用表抄过PCB电路板,不是用抄板软件!如果有的话,能否告知小弟,可以把经验分享一下吗?…

查看全部问答>

大家来讨论一下今年的全国大学生电子设计大赛吧

本帖最后由 paulhyde 于 2014-9-15 09:35 编辑 听说NEC公司送了芯片,可是为什么有的学校拿到了,有的学校没拿到呢?  …

查看全部问答>

急求!BoeBot.h

HELLO.C(5): 警告 C206: \'uart_Init\': missing function-prototype HELLO.C(10): 警告 C206: \'DELAY\': missing function-prototype HELLO.C(10): 错误 C267: \'DELAY\': requires ANSI-style prototype 这是用Keil编译程序时出现的错误,应 ...…

查看全部问答>

单片机 stc isp 打不开

如题所述。我在安装isp运行或者 用绿色版运行之后都提示缺少一个文件 但是我的文件夹下有这个文件 而且我去网上下了新的解压替换了之后还是这样  。isp下了好几个了都是这样  。请高手指点一下。 注:我没有连接单片机 只是单 ...…

查看全部问答>

Vxworks网络编程提问

我在Vxworks下实现以太网通讯,采用UDP协议,在调试状态下,程序运行正常,用ping指令ping目标机和测试程序测试均正常,但将程序作成映像下载到DOC中运行时,却发现无法ping通目标机,不知怎么回事,请高手解释一下,另外,我在程序中开了三个任务 ...…

查看全部问答>

请教WinCE6.0开发中关于Emulator的问题(如何自制SDK,Emulator)

我刚刚接触WinCE,我需要做的事情是在一般WinCE设备上开发应用程序,我打算自己在PB6.0上导出一个一般的WinCE6.0的SDK并安装,然后在VS2005上写代码,通过WinCE6.0仿真器看到代码的效果。 现在我按照网上的文章“WinCE6.0安装顺序”依次安装了下列 ...…

查看全部问答>

CSR蓝牙开发:Bluelab 3.6.2

我刚开始接触蓝牙开发,现在在学习Bluelab 3.6.2提供的Demo code,有做过相关蓝牙开发的吗,提供一下学习方法,适合入门,谢谢!…

查看全部问答>

怎么实现PWM信号五分频

各位高手,帮帮小弟吧!怎么才能实现占空比可变的PWM信号五分频。单片机输出的最低频率是3.9KHz,现在需要降低到500Hz左右,怎么样才能实现呢?不胜感激…… [ 本帖最后由 daijianguo28 于 2011-7-10 12:23 编辑 ]…

查看全部问答>

2010山东省大学生电子设计大赛优秀论文

本帖最后由 paulhyde 于 2014-9-15 09:25 编辑 2010山东省大学生电子设计大赛优秀论文  …

查看全部问答>

ARM学习全集书籍资料免费下载

ARM学习全集1书籍资料免费下载 [ 本帖最后由 謃塰 于 2011-8-12 16:27 编辑 ]…

查看全部问答>