基于8086处理器采用汇编语言实现电阻炉温度控制,包含实时温度显示、温度给定值修改、数字PID算法自动控制

时间: 2023-12-24 14:05:07 浏览: 23
以下是一个基于8086处理器采用汇编语言实现电阻炉温度控制的代码,包含实时温度显示、温度给定值修改和数字PID算法自动控制。 ```assembly .486 .model small .stack 100h ; 定义IO口 heater equ 0000h ; 加热器控制端口 k1 equ 0001h ; 键盘按键1端口 k2 equ 0002h ; 键盘按键2端口 k3 equ 0003h ; 键盘按键3端口 k4 equ 0004h ; 键盘按键4端口 led1 equ 0005h ; LED1端口 led2 equ 0006h ; LED2端口 temp_sensor equ 0007h ; 温度传感器端口 ; 定义变量 current_temp dw ? ; 当前温度 target_temp dw ? ; 目标温度 kp dw ? ; PID算法参数 ki dw ? kd dw ? err dw ? ; PID算法中的误差、上一次误差、积分项和微分项 err_last dw ? integral dw ? derivative dw ? ; 读取温度函数 read_temp proc near mov ax, temp_sensor ; 读取温度传感器温度 in al, ax mov current_temp, ax ret read_temp endp ; 显示函数 display proc near mov ax, current_temp call display_2digit ; 显示当前温度 ret display endp ; PID算法函数 pid_control proc near mov ax, target_temp sub ax, current_temp ; 当前误差 mov err, ax add integral, ax ; 积分项 mov ax, integral cmp ax, 1000h ; 积分项限幅 jg integral_max cmp ax, -1000h jl integral_min jmp pid_derivative integral_max: mov integral, 1000h jmp pid_derivative integral_min: mov integral, -1000h pid_derivative: mov ax, err sub ax, err_last ; 微分项 mov err_last, err ; 保存上一次误差 mov derivative, ax mov ax, kp imul err mov bx, ki imul integral add ax, bx mov bx, kd imul derivative add ax, bx mov output, ax ; PID控制输出 cmp output, 1000h ; 输出限幅 jg output_max cmp output, 0000h jge output_min mov output, 0000h jmp pid_control_end output_max: mov output, 1000h output_min: mov ax, current_temp cmp output, ax jg pid_control_heat mov heater, 0 ; 根据控制输出控制加热器 jmp pid_control_end pid_control_heat: mov heater, 1 pid_control_end: ret pid_control endp ; 主函数 main proc near mov ax, @data mov ds, ax ; 初始化数据段寄存器 ; 初始化代码 loop: call read_temp ; 读取当前温度 call display ; 显示当前温度 ; 处理键盘输入,修改目标温度和PID算法参数 mov ah, 1 ; 检查键盘是否有按键 int 21h cmp al, 0FFh ; 如果有按键 je loop cmp al, '1' je k1_pressed cmp al, '2' je k2_pressed cmp al, '3' je k3_pressed cmp al, '4' je k4_pressed jmp loop k1_pressed: add target_temp, 5 jmp loop k2_pressed: sub target_temp, 5 jmp loop k3_pressed: add kp, 1 jmp loop k4_pressed: sub kp, 1 jmp loop main endp ; 显示2位数字函数 display_2digit proc near push bx push cx push dx mov bx, 10 xor cx, cx div bx add ax, '0' mov dl, al mov ah, 02h int 21h mov al, cl add al, '0' mov dl, al mov ah, 02h int 21h pop dx pop cx pop bx ret display_2digit endp end main ``` 这个代码实现了温度传感器的读取、PID算法控制、键盘输入的处理和数字显示等功能。具体实现还需要根据具体硬件平台和软件环境进行调整。

相关推荐

最新推荐

recommend-type

汇编语言温度控制实验七

1.使用IO方式实现温度采集和加热控制 2.控制温度保持在75℃到80℃并维持2分钟
recommend-type

51单片机步进电机控制汇编语言程序

本程序是通过秒信号触发中断来实现的,要求中断程序必须在1S内执行完毕;步进电机转速控制是通过8255输入信号在每次执行中断程序内调整控制信号的循环次数来实现的。
recommend-type

微机原理与汇编语言A/D转换器ADC0809数字温度计设计综合设计实验

1 熟悉A/D转换原理及相关...2 掌握ADC0809数字温度计设计应用原理,用汇编语言编写相关程序。 3 在QTH-8086B环境中运行编译好的的程序,将转换的结果在数码管上显示,调节电位器观察数码管上数据的变化,得出相关结论。
recommend-type

单片机电子钟程序完美版(带闹钟温度功能)

本电子钟已经全部测试OK,带闹钟功能,年月日时分秒星期温度,四个按键可设置闹钟调节时间,温度可以显示正125度到负的55度之间,时间走时的话,我测试了一个月,误差不到1分钟。本人已经录制成视频,视频里面有详细...
recommend-type

mips汇编语言实现斐波那契数列的排列

资源包括在Mars环境下,使用mips汇编语言实现斐波那契数列的排列,并输出前n项的下标,十进制数值和十六进制数值。
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

云原生架构与soa架构区别?

云原生架构和SOA架构是两种不同的架构模式,主要有以下区别: 1. 设计理念不同: 云原生架构的设计理念是“设计为云”,注重应用程序的可移植性、可伸缩性、弹性和高可用性等特点。而SOA架构的设计理念是“面向服务”,注重实现业务逻辑的解耦和复用,提高系统的灵活性和可维护性。 2. 技术实现不同: 云原生架构的实现技术包括Docker、Kubernetes、Service Mesh等,注重容器化、自动化、微服务等技术。而SOA架构的实现技术包括Web Services、消息队列等,注重服务化、异步通信等技术。 3. 应用场景不同: 云原生架构适用于云计算环境下的应用场景,如容器化部署、微服务
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。