微机接口、汇编语言课程设计——温控系统

2024-02-24 02:50

本文主要是介绍微机接口、汇编语言课程设计——温控系统,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 微机接口、汇编语言课程设计——温控系统
    • 一、课程设计目的
      • 知识方面
      • 能力方面
    • 二、设计内容及具体要求
      • 设计内容
      • 具体要求
    • 三、所需实验设备
    • 四、设计的方案及电路原理图
      • 4.1设计方案
        • 使用端口分工
        • 硬件连线
        • 变量设置
        • 程序模块组成
          • 主程序
          • 初始化模块
          • 子程序
          • 电路原理图
    • 五、软件的流程图
      • *主程序
      • 初始化模块
    • 六、软硬件调试过程
      • 6.1 调试过程
      • 6.2 问题与解决方法
    • 七、设计总结
      • 7.1 已实现的功能
      • 7.2 待改进的地方
      • 7.3 改进的措施
      • 7.4 创新方法
    • 八、课程设计心得体会
    • 参考代码:

微机接口、汇编语言课程设计——温控系统

课设背景:本次课程设计最终应用于大棚温控系统,大棚蔬菜养殖需要合适的温度,过高过低均会产生不利影响。所以本次课程设计的目的是将大棚温度控制在合适的温度内,一旦温度超过设定阈值则会产生相应报警反馈,例如直流电机转动降温、蜂鸣器发出警报音乐,提示管理员前来关注大棚情况并进行相应的处理操作。

一、课程设计目的

知识方面

  1. 微机系统与接口技术课程中各接口芯片的功能、及用法。
  2. 掌握汇编语言程序或C语言程序设计方法。
  3. 熟悉软硬件调试的方法。

能力方面

  1. 网上查找资料,自学绘图软件和其它接口芯片的文档,培养自我学习能力。
  2. 具有进行初步需求分析和系统设计的能力。
  3. 具有结构化程序设计的能力。
  4. 培养软硬件协同调试的能力。
  5. 能够综合运用所学知识解决实际问题的能力。
  6. 能够撰写比较完善的课程设计报告,培养撰写书面报告的能力。

二、设计内容及具体要求

设计内容

1.通过数字式温度计模块与蜂鸣器电子琴模块相结合初步实现在到达温度设定阈值时发出警报提示音乐,说明大棚温度过高需要注意,再结合步进电机实现发出警报后步进电机开始旋转降温,同时点亮小灯,实现照明功能。
2.在基础课程设计的前提下,进行创新,加入显示屏文字提示,进一步达到更贴合实际情境的实现方式。

具体要求

  1. 开关命令如下:
命令功能
K1启动蜂鸣器模块
K2控制电子琴模块
K3随时关闭电子琴
  1. 用右边4个数码管显示命令当前测出的温度。 当温度超出设定阈值后,右边4个数码管均不显示,进入高温警报、降温模块。
    具体温度显示格式如下:
显示功能
##.#正常显示温度
----高温报警时刻

3.说明书(详见附录)中综合实验部分必须用到 3 个或 3 个以上。
4.必须用到键盘和 LED 数码管模块进行相关的设置和显示。

三、所需实验设备

  1. A1区:12864液晶显示模块电路

在这里插入图片描述
在这里插入图片描述
显示模块用来显示需要显示的提示字

  1. A3区:系统总线、片选区
    系统总线:
    在这里插入图片描述

片选区
在这里插入图片描述

3.B4区:简单I/O、SRAM电路
在这里插入图片描述

在这里插入图片描述
此模块用来连接CPU和LED,使两者进行数据传输

在这里插入图片描述
在这里插入图片描述

4.D2区:DAC0832数模转换
在这里插入图片描述

在这里插入图片描述
此模块将CPU读到的数据转换为电压模拟量控制直流电机

5.D3区:8255电路、数码管驱动电路
在这里插入图片描述

在这里插入图片描述

6.E1区:直流电机转速测量/控制
使用光电开关测速
在这里插入图片描述
在这里插入图片描述

7.F2区:温度测量/控制

在这里插入图片描述

在这里插入图片描述

  1. F3区:PWM电压转换、功率放大电路
    PWM电压转换电路
    在这里插入图片描述

在这里插入图片描述
功率放大电路
在这里插入图片描述
在这里插入图片描述

9.F4区:发光管、开关
在这里插入图片描述

JP27:开关控制接口;闭合-0信号,断开-1信号

10.F5区:键盘&LED
在这里插入图片描述

在这里插入图片描述

11.F8区:蜂鸣器
在这里插入图片描述

Ctrl:控制接口,0-蜂鸣
此元器件由8255电路传输的的数据控制

四、设计的方案及电路原理图

4.1设计方案

  1. 首先查阅资料,我们需要深入了解测温元件、液晶显示技术以及各种芯片的工作原理。这包括但不限于:
    测温元件:测温元件是用来检测温度的器件,它可以将温度转换成电信号。常见的测温元件有热电阻、热电偶等。
    液晶显示:液晶显示是通过改变液晶的透光性来实现显示的。它通常需要配合背光和偏光片使用。
    芯片工作原理:例如8255芯片、DA转换器等,它们各自的功能和工作原理都需要了解清楚。
  2. 进行模块化设计,可以简化主程序和提高可维护性,我们应该采用模块化的设计方法。这意味着将各个功能(如温度检测、显示、电机控制等)划分为独立的模块,每个模块都有明确的输入和输出。
  3. 分工合作,根据模块的划分,团队成员可以分工进行开发和调试。每个成员负责一个或几个模块,最后再进行整合。
  4. 在基础实验成功的前提下,进行适当的改进和创新。基础实验中我们将需要通过测温元件测出的温度通过数码管显示出来。将需要显示的提示文字显示在液晶显示屏上。将直流电机做到能由DA转换器经过PWM电压转换功放大电路直接控制转和停,并在转和停的同时实现照明灯的亮灭。蜂鸣器模块需要实现能由8255芯片读取开关量状态后输出的数据直接控制。将这几个模块整合成一个一个综合作业时便要求在测到的温度达到设定阈值后直流电机开始转动降温,并能根据温度的高低分为两个挡位转动降温,同时蜂鸣器发出警报音乐,提醒管理人员注意,前来进行相关处理。管理人员到来后可以手动关闭警报音或停止转机转动降温,自行处理。并要求在整个温控过程中能根据系统状态实时调整提示文字,方便人员知悉情况。
    以下分成端口分工、硬件连线、变量设置、程序模块组成等部分进行介绍。
使用端口分工

在这里插入图片描述

硬件连线

在这里插入图片描述

变量设置

为了各模块的衔接完整和程序的正常运行,考虑设置以下变量:
在这里插入图片描述

程序模块组成

具体在软件的流程图中介绍。

主程序

(1)调用显示“开始工作”提示字;
(2)调用测温模块进行测温;
(3)判断是否超过温度设定阈值,如果没有则将温度显示在数码管上,回到(2)循环执行;
(4)如果超过设定温度且开关K1开启则将调用显示“高温报警”提示字,并判断是否超出超高温阈值;
(5)如果没有超出超高温阈值,直流电机缓慢转动降温,并判断开关K2是否打开,若打开则点亮照明灯发出警示;
(6)如果超出超高温阈值,直流电机高速转动降温,并判断开关K2是否打开,若打开则同时点亮照明灯发出警示并开启报警音乐(可通过开关K3随时关闭);
(7)回到(2)循环执行。

初始化模块

(1)【Init8255】8255 初始化:进行蜂鸣器和照明灯控制;
(2)【Init8255_t】8255关于测温的初始化:进行温度量读入控制;
(3)【InitDisBuffer】温度缓冲区的初始化:给显示缓冲区赋初值,消隐;
(4)【LCD_INIT】液晶初始化:完成清屏并开启显示控制;

子程序

(1)【DelayTime】延时操作:通过蜂鸣器播放的延时长度不一致形成不同的音 符,利于后面实现报警音乐

这篇关于微机接口、汇编语言课程设计——温控系统的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/740726

相关文章

linux重启命令有哪些? 7个实用的Linux系统重启命令汇总

《linux重启命令有哪些?7个实用的Linux系统重启命令汇总》Linux系统提供了多种重启命令,常用的包括shutdown-r、reboot、init6等,不同命令适用于不同场景,本文将详细... 在管理和维护 linux 服务器时,完成系统更新、故障排查或日常维护后,重启系统往往是必不可少的步骤。本文

SpringBoot+Redis防止接口重复提交问题

《SpringBoot+Redis防止接口重复提交问题》:本文主要介绍SpringBoot+Redis防止接口重复提交问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不... 目录前言实现思路代码示例测试总结前言在项目的使用使用过程中,经常会出现某些操作在短时间内频繁提交。例

Mac系统下卸载JAVA和JDK的步骤

《Mac系统下卸载JAVA和JDK的步骤》JDK是Java语言的软件开发工具包,它提供了开发和运行Java应用程序所需的工具、库和资源,:本文主要介绍Mac系统下卸载JAVA和JDK的相关资料,需... 目录1. 卸载系统自带的 Java 版本检查当前 Java 版本通过命令卸载系统 Java2. 卸载自定

springboot下载接口限速功能实现

《springboot下载接口限速功能实现》通过Redis统计并发数动态调整每个用户带宽,核心逻辑为每秒读取并发送限定数据量,防止单用户占用过多资源,确保整体下载均衡且高效,本文给大家介绍spring... 目录 一、整体目标 二、涉及的主要类/方法✅ 三、核心流程图解(简化) 四、关键代码详解1️⃣ 设置

spring中的ImportSelector接口示例详解

《spring中的ImportSelector接口示例详解》Spring的ImportSelector接口用于动态选择配置类,实现条件化和模块化配置,关键方法selectImports根据注解信息返回... 目录一、核心作用二、关键方法三、扩展功能四、使用示例五、工作原理六、应用场景七、自定义实现Impor

MybatisPlus service接口功能介绍

《MybatisPlusservice接口功能介绍》:本文主要介绍MybatisPlusservice接口功能介绍,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友... 目录Service接口基本用法进阶用法总结:Lambda方法Service接口基本用法MyBATisP

基于Python实现一个简单的题库与在线考试系统

《基于Python实现一个简单的题库与在线考试系统》在当今信息化教育时代,在线学习与考试系统已成为教育技术领域的重要组成部分,本文就来介绍一下如何使用Python和PyQt5框架开发一个名为白泽题库系... 目录概述功能特点界面展示系统架构设计类结构图Excel题库填写格式模板题库题目填写格式表核心数据结构

Linux系统中的firewall-offline-cmd详解(收藏版)

《Linux系统中的firewall-offline-cmd详解(收藏版)》firewall-offline-cmd是firewalld的一个命令行工具,专门设计用于在没有运行firewalld服务的... 目录主要用途基本语法选项1. 状态管理2. 区域管理3. 服务管理4. 端口管理5. ICMP 阻断

Windows 系统下 Nginx 的配置步骤详解

《Windows系统下Nginx的配置步骤详解》Nginx是一款功能强大的软件,在互联网领域有广泛应用,简单来说,它就像一个聪明的交通指挥员,能让网站运行得更高效、更稳定,:本文主要介绍W... 目录一、为什么要用 Nginx二、Windows 系统下 Nginx 的配置步骤1. 下载 Nginx2. 解压

如何确定哪些软件是Mac系统自带的? Mac系统内置应用查看技巧

《如何确定哪些软件是Mac系统自带的?Mac系统内置应用查看技巧》如何确定哪些软件是Mac系统自带的?mac系统中有很多自带的应用,想要看看哪些是系统自带,该怎么查看呢?下面我们就来看看Mac系统内... 在MAC电脑上,可以使用以下方法来确定哪些软件是系统自带的:1.应用程序文件夹打开应用程序文件夹