❶ 51单片机开发模板制作温度显示按键控速风扇,程序编好,按键功能实现不了,求大神门帮忙看看,感谢,感谢
首先你这程序有问题,这四行不属于任何的子程序,编译都出错。
DisplayData[1] = smgan[temp / 10000];
DisplayData[2] = smgan[temp % 10000 / 1000];
DisplayData[3] = smgan[temp % 1000 / 100] | 0x80;
DisplayData[4] = smgan[temp % 100 / 10];DisplayData[5] = smgan[temp % 10];
把这四行改正后,编译后仿真运行程序,3个按键是起作用的。你感觉不起作用,是因为那3个按键,就是改变 flag 分别为0,1,2。可是,主程序中根据 flag 值不同,执行的却是同一个动作,都是 moto=1; (稍稍有一点区别,只是你感觉不出来)所以,按什么键都是这个动作,按不按都 一样,当然那就会觉得按键不起作用。那3个按键控制的动作要有区别呀,或者动作区别要大,才能看出来按键起作用啦。最简单,直接的方法是,按住按键不松手,看数码管是不是全灭啦,如果全灭了,说明按键就是起作用的。
❷ 基于单片机的温度控制系统的设计
利用温度传感器DS18B20检测环境温度并直接输出数字温度信号给单片机AT89C52进行处理。
在LCD液晶上显示当前环境温度值、预设温度值、使用者设定的温度差以及目前风扇所处的档位。其中预设温度值只能为整数形式,检测到的当前环境温度可精确到小数点后一位。
同时采用PWM脉宽调制方式来改变直流风扇电机的转速。
并通过两个按键改变预设温度值,一个提高预设温度,另一个降低预设温度值。通过另一个按键控制温度差的大小。
设有红外热释传感器检测环境范围内是否有人,如果有人确定出风方向,如果无人,降低转速或一定时间内自动关闭。
回答
正如你所说的,一共用了DS18B20模块,LCD模块,红外传感模块,按键,直流电机模块,程序方面只有一个PWM。现在一一为你分析:
DS18B20模块:
下图是它的原理图,采用单总线来进行开发,不像电赛的哪个温度传感器需要AD转换,它是可以直接传出数字信号的。
❸ 怎样实现51单片机根据温度动态控制风扇转速,请高手帮帮忙!
给您思路:第一,你需要使用温控元件测温,比如DS18B20温度传感器。
第二:你所需要使用的控制芯片可以选择单片机,比如STC89C55(带掉电参数保存功能)。
第三:使用数码管或者LCD1602显示您所检测的温度或者显示您所需要设置的温度范围。
第四:按键,根据你所需要的温度范围,根据按键来设置参数范围。
第五:使用定时器1或者2输出PWM波,控制可控硅(BTA06等),根据您的电流大小吧。
第七:在单片机里处理您的各类控制。大概就是如此吧。