找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机两键控制豆浆机汇编程序(芯片AT89C2051)

[复制链接]
跳转到指定楼层
楼主
ID:76127 发表于 2015-4-5 01:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
;-------------------------------------------------------------两键控制豆浆机程序(芯片AT89C2051)------------------------------------------------------------
;P3.2中断口作为水位检测端
;=========================================聚宝工业设计室(2011-12)==============================================
LEDPOWER BIT P1.7 ;电源开关显示
LEDGD BIT P1.6 ;干豆显示
LEDSD  BIT P1.5 ;湿豆显示
LEDMH BIT P1.4 ;米糊显示
;----------------------------------------------------------------------------
DM  BIT P1.3 ;电机控制端
DH  BIT P1.2 ;发热管控制
;----------------------------------------------------------------------------
KG  BIT P1.1 ;开关键
GN  BIT P1.0 ;功能键
;=========================================================================================
ORG 0000H
JMP START
ORG 00BH
JMP STOP_1  ;水位检测中断服务程序
ORG 0030H
START:
SETB EA
SETB EX0
MOV P1,#00H
ACALL YSH1
ACALL YSH1
ACALL YSH1  ;端口初始化调延时等待
MOV P1,#0FFH
ACALL YSH1
ACALL YSH1
ACALL YSH1
;----------------------------------------------------------------------------
LOOP0:
JB KG,LOOP1 ;开/关功能键检测
ACALL YSH2  ;去抖动延时
JB KG,LOOP1
POWER:
JNB KG,$   ;如果还没有松开按键则等待松开
CPL LEDPOWER  ;电源 控制 P1.7
JMP LOOP0
;------------------------------------------------------------------------------------------------------------------------
LOOP1:
CJNE A,#03,GOOD  ;判断功能键是否按了3次
MOV A,#00H
GOOD:
JB GN,LOOP0  ;功能选择键检测
ACALL YSH2   ;去抖动延时
JB GN,LOOP0
JNB GN,$   ;等待功能键松开
;----------------------------------------------------------------------------------
JMP THERRSUN  ;转向三功能豆浆控制程序
THERRSUN:
CJNE A,#00H,SHI_DOU
INC A
JMP GANG_DOUSTART ;转向干豆程序
SHI_DOU:
CJNE A,#01H,MI_HU
INC A
JMP SHI_DOUSTART ;转向湿豆程序
MI_HU:
CJNE A,#02H,LOOP0  ;循环检测
INC A
JMP MI_HUSTART  ;转向米糊程序
;-----------------------------------------------------------------------------------------------------------------------
GANG_DOUSTART:
CLR LEDGD ;煮干豆程序(P1.6口LED显示)
CLR DH  ;让发热管加热水
SETB DM  ;断开电机
ACALL YS_1  ;调用加热水5分钟延时
CLR DM  ;接通过电机,断开发热管,开始打豆浆
SETB DH  ;断开发热管
ACALL YS_2  ;调用打豆浆延时5分钟
CLR DH  ;接通发热管
SETB DM  ;断开电机
ACALL YS_1  ;煮豆浆5分钟
CLR DM
SETB DH
ACALL YS_1  ;再打5分钟豆浆
SETB DM
CLR DH
ACALL YS_1  ;煮豆浆5分钟
JMP STOP  ;完成干豆的打磨和煮豆浆,转到停机程序
;-----------------------------------------------------------------------------------------------------------------------
SHI_DOUSTART:
CLR LEDSD  ;煮湿豆程序(P1.5口LED显示)
CLR DM  ;先打豆后才煮豆浆
SETB DH  
ACALL YS_1  ;打豆5分钟
CLR DH  ;煮豆浆
SETB DM
ACALL YS_1  ;煮5分钟
CLR DM  ;再打豆
SETB DH
ACALL YS_1  ;打豆5分钟
SETB DM  ;煮豆浆
CLR DH
ACALL YS_1  ;煮5分钟
JMP STOP
;-----------------------------------------------------------------------------------------------------------------------
MI_HUSTART:
CLR LEDMH ;煮干豆程序(P1.4口LED显示)
CLR DH  ;让发热管加热水
SETB DM  ;断开电机
ACALL YS_1  ;调用加热水5分钟延时
CLR DM  ;接通过电机,断开发热管,开始打豆浆
SETB DH  ;断开发热管
ACALL YS_2  ;调用打豆浆延时5分钟
CLR DH  ;接通发热管
SETB DM  ;断开电机
ACALL YS_1  ;煮豆浆5分钟
CLR DM
SETB DH
ACALL YS_1  ;再打5分钟豆浆
SETB DM
CLR DH
ACALL YS_1  ;煮豆浆5分钟
JMP STOP  ;完成干豆的打磨和煮豆浆,转到停机程序
;==========================================================================
STOP:
JMP START
STOP_1:
MOV P1,#00H
JMP $
;========================================端口初始==============
YSH1:
MOV R3,#250
D0: MOV R4,#250
DJNZ R4,$
DJNZ R3,D0
RET
;----------------------------------------------------------------按键去抖----------------------
YSH2:
MOV R3,#10
D1:  
MOV R4,#250
DJNZ R4,$
DJNZ R3,D1
RET
;----------------------------------------------------------------5分钟----------------------------
YS_1:
MOV R3,#50
D2: MOV R4,#50
D3: MOV R2,#50
DJNZ R2,$
DJNZ R4,D3
DJNZ R3,D2
RET
;----------------------------------------------------------------2分钟---------------------------
YS_2:
MOV R3,#50
D4: MOV R4,#50
D5: MOV R2,#50
DJNZ R2,$
DJNZ R4,D5
DJNZ R3,D4
RET
END

;以上程序经过试验OK!

评分

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

查看全部评分

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

使用道具 举报

沙发
ID:437129 发表于 2024-10-24 14:38 | 只看该作者
楼主辛苦了,虽然看不懂汇编,先赞一个!
回复

使用道具 举报

板凳
ID:352736 发表于 2024-10-26 21:57 | 只看该作者
楼主有原理图吗
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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