接口技术——洗衣机控制器
实现功能:
若洗衣机定时到,停机并发出音响信号,用两个数码管显示洗涤预置时间(分钟),按倒计时方式作计时显示,用3只LED灯表示“正转”、“反转”、“暂停”三个状态。能按键设置洗衣机定时时间,倒计时显示分和秒;能按键调整洗衣机的转速;洗衣机每转动一定的时间,会自动改变转动方向。
具体设计:
1 CPU与各芯片连接电路图:
CPU通过总线与8255A芯片(片选CS1)、8253芯片(片选CS2)、8259A芯片(片选CS3)、74HC273芯片(片选CS5)以及实验箱连接。8253为定时器,设置T0、T1两个计数器,将OUT0连接8259A的IR0端以及8253的CLK1端,触发中断给电机送出数据,控制电机旋转,T1实现1s定时,将OUT1连接8259A的IR1端,每过1s触发中断,改变计数变量,实现计时功能。8255控制数码管的显示以及键盘的扫描。74HC273控制LED灯的显示和蜂鸣器。
2.8255A控制数码管及键盘
8255A的工作方式为:PA口和PB口方式0输出,用于控制数码管;PC口低四位方式0输入,用于接收按键信息,PC口高四位方式0输出,用于控制电机。
3.步进电机模拟风扇转,步进电机的A、B、C、D分别与8255的PC4、PC5、PC6、PC7相连。
4.74HC273控制LED灯和蜂鸣器
74HC273的输出端与F4区的8个发光二极管以及蜂鸣器相连。
程序流程图:
完整汇编代码:
.MODEL TINY
EXTRN InitKeyDisplay:NEAR, GetKeyA:NEAR, DisPlay8:NEAR
IO8259_0 EQU 0250H
IO8259_1 EQU 0251H
Con_8253 EQU 0263H
T0_8253 EQU 0260H
T1_8253 EQU 0261H
Con_8255 EQU 0273H
PA_8255 EQU 0270H
PB_8255 EQU 0271H
PC_8255 EQU 0272H
ADDR_273 EQU 0230H.STACK 100.DATA
GREEN DB 11111110B ;绿灯亮,正转
YELLOW DB 11111101B ;黄灯亮,反转
RED DB 11111011B ;红灯亮,停止
XIANG DB 11110111B ;停止时蜂鸣器响
StepControl DB 0 ;下一次送给步进电机的值
buffer DB 8 DUP(0) ;8字节显示缓冲区
SpeedNo DB 0 ;选择哪一级速度
StepDelay DB 0 ;转动一步后,延时常数
StartStepDelay DB 0 ;若选择速度过快,延时由长到短,最终使用对应延时常数
StartStepDelay1 DB 0 ;StartStepDelay
bFirst DB 0 ;有没有转动过步进电机
bRatation DB 0 ;转动状态 0 反转 1 正转
ReDisplayFlag DB 0 ;0表示计数值不变,1表示计数值发生改变
bChange DB 0 ;改变转向的时间
AutoFlag DB 0 ;自动改变转向的标志
StepTime DB 0 ;倒计时分
Second DB 0 ;倒计时秒
StepDelayTab: DB 100,91,75,62,50,42,36,32,28,24 ;转速级别
DriverTab: DW Speed_up ;提高转速DW Speed_Down ;降低转速DW Direction ;转动方向DW Exec ;步进电机根据方向、转速、步数开始转动DW Reset ;重启.CODE
START: MOV AX,@DATAMOV DS,AXMOV ES,AXNOPCALL InitKeyDisplay ;初始化键盘、数码管控制器(8255)MOV bFirst,1 ;有没有转动过步进电机MOV bRatation,1MOV StepControl,33H ;下一次送给步进电机的值MOV SpeedNo,5 ;第五级速度CALL Init8253CALL Init8259CALL WriIntverMOV bChange,30MOV StepTime,30 ;初始30分钟MOV buffer,0 ;显示缓冲器初始化MOV buffer+1,0 ;秒用两位MOV buffer+2,0MOV buffer+3,0 ;分用两位MOV buffer+4,10HMOV AL,SpeedNoMOV buffer+5,AL ;显示速度级别MOV buffer+6,10HMOV buffer+7,0 ;显示转动方向MOV DX,ADDR_273MOV AL,REDOUT DX,AL
BUFFUP: LEA SI,bufferCALL Display8CMP AutoFlag,1MOV AutoFlag,0JZ JIXU
ANJIAN: CALL GetKeyAJB SHUZICMP ReDisplayFlag,0JZ ANJIANMOV ReDisplayFlag,0CALL LedDisplayJMP BUFFUP
JIXU: MOV bChange,30CALL LedLightJMP TIMER1_2
SHUZI: CLIPUSH DXPUSH AXMOV DX,ADDR_273MOV AL,REDOUT DX,ALPOP AXPOP DXCMP AL,10JNB CAOZUOMOV AH,buffer+2MOV buffer+3,AHMOV buffer+2,ALMOV Second,0MOV buffer+1,0MOV buffer,0JMP BUFFUP
CAOZUO: CMP AL,15JNB BUFFUPLEA SI,DriverTabSUB AL,10SHL AL,1XOR AH,AHMOV BX,AXJMP CS:[SI+BX]
Direction:CMP bRatation,0JZ ClockwiseMOV bRatation,0MOV buffer+7,1
AntiClockwise: CMP bFirst,0JZ AntiClockwise1MOV StepControl,91HJMP Direction1
AntiClockwise1: MOV AL,StepControlROR AL,2MOV StepControl,ALJMP Direction1
Clockwise: MOV bRatation,1MOV buffer+7,0CMP bFirst,0JZ Clockwise1MOV StepControl,33HJMP Direction1
Clockwise1: MOV AL,StepControlROL AL,2MOV StepControl,AL
Direction1:JMP BUFFUP
;提高转速
Speed_up: MOV AL,SpeedNoCMP AL,9JZ Speed_up2
Speed_up1: INC ALMOV SpeedNo,ALMOV buffer+5,AL
Speed_up2: JMP BUFFUP
;降低转速
Speed_Down: MOV AL,SpeedNoCMP AL,1JZ Speed_Down1DEC ALMOV SpeedNo,AL MOV buffer+5,AL
Speed_Down1: JMP BUFFUP
;运行电机
Exec: MOV bFirst,0CALL TakeStepTimeLEA BX,StepDelayTabMOV AL,SpeedNoXLATMOV StepDelay,ALCMP AL,50JNB Exec1MOV AL,50
Exec1: MOV StartStepDelay,ALMOV StartStepDelay1,ALCALL LedLightSTIJMP BUFFUP
Reset: JMP STARTSTOP: CLIPUSH DXPUSH AXPUSH CXMOV CX,3MOV DX,ADDR_273
THREE: MOV AL,XIANGOUT DX,ALCALL Delay1MOV AL,0FFHOUT DX,ALCALL Delay0LOOP THREEMOV AL,REDOUT DX,ALPOP CXPOP AXPOP DXJMP BUFFUP
TIMER0: PUSH AXPUSH DXDEC StartStepDelayJNZ TIMER0_1MOV AL,StartStepDelay1CMP AL,StepDelayJZ TIMER0_2DEC ALMOV StartStepDelay1,AL
TIMER0_2: MOV StartStepDelay,ALMOV AL,StepControlMOV DX,PC_8255OUT DX,ALCMP bRatation,0JNZ TIMER0_3ROR AL,1JMP TIMER0_4
TIMER0_3:ROL AL,1
TIMER0_4:MOV StepControl,AL
TIMER0_1: MOV DX,IO8259_0MOV AL,20HOUT DX,ALPOP DXPOP AXIRET
zhuanxiang: MOV AutoFlag,1JMP Direction
TIMER1: PUSH AXPUSH DXCMP Second,0JNZ TIMER1_1CMP StepTime,0JZ STOPMOV Second,60DEC StepTime
TIMER1_1:DEC SecondDEC bChangeJZ zhuanxiang
TIMER1_2: MOV ReDisplayFlag,1MOV DX,IO8259_0MOV AL,24HOUT DX,ALPOP AXPOP DXIRET
LedLight PROC NEARPUSH DXPUSH AXMOV DX,ADDR_273CMP bRatation,1JZ LedLight1MOV AL,GREENJMP LedLight2
LedLight1: MOV AL,YELLOW
LedLight2: OUT DX,ALPOP AXPOP DXRET
LedLight ENDP
;根据输入的数字计算分钟
TakeStepTime PROC NEARMOV AL,buffer+3XOR BX,BXMOV BL,10MUL BLADD AL,buffer+2CMP AL,0JZ TakeStepTime_1MOV StepTime,AL
TakeStepTime_1: RET
TakeStepTime ENDPLedDisplay PROC NEARPUSH AXXOR AX,AXMOV AL,StepTimeMOV BL,10DIV BLMOV buffer+2,AHMOV buffer+3,ALXOR AX,AXMOV AL,SecondMOV BL,10DIV BLMOV buffer+0,AHMOV buffer+1,ALPOP AXRET
LedDisplay ENDP
;不同长短的延时
Delay0 PROC NEARPUSH CXMOV CX,30000
Delay0_1: LOOP Delay0_1POP CXRET
Delay0 ENDP
Delay1 PROC NEARPUSH CXMOV CX,2
Delay11: CALL Delay0LOOP Delay11POP CXRET
Delay1 ENDP
;8253初始化
Init8253 PROC NEAR MOV DX,Con_8253MOV AL,35H ;00110101B T0控制字OUT DX,AL ;计数器T0设置在模式2MOV DX,T0_8253 ;TO端口地址MOV AL,00H ;低8位OUT DX,ALMOV AL,02H ;高8位,初值200OUT DX,ALMOV DX,Con_8253MOV AL,77H ;0111,0111B T1控制字OUT DX,AL ;计数器T1设置在模式2MOV DX,T1_8253MOV AL,00H ;低8位OUT DX,ALMOV AL,50H ;高8位,初值5000OUT DX,ALRET
Init8253 ENDP
;8259初始化
Init8259 PROC NEARMOV DX,IO8259_0 ;MOV AL,13H ;00010011OUT DX,ALMOV DX,IO8259_1MOV AL,08H ;00001000OUT DX,ALMOV AL,09H ;00001001OUT DX,ALMOV AL,0FCH ;11111100OUT DX,ALRET
Init8259 ENDPWriIntver PROC NEARPUSH ESMOV AX,0MOV ES,AXMOV DI,20HLEA AX,TIMER0STOSWMOV AX,CSSTOSWLEA AX,TIMER1STOSWMOV AX,CSSTOSWPOP ESRET
WriIntver ENDPEND START
接口技术——洗衣机控制器相关推荐
- 计算机通过io接口对什么实现控制器,《微机原理与接口技术》第6章 微计算机IO接口基础.ppt...
<微机原理与接口技术>第6章 微计算机IO接口基础.ppt 第6章 微计算机IO接口基础 2.间接I/O端口寻址方式 (1) 输入指令格式: IN AL, DX 或 IN AX, DX 指 ...
- 基于VHDL的全自动洗衣机控制器设计
全自动洗衣机控制器设计 <数字电子技术>课程设计报告 <数字电子技术>课程设计任务书 设计内容与要求 1.概述 1.1EDA简介 1.2开发软件quartus简介 2.基本原理 ...
- 智能家居:以ZigBee技术实现控制器设计
本文转自公众号 | 嵌入式ARM 本文所介绍的智能家居控制器利用ZigBee技术将家庭中许多相对独立的家用电器构成一个统一的智能家居系统,从而方便对家居中的各种电器设备进行本地操作,同时也可通过互联网 ...
- 单片机c语言程序开发洗衣机,基于51单片机洗衣机控制器的设计(附程序)☆
基于51单片机洗衣机控制器的设计(附程序)☆(任务书,开题报告,中期检查表,毕业论文21000字,程序) 摘 要 洗衣机是人们日常生活中常见的一种家电,已经成为人们生活中不可缺少的家用电器.在工业生 ...
- 微型计算机的什么接口主要作为打印机接口,微型计算机及其接口技术试题及答案(2006年10月)...
微型计算机及其接口技术试题及答案(2006年10月) 以下是部分内容预览,注意图片没有显示出来,WORD里是有的.请到下载区下载完整的试题及答案. 全国2006年10月自考微型计算机及其接口技术试卷 ...
- 脑机接口技术重大突破!首次帮助瘫痪男子恢复运动和触觉
来源:网易智能 触觉是我们感受外部世界不可或缺的感官,但许多人却因脊髓损伤或因患病瘫痪而失去这种能力.不过,最近非营利组织巴特尔研究所的研究人员宣称,他们首次利用脑机接口(BCI)技术帮助一名美国瘫痪 ...
- 南航计算机硬件实验,南航80X86微机原理及接口技术实验指导书.pdf
80X86 微机原理及接口技术实验 指导书 卓然 编著 2015-3-1 序 错误!未定义书签. 第一章 TD-PIT++实验系统简介 3 1. 概述 3 2. 系统总线电路单元 5 3. 接口实验单 ...
- 微型计算机原理及应用李干林,微机原理及接口技术李干林习题参考解答-20210415154329.docx-原创力文档...
Document serial number[NL89WT-NY98YT-NC8CB-NNUUT-NUT108] Document serial number[NL89WT-NY98YT-NC8CB- ...
- 《微机原理及接口技术》第08章在线测试
<微机原理及接口技术>第08章在线测试 <微机原理及接口技术>第08章在线测试 剩余时间: 59:54 答题须知:1.本卷满分20分. 2.答完题后, ...
最新文章
- Rocksdb的事务(二):完整事务体系的 详细实现
- O(N)的时间复杂度找出a[N]中那个重复的数字
- 醉话没有测试(QA)的测试
- java掩码校验_Java 检查Ip掩码
- JAVA的方法的定义和调用
- 递归转化成非递归过程_8086微处理器中的递归和重入过程
- Nmap流量特征修改(NTA、IDS、IPS、流量审计)
- Netty学习总结(3)——Netty百万级推送服务
- Linux系统内存还有剩余就开始使用swap交换区了
- Java-----jar反编译修改重新打包
- Weak Pair (dfs+树状数组)
- could not access network location \Hewlett-Packard\\
- Java重命名文件的方法_java重命名文件(附道客巴巴文档下载方法)
- 微信小程序开源框架wxSortPickerView:微信小程序首字母排序选择表
- vue 渲染函数处理slot_Vue渲染函数详解
- Springboot 服务端为App集成支付宝支付
- UI设计书籍推荐,这三本好书你不能错过
- 2022非常全的接口测试面试题及参考答案-软件测试工程师没有碰到算我输~
- 接口开放平台,我的一些思考
- 2021.05.15智能风控峰会之流量反作弊论坛-论坛笔记