51单片机用定时器输出1KHZ到20Khz的方波输出要求改变一个变量来调整输出的频率还有就是

 我来答
匿名用户
2013-08-17
展开全部
1 空调工作原理 (1)制冷原理 [img] http://www.sunplusmcu.com/uppic/20051122134325.jpg[/img] 图 1-1空调制冷原理 空调制冷原理如图 1�6�21所示,空调工作时,制冷系统内的低压、低温制冷剂蒸汽被压缩机吸入,经压缩为高压、高温的过热蒸汽后排至冷凝器;同时室外侧风扇吸入的室外空气流经冷凝器,带走制冷剂放出的热量,使高压、高温的制冷剂蒸汽凝结为高压液体。高压液体经过节流毛细管降压降温流入蒸发器,并在相应的低压下蒸发,吸取周围热量;同时室内侧风扇使室内空气不断进入蒸发器的肋片间进行热交换,并将放热后的变冷的气体送向室内。如此,室内外空气不断循环流动,达到降低温度的目的。 (2)制热原理 [img] http://www.sunplusmcu.com/uppic/20051122134411.jpg[/img] 图 1-2空调制热原理 空调热泵制热是利用制冷系统的压缩冷凝热来加热室内空气的,如图 1�6�22所示。低压、低温制冷剂液体在蒸发器内蒸发吸热,而高温高压制冷剂气体在冷凝器内放热冷凝。热泵制热时通过四通阀来改变制冷剂的循环方向,使原来制冷工作时做为蒸发器的室内盘管变成制热时的蒸发器,这样制冷系统在室外吸热,室内放热,实现制热的目的。 2 功能介绍 ◆ 制冷 1) 设定温度范围:16℃~30℃,默认设定温度为24℃。 2) 具有防霜冻保护功能。 ◆ 除湿 在除湿运转模式下,设定温度由遥控器决定,温度设定范围:16℃~30℃。控制器根据室内温度和设定温度的差值决定运转模式。 ◆ 制热 1) 设定温度范围:16℃~30℃。 2) 具有防冷风功能。 3) 具有化霜功能。 4) 具有高温保护功能。 ◆ 送风模式 风速可在高、中、低档之间转换,不受设定温度所控制。 ◆ 定时开/关机功能 定时开/关机时间以10分钟为最小单位进行设置,定时时间到达,空调启动和停止工作。 ◆ 风门片工作情况 1) 遥控器可设置风门片工作于连续方式或固定方式。 2) 制冷、除湿、送风和自动摆风在150°与105°之间大约45°做周期摆动。 3) 制热摆风在90°与150°之间大约60°做周期摆动。 ◆ 健康运行 可以在任何模式下,产生健康负离子,进行空气杀菌。 ◆ 自动运行 遥控器设定为自动运转模式时,空调器根据室内温度与设定温度的差值,自动判定运转模式。设定温度默认为24℃。 ◆ 睡眠 科学的温度-睡眠曲线,自动调节室内温度,保证用户有一个非常舒适的睡眠。 ◆ 应急开关 遥控器丢失或损坏时,可以使用应急开关进行开机、关机、制冷和制热。 3 系统总体方案介绍 硬件组成框图如图 3�6�21所示。主要由CPU、信号检测和控制部分组成。CPU首先接收遥控器发出的红外信号,获得命令参数,同时检测环境变量(温度、过流、电网断电等),然后综合分析,下达命令,控制空调各部件的正常工作。显示面板可以显示空调当前的工作状态。 [img] http://www.sunplusmcu.com/uppic/2005112213481.gif[/img] 图 3-1硬件组成框图 4 系统硬件设计 4.1 空调电路原理 硬件电路如图 4�6�21所示。根据工作电压的不同,整个系统可以分为三部分:微控系统、继电器控制和强电控制,分别工作于DC5V、DC12V和AC220V。 [img] http://www.sunplusmcu.com/uppic/2005112213494.gif[/img] 图 4-1系统电路原理图 4.2 芯片特性简介 SPMC65P2408A是由凌阳公司设计开发的8位工业级单片机,采用凌阳SPMC65内核,支持位操作指令。具有强大的定时/计数器、丰富的外部中断源以及ADC、PWM、标准通讯接口等多种功能。适用于通用工控场合、计算机外围控制和家电等。SPMC65P2408A有28管脚和32管脚两种封装,32管脚封装多了UART功能。本设计选用28管脚封装,如图4-2所示。 28管脚封装芯片的具体特性如下: l 工作电压:3.0V~5.5V l 工作速度:8MHz l 工作温度:-40℃~85 ℃ l 超强抗干扰、抗静电ESD保护能力 l 8K byte ROM,256 byte RAM l 23个通用输入输出口 l 强大的定时计数器:2个8位、2个16位具有Capture\Compare\PWM功能 l 1个1Hz~62.5KHz的时基 l 8通道10位精度的ADC(带外部参考电压) l 4个外部中断,11个内部中断 l SPI串行通讯接口 l 2种省电模式:Halt、Stop l 蜂鸣器输出功能 l 4.0V/2.5V可选低电压复位功能 l 可编程看门狗功能 [img] http://www.sunplusmcu.com/uppic/20051122135422.gif[/img] 图 4-2 SPMC65P2408A*28P封装 4.3 供电系统分析 整个主控板上有三种电压:AC220V、DC12V和DC5V。AC220V直接给压缩机、室外风机、室内风机和负离子产生器供电;AC220V经过降压,变为DC12V和DC5V,用于继电器和微控系统供电。供电系统如图4-3所示,AC220V先经过变压器降压,然后从插座J1输入,经过整流桥进行全波整流,通过电容C2滤波,得到DC12V,再经过稳压片7805稳压,得到DC5V。图中的采样点ZDS用于过零点的检测,二极管D1防止滤波电容C2 对采样点ZDS的影响。 [img] http://www.sunplusmcu.com/uppic/20051122135845.gif[/img] 图 4-3供电系统 4.4 过零检测电路 过零检测电路如图4-4所示,用于检测AC220V的过零点,在整流桥路中采样全波整流信号,经过三极管及电阻电容组成整形电路,整形成脉冲波,可以触发外部中断,进行过零检测。采样点和整形后的信号如图4-5所示。 过零检测的作用是为了控制光耦可控硅的触发角,从而控制室内风机风速的大小。 [img] http://www.sunplusmcu.com/uppic/20051122135928.gif[/img] 4过零检测电路 [img] http://www.sunplusmcu.com/uppic/20051122135956.jpg[/img] 5采样点和整形后的信号 4.5 室内风机的控制 图4-6为内风机控制电路,U1为光耦可控硅,用于控制AC220V的导通时间,从而实现内风机风速的调节。U3的3脚为触发脚,由三极管驱动。AC220V从管脚11输入,管脚13输出,具体导通时间受控于触发角的触发。 室内风机风速具体控制方法:首先过零检测电路检测到AC220V的过零点,产生过零中断;然后,在中断处理子程序中,打开Timer的定时功能,比如定时4ms,4ms后由CPU产生一个触发脉冲,经三极管驱动,从U3的3脚输入,触发U3的内部电路,从而使U3的管脚11和13的导通,AC220V给室内风机供电。这样,通过定时器的定时长度的改变可以控制AC220V在每半个周期内的导通时间,从而控制室内风机的功率和转速。 [img] http://www.sunplusmcu.com/uppic/2005112214321.gif[/img] 图 4�6�26室内风机控制电路 4.6 室内风机风速检测 当室内风机工作时,速度传感器将室内风机的转速以正弦波的形式反馈回来,正弦波的频率与风机转速成特定的对应关系,见下表所示。正弦波经过三极管整形为方波,CPU采用外部中断进行频率检测,从而实现对风速的测量。 风速 高 中 低 风机频率(Hz) 70 50 30 [img] http://www.sunplusmcu.com/uppic/2005112214634.gif[/img] 图 4-7室内风机风速检测电路 4.7 过流检测电路 采用电流互感器L1检测火线上电流的变化情况。图中 L1为电流互感器,输出0~5mA的交流电。当电流突然增大时,电流互感器输出电流也随之增大,经过全桥整流、电流-电压转换、低通滤波,从COD端输出直流电压信号。CPU通过对COD端电压的AD采集来感知AC220V电流的变化,当COD端的电压过高时,CPU可以对电路采取保护措施。 [img] http://www.sunplusmcu.com/uppic/2005112214728.gif[/img] 图 4-8过流检测电路 4.8 低电压检测电路 采用电阻分压原理,CPU利用AD采集对7805前端的12V电压进行检测。当电网掉电后,AD端会采集到7805前端的12V电压的降低,由于7805输出端电容的存在,所以即使12V电压降低到6V,7805仍能提供5V电压使CPU正常工作, 此时,CPU立即将空调当前的运行参数保存在AT24C01里面。 [img] http://www.sunplusmcu.com/uppic/200511221488.gif[/img] 图 4-9低电压检测电路 4.9 压缩机、四通阀、外风机和负离子产生器(健康运行)的控制 压缩机、室外风机、四通阀和负离子产生器均由AC220V供电,所以通过继电器控制AC220V的通断便可以控制各个部分的运行。 R1为压敏电阻,用于过压保护。SI1为保险管。 插座J2为AC220V输出端,外接变压器,将AC220V降压,降压后接到电源模块,分别得到DC12V和DC5V。 [img] http://www.sunplusmcu.com/uppic/20051122141012.gif[/img] 图 4-10压缩机、四通阀和健康运行的控制电路 4.10 驱动电路 继电器、峰鸣器和步进电机均由12V直流电压控制,U4为驱动芯片。 Neg-lonC控制负离子发生器的继电器; ValveC控制四通阀的继电器; ComprC控制压缩机的继电器; Buzzer控制峰鸣器; A、B、C、D为步进电机的四相。 图 4-11驱动电路 4.11 断电记忆 采用U5(AT24C01)作为串行存储芯片,保存电网断电前空调的运行参数。该芯片只需两根线控制:时钟线SCL和数据线SDA/Ion,存储器大小为128×8 byte。 [img] http://www.sunplusmcu.com/uppic/20051122141043.gif[/img] 图 4-12断电记忆电路 5 系统软件设计 5.1 主流程 主程序流程如图 5�6�21所示,一个主循环时间为10ms,采用时基进行定时。 首先等待10ms的到来,10ms来临,进行遥控器信号的解码,根据解码得到的信息选择空调的工作模式,然后进入该模式执行。 [img] http://www.sunplusmcu.com/uppic/2005112214126.gif[/img] 图 5-1 主流程图 6 结语 SPMC65系列芯片以优异的性能和丰富的资源适合于各个公控场合。本次以SPMC65P2408A为主控芯片开发的空调主控板,在没有专门加EMC防治的情况下,经过EFT测试,其抗干扰能力达到国家最高级别±4KV。
zhxiufan
推荐于2018-05-08 · 知道合伙人软件行家
zhxiufan
知道合伙人软件行家
采纳数:14923 获赞数:38379
国家科技进步奖

向TA提问 私信TA
展开全部
#include<reg51.h>
#define uchar unsigned char
uchar cnt,freq;
sbit pluse=P1^0;
sbit key=P1^4;
void t0isr() interrupt 1
{
cnt++;
if(cnt>=freq)
    {
    cnt=0;
    pluse=~pluse;
    }
}
main()
{
TMOD=0x02;
TH0=256-25;
TL0=256-25;
TR0=1;
ET0=1;
EA=1;
freq=10;
if(key==0)
    {
    while(key==0);
    freq++;
    if(freq>20)freq=1;
    }
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-08-17
展开全部
我用12M晶振,用定时器中断来生成占空比是50%的方波,发现当变量x=489时输出1KHz的方波,当x=15时输出20KHz的方波,两者之间规律不好找。建议用555集成电路做,51单片机能力有限。
#include <reg52.h>
typedef unsigned char uint8;
typedef unsigned int uint16;
typedef long int uint32;
sbit test = P1^0;
uint16 x =41;//489时1KHz;15时20KHz;
uint8 H,L;
void init()
{
EA = 1;
ET1 = 1;
TMOD = 0x10;
x = 65536 - x;
H = x / 256;
L = x % 256;
TH1 = H;
TL1 = L;
TR1 = 1;
}
main()
{
init();
while(1);

}
void interrupt_() interrupt 3
{
TH1 = H;
TL1 = L;
P1 = ~P1;
IE1 = 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式