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

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

相关文章

利用Python快速搭建Markdown笔记发布系统

《利用Python快速搭建Markdown笔记发布系统》这篇文章主要为大家详细介绍了使用Python生态的成熟工具,在30分钟内搭建一个支持Markdown渲染、分类标签、全文搜索的私有化知识发布系统... 目录引言:为什么要自建知识博客一、技术选型:极简主义开发栈二、系统架构设计三、核心代码实现(分步解析

Python FastAPI+Celery+RabbitMQ实现分布式图片水印处理系统

《PythonFastAPI+Celery+RabbitMQ实现分布式图片水印处理系统》这篇文章主要为大家详细介绍了PythonFastAPI如何结合Celery以及RabbitMQ实现简单的分布式... 实现思路FastAPI 服务器Celery 任务队列RabbitMQ 作为消息代理定时任务处理完整

Linux系统中卸载与安装JDK的详细教程

《Linux系统中卸载与安装JDK的详细教程》本文详细介绍了如何在Linux系统中通过Xshell和Xftp工具连接与传输文件,然后进行JDK的安装与卸载,安装步骤包括连接Linux、传输JDK安装包... 目录1、卸载1.1 linux删除自带的JDK1.2 Linux上卸载自己安装的JDK2、安装2.1

go中空接口的具体使用

《go中空接口的具体使用》空接口是一种特殊的接口类型,它不包含任何方法,本文主要介绍了go中空接口的具体使用,具有一定的参考价值,感兴趣的可以了解一下... 目录接口-空接口1. 什么是空接口?2. 如何使用空接口?第一,第二,第三,3. 空接口几个要注意的坑坑1:坑2:坑3:接口-空接口1. 什么是空接

Linux系统之主机网络配置方式

《Linux系统之主机网络配置方式》:本文主要介绍Linux系统之主机网络配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、查看主机的网络参数1、查看主机名2、查看IP地址3、查看网关4、查看DNS二、配置网卡1、修改网卡配置文件2、nmcli工具【通用

Linux系统之dns域名解析全过程

《Linux系统之dns域名解析全过程》:本文主要介绍Linux系统之dns域名解析全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、dns域名解析介绍1、DNS核心概念1.1 区域 zone1.2 记录 record二、DNS服务的配置1、正向解析的配置

Linux系统中配置静态IP地址的详细步骤

《Linux系统中配置静态IP地址的详细步骤》本文详细介绍了在Linux系统中配置静态IP地址的五个步骤,包括打开终端、编辑网络配置文件、配置IP地址、保存并重启网络服务,这对于系统管理员和新手都极具... 目录步骤一:打开终端步骤二:编辑网络配置文件步骤三:配置静态IP地址步骤四:保存并关闭文件步骤五:重

Windows系统下如何查找JDK的安装路径

《Windows系统下如何查找JDK的安装路径》:本文主要介绍Windows系统下如何查找JDK的安装路径,文中介绍了三种方法,分别是通过命令行检查、使用verbose选项查找jre目录、以及查看... 目录一、确认是否安装了JDK二、查找路径三、另外一种方式如果很久之前安装了JDK,或者在别人的电脑上,想

如何用java对接微信小程序下单后的发货接口

《如何用java对接微信小程序下单后的发货接口》:本文主要介绍在微信小程序后台实现发货通知的步骤,包括获取Access_token、使用RestTemplate调用发货接口、处理AccessTok... 目录配置参数 调用代码获取Access_token调用发货的接口类注意点总结配置参数 首先需要获取Ac

讯飞webapi语音识别接口调用示例代码(python)

《讯飞webapi语音识别接口调用示例代码(python)》:本文主要介绍如何使用Python3调用讯飞WebAPI语音识别接口,重点解决了在处理语音识别结果时判断是否为最后一帧的问题,通过运行代... 目录前言一、环境二、引入库三、代码实例四、运行结果五、总结前言基于python3 讯飞webAPI语音