标题: 单片机温度控制报警项目,含源码和仿真图 [打印本页]

作者: 单片机凡仔    时间: 2020-3-22 10:25
标题: 单片机温度控制报警项目,含源码和仿真图
能完成测试室内室外温度,并且可以设计报警阈值,
用89c51单片机实现,
程序用操作系统写的,
供大家学习,内容都是原创,
如有不足之地,请多多指教。

仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)


单片机源程序如下:
  1. #include "config.h"

  2. bit flag1s=0;
  3. uint threshold=600;//阈值
  4. void delay(uint x)//us级延时
  5. {
  6.         while(x--);
  7. }

  8. void init_TIM()//定时器初始化
  9. {
  10.         TMOD=(TMOD&0x0F)|0x10;         //初始化定时器
  11.     TH1=0xdc;//20ms
  12.     TL1=0x00;
  13.         TR1=ET1=1;//启动定时器1,开启定时器1中断
  14.         RCAP2H=0x4c;//50ms
  15.         RCAP2L=0x00;
  16.         ET2=TR2=1;//启动定时器2,开启定时器2中断
  17.         EA=1;//总中断打开
  18. }


  19. void main0() _task_ 0//任务0
  20. {
  21.         delay(20000);//上电等待单片机
  22.         init_TIM();//定时器初始化
  23.         beep=1;
  24.         os_create_task(1);//激活任务一
  25.         os_create_task(2);//激活任务二
  26.         os_delete_task(0);//删除任务0
  27.         while(1);
  28. }

  29. void TIM1() interrupt 3//定时器1中断
  30. {
  31.     TH1=0xdc;//20ms
  32.     TL1=0x00;
  33.         if(TC>threshold||TC1>threshold)
  34.         {
  35.                 beep=0;
  36.         }
  37.         else
  38.                 beep=1;
  39. }

  40. void TIM2() interrupt 5//定时器2中断
  41. {
  42.         static uchar num=0;
  43.         TF2=0;        
  44.         num++;
  45.         if(num==20)
  46.         {
  47.                 num=0;
  48.                 flag1s=1;
  49.         }
  50. }
复制代码



全部资料51hei下载地址:
温控项目.zip (166.47 KB, 下载次数: 18)






欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1