久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3801|回復: 1
收起左側

單片機+ADC0832電爐絲控制程序+Proteus仿真

[復制鏈接]
ID:479983 發(fā)表于 2020-5-11 10:56 | 顯示全部樓層 |閱讀模式
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
51hei.png

單片機源程序如下:
  1. #include <reg52.h>
  2. #include <intrins.h>
  3. #include <math.h>    //Keil library
  4. #include <stdio.h>         //Keil library
  5. #include "lcd.h"
  6. //#include "DHT111.h"
  7. //#include "DS18B20.h"
  8. #include "ADC0832.h"

  9. #define uchar unsigned char

  10. sbit pwm_out =P1^5;
  11. sbit k1 =P2^3;
  12. sbit k2 =P2^4;

  13. sbit key1 =P3^4;
  14. sbit key2 =P3^5;
  15. sbit key3 =P3^6;
  16. sbit key4 =P3^7;
  17. ////延時函數(shù)
  18. void delay(int z)                //z為毫秒數(shù)
  19. {
  20.         int x,y;
  21.         for(x=z;x>0;x--)
  22.                 for(y=125;y>0;y--);
  23. }

  24. void delay_us(unsigned int z)                //z為毫秒數(shù)
  25. {
  26.         TH1=0X00;
  27.         TL1=0X00;
  28.         TR1=1;
  29.         while((256*TH1+TL1)<z);
  30.   TR1=0;
  31. }

  32. unsigned int tim0_cnt=0;// init=1000,
  33. float zhankong=0.5;

  34. void timer0()interrupt 3{
  35.         
  36. //          tim0_cnt++;
  37. //        if(tim0_cnt>=100) tim0_cnt=0;
  38. //        
  39. //        if(tim0_cnt%2==0)
  40. //        {
  41. //                 pwm_out=0;
  42. //                init=20000;//(int)(zhankong*50000);
  43. //          TH0 = (65536 - init) / 256;
  44. //                TL0 = (65536 - init) % 256;
  45. //        }
  46. //        else
  47. //        {
  48. //                 pwm_out=1;
  49. //                init=30000;//(int)(50000-zhankong*50000);
  50. //          TH0 = (65536 - init) / 256;
  51. //                TL0 = (65536 - init) % 256;
  52. //  }
  53. }

  54. /***********************************************************************************************************************************************************/
  55. //主函數(shù)

  56. char set[]="set:",now[]="now:";

  57. void main()
  58. {
  59.         unsigned int cnt=0;
  60.         //value humi_val,temp_val;                //定義兩個共同體,一個用于濕度,一個用于溫度
  61.         float voltage=0,set_voltage=20.0;
  62. ////        float dew_point;                            //用于記錄露點值
  63. //        unsigned char error;                    //用于檢驗是否出現(xiàn)錯誤
  64. //        unsigned char checksum;                        //CRC                        
  65. //        uchar TEMP1[5];                                         //用于記錄溫度
  66. //        uchar HUMI1[5];                                         //用于記錄濕度
  67.         unsigned char set_temp=20,i;
  68.                 LcdInit();               
  69.         for(i=0;i<4;i++)
  70.         {
  71.         LcdWriteCom(0x80+i);
  72.         LcdWriteData(set[i]);        
  73.         }        
  74.                 for(i=0;i<4;i++)
  75.         {
  76.         LcdWriteCom(0x80+0x40+i);
  77.         LcdWriteData(now[i]);        
  78.         }        
  79.         //LCD_Initial();                                           //初始化液晶                  
  80. //           GotoXY(0,0);                                           //選擇溫度顯示位置
  81. //           Print("NOW:      C");                           //5格空格
  82. //         GotoXY(0,1);                                           //選擇濕度顯示位置
  83. //           Print("SET:      C");                           //5格空格
  84.         
  85.         //s_connectionreset();                           //啟動連接復位
  86.          // Init_DS18B20();
  87.            TMOD=0x10;
  88. //          TH0 = (65536 - 50000) / 256;
  89. //                TL0 = (65536 - 50000) % 256;
  90.                 TL1=0X00;
  91.                 TH1=0X00;
  92. //        ET0=1;
  93.           EA=0;
  94.         TR0=0;
  95.         TR1=0;
  96.         
  97.         while(1)
  98.         {
  99.                 cnt++;
  100.                 if(key1==0) { delay(200); if(key1==0) if(set_voltage<99)set_voltage++;}
  101.                 if(key2==0) { delay(200); if(key2==0) if(set_voltage>0)set_voltage--;}
  102.                 if(key3==0) { delay(200); if(key3==0) if(set_voltage<99)set_voltage=set_voltage+0.1;}
  103.                 if(key4==0) { delay(200); if(key4==0) if(set_voltage>1)set_voltage=set_voltage-0.1;}
  104.                
  105.                 voltage =(float)read0832();
  106.                 voltage = 5.0 * voltage/256;
  107.                 voltage=20*voltage;
  108.                
  109.                 if(voltage<=set_voltage){k1=1;k2=0;}
  110.           else if(voltage>set_voltage){k1=0;k2=1;}  //
  111.                                        
  112.                                 //set_voltage=humi_val.f/10;
  113.                         //        if(set_voltage>4.1)set_voltage=4.1;
  114.                                 
  115.                    if(cnt>=10){cnt=0; LCD_display(set_voltage, voltage);}
  116.                                 //temp=(int)(voltage*100);  
  117.                         delay(10);                             //等待足夠長的時間,以進行下一次轉換      
  118.                 }
  119.             
  120.         }
復制代碼

所有資料51hei提供下載:
電爐絲控制.zip (163.08 KB, 下載次數(shù): 66)


回復

使用道具 舉報

ID:751513 發(fā)表于 2020-5-14 11:02 | 顯示全部樓層
很有用的資料
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久精品视频播放 | 精品国模一区二区三区欧美 | 日韩视频一区二区三区 | 网站黄色av| 国产不卡视频 | 亚洲欧美日韩电影 | 欧美日韩高清一区 | 国产免费视频在线 | 日韩av免费在线电影 | 成人伊人 | 精品欧美一区二区久久久伦 | 青青草综合 | 操到爽| 成人区精品 | 精品无码久久久久久国产 | 欧美性大战久久久久久久蜜臀 | 日本精品久久 | 精品一区二区三区中文字幕 | 色欧美片视频在线观看 | 在线欧美一区二区 | 免费久 | 91在线观看免费视频 | 婷婷色国产偷v国产偷v小说 | 婷婷丁香在线视频 | 国产精品.xx视频.xxtv | 欧美久久久久 | 国产精品爱久久久久久久 | 亚洲小视频在线播放 | 欧美日韩成人影院 | 天天天操操操 | 成人午夜精品一区二区三区 | 天天av网| 亚洲天堂影院 | 中文字幕1区2区 | 成人小视频在线观看 | 国产精品欧美一区喷水 | 天堂国产 | 成人一区二区三区在线观看 | 九九热免费视频在线观看 | 欧美一级片久久 | 欧美成人a |