找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1372|回复: 0
打印 上一主题 下一主题
收起左侧

单片机根据温度阈值来判断风扇转动仿真实验程序

[复制链接]
跳转到指定楼层
楼主
本实验在压缩包中有具体仿真和程序,看程序便会了解LM016L的具体显示方式如何操作,并进一步了解如何向上位机发送数据并显示。
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)



单片机源程序如下:
  1. #include <reg51.H>
  2. #define u8 unsigned char
  3. #define u16 unsigned char
  4.        
  5. sbit motor=P1^1;//风扇
  6. sbit key_jia=P1^2;//按键,高温++
  7. sbit key_jian=P1^3;//按键,高温--

  8. u8 code tab1[16]="Phuck the world";
  9. u8 wen=30;//默认的高温阈值,超过30度就开风扇
  10. u8 tab_gao[16]="                ";//高温阈值
  11. bit key_flag=1;//是否有新按下,0无1有

  12. void delay8(u8 i){while(i--);}//短延时,给LCD、传感器
  13. void delay(long i)//长延时,顺便按键检测
  14. {
  15.           if(key_jia==0) wen++;
  16.                 if(key_jian==0) wen--;
  17.         while(i--)
  18.         {
  19.                 //\根据按键,修改风扇开关的阈值i++或者i--
  20.         }
  21. }
  22. #include "uart.h"
  23. #include "18b20.h"
  24. #include "1602.h"

  25. void main()
  26. {
  27.         u8 wendu;
  28.         UART1_init();
  29.         UART1_sends("Love u everyday \r\n");//发给串口的
  30.                
  31.         Lcd_init();
  32.         Lcd_writes(0,0,tab1);//第0列,第0行
  33.   tab_gao[2]=0xdf;//温度的°
  34.         tab_gao[3]=0x43;//温度的C
  35.        
  36.         while(1)
  37.   {
  38.     wendu=ds1820_wen();//读取温度
  39.                 UART1_number(wendu,1);//发送温度,换行回车
  40.                 tab_gao[0]=wen/10+0x30;
  41.           tab_gao[1]=wen%10+0x30;
  42.                 Lcd_writes(1,1,tab_gao);
  43.                 if(wendu<=wen) motor=1;
  44.                 else motor=0;//温度显示到LCD,并根据当前温度控制风扇开、关
  45.                 delay(10000);
  46.   }
  47. }
复制代码

所有资料51hei提供下载:
根据温度阈值来判断风扇转动.7z (127 KB, 下载次数: 20)


评分

参与人数 1黑币 +30 收起 理由
admin + 30 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表