DS18B20采集温度并用LCD1602显示,采集的温度和设定的温度相减算出差值,将差值取整,查表得到5个PWM档位,占空比从0-100。 但是在KEIL和PROTUES联合调试时,观察示波器一直不能产生PWM,请大家赐教,万分感激!
程序和仿真在附件里,不常发帖,希望下载不会扣大家黑币。
单片机源程序如下:
- #include < reg52.h >
- #include < intrins.h >
- #include < ds18b20.h >
- #include < lcd1602.h >
- #include < fuzzy.h >
- #include < pwm.h >
- #define uchar unsigned char
- #define uint unsigned int
- void init_time()
- {
- TMOD= 0x00; //T0都是定时方式0
- TH0 = 0x1F; //10US
- TL0 = 0xF6;
- TR0=1;
- ET0=1;
- EA=1;
- }
- void main()
- {
- lcd_display();
- delayms(500);//wendingxitong
- ow_reset();
- init_time();
- while(1)
- {
- if(presence==0)
- {
- Ok_Menu ();
- delayms(500);
- while(1)
- {
- temperature_trans();
- fuzzy();
- pwmchange();
- c_display();
- temperature_display();
- }
- }
- else
- {
- Error_Menu ();
- delayms(500);
- ow_reset();
- }
- }
- }
复制代码
全部资料51hei下载地址(问答区下载不扣黑币的)
温度控制PWM程序仿真.rar
(110.56 KB, 下载次数: 15)
|