实现功能:

若洗衣机定时到,停机并发出音响信号,用两个数码管显示洗涤预置时间(分钟),按倒计时方式作计时显示,用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

接口技术——洗衣机控制器相关推荐

  1. 计算机通过io接口对什么实现控制器,《微机原理与接口技术》第6章 微计算机IO接口基础.ppt...

    <微机原理与接口技术>第6章 微计算机IO接口基础.ppt 第6章 微计算机IO接口基础 2.间接I/O端口寻址方式 (1) 输入指令格式: IN AL, DX 或 IN AX, DX 指 ...

  2. 基于VHDL的全自动洗衣机控制器设计

    全自动洗衣机控制器设计 <数字电子技术>课程设计报告 <数字电子技术>课程设计任务书 设计内容与要求 1.概述 1.1EDA简介 1.2开发软件quartus简介 2.基本原理 ...

  3. 智能家居:以ZigBee技术实现控制器设计

    本文转自公众号 | 嵌入式ARM 本文所介绍的智能家居控制器利用ZigBee技术将家庭中许多相对独立的家用电器构成一个统一的智能家居系统,从而方便对家居中的各种电器设备进行本地操作,同时也可通过互联网 ...

  4. 单片机c语言程序开发洗衣机,基于51单片机洗衣机控制器的设计(附程序)☆

    基于51单片机洗衣机控制器的设计(附程序)☆(任务书,开题报告,中期检查表,毕业论文21000字,程序) 摘  要 洗衣机是人们日常生活中常见的一种家电,已经成为人们生活中不可缺少的家用电器.在工业生 ...

  5. 微型计算机的什么接口主要作为打印机接口,微型计算机及其接口技术试题及答案(2006年10月)...

    微型计算机及其接口技术试题及答案(2006年10月) 以下是部分内容预览,注意图片没有显示出来,WORD里是有的.请到下载区下载完整的试题及答案. 全国2006年10月自考微型计算机及其接口技术试卷 ...

  6. 脑机接口技术重大突破!首次帮助瘫痪男子恢复运动和触觉

    来源:网易智能 触觉是我们感受外部世界不可或缺的感官,但许多人却因脊髓损伤或因患病瘫痪而失去这种能力.不过,最近非营利组织巴特尔研究所的研究人员宣称,他们首次利用脑机接口(BCI)技术帮助一名美国瘫痪 ...

  7. 南航计算机硬件实验,南航80X86微机原理及接口技术实验指导书.pdf

    80X86 微机原理及接口技术实验 指导书 卓然 编著 2015-3-1 序 错误!未定义书签. 第一章 TD-PIT++实验系统简介 3 1. 概述 3 2. 系统总线电路单元 5 3. 接口实验单 ...

  8. 微型计算机原理及应用李干林,微机原理及接口技术李干林习题参考解答-20210415154329.docx-原创力文档...

    Document serial number[NL89WT-NY98YT-NC8CB-NNUUT-NUT108] Document serial number[NL89WT-NY98YT-NC8CB- ...

  9. 《微机原理及接口技术》第08章在线测试

    <微机原理及接口技术>第08章在线测试  <微机原理及接口技术>第08章在线测试 剩余时间: 59:54  答题须知:1.本卷满分20分.            2.答完题后, ...

最新文章

  1. Rocksdb的事务(二):完整事务体系的 详细实现
  2. O(N)的时间复杂度找出a[N]中那个重复的数字
  3. 醉话没有测试(QA)的测试
  4. java掩码校验_Java 检查Ip掩码
  5. JAVA的方法的定义和调用
  6. 递归转化成非递归过程_8086微处理器中的递归和重入过程
  7. Nmap流量特征修改(NTA、IDS、IPS、流量审计)
  8. Netty学习总结(3)——Netty百万级推送服务
  9. Linux系统内存还有剩余就开始使用swap交换区了
  10. Java-----jar反编译修改重新打包
  11. Weak Pair (dfs+树状数组)
  12. could not access network location \Hewlett-Packard\\
  13. Java重命名文件的方法_java重命名文件(附道客巴巴文档下载方法)
  14. 微信小程序开源框架wxSortPickerView:微信小程序首字母排序选择表
  15. vue 渲染函数处理slot_Vue渲染函数详解
  16. Springboot 服务端为App集成支付宝支付
  17. UI设计书籍推荐,这三本好书你不能错过
  18. 2022非常全的接口测试面试题及参考答案-软件测试工程师没有碰到算我输~
  19. 接口开放平台,我的一些思考
  20. 2021.05.15智能风控峰会之流量反作弊论坛-论坛笔记

热门文章

  1. 我说CMMI2.0之过程管理
  2. 集线器(Hub)、网线、网卡、交换机、路由器分别工作在OSI参考模型的哪一层?
  3. 图像篡改数据集CASIA 1.0分享 001
  4. CASIA数据集格式转化代码
  5. 深度学习之目标检测(一)—— 目标检测算法介绍
  6. vue中使用v-html防止xss注入
  7. 视频教程-爬虫微课5小时 Python学习路线-Python
  8. KiCAD 6.0导入元件库及3D模型
  9. onenote标注pdf笔记_GoodNotes 5 手写笔记和PDF标注必备工具
  10. 一次通过阿里云ACA/ACP/ACE考试认证心得体会