历史上的今天
返回首页

历史上的今天

今天是:2025年01月14日(星期二)

正在发生

2018年01月14日 | 一键六种击键模式编程方法

2018-01-14 来源:eefocus

;(程序已经通过实验,工作稳定。程序为了防止干扰特用了退出去抖,如果键一直按着也不会停止主程序,1.5秒后自动退出中断)

; 一键六种击键模式编程方法

;电路结构:P1口接8个LED(低电平使能)
;  P3.2口接键盘(占用中断)
;程序功能:可以用单键实现6种功能,
;  所有按键功能占用时间小于1秒.

;1秒内单击一次,1号灯亮
;1秒内双击,2号灯亮

;1秒内三次按键,3号灯亮
;1秒内长按,4号灯亮
;1秒内单击加长按,5号灯亮
;1秒内二次单击加长按,6号灯亮
;程序正常工作时,8号灯闪烁(2Hz)

;---------程序入口
ORG 0000H;主程序入口
JMP START
ORG 0003H;中断程序入口
JMP INTT0
ORG 0030H

;----------引脚定义
LED1 EQU P1.0;1秒内单击一次,1号灯亮
LED2 EQU P1.1;1秒内双击,2号灯亮
LED3 EQU P1.2;1秒内三次按键,3号灯亮
LED4 EQU P1.3;1秒内长按,4号灯亮
LED5 EQU P1.4;1秒内单击加长按,5号灯亮
LED6 EQU P1.5;1秒内二次单击加长按,6号灯亮
WLED EQU P1.7;程序正常工作闪烁指示灯
RAM1 EQU 20H ;按键功能寄存器
K1 EQU P3.2 ;按键(中断)
;-----------------------------------------初始化程序
START:;
SETB K1
CLR A
MOV R0,A
SETB IT0
SETB EX0
SETB EA

;--------------------------------------主程序循环
LOOP:;
CPL WLED;工作指示灯闪亮(表示程序正常)
CALL DL05S
JMP LOOP
;--------------------------------------按键中断程序
INTT0:;
CLR EA
PUSH PSW
PUSH ACC

CALL DL20MS;入键去抖
JB K1,INT0_OVER

MOV R5,#40;一次按键处理的总时间长度(800毫秒)

I1:;1秒内长按,4号灯亮
CALL DL20MS
JB K1,I2
DJNZ R5,I1
MOV R0,#4
CPL LED4
JMP INT0_WORK

I2:;1秒内单击一次,1号灯亮
CALL DL20MS
JNB K1,I3
DJNZ R5,I2
MOV R0,#1
CPL LED1
JMP INT0_WORK

I3:;1秒内单击加长按,5号灯亮
CALL DL20MS
JB K1,I4
DJNZ R5,I3
MOV R0,#5
CPL LED5
JMP INT0_WORK

I4:;1秒内双击,2号灯亮
CALL DL20MS
JNB K1,I5
DJNZ R5,I4
MOV R0,#2
CPL LED2
JMP INT0_WORK

I5:;1秒内二次单击加长按,6号灯亮
CALL DL20MS
JB K1,I6
DJNZ R5,I5
MOV R0,#6
CPL LED6
JMP INT0_WORK

I6:;1秒内三次按键,3号灯亮
MOV R0,#3
CPL LED3

INT0_WORK:;按键寄存器处理,备其它程序查用。
MOV 20H,R0
MOV R0,#0
MOV R5,#80

INT0_OVER:;按键程序退出去抖动。
CALL DL20MS
JB K1,I00
DJNZ R5,INT0_OVER

I00:;退出中断
< POP ACC 
POP PSW
SETB EA
RETI
;---------------------------------延时子程序
DELAY:

DL20MS:
MOV R6,#100
DL20MS_1:MOV R7,#100
DJNZ R7,$
DJNZ R6,DL20MS_1
RET

DL100MS:
MOV R4,#5
DL100MS_1:CALL DL20MS
DJNZ R4,DL100MS_1
RET

DL05S:
MOV R4,#25
DL05S_1:CALL DL20MS
DJNZ R4,DL05S_1
RET

END


推荐阅读

史海拾趣

Aten International公司的发展小趣事

随着多媒体技术的快速发展,专业影音产品的市场需求逐渐增长。Aten International紧跟市场趋势,投入大量研发资源,推出了一系列专业影音产品,包括高清视频切换器、音频分配器等。这些产品以其高品质、高稳定性受到了市场的广泛认可,为Aten International在电子行业树立了良好的口碑。

COMPUTAR公司的发展小趣事

随着技术的不断进步和市场需求的扩大,CBC株式会社开始寻求更广阔的发展空间。1960年,CBC香港公司成立,这标志着CBC的镜头产品开始走向国际市场。香港作为当时亚洲的金融中心和贸易枢纽,为CBC提供了宝贵的国际资源和市场机遇。通过香港公司的努力,CBC的镜头产品逐渐在国际市场上获得认可。

Electronic公司的发展小趣事

华为,作为中国的科技巨头,其在电子行业的发展历程中展现出了强大的技术实力和全球视野。华为在通信领域取得了多项技术突破,如5G技术的领先和智能手机拍照技术的创新。同时,华为还积极拓展全球市场,与全球运营商建立了广泛的合作关系。然而,面对国际市场的复杂环境和竞争压力,华为也面临着诸多挑战和不确定性。

EDAC公司的发展小趣事

ECS-B公司是一家以生产高端电子产品为主的企业。在竞争激烈的电子行业中,ECS-B公司深知品质是企业生存和发展的关键。因此,公司非常重视品质管理,从原材料采购、生产过程到成品检验,都实行严格的质量控制。ECS-B公司还建立了完善的品质管理体系,通过持续改进和优化生产流程,提升产品的品质水平。正是凭借卓越的品质和可靠的性能,ECS-B公司的产品在市场上赢得了良好的口碑和广泛的认可。

EXCELTA公司的发展小趣事

进入21世纪后,Excelta公司意识到国际市场的巨大潜力。为了拓展海外市场,公司制定了详细的国际化战略,并在全球范围内建立了多个生产基地和销售网络。通过与国际知名企业的合作和交流,Excelta不断吸收先进技术和管理经验,提升了自身的核心竞争力。同时,公司还积极参与国际展会和论坛,提升了品牌知名度和影响力。

BESTECH公司的发展小趣事

随着科技的不断进步和市场的不断变化,Excelta始终将技术创新作为公司发展的核心驱动力。公司投入大量资金和资源进行技术研发和产品创新,不断推出具有竞争力的新产品。其中,一款高性能的微型连接器产品凭借其出色的性能和稳定性在市场上取得了巨大成功。此外,Excelta还积极探索新的应用领域和市场机会,为公司的持续发展注入了新的活力。

问答坊 | AI 解惑

华为PCB规范

希望对你有用…

查看全部问答>

nios 2 开发

我将生成的elf 文件下载到板上的过程中出现如图的错误 我该如何去解决 谢谢…

查看全部问答>

ST7-DVP3多少钱?

                                 用rlink太痛苦了,好点的多少钱?…

查看全部问答>

用图片教你识别各种电子器件

用图片教你识别各种电子器件,很不错,从最简单的电阻 电容 到复杂的引脚众多的IC芯片,蛮实用的。允许我赚点小钱啊,多多包涵。。。      …

查看全部问答>

LM3S9B92板子少了个作键盘的程序和PC连接

连接之后PC机没有反映,驱动怎么装? 各位赐教!谢谢!…

查看全部问答>

杭州盈天科学仪器有限公司诚聘

诚聘电子设计师一名。 要求:①.大专以上学历,电子类相关专业; ②.三年以上电子电路设计经验; ③.熟悉单片机开发、汇编语言,熟练使用protel、cad等相关设计软件,精通模拟和数字电路,了解常用电子元器件的性能及特性; ④.能独立开发设计电路 ...…

查看全部问答>

CPLD执行一条语句需要多少时间

verilog中 比如always @(posedge clk)//CLK频率为125MHZ. 8ns周期 begin ...... end 实际begin end中的语句执行一次 要多少时间啊…

查看全部问答>

430循迹程序

#include #define TR_1_H        P1IN|=BIT1      //P1.1 #define TR_1_L        P1IN&=~BIT1     //P1.1 #define TR_2_H   & ...…

查看全部问答>

贡献launchpad 内部测温通过串口传输给PC

最近玩launchpad,写了个简单的小程序通过msp430g2553内部测量温度,然后通过串口通信上传给电脑,但是没有加上校正,只能简单的使用…

查看全部问答>

关于二期学生培训视频的放出(不断更新中)

大家好: 第二期学生的全免费培训已经正式开始,这一期的培训视频也是全部免费的除了周末外视频可能会不定时更新,敬请大家以后多关注。 以下是这一期的培训视频: 免费视频地址为: http://pan.baidu.com/share/link?shareid=484506&uk=1846172 ...…

查看全部问答>