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

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

相关文章

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语音

MyBatis-Plus中Service接口的lambdaUpdate用法及实例分析

《MyBatis-Plus中Service接口的lambdaUpdate用法及实例分析》本文将详细讲解MyBatis-Plus中的lambdaUpdate用法,并提供丰富的案例来帮助读者更好地理解和应... 目录深入探索MyBATis-Plus中Service接口的lambdaUpdate用法及示例案例背景

Linux系统之authconfig命令的使用解读

《Linux系统之authconfig命令的使用解读》authconfig是一个用于配置Linux系统身份验证和账户管理设置的命令行工具,主要用于RedHat系列的Linux发行版,它提供了一系列选项... 目录linux authconfig命令的使用基本语法常用选项示例总结Linux authconfi

Nginx配置系统服务&设置环境变量方式

《Nginx配置系统服务&设置环境变量方式》本文介绍了如何将Nginx配置为系统服务并设置环境变量,以便更方便地对Nginx进行操作,通过配置系统服务,可以使用系统命令来启动、停止或重新加载Nginx... 目录1.Nginx操作问题2.配置系统服android务3.设置环境变量总结1.Nginx操作问题

Java8需要知道的4个函数式接口简单教程

《Java8需要知道的4个函数式接口简单教程》:本文主要介绍Java8中引入的函数式接口,包括Consumer、Supplier、Predicate和Function,以及它们的用法和特点,文中... 目录什么是函数是接口?Consumer接口定义核心特点注意事项常见用法1.基本用法2.结合andThen链

CSS3 最强二维布局系统之Grid 网格布局

《CSS3最强二维布局系统之Grid网格布局》CS3的Grid网格布局是目前最强的二维布局系统,可以同时对列和行进行处理,将网页划分成一个个网格,可以任意组合不同的网格,做出各种各样的布局,本文介... 深入学习 css3 目前最强大的布局系统 Grid 网格布局Grid 网格布局的基本认识Grid 网

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

在不同系统间迁移Python程序的方法与教程

《在不同系统间迁移Python程序的方法与教程》本文介绍了几种将Windows上编写的Python程序迁移到Linux服务器上的方法,包括使用虚拟环境和依赖冻结、容器化技术(如Docker)、使用An... 目录使用虚拟环境和依赖冻结1. 创建虚拟环境2. 冻结依赖使用容器化技术(如 docker)1. 创