温度PWM控制LED灯及其报警显示
基于PWM调光的智能多功能台灯设计毕业设计论文

指导教师评阅书
指导教师评价:
一、撰写(设计)过程
1、学生在论文(设计)过程中的治学态度、工作精神
□ 优 □ 良 □ 中 □ 及格 □ 不及格
2、学生掌握专业知识、技能的扎实程度
□ 优 □ 良 □ 中 □ 及格 □ 不及格
3、学生综合运用所学知识和专业技能分析和解决问题的能力
2、是否完成指定的论文(设计)任务(包括装订及附件)?
□ 优 □ 良 □ 中 □ 及格 □ 不及格
三、论文(设计)水平
1、论文(设计)的理论意义或对解决实际问题的指导意义
□ 优 □ 良 □ 中 □ 及格 □ 不及格
2、论文的观念是否有新意?设计是否有创意?
□ 优 □ 良 □ 中 □ 及格 □ 不及格
13电子信息工程2班1336230077学生姓名指导教师孙运旺副教授完成日期2015随着电子技术的日益发展人们生活中的照明工具也在发生着巨大的变化
毕业设计(论文)
题目基于PWM调光的智能多功能台灯设计
毕业设计(论文)原创性声明和使用授权说明
原创性声明
本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。
方案二:采用脉宽调制(PWM)来调光
脉宽调制(PWM)调光法利用改变电源脉冲宽度的方法,改变其亮度[1]。假如脉冲的周期为tpwm,脉冲宽度为ton,那么其工作比D(或称为孔度比)就是ton/tpwm.改变恒流源脉冲的工作比就可以改变LED的亮度。其优点:1、不会产生任何色谱偏移。2、PWM调光具有极高的调光精确度。3、可以和数字控制技术相结合来进行控制。因为任何数字都可以很容易变换成为一个PWM信号。4、PWM调光能够通过软件的方式比较容易实现,使用范围广阔。
pwm波控制led灯的原理

pwm波控制led灯的原理摘要:I.引言- 介绍PWM 波和LED 灯- 说明PWM 波控制LED 灯的优势II.PWM 波的基本原理- 定义PWM 波- 描述PWM 波的生成方式- 解释PWM 波的频率与占空比的关系III.PWM 波控制LED 灯的原理- 说明LED 灯的工作原理- 介绍PWM 波控制LED 灯的方法- 解释PWM 波控制LED 灯的亮度原理IV.PWM 波控制LED 灯的应用- 举例说明PWM 波控制LED 灯在生活中的应用- 介绍PWM 波控制LED 灯在工程中的优势V.结论- 总结PWM 波控制LED 灯的原理及应用- 展望PWM 波控制LED 灯的发展前景正文:I.引言PWM 波,即脉宽调制波,是一种广泛应用于电子领域的信号调控方式。
LED 灯,即发光二极管,是一种具有高效、节能、环保等优点的照明设备。
将PWM 波与LED 灯相结合,可以实现对LED 灯的精准控制,提高其性能和应用范围。
本文将详细介绍PWM 波控制LED 灯的原理及其应用。
II.PWM 波的基本原理PWM 波是一种通过对信号脉冲宽度进行调制的技术。
在一个周期内,信号脉冲的宽度在不同时间点上发生变化,从而实现对信号的调节。
PWM 波的生成方式主要有两种:模拟方式和数字方式。
模拟方式是通过改变信号发生器的输入电压来调整脉冲宽度;数字方式则是通过改变数字信号的占空比来控制脉冲宽度。
PWM 波的频率与占空比之间存在着密切的关系,频率越高,占空比越小,脉冲宽度越窄,从而能够实现更精细的控制。
III.PWM 波控制LED 灯的原理LED 灯是一种半导体器件,其工作原理是通过注入正电压使电子从价带跃迁至导带,进而产生电流发光。
PWM 波控制LED 灯的方法主要是通过改变PWM 波的占空比来调整LED 灯的驱动电流,从而实现对LED 灯的亮度控制。
当占空比增大时,LED 灯的亮度增加;当占空比减小时,LED 灯的亮度降低。
课程考核说明

《电子设计开发基础》课程成绩的评定方法课程成绩包括三个部分:设计题目的完成度、现场测评情况、设计报告的撰写。
各部分所占比例为:4:3:3。
课程总评成绩采用五分制(优、良、中、及格和不及格)。
评分细则方法如下:1、设计题目的完成度根据设计任务及要求能够准确实现各项功能。
其中:基本要求60% 、提高要求40%。
评价时将根据5个题目的技术难度做适当调整。
2、现场测评情况在完成(或部分完成)设计任务的基础上,针对设计方案、实现过程和所用方法进行提问,根据每位同学的回答情况进行打分。
3、设计报告的撰写设计报告的内容要求如下:1.设计任务及要求。
2.总体设计思路及功能描述(附框图)。
3.各功能模块的设计方案和详细说明。
4.调试过程中出现的问题以及解决方法。
题目一:数字式电子钟的设计1.简要说明:利用MSP430单片机设计数字式电子钟。
该电子钟应具有时、分、秒的计时功能和显示功能,同时可以进行时间校准和定点报时。
在完成设计任务后撰写设计报告。
2.设计任务●基本要求:设计一个时分秒计数器,并具有显示功能。
其中时为24进制,分和秒为60进制。
●提高要求:a)设计可变的时钟计数脉冲。
通过外置按键可以改变时间计数的频率,并显示此时计数脉冲的数值(单位:秒)。
b)设计实现时、分、秒的校准功能。
通过外置按键可以设置特定的时间。
c)设计实现数字钟的整点报时功能。
3.元件清单1)MSP430G2553单片机2)LCD1602或12864液晶显示屏\数码管3)蜂鸣器4)微触开关/按键题目二:交通灯控制系统的设计1.简要说明:利用MSP430单片机实现十字路口交通灯的控制系统。
该系统能够控制交通灯的指示颜色并显示某一方向的通行时间,同时可以根据需要调整通行时间的长短。
在完成设计任务后撰写设计报告。
2.设计任务●基本要求:设计一个交通灯控制系统,通行时间设置为15秒,以红色和绿色LED灯作为交通灯指示通行方向(如当东西通行、南北禁止时,东西方向的指示灯为绿色亮、红色灭,南北方向的指示灯为红色亮、绿色灭),并在液晶屏上显示剩余的通行时间。
PWM 调光知识介绍

PWM 调光知识介绍在手机及其他消费类电子产品中,白光 LED 越来越多地被使用作为显示屏的背光源。
近来,许多产品设计者希望白光 LED 的光亮度在不同的应用场合能够作相应的变化。
这就意味着,白光 LED 的驱动器应能够支持 LED 光亮度的调节功能。
目前调光技术主要有三种:PWM 调光、模拟调光、以及数字调光。
市场上很多驱动器都能够支持其中的一种或多种调光技术。
本文将介绍这三种调光技术的各自特点,产品设计者可以根据具体的要求选择相应的技术。
PWM Dimming (脉宽调制) 调光方式——这是一种利用简单的数字脉冲,反复开关白光LED驱动器的调光技术。
应用者的系统只需要提供宽、窄不同的数字式脉冲,即可简单地实现改变输出电流,从而调节白光 LED 的亮度。
PWM 调光的优点在于能够提供高质量的白光,以及应用简单,效率高!例如在手机的系统中,利用一个专用 PWM 接口可以简单的产生任意占空比的脉冲信号,该信号通过一个电阻,连接到驱动器的 EN 接口。
多数厂商的驱动器都支持PWM 调光。
但是,PWM 调光有其劣势。
主要反映在:PWM 调光很容易使得白光 LED 的驱动电路产生人耳听得见的噪声(audible noise,或者 microphonic noise)。
这个噪声是如何产生?通常白光 LED 驱动器都属于开关电源器件(buck、boost 、charge pump 等),其开关频率都在1MHz左右,因此在驱动器的典型应用中是不会产生人耳听得见的噪声。
但是当驱动器进行PWM调光的时候,如果 PWM 信号的频率正好落在 200Hz 到 20kHz 之间,白光 LED 驱动器周围的电感和输出电容就会产生人耳听得见的噪声。
所以设计时要避免使用 20kHz 以下低频段。
我们都知道,一个低频的开关信号作用于普通的绕线电感(wire winding coil),会使得电感中的线圈之间互相产生机械振动,该机械振动的频率正好落在上述频率,电感发出的噪音就能够被人耳听见。
单片机中的PWM技术及相关应用

单片机中的PWM技术及相关应用PWM技术是一种常用的数字信号调制技术,能够通过改变信号的占空比来控制电路中的开关元件,实现对电路的调节和控制。
在单片机应用中,PWM技术被广泛应用于电机驱动、LED亮度调节、音频处理等方面,具有较大的实际意义和应用价值。
首先,PWM技术在电机控制和驱动中发挥着重要作用。
通过控制PWM信号的占空比,可以调节电机的转速和扭矩。
对于直流电机控制而言,可以通过改变PWM信号的占空比来改变电机的平均电压,从而实现对电机的转速控制。
而对于步进电机,通过改变驱动信号的频率和占空比,可以实现步进电机的准确位置控制。
此外,PWM技术还被广泛应用于无刷直流电机(BLDC)的驱动中,通过改变PWM信号的占空比和相位,可以实现对BLDC电机的转速和方向控制。
其次,PWM技术在LED照明领域中起到非常重要的作用。
由于LED的亮度和颜色是由电流大小和电压波形的调节来决定的,因此利用PWM技术可以实现对LED的亮度调节。
通过改变PWM信号的占空比,可以控制LED的闪烁频率,从而实现亮度的调节。
同时,利用PWM技术还可以实现多个LED灯的时序控制,例如交替闪烁、呼吸灯效果等。
此外,PWM技术还在音频处理中得到广泛应用。
通过PWM技术可以实现数字音频信号的模拟输出,并通过低通滤波器将PWM信号转换为模拟音频信号。
在数字音频播放器、音响系统等领域中,PWM技术可以实现高保真度的音频输出。
通过控制PWM信号的频率和占空比,可以实现对音频信号的调节,例如音量控制、音调调节等。
此外,PWM技术还有许多其他应用。
例如在温度控制系统中,可以利用PWM 技术实现对加热元件的温度控制,通过调节PWM信号的占空比,可以实现加热元件的温度变化。
在数码相机的曝光控制中,PWM技术可以实现对快门的控制,通过改变PWM信号的占空比和频率,可以控制快门的开启和关闭时间,从而实现曝光时间的调节。
总结而言,PWM技术在单片机中具有广泛的应用。
LED灯亮度调节

课程嵌入式实验题目LED灯亮度调节报告学院信息工程学院专业13计算机测控LED灯亮度调节实验一、实验目的应用PWM定时器输出PWM信号控制LED显示亮度,要求亮度分256级连续可调。
亮度级别由电位器调节电压通过AD转换输入,亮度级别值显示在LCD液晶显示器。
要求采用中断方式进行AD值读取。
二、实验设备仿真软件、keil5三、实验原理系统通过调节电位器,利用LPC2114内置的AD转换器读取电位器的电压值,根据电压值调整PWM信号的占空比,积分后实现LED亮度可调,并实时在LCD1602上显示亮度级别。
PWM输出LPC2000的PWM基于标准的定时器模块,具有定时器的所有特性,它是定时器功能中匹配事件的功能扩展。
使用PWM功能,可以在指定引脚输出需要的波形。
输出波形可分为两类:单边沿输出和双边沿输出。
该实验使用单边沿输出。
使用两个匹配寄存器就可以实现单边沿控制的PWM输出。
其中一个匹配寄存器(PWMMR0)控制PWM周期,另一个匹配寄存器控制PWM边沿的位置,即占空比。
AD转换器AD转换器的基本时钟由VPB时钟提供。
可编程分频器将时钟调整至逐步逼近转换所需的(最大)。
10位精度要求的转换需要11个A/D转换时钟。
LCD1602引脚功能说明1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表3-1所示:表3-1:引脚接口说明表第1脚:VSS为地电源。
第2脚:VDD接5V正电源。
第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。
第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。
当RS和R/W 共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。
基于PWM调光的智能多功能台灯设计毕业设计

基于PWM调光的智能多功能台灯设计毕业设计目录中文摘要 (I)英文摘要...................................................................................................................... I I 前言.. (IV)1 设计的总体要求及方案选择 (1)1.1 调光技术的选择 (1)1.2 主要集成芯片的选择 (2)2 硬件系统电路设计 (4)2.1 整体电路系统模块 (4)2.2 单片机主控系统 (4)2.3 恒流驱动系统 (5)2.4 时钟系统 (7)2.5 液晶显示系统 (8)2.6 温度检测系统 (10)2.7 蜂鸣系统 (12)2.8 按键系统 (12)2.9 电源系统 (13)3 系统软件设计 (14)3.1 系统主程序 (14)3.2 按键检测和处理程序 (15)3.3 外部中断程序 (16)3.4 定时器中断程序 (16)3.5 C语言程序编写和ISP软件程序下载 (17)4软件的调试和仿真 (19)5 硬件的组装与调试 (20)5.1元器件的选择与测量 (20)5.2电子元器件的焊接与组装 (20)5.3电子电路的调试 (21)5.3.1 调试方法 (21)5.3.2 调试步骤 (21)总结 (24)致谢 (25)参考文献 (27)附录1 电路实物图 (28)附录2 电路原理总图 (29)附录3 电路程序清单 (30)附录4 元器件清单 (58)基于PWM的智能多功能台灯设计摘要随着电子技术的日益发展,人们生活中的照明工具也在发生着巨大的变化。
普通电灯,白炽灯,LED灯,这也反映了人类社会的进步,科技的发展。
目前的家居逐步朝着多功能化智能化的方向发展[12]。
随着环境问问题的恶化,能源的减少。
节能绿色环保的台灯,逐步走进了人们的生活。
以前的台灯用途单一,而现在的人们需要一种多功能智能化的台灯。
基于单片机PWM信号控制LED的软件实现方法

的 电路和 各 种功 能 。P I 1 5 D S C 一 7 6 A 卡 的工 艺流 程直 接 联 系 ,具 有很 强 的直 为不 同用 户 的需 求提 供 了一些 特 殊 的 观性 和形 象性 。
功能 。
() 传 统 控 制 面 板 把所 有 开 关 2和
电压 的 直 流 源 开 关 频 率 ,从 而 改 变 电平 ,L D E 全灭 。
L D 端 的 电压 ,进 而 达 到 控制 要 求 E两 的 一 种 调 速 方 法 。在 脉 宽 调 速 系 统
3P M .W 信号 的软件 实现 方法 实 现 对 L D 度 控 制 的 关 键 在 于 E亮
P O
=
Of x f:
)
根据 上 述 程序 ,搭 建实 验 电路 进
行 调 整 ,通 过 示波 器 观 测 到单 片机 的
P 输 山信 号如 图1 图2 示 。表 明本 0 、 所
图2程序产生不同 占空 比及其控制的L D E 亮度 ( 较亮 )
程 序 完 全可 行 ,能够 有效 获 得所 需 的
提 出利用P M W 来调控 L D E 的亮度 。 2P M ̄ .W f 基本 原理 l 亮 ;如 果 高低 电平 的 占空 比为 0 1 , :0 形 ,达 到 调 节 L D 度 。 软件 实 现 方 E亮
此 时全 为 低 电平 ,L D 亮 ; 如 果 高 法 如下 : E最
化界面软件,对其控制界面的进行相
实 际运行 表 明 以上 控 制面 板 和传 应 改变也 是非 常方便 的。
参考文献
[ R brH. so 著.aV E  ̄ 教程 . 1 o e B h p L b I W7 - ] t i 乔瑞萍,
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
/*************************************基于单片机STC89C52RC实验名称:温度控制及报警系统*************************************/#include<reg52.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned intsbit shuma=P2;sbit DQ=P1^5;//18B20信号控制端sbit BEEP=P3^5;//蜂鸣器信号控制端sbit SET=P3^1;//定义为调整按键sbit DEC=P3^2;//定义为减按键sbit ADD=P3^3;//定义为加按键sbit DJ=P1^1;//LED灯PWM输出端uchar PWM1=2;//最小档位uchar PWM2=13;//中等档位uchar PWM3=20;//最高档位uchar shangxian=25;//设置上限为25度uchar xiaxian=5;//设置下限为5度signed int temp,wendu;//定义为全局变量(读取温度)uchar X=0;//定时器计数uchar set_st=0;//状态标志位uchar beep_st=0;//蜂鸣器器报警标志位void Dis_alarm(uchar baojing);//报警头文件声明(为后面调用准备)uchar code table[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};//不带小数点的数字编码uchar code table1[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};//带小数点的数字编码/************************************函数功能:延时函数入口参数:u___待写入参数************************************/void TempDelay (uchar us){while(us--);}void delay(uint count)//延时子函数{uint i;while(count){i=100;while(i>0)i--;count--;}}/*******************************************初始化定时器*******************************************/void init_Time(void){TMOD=0X01;//50ms(12M晶振)TH0=0X3c;TL0=0Xb0;}/*******************************************定时器0中断服务程序*******************************************/void timer0(void) interrupt 1{TMOD=0x01;TH0=0X3c;TL0=0Xb0;X++; ;if(X>=20) X=0;}/****************************************PWM控制灯*****************************************/void PWM(){uchar clock;for(clock=0;clock<=20;clock++){if(wendu/100>=17&&wendu/100<=20){if(clock<=PWM1){ DJ=0;}else{DJ=1;}}elseif(wendu/100>=21&&wendu/100<=22){if(clock<=PWM2) DJ=0;elseDJ=1;}elseif(wendu/100>=23&&wendu/100<=30){if(clock<=PWM3) DJ=0;elseDJ=1;}}}/*****************************************显示报警温度服务程序*****************************************/void Dis_alarm(uchar baojing){P0=table[baojing/10]; //显示十位P2=0X80;delay(8);P0=table[baojing%10]; //显示个位P2=0x40;delay(8);if(set_st==1) P0=0X89;//上线字符Hif(set_st==2) P0=0xC7;//下限字符Lif(set_st==3) P0=0x88;//PWM1字符Aif(set_st==4) P0=0x8C;//PWM2字符Pif(set_st==5) P0=0x83;//PWM3字符BP2=0x10;delay(10);}/********************************************报警服务程序********************************************/void Alarm(){if(X>=10){beep_st=!beep_st;X=0;}if((wendu/100>=shangxian&&beep_st==1)||(wendu/100<xiaxian&&beep_st==1)) {BEEP=0; delay(3);}else{BEEP=1;delay(3); }}/********************************************函数功能:初始化DS18B20出口参数:status---DS18B20是否复位成功的标志********************************************/uchar init_18B20(){uchar status;//存储DS180B20是否存在标志位,status=0表示存在,status=1,表示不存在DQ=1;_nop_();//DQ先置一,等待10us的时间DQ=0;TempDelay (60);//在把数据先从高拉到低,要求保持的时间为(480~960)us;我们延时600usDQ=1;TempDelay (8);//释放数据总线,要求保持时间在(15~16)us;这里延时40us status=DQ;TempDelay (100);//让单片机检查是否存在输出脉冲,DQ=0,表示存在;给足够的输出脉冲DQ=1;//释放数据总线return status;}/********************************************函数功能:读一字节出口参数:dat---读出的数据********************************************/uchar read_18B20(){uchar i,j,dat=0;for(i=0;i<8;i++){DQ=1;_nop_();dat>>=1;DQ=0;_nop_();_nop_();DQ=1;if(DQ) dat|=0x80;else {dat|=0x00;}for(j=30;j>0;j--);}DQ=1;return dat;}/******************************************函数功能:写一个字节入口参数:dat---待写入的数据********************************************/void write_18B20(uchar dat){uchar i,j;for(i=0;i<8;i++){DQ=1;_nop_();_nop_();DQ=0;DQ=dat&0x01;for(j=30;j>0;j--);//延时约30us,DS18B20在拉低后的约15~60us期间从数据线上采样dat>>=1;//将dat中的各二进制位数据右移1位}DQ=1;}void tem_change(){init_18B20();write_18B20(0xcc); //跳过ROM指令write_18B20(0x44); //启动温度变换}/********************************************函数功能:读取温度值出入口参数:无********************************************/uint wendu_18B20(){uchar a,b;if(init_18B20()==1)BEEP=0;else{write_18B20(0xCC);write_18B20(0xBE);//从暂存器中读取9字节数据a=read_18B20();//读取的是DS18B20的低八位b=read_18B20();//读取的是DS18B20的高八位temp=b;temp<<=8;temp=temp|a;wendu=temp*0.0625*100+0.5;return wendu;}}/********************************************函数功能:数码管显示数据计算入口参数:temp********************************************/ void display(uint temp){uchar qian,bai,shi,ge;qian=temp/1000;bai=temp%1000/100;shi=temp%100/10;ge=temp%100%10;P0=table[qian];_nop_();_nop_();P2=0X80;delay(3);P0=table1[bai];_nop_();_nop_();P2=0x40;delay(3);P0=0xff;P0=table[shi];_nop_();_nop_();P2=0x20;delay(3);P0=table[ge];_nop_();_nop_();P2=0x10;delay(3);P0=0xff;}/********功能处理模块***********/void Dis_gong(){BEEP=1;EA=1;TR0=1;ET0=1;PWM();tem_change();display(wendu_18B20());//数据显示Alarm();//报警检测}/********************************************按键功能函数子程序********************************************/uchar Dis_key(){if(SET==0) //进入调整上限和下限的标志位{TempDelay(250);while(SET==0);set_st++;if(set_st>5) {set_st=0;}}if(set_st==0) //状态零正常显示状态{Dis_gong();}elseif(set_st==1)//状态一显示调整上限的增加与减少(最高为99度,最低为21度) {if(DEC==0&&set_st==1){TempDelay(250);while(DEC==0);shangxian--;if(shangxian<=21) shangxian=21;}elseif(ADD==0&&set_st==1){TempDelay(250);while(ADD==0);shangxian++;if(shangxian>=99) shangxian=99;}Dis_alarm(shangxian);}elseif(set_st==2)//状态二显示调整下限的增加与减少(最高为20度,最低为01度){if(ADD==0&&set_st==2){TempDelay(250);while(ADD==0);xiaxian++;if(xiaxian>=20) xiaxian=20;}elseif(DEC==0&&set_st==2){TempDelay(250);while(DEC==0);xiaxian--;if(xiaxian<=1) xiaxian=1;}Dis_alarm(xiaxian);}if(set_st==3) //PWM1加减{if(ADD==0&&set_st==3){TempDelay(250);while(ADD==0);PWM1++;if(PWM1>=20) PWM1=20;}elseif(DEC==0&&set_st==3){TempDelay(250);while(DEC==0);PWM1--;if(PWM1<=1) PWM1=1;}Dis_alarm(PWM1);}elseif(set_st==4)//PWM2加减{if(ADD==0&&set_st==4){TempDelay(250);while(ADD==0);PWM2++;if(PWM2>=20) PWM2=20;}elseif(DEC==0&&set_st==4){TempDelay(250);while(DEC==0);PWM2--;if(PWM2<=1) PWM2=1;}Dis_alarm(PWM2);}elseif(set_st==5)//PWM3加减{if(ADD==0&&set_st==5){TempDelay(250);while(ADD==0);PWM3++;if(PWM3>=20) PWM3=20;}elseif(DEC==0&&set_st==5){TempDelay(250);while(DEC==0);PWM3--;if(PWM3<=1)PWM3=1;}Dis_alarm(PWM3);}}/***********************************主函数***********************************/ void main(){BEEP=1;init_Time();EA=1;TR0=1;ET0=1;while(1){Dis_key();}}。