找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1553|回复: 1
打印 上一主题 下一主题
收起左侧

给大家分享一个一键多能灯单片机源程序(汇编语言)

[复制链接]
跳转到指定楼层
楼主
ID:639106 发表于 2020-5-7 07:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一键多能开关.7z (114.91 KB, 下载次数: 13)   先上程序。

哈哈!大家如果不想花黑币,何不来粘贴免费的程序(所有代码如下):


;
;;
;;;
;;;一键多能开关程序
;;;  
;;;电路结构:P1口接8个LED(低电平使能)
;;;P3.3口接键盘(占用中断)
;;;
;;;程序功能:
;;;可以用单键实现6种功能,
;;;所有按键功能占用时间小于1秒.
;;;1秒内单击一次,1号灯亮
;;;1秒内双击,2号灯亮
;;;1秒内三次按键,3号灯亮
;;;1秒内长按,4号灯亮
;;;1秒内单击加长按,5号灯亮
;;;1秒内二次单击加长按,6号灯亮
;;;程序正常工作时,8号灯闪烁(2HZ)
;;;
;;
;

;----------------------------------------程序入口
ORG 0000H;主程序入口
LJMP START
ORG 0013H;中断程序入口
LJMP INTT1

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.3 ;按键(中断)

;-----------------------------------------初始化程序
START:

CLR P3.7 ;选通WS 系列实验板的LED 流水灯的电源控制端

SETB K1
CLR A
MOV R0,A
SETB IT1
SETB EX1
SETB EA

;--------------------------------------主程序循环
LOOP:;
CPL WLED;工作指示灯闪亮(表示程序正常)
CALL DL05S
JMP LOOP

;--------------------------------------按键中断程序
INTT1:
CLR EA
PUSH PSW
PUSH ACC

CALL DL20MS;入键去抖
JB K1,INT1_OVER

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

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

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

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

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

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

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


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

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

I00:;退出中断
POP ACC
POP PSW
SETB EA
RETI

;---------------------------------延时子程序
DELAY:

DL20MS:      ;
MOV R6,#255
DL20MS_1:MOV R7,#255
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


评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:99987 发表于 2020-5-8 21:53 | 只看该作者
非常不错,汇编源码。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表