基于51单片机的简易电磁炉仿真

2023-11-05 23:11

本文主要是介绍基于51单片机的简易电磁炉仿真,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

仿真图:

在这里插入图片描述

芯片/模块的特点:

AT89C52简介:
AT89C52是一款经典的8位单片机,是意法半导体(STMicroelectronics)公司生产的一系列单片机之一。它基于8051内核,并具有许多与其兼容的特性。

AT89C52的主要特点如下:

内部存储器:AT89C52具有8KB的闪存(Flash)存储器,可用于存储用户程序和数据。这些存储器的内容可以通过编程器进行编程和擦除。

RAM存储器:AT89C52配备了256字节的随机存取存储器(RAM),用于暂存数据和程序的变量。

外部扩展性:AT89C52支持多种外部扩展设备的连接,包括外部存储器(如RAM、EEPROM)和外设(如ADC、LCD、UART等),通过外部硬件连接,可以扩展单片机的功能和应用。

通用I/O引脚:AT89C52拥有32个可编程的通用输入/输出引脚,可用于连接外部设备和与其他芯片进行通信。

定时器/计数器:AT89C52内置了3个16位定时器/计数器和一个可编程的串行定时器/计数器。这些计时器/计数器可用于实现定时功能、生成脉冲信号、测量时间间隔等。0

串行通信:AT89C52支持串行通信接口,包括UART(串行异步通信)和SPI(串行外设接口),便于与其他设备进行数据通信和交互。

低功耗模式:AT89C52具有多种低功耗模式,如空闲模式和电源下模式,在不需要执行任务的时候可以将CPU进入低功耗状态以节省能量。

宽电源电压范围:AT89C52的工作电压范围通常为4.0V至5.5V,可以满足大多数应用需求。

主程序:


#include <REGX52.H>#define u8 unsigned char //全局变量u8的值在<0-255>
#define u16 unsigned int //全局变量u16的值在<0-65535>//定义IO口
sbit pwm=P3^6;  //声明一个输出口,用于控制线圈的打开和关断
sbit P_dec=P1^5;   //功率-
sbit P_inc=P1^6;   //功率+
sbit STOP=P1^7;//暂停//数码管段选
u8 code ab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0x08,0x80,0x90};
//数码管位选
u8 code ac[]={0x08,0x04,0x02,0x01,0x0f};u8 statu=0;//工作状态 statu=0:正常工作;statu=1,暂停状态
u8 a,n,x;//a:用于定时,n:档位,x:占空比//毫秒延时函数
void delay_ms(u16 nms)
{u8 i=0;while(nms--)for(;i<112;i++);  
}//数码管显示4位数字
void Display(u16 num)
{u8 i=0,d=0;for(i=0;i<4;i++){d=num%10;num-=d;num/=10;P2=ac[i];//位选P0=ab[d];//短选}
}
//主函数
void main() 
{TMOD=0x01;//选择定时器模式。TH0=(65536-100)/256;//给定时器高8位给个初值。TL0=(65536-100)%256;//给低8位个初值。EA=1;//开总中断。ET0=1;//开定时器0中断。TR0=1;//启动定时器0。  n=1;//初始化档位。Display(8888);//初始显示。delay_ms(1000);while(1){//是否暂停if(STOP==0)//有按键按下{delay_ms(10);//消抖延时if(STOP==0)while(!STOP);//等待松开按键statu=!statu;//状态切换}//档位选择if(statu==0)//正常运行状态{if(P_dec==0||P_inc==0)//有按键按下{delay_ms(10);//消抖延时if(P_dec==0)	 {while(!P_dec);//等待松开按键if(n>1)n--;//档位减}else if(P_inc==0)	 {while(!P_inc);if(n<5)n++;//档位加}}//输出控制及显示switch(n){case 0:{x=0;Display(8888);}break;case 1:{x=20;Display(300);}break;case 2:{x=40;Display(600);}break;case 3:{x=60;Display(1200);}break;case 4:{x=80;Display(1500);}break;case 5:{x=100;Display(1800);}break;default:break;	}}else//暂停状态Display(8888);}
}void timer0() interrupt 1  //定时器中断服务
{TH0=(65536-100)/256; //重新初值TL0=(65536-100)%256;a++;if(a>=100)a=0;}

设计文件:

链接:https://pan.baidu.com/s/1A0kwA72cz5nQzjlHd-W2Pw?pwd=bbyk

这篇关于基于51单片机的简易电磁炉仿真的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

day-51 合并零之间的节点

思路 直接遍历链表即可,遇到val=0跳过,val非零则加在一起,最后返回即可 解题过程 返回链表可以有头结点,方便插入,返回head.next Code /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}*

基于UE5和ROS2的激光雷达+深度RGBD相机小车的仿真指南(五):Blender锥桶建模

前言 本系列教程旨在使用UE5配置一个具备激光雷达+深度摄像机的仿真小车,并使用通过跨平台的方式进行ROS2和UE5仿真的通讯,达到小车自主导航的目的。本教程默认有ROS2导航及其gazebo仿真相关方面基础,Nav2相关的学习教程可以参考本人的其他博客Nav2代价地图实现和原理–Nav2源码解读之CostMap2D(上)-CSDN博客往期教程: 第一期:基于UE5和ROS2的激光雷达+深度RG

基于51单片机的自动转向修复系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订阅👇🏻 单片机

单片机毕业设计基于单片机的智能门禁系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍程序代码部分参考 设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订

perl的学习记录——仿真regression

1 记录的背景 之前只知道有这个强大语言的存在,但一直侥幸自己应该不会用到它,所以一直没有开始学习。然而人生这么长,怎就确定自己不会用到呢? 这次要搭建一个可以自动跑完所有case并且打印每个case的pass信息到指定的文件中。从而减轻手动跑仿真,手动查看log信息的重复无效低质量的操作。下面简单记录下自己的思路并贴出自己的代码,方便自己以后使用和修正。 2 思路整理 作为一个IC d

文章解读与仿真程序复现思路——电力自动化设备EI\CSCD\北大核心《考虑燃料电池和电解槽虚拟惯量支撑的电力系统优化调度方法》

本专栏栏目提供文章与程序复现思路,具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源程序擅长文章解读,论文与完整源程序,等方面的知识,电网论文源程序关注python

代码训练营 Day26 | 47.排序II | 51. N-皇后 |

47.排序II 1.跟46题一样只不过加一个树层去重 class Solution(object):def backtracking(self,nums,path,result,used):# recursion stopif len(path) == len(nums):# collect our setresult.append(path[:])return for i in range(

海龟绘图简易教程|Turtle for Python

turtle 是 python 内置的一个比较有趣味的模块,俗称 海龟绘图,它是基于 tkinter 模块打造,提供一些简单的绘图工具,海龟作图最初源自 20 世纪 60 年代的 Logo 编程语言,之后一些很酷的 Python 程序员构建了 turtle 库,让其他程序员只需要 import turtle,就可以在 Python 中使用海龟作图。 原文链接|海龟绘图简易教程 1. 基本

基于stm32的河流检测系统-单片机毕业设计

文章目录 前言资料获取设计介绍功能介绍具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订阅👇🏻 单片机设计精品

使用jetty和mongodb做个简易文件系统

使用jetty和mongodb做个简易文件系统 - ciaos 时间 2014-03-09 21:21:00   博客园-所有随笔区 原文   http://www.cnblogs.com/ciaos/p/3590662.html 主题  MongoDB  Jetty  文件系统 依赖库: 1,jetty(提供http方式接口) 2,mongodb的java驱动(访问mo