设计一个由单片机控制的电加热水箱装置

作者&投稿:嬴饱 (若有异议请与网页底部的电邮联系)
由单片机控制的电加热水箱装置~

你好!有个类似的你看看吧,可以按照你的要求修改

w=0时,三极管基极为低电平,三极管处于截止状态,继电器线圈不能通电,应该令w=1

#include <reg52.h>
#include "inc/delay.h"
#include "inc/hc595.h"

#define uchar unsigned char
#define uint unsigned int
sbit PIN_ROTARY_A = P2^0; //引脚1接口
sbit PIN_ROTARY_B = P2^1; //引脚2接口
sbit PIN_ROTARY_C = P2^2; //按下的接口

sbit PIN_ROTARY_D = P2^3; //按下的接口

//uchar code table[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
/* 存储待发送的数据 */
/* 1->8的段码表 */
code unsigned char ucDis_Segmentcode[16] = {0x3f,0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
/* 位码表 */
code unsigned char ucDis_Bitcode[8] = {0xFE, 0xFD, 0xFB, 0xF7, 0xEF, 0xDF, 0xBF, 0x7F};
uchar dis_XS[8] = {0x3f,0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d};
uchar count = 0;
uchar flag;
uchar Last_BMB_status;

uchar Current_BMB_status;

void display()
{
uchar i;

dis_XS[0] = ucDis_Segmentcode[count/100]; //百位

dis_XS[1] = ucDis_Segmentcode[count%100/10]; //十位

dis_XS[2] = ucDis_Segmentcode[count%10]; //个位

if(i < 2)
{
i++;
}
else
{
i = 0;
}

// for (i = 0; i < 3; i++ )
{
Send_Data(dis_XS[i], ucDis_Bitcode[i]);
//PIN_ROTARY_D = 0;
// Delay1ms(1);
}
}

//************************************************
void main()
{

TMOD=0x01; //定时器0,工作方式1
TH0=0xD8;
TL0=0xF0; //给定时器装上初值,10ms中断一次
ET0=1; //打开定时器中断
EA =1; //打开总中断
TR0=1; //启动定时器0

while(1)
{
//display();
Last_BMB_status=PIN_ROTARY_B;

while(!PIN_ROTARY_A) //BMA为低电平时
{
Current_BMB_status = PIN_ROTARY_B;
flag = 1; //标志位置为1说明编码开关被旋转了
}

if(flag == 1)
{
flag = 0; //时刻要注意这一点!给标志位清零
if((Last_BMB_status == 0)&&(Current_BMB_status == 1)) //BMB上升沿表示正转
{
count++;
if(count == 255)
{
count = 0;
}
}
if((Last_BMB_status == 1)&&(Current_BMB_status == 0)) //BMB下降沿表示反转
{
count--;
if(count == 0)
{
count = 255;
}
}
}
}
}

//***********************************************
void timer0() interrupt 1//定时器0的中断服务程序
{
TH0=0xF8; // TH0=0xD8;
TL0=0xF0; //再次装入初值
display(); //每隔10ms显示一次
if(!PIN_ROTARY_C) //按下旋转编码开关则计数清零
{
count = 0;
}
PIN_ROTARY_D = !PIN_ROTARY_D;
}

你这个是毕业设计吗?要求还挺多


...编写一个六位数码管计数器,要求带清零,暂停键。用STC单片机控制,
从你的描述看,你的数码管是共阴的。用STC单片机控制段码,P0口可以直接接段码,需要将段码输出方式设置为推挽方式,P0口输出高电平时数码管亮。用动态扫描方式显示。清零只要将所有计数变量赋值为零即可。暂停键:扫描暂停键按下时,设置一变量为1,再次按下时为0,当变量为1时停止计数,当变量为0时...

请问一个只有两个定时器的单片机怎么控制两个以上的汽缸,先后运动...
假设定时器是M 和 N ;4个汽缸 A、B、C、D A汽缸将货物反复从1到2 记时间为t ;B汽缸将货物反复从2到3 ;C汽缸将货物反复从3到4 ;D汽缸将货物反复从4到5 M定时器驱动A、C汽缸工作;N定时器驱动B、D汽缸工作 但得记住N定时器必须相对M定时器延迟时间t才开始工作,这样...

用51单片机设计了一个简单的倒计时器,但数码管有点小问题,请教高手_百度...
uchar data1[]={5, 9}; \/\/保存倒计时初始值 uchar num; \/\/设为全局变量 uchar count;sbit a = P1^0; \/\/设置键 sbit b = P1^1; \/\/增一键 sbit c = P1^2; \/\/减一键 sbit d = P1^3; \/\/确定键 sbit e = P3^0; \/\/控制LED发光 sbit f = P3^2;void delayms...

用单片机C语言控制6位密码锁。要求有一个清除键和确认键,密码输错了...
用单片机C语言控制6位密码锁。要求有一个清除键和确认键,密码输错了会有报警音。请高手帮助了 程序简单易懂,能实现这些功能就行,我做个毕业设计... 程序简单易懂,能实现这些功能就行,我做个毕业设计 展开  我来答 4个回答 #热议# 该不该让孩子很早学习人情世故? gnjiao 2009-04-04 知道答主 ...

跪求一个 89C52单片机通过按键产生PWM信号来控制LED灯的不同亮度的程 ...
define uint unsigned int sbit lamp=P2^0;\/\/输出 sbit k1=P3^3;\/\/加键 sbit k2=P3^2;\/\/减键 sbit k3=P3^4;\/\/停止 uchar a=10;void delay(uint x)\/\/延时函数 { uchar i;while(x--)for(i=0;i<110;i++);} void init(){ TMOD=0X01;\/\/晶振11.0592,定时器定时方式1 TH0=...

用c51单片机控制一个闪光灯循环闪光5次以后熄灭不再闪光,用C语言编程...
用C语言编程,求程序的方法:#include//包含单片机寄存器的头文件 /***函数功能:延迟一段时间 ***/ Voiddelay(Void)//Void表示没有返回值,也没有传递参数。{ Unsignedint我;定义一个最大值为65535的无符号整数。For (I = 0;我< 20000;i++) \/\/执行20000个空循环。;//什么...

高手来看 要求基于单片机的rlc测量仪
(74LS273)是一个锁存器,用于将由单片机发出的控制信号锁存并传输给U1,U2,U5实现程控;由于U1,U2,U5开关切换的驱动电压要求达到5 V以上,而单片机的高电平仅为3~5 V,达不到驱动电压,所以要采用一个集电极开路的驱动器(74LS07)才能实现由单片机控制的开关切换(R13,R14,R15,R16,R17为74LS07输出端的上拉电阻)...

单片机80c51设计一个两位计数器,能对外部的脉冲进行计数,能进行复位...
主程序中滚动显示两位数字,当输入脉冲未来到之前并保持不变。在中断服务程序中,每当来一个外来脉冲时,需要显示的数字加一。单片机复位时,需要显示的数字是00。主程序中,开INT0中断。需要设置:(1)选用外部中断0 中断,没.0 矢量地址为0003H。(2)中断标志TCON 的第0位 触发方式控制位 ...

我想做一个用单片机频率计,用T0计数,T1定时1s,数码管显示,但当频率大于...
没有修改你的,我把以前做的一个给帖过来了,最后是显示图片。include<reg51.h> define uchar unsigned char define uint unsigned int uchar led[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};uint Tcount=0,Ncount=0;\/\/uint tt;void delay(uchar a){ uchar i,j;for(i...

怎么用8051单片机来控制检测一个高电平信号持续5秒,超过5秒后发出警报...
信号高电平接到51的一个IO脚,,,写一段程序读取该脚,,,为高电平就开始计时,,,超过5 秒,,,输出一个低电平到某个IO脚报警就是了...

康马县15053794496: 基于单片机的数控型电热水器主控制板设计 -
希廖童刻: 温度检测可以用18b20贴热水器水箱壳外面,单片机控制键盘加显示,对电热管进行PWM控制.功能51足以,推荐你STC12C5410AD,一片就够用了,大概8块.自带AD检测,PWM模块的1T片子.

康马县15053794496: 求一个用51单片机设计的热水器控制系统 -
希廖童刻: 这个是单片机比较低级的应用了,时间用实时时钟芯片如ds130 2,测温ds18b20,单片机用51的随意一款就可以了.至于开机时间设定,在低功耗模式下只让时钟走,到点时才唤醒就可以了.有兴趣可以找我

康马县15053794496: 用AT89c51和DS18820设计一个自动控制水温的装置 -
希廖童刻: 第一:DS18820是DS18B20 第二:可以用单片机的一个口线和DS18B20想连接,用其他的口线驱动继电器控制加热装置.可以在单片机的程序里面设定两个温度,温度高于某个值时停止加热,温度低于某个值时开始加热 第三:DS18B20是单线总线的结构,使用这个器件要下点功夫.网络上关于这个器件的使用的资料很多. 第四:用单片机的P0口和P3口中的几条线驱动数码管 第五:单片机的主程序用于显示温度,用定时中断的方式查询DS18B20的传回的温度.注意,DS18B20的操作时间较长,在程序的编写中要注意 第六:本着负责的态度,源程序和电路图不给出.这个项目是我做过

康马县15053794496: 如何用单片机控制加热器? -
希廖童刻: 单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电...

康马县15053794496: 跪求:单片机加温装置控制电路程序设计(C语言版)求个程序 -
希廖童刻: 设计程序要看你的硬件是怎么接的,你的加热管应该是接在单片机的某个IO口上吧,估计还得有个AD采样,把采回来的值与你设定的温度相比,再完成相应的功能.

康马县15053794496: 我想用固态继电器,单片机,电加热板来做一个加热温度可控的电加热板.可行么? -
希廖童刻: 可行,固态继电器+PWM,温度的控制就要考量你的算法了

康马县15053794496: 跪求大神帮忙编写:单片机加温装置控制电路程序设计(C语言).有图 -
希廖童刻: 首先,你要用的温度传感器是什么呢?DS18B20行不.另外,你的需求有误,帮你略改一下.(1) 当温度低于设定温度1/4时,2个加热管同时加热;(2) 当温度高于设定温度1/2时,1个加热管加热;(3) 当温度大于设定温度3/4时,2个加热管都不加热;晚上给你程序.(C语言编程,若要ASM也可以,我需要重新编写) 在我的博客里,有两篇关于如何用规范的方法从DS18B20中读出温度数据的文章,你可以去看看.希望对你有帮助.http://hi.baidu.com/xiaopc001/blog

康马县15053794496: 利用9012.、20欧姆/2W电阻设计一个单片机I/o可以控制的加热模块,画出电路图. -
希廖童刻: 哦,你说的要求不够详细,现画了简单的,用5V供电,为了可靠起见,3个20欧电阻串联,保证流过9014的电流不大于100mA.

康马县15053794496: 麻烦大家帮忙提供一个单片机温度控制系统中的加热电路,非常感谢 -
希廖童刻: 呵呵,这个加热电路好做,程序不好编.我给你建议一个方式吧:用固态继电器+温控仪的方法,我用了很多年了,效果一直不错哦.

康马县15053794496: 利用单片机制作一个可调节的恒温装置,有人能给一些思路吗 -
希廖童刻: 一个温度传感器,一套驱动电路,一套加热装置(如电阻丝).温度传感器一般输出的是电压信号,接入单片机的AD管脚.驱动电路驱动加热装置,一般接上单片机的PWM输出管脚.单片机采到温度传感器的信号,将其转化为具体的温度值,然后依据温度值可以采用PID来调节PWM波来驱动加热器.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网