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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3231|回復: 4
收起左側

單片機溫控風扇出了問題,求大神解救

[復制鏈接]
ID:242890 發表于 2017-11-11 10:46 | 顯示全部樓層 |閱讀模式
1黑幣
只截了關鍵部分代碼出來,其他代碼都仿真過,沒有問題,當加上溫控函數后,就不行了,一仿真就只執行第一條語句,即高速檔,我是初學者,不清楚是自己代碼寫錯了還是怎樣,自己看了好久也看不出個所以然,求大神看看,最好順著這個代碼幫我把這個溫控函數的代碼寫出來,謝謝,重賞

單片機源程序如下:
  • #include <reg52.h>                         //此文件中定義了單片機的一些特殊功能寄存器
  • #include "temp.h"
  • sbit LSA=P2^2;
  • sbit LSB=P2^3;
  • sbit LSC=P2^4;
  • int weidu;
  • uchar smgwei[3];
  • uchar code smgduan[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
  • void DigDisplay();
  • void smgdelay(uint x);
  • * 溫度讀取處理轉換函數 */          (數碼管上溫度顯示正常,證明這個函數沒毛病)
  • int datapros(int temp)
  • {
  •            float tp,x;
  •         if(temp< 0)                                //當溫度值為負數
  •           {
  •                 smgwei[0] = 0x40;           //   -
  •                 temp=temp-1;
  •                 temp=~temp;
  •                 tp=temp;
  •                 temp=tp*0.0625*10+0.5;
  •                 x=tp*0.0625+0.5;
  •           }
  •         else
  •           {
  •                 smgwei[0] = 0x00;
  •                 tp=temp;
  •                 temp=tp*0.0625*10+0.5;
  •                 x=tp*0.0625+0.5;
  •         }
  •         smgwei[1] = smgduan[temp % 1000 / 100 ];
  •         smgwei[2] = smgduan[temp % 100 / 10] | 0x80;
  •         smgwei[3] = smgduan[temp % 10];
  •         return x;
  • }
  • /* 溫控自動檔 */
  • void motorauto()
  • {
  •     weidu=datapros(Ds18b20ReadTemp());   //懷疑這句出錯
  •     if(weidu>=30)                    //仿真的時候無論怎么調溫度,都是執行高速檔
  •         {                                   //當把這里的條件調大 (如:weidu>=300)時,就只執行低速檔
  •         third();  //高速檔
  •         }
  •     else
  •         {
  •             first();  //低速檔
  •         }
  • }
  • /* 數碼管顯示函數 */        (數碼管上可以正常顯示溫度,這個函數也沒問題)
  • void DigDisplay()
  • {
  •         uchar i;
  •         for(i=0;i<4;i++)
  •         {
  •         P0=0x00;
  •                 switch(i)         //位選,選擇點亮的數碼管,
  •                 {
  •                         case(0):
  •                                 LSA=0;LSB=0;LSC=0; break;  //顯示第0位
  •                         case(1):
  •                                 LSA=1;LSB=0;LSC=0; break;  //顯示第1位
  •                         case(2):
  •                                 LSA=0;LSB=1;LSC=0; break;  //顯示第2位
  •                         case(3):
  •                                 LSA=1;LSB=1;LSC=0; break;  //顯示第3位
  •                 }
  •                 P0=smgwei[3-i];  //發送數據
  •                 msdelay(10);  //間隔一段時間掃描
  •                 P0=0x00;  //消隱
  •         }
  • }
  • /* 主函數 */
  • void main()
  • {
  •        while(1)
  •        motorauto();
  • }
  • /* while(1)                                               數碼管上顯示溫度,這里仿真過,沒有問題
  •     {
  •         datapros(Ds18b20ReadTemp());
  •         DigDisplay();
  •     }*/



回復

使用道具 舉報

ID:248313 發表于 2017-11-11 12:13 | 顯示全部樓層
有個for循環缺少{
回復

使用道具 舉報

ID:246473 發表于 2017-11-11 15:40 | 顯示全部樓層
可以進入調試,看一下weidu的具體數值
回復

使用道具 舉報

ID:242890 發表于 2017-11-12 11:56 | 顯示全部樓層
天0 發表于 2017-11-11 15:40
可以進入調試,看一下weidu的具體數值

調試了發現,weidu的數值是正確的
回復

使用道具 舉報

ID:248503 發表于 2017-11-12 13:55 | 顯示全部樓層
    if(weidu>=30)                    
        {                                 
        third();  //高速檔 ??????你用的是發熱絲還是制冷片。

                temp=tp*0.0625*10+0.5;//????
                x=tp*0.0625+0.5;
                 return x;
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品国产精品国产专区不片 | 久久国产精品一区二区三区 | 91一区二区三区在线观看 | 黄色毛片在线观看 | 四虎成人免费视频 | 亚洲国产一区二区三区在线观看 | 日本精品一区二区三区在线观看视频 | 亚洲国产成人精品女人久久久 | 亚洲一二三区免费 | 成人网av | 欧美天堂 | 特级做a爰片毛片免费看108 | 久久久久久久久毛片 | 日本三级网站在线观看 | 亚洲成人一级 | 亚洲二区在线 | 精品毛片 | 欧美伦理一区 | 亚洲国产精品一区二区www | 91影院| 国产一区二区在线播放视频 | 精品久久久久久久久久久院品网 | 中文字幕日韩一区 | 欧美一级视频免费看 | 亚洲日本一区二区 | 亚洲品质自拍视频 | 日本韩国欧美在线观看 | 午夜影院在线 | 天天曰天天干 | 国产成人高清视频 | 国产激情免费视频 | 色网站视频 | 精品网站999www | 毛片一区二区 | 九九伊人sl水蜜桃色推荐 | 成人激情视频 | 91啪影院 | 久久久高清 | gogo肉体亚洲高清在线视 | 日韩在线一区二区三区 | 亚洲免费在线播放 |