电子技术论坛

 找回密码
 快速注册

QQ登录

只需一步,快速开始

搜索
搜索附件  
© 电子技术论坛 文件下载中心

阅读了王志浩板本的T12烙铁程序心得: hexhex555.jpg

 

阅读了王志浩板本的T12烙铁程序心得
新手抱着试试看,阅读了王志浩板本的T12烙铁程序,去看了MAIN函数,发现只有开关机和主界面程序,按键程序调用,没有PWM加热,ADC,显示,PID等程序,百思不得其解,后来发现中断好像有,问了豆包,牵出来关于程序结构问题,原来单片机是主程序和中断程序分2路同时运行的,其它程序在中断程序里执行的,以定时中断时间1MS为基准,再用变量计数10MS、20MS,50MS等分别判断执行其它程序,是可以没有MAIN,或不在MAIN也能单独运行,又了解了程序结构的时间片轮询,状态机结构等。比方每隔20MS重复一次,结构为定时器每中断1MS,变量++,间隔变量=当前变量一一前次变量。IF间隔时间如果=10MS,就执行,ADC,然后把前次变量=当前变量,然后其它按此方法,间隔20MS,50MS时间间隔分别执行PWM加热开关,PID算法,滤波等程序。后来发现疑问这个变量没有清零,是不是有问题呢,又问豆包,它说溢出后计数为5,5-65535=11,不改间隔时间,仍可以正常运行。但又有豆包说烙铁烧红和这变量溢出后失控有关。建议用16位INT变量
本帖最后由 I9000-琳爸 于 2026-4-18 13:52 编辑

/*********************************************************************************
* COPYRIGHT NOTICE
* Copyright (c) 2017-2018, XinJiang University. All right reserved. All rights reserved.
*
* 文件名                :        config.h
* 描述                 :        系统配置
*
* 版本                        :        V3.3.4
* 作者                        :        王志浩
* 日期                        :        2017-10-22
*
* 以下全部程序之著作权归属新疆大学所有,软件著作权登记编号2018R11L423999
* 未经著作权所有人书面授权,任何单位和个人不得将以下程序用于商业盈利用途!
* 修改此程序请保留上述版权声明,引用程序请注明出处!
**********************************************************************************/
#ifndef                __CONFIG_H
#define                __CONFIG_H


/************************定义系统时钟*****************************/
#define MAIN_Fosc                24000000L        //定义主时钟
#define Main_Fosc_KHZ        (MAIN_Fosc / 1000)

/****************************用户可调设置****************************/
//如果需要开机LOGO,请定义DRAW_LOGO;不需要LOGO可把该定义注释
//#define DRAW_LOGO
//如果需要在调整温度时大字显示设定的温度,请定义SET_TEMP;如果需要大字持续显示实际温度可把该定义注释
#define SET_TEMP
//此处选择使用的控制板版本,支持智盟1.0/智盟1.1/小张设计(ZM1_0),
//智盟1.2(ZM1_2),雪驹旧版(XJ_OLD),雪驹新版(XJ_NEW),五笔LCD版(WB_LCD)
#define ZM1_2
//屏幕选择(0.96寸OLED(SSD1306)选择0;1.3寸OLED(SSH1106)选择1;LCD选择2)
#define SCREEN                        1

/****************************IO设置****************************/
//版本号
#define VERSION_DIS                ("V3.3.4")


#if        SCREEN == 1
        #define DIS_ERR 2
#else
        #define DIS_ERR 0
#endif
//以下是三个自定义按键
#define KEY_A                         (P25)
#define KEY_B                         (P26)
#define KEY_C                         (P27)

//单片机切断220V电源输出IO
#define SHUTDOWN                (P33)

#ifdef WB_LCD
//蜂鸣器
        #define        BEEP                                 (P13)
        #define BEEP_ON                        (P13 = 1)
        #define BEEP_OFF                (P13 = 0)
        //LCD背光
        #define        LED                                 (P10)
        #define LED_ON                        (P10 = 1)
        #define LED_OFF                  (P10 = 0)

        //编码器
        #define        EC11_A                        (P31)
        #define        EC11_B                        (P30)
        #define        EC11_KEY                (P15)

        //PWM
        #define IRON                                (P23)
        //水银开关
        #define SLEEP                                (P20)
        #define PWM_EN                        (P00)

        //ADC设置
        #define ADC_VCC                                1u
        #define ADC_IRON                        4u
        #define ADC_ROOMTEMP        6u
#endif

#ifdef ZM1_0
        //蜂鸣器
        #define        BEEP                                 (P03)
        #define BEEP_ON                        (P03 = 1)
        #define BEEP_OFF                (P03 = 0)
        //LCD背光
        #define        LED                                 (P11)
        #define LED_ON                        (P11 = 1)
        #define LED_OFF                  (P11 = 0)
        //编码器
        #define        EC11_A                        (P32)
        #define        EC11_B                        (P31)
        #define        EC11_KEY                (P30)
        //PWM
        #define IRON                                (P10)
        //水银开关
        #define SLEEP                                (P01)
        #define PWM_EN                        (P00)
       
        //ADC设置
        #define ADC_VCC                                3u
        #define ADC_IRON                        5u
        #define ADC_ROOMTEMP        7u
#endif

#ifdef ZM1_2
        //蜂鸣器
        #define        BEEP                                 (P33)
        #define BEEP_ON                        (P33 = 1)
        #define BEEP_OFF                (P33 = 0)
        //LCD背光
        #define        LED                                 (P11)
        #define LED_ON                        (P11 = 1)
        #define LED_OFF                  (P11 = 0)
        //编码器
        #define        EC11_A                        (P32)
        #define        EC11_B                        (P31)
        #define        EC11_KEY                (P30)
        //PWM
        #define IRON                                (P10)
        //水银开关
        #define SLEEP                                (P01)
        #define PWM_EN                        (P00)
       
        //ADC设置
        #define ADC_VCC                                3u
        #define ADC_IRON                        5u
        #define ADC_ROOMTEMP        7u
#endif

#ifdef XJ_OLD
        //蜂鸣器
        #define        BEEP                                 (P03)
        #define BEEP_ON                        (P03 = 0)
        #define BEEP_OFF                (P03 = 1)
        //LCD背光
        #define        LED                                 (P00)
        #define LED_ON                        (P00 = 1)
        #define LED_OFF                  (P00 = 0)
        //编码器
        #define        EC11_A                        (P32)
        #define        EC11_B                        (P31)
        #define        EC11_KEY                (P30)
        //PWM
        #define IRON                                (P10)
        //水银开关
        #define SLEEP                                (P01)
        #define PWM_EN                        (P11)
       
        //ADC设置
        #define ADC_VCC                                3u
        #define ADC_IRON                        5u
        #define ADC_ROOMTEMP        7u
#endif
#ifdef XJ_NEW
        //蜂鸣器
        #define        BEEP                                 (P03)
        #define BEEP_ON                        (P03 = 0)
        #define BEEP_OFF                (P03 = 1)
        //LCD背光
        #define        LED                                 (P00)
        #define LED_ON                        (P00 = 1)
        #define LED_OFF                  (P00 = 0)
        //编码器
        #define        EC11_A                        (P32)
        #define        EC11_B                        (P31)
        #define        EC11_KEY                (P30)
        //PWM
        #define IRON                                (P10)
        //水银开关
        #define SLEEP                                (P01)
        #define PWM_EN                        (P11)
       
        //ADC设置
        #define ADC_VCC                                3u
        #define ADC_IRON                        5u
        #define ADC_ROOMTEMP        7u
#endif
/***************************包含库函数***************************/
#include        "STC15Fxxxx.H"
#include         "stdio.h"
#include  "math.h"
#include  "LQ12864.h"
#include        "img.h"
//#include  "DataScope_DP.h"

/***************************包含用户函数***************************/
#include "Sys_Init.h"
#include "Sys_Basic.h"
#include "Sys_Monitor.h"
#include "Sys_IO.h"
#include "Sys_Sample.h"
#include "Sys_Control.h"
#include "Sys_Para.h"
#include "user_menu.h"

#endif




改上面红的代码,选择性编译,配不同屏和不同版本硬件程序,编译成三种以下烧录固件




阅读了王志浩板本的T12烙铁程序心得: hexhex555.jpg

手机版|家电维修技术论坛 ( 鄂ICP备09003585号-2 )

GMT+8, 2026-4-21 21:05 , Processed in 0.061401 second(s), 6 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

CopyRight © 电子技术论坛
电子邮箱:8794149@qq.com | 联系 QQ:3081868839 | 官方网址:www.dzdu.com

Qiji. All Rights Reserved


服务条款 | 站长声明

Wuhan Qiji Technology Co., Ltd.武汉奇迹科技有限公司版权所有


鄂ICP备09003585号-2鄂公网安备42010602000420号

返回顶部