找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 5708|回復(fù): 44
收起左側(cè)

想問下我這段主函數(shù)有錯(cuò)誤嗎?

  [復(fù)制鏈接]
回帖獎(jiǎng)勵(lì) 20 黑幣 回復(fù)本帖可獲得 20 黑幣獎(jiǎng)勵(lì)! 每人限 1 次
ID:377872 發(fā)表于 2018-8-11 18:42 | 顯示全部樓層 |閱讀模式
本帖最后由 hyg1997 于 2018-8-11 22:47 編輯

     編譯0錯(cuò)誤,0警告,但是蜂鳴器就是不響。。。。。。

#include<reg52.h>
#include <LCD1602.h>
#include<MOTOR.H>
#include<BEEP.H>
#define uchar unsigned char
#define uint unsigned int
void main()
{
uinti,j;
Delay_xms(50);//等待系統(tǒng)穩(wěn)定
  /* 系統(tǒng)初始化 */
TMOD = 0x20;          //定時(shí)器T1使用工作方式2
  TH1= 253;        // 設(shè)置初值
  TL1= 253;
  TR1= 1;          // 開始計(jì)時(shí)
SCON = 0x50;          //工作方式1,波特率9600bps,允許接收   
  ES= 1;
  EA= 1;           // 打開所以中斷   
  TI= 0;
  RI= 0;
SendData(str) ;   //發(fā)送到串口
Delay(1);         //延時(shí)100US12M晶振)
  
  while(1)
{
        if((K==0)&&(G==1))           
    {
          for(j=0;j<4;j++)       //圈數(shù)
          {
    for(i=0;i<500;i++)              //一圈
    {
       MotorCW();   //順時(shí)針轉(zhuǎn)動(dòng)
    }
    }
    //Delay_xms(500);
         
    }
    else if ((G==0) &&(K==1))
    {
    for(j=0;j<4;j++)       //圈數(shù)
    {
    for(i=0;i<500;i++)
    {
    MotorCCW();  //逆時(shí)針轉(zhuǎn)動(dòng)
    }
  
    Delay_xms(500);
    }
    }
    else if ((G==0) &&(K==0))
    {
     MotorStop( );
    }
           {
beep=1;
if((FIRE==0)||(DOUT==0))
{
delay();
if((FIRE==0)||(DOUT==0))
{
beep=0;//蜂鳴器
}
}
}
    {        
   //------------------------
   //調(diào)用溫濕度讀取子程序
   RH();
   //串口顯示程序
   //--------------------------
   
   str[0]=U8RH_data_H;
   str[1]=U8RH_data_L;
   str[2]=U8T_data_H;
   str[3]=U8T_data_L;
   str[4]=U8checkdata;
    SendData(str) ;  //發(fā)送到串口  
   //讀取模塊數(shù)據(jù)周期不易小于 2S
   lcddisplay();
   Delay(20000);
//elihw
    }
    }
// main
{
beep=1;
if((FIRE==0)||(DOUT==0))
{
delay();
if((FIRE==0)||(DOUT==0))
{
beep=0;
}
}
}
}   
   
   
void RSINTR() interrupt 4 using 2
    {
     U8 InPut3;
     if(TI==1) //發(fā)送中斷         
    {
     TI=0;
     if(count!=5) //發(fā)送完5位數(shù)據(jù)         
    {
     SBUF= outdata[count];
     count++;
    }
  }
if(RI==1)         //接收中斷                  
{        
   InPut3=SBUF;
   indata[count_r]=InPut3;
   count_r++;
   RI=0;                                                               
   if (count_r==5)//接收完4位數(shù)據(jù)
    {
     //數(shù)據(jù)接收完畢處理。
     count_r=0;
     str[0]=indata[0];
     str[1]=indata[1];
     str[2]=indata[2];
     str[3]=indata[3];
     str[4]=indata[4];
     P0=0;
    }
  }
}

評(píng)分

參與人數(shù) 1黑幣 +5 收起 理由
13515024796qqq + 5 666

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:372402 發(fā)表于 2018-8-13 09:10 | 顯示全部樓層
這個(gè)只單獨(dú)看程序也不行,如果程序沒有問題還要看你電路這面是怎么設(shè)計(jì)的?電路連接的I/O口有沒有設(shè)對(duì),你的蜂鳴器是要單片機(jī)輸出高電平響還是低電平響?還要確認(rèn)一下蜂鳴器本身是不是好的?有沒有焊接好,硬件連接檢查好沒問題了再來分析程序。

評(píng)分

參與人數(shù) 2黑幣 +25 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!
jipinxlm + 5 很給力!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:135956 發(fā)表于 2018-8-13 10:32 | 顯示全部樓層
樓上說的有道理,先從蜂鳴器開始,寫幾行單獨(dú)測試蜂鳴器的代碼,如果蜂鳴器不響,則蜂鳴器有問題,否則檢查一下If條件內(nèi)容,為啥沒有執(zhí)行,再來分析代碼邏輯。

評(píng)分

參與人數(shù) 1黑幣 +40 收起 理由
admin + 40 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:364278 發(fā)表于 2018-8-13 11:09 | 顯示全部樓層
碰到這種情況先看自己管腳配置對(duì)不對(duì),然后分段測試程序看是不是有bug

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:385940 發(fā)表于 2018-8-13 19:52 | 顯示全部樓層
排查一下硬件接口,以及軟件邏輯,看這些是否都已經(jīng)搞好?

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:243168 發(fā)表于 2018-8-13 20:51 | 顯示全部樓層
新人路過,看不出
回復(fù)

使用道具 舉報(bào)

ID:386193 發(fā)表于 2018-8-14 14:52 | 顯示全部樓層
仔細(xì)看了,沒有大的問題,可以用軟件測試下
回復(fù)

使用道具 舉報(bào)

ID:235983 發(fā)表于 2018-8-16 21:14 | 顯示全部樓層
看是否硬件有輸出。
回復(fù)

使用道具 舉報(bào)

ID:387069 發(fā)表于 2018-8-16 22:21 | 顯示全部樓層
建議先測試基本的輸入輸出功能,硬件沒問題再從程序上找
回復(fù)

使用道具 舉報(bào)

ID:308437 發(fā)表于 2018-8-16 23:22 | 顯示全部樓層
初始化先測試一下蜂鳴器。高電平:beep=1;低電平:beep=0;把主循環(huán)屏蔽,然后再測
回復(fù)

使用道具 舉報(bào)

ID:386381 發(fā)表于 2018-8-16 23:36 來自觸屏版 | 顯示全部樓層
這么高深的程序?qū)W習(xí)了
回復(fù)

使用道具 舉報(bào)

ID:387200 發(fā)表于 2018-8-17 11:54 | 顯示全部樓層
如果是自己焊接的板子,那么需要對(duì)電路板進(jìn)行檢測。然后按照前面大佬說的單獨(dú)用程序去檢測蜂鳴器是否正常,這個(gè)要一步一步檢測,只看程序難以看出端倪

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:387281 發(fā)表于 2018-8-17 15:05 | 顯示全部樓層
我第一次用單片機(jī)也是蜂鳴器怎么都不響,后來強(qiáng)制把初值設(shè)置為1就好了,可能出廠的時(shí)候廠商設(shè)置為低電平了
回復(fù)

使用道具 舉報(bào)

ID:362591 發(fā)表于 2018-8-18 09:44 | 顯示全部樓層
是硬件的問題吧
回復(fù)

使用道具 舉報(bào)

ID:387481 發(fā)表于 2018-8-18 10:18 | 顯示全部樓層
蜂鳴器有那種上拉下拉電阻的,你把程序的0和1改改試下
回復(fù)

使用道具 舉報(bào)

ID:386837 發(fā)表于 2018-8-18 11:19 | 顯示全部樓層
對(duì),你把電路連接發(fā)一下,幫你看看
回復(fù)

使用道具 舉報(bào)

ID:327030 發(fā)表于 2018-8-18 11:25 | 顯示全部樓層
先看對(duì)應(yīng)的IO有輸出嗎,再看程序?qū)懙膶?duì)不對(duì),還有蜂鳴器是有源的還是無源的。
回復(fù)

使用道具 舉報(bào)

ID:387615 發(fā)表于 2018-8-18 16:09 | 顯示全部樓層
感覺沒什麼問題
回復(fù)

使用道具 舉報(bào)

ID:385372 發(fā)表于 2018-8-18 17:10 | 顯示全部樓層
分段測試程序看是不是有bug 應(yīng)該是陳序進(jìn)入死循環(huán)了
回復(fù)

使用道具 舉報(bào)

ID:387676 發(fā)表于 2018-8-18 21:02 | 顯示全部樓層
軟件無錯(cuò)的話,就從硬件上排查,可以單獨(dú)對(duì)蜂鳴器進(jìn)行調(diào)試呀
回復(fù)

使用道具 舉報(bào)

ID:387767 發(fā)表于 2018-8-19 10:57 | 顯示全部樓層
程序沒什么問題 你看看電路連接 還有元器件有問題沒用
回復(fù)

使用道具 舉報(bào)

ID:385318 發(fā)表于 2018-8-20 09:38 | 顯示全部樓層
先排查線路的問題吧,如果沒有問題就檢測IO的輸出
回復(fù)

使用道具 舉報(bào)

ID:388052 發(fā)表于 2018-8-20 10:49 | 顯示全部樓層
先學(xué)習(xí)一下,這個(gè)只單獨(dú)看程序也不行,如果程序沒有問題還要看你電路這面是怎么設(shè)計(jì)的?電路連接的I/O口有沒有設(shè)對(duì),你的蜂鳴器是要單片機(jī)輸出高電平響還是低電平響?還要確認(rèn)一下蜂鳴器本身是不是好的?有沒有焊接好,硬件連接檢查好沒問題了再來分析程序。

評(píng)分

參與人數(shù) 1黑幣 +40 收起 理由
admin + 40 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:208849 發(fā)表于 2018-8-20 11:00 | 顯示全部樓層
能不能把原理圖貼上來,這樣好分析,不然很難看出來,既然都是0錯(cuò)誤0警告了,書寫上肯定沒有問題的,貼上來大家交流交流

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:388074 發(fā)表于 2018-8-20 11:46 | 顯示全部樓層
蜂鳴器有那種上拉下拉電阻的,你把程序的0和1改改試下
回復(fù)

使用道具 舉報(bào)

ID:388162 發(fā)表于 2018-8-20 15:16 | 顯示全部樓層
電路是怎么設(shè)計(jì)的?
回復(fù)

使用道具 舉報(bào)

ID:371423 發(fā)表于 2018-8-20 17:22 | 顯示全部樓層
單獨(dú)測試蜂鳴器。另外確認(rèn)使用的是有源蜂鳴器。無緣的話只給高低電平不會(huì)響的。

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:387102 發(fā)表于 2018-8-30 18:40 | 顯示全部樓層
可以仿真一下
回復(fù)

使用道具 舉報(bào)

ID:367460 發(fā)表于 2018-8-31 19:39 | 顯示全部樓層
你是用 仿真嗎    看是不是  蜂鳴器 沒設(shè)置好  雙擊一下蜂鳴器  設(shè)置成2v左右  看看

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:392113 發(fā)表于 2018-8-31 20:10 | 顯示全部樓層
建議先測試基本的輸入輸出功能,硬件沒問題再從程序上找

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:392116 發(fā)表于 2018-8-31 21:20 | 顯示全部樓層
這種情況最好拿個(gè)示波器或者萬用表看一下單片機(jī)的IO腳有沒有被拉高還是拉低,光看程序沒有意義,遇到問題首先要判斷是硬件還是軟件問題

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:392177 發(fā)表于 2018-8-31 23:43 | 顯示全部樓層
上原理圖看看,或許真像23樓說的

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:150693 發(fā)表于 2018-9-1 04:39 | 顯示全部樓層
用萬用表測蜂鳴端的電壓變化

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:391456 發(fā)表于 2018-9-1 09:51 | 顯示全部樓層
void main() { uinti,j; <---------------------這里算不算錯(cuò)誤

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:392435 發(fā)表于 2018-9-1 20:39 | 顯示全部樓層
SendData(str) ;   //發(fā)送到串口
str是什么?

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:135640 發(fā)表于 2018-9-2 12:09 | 顯示全部樓層
把你的#include<BEEP.H>看看有沒有問題,是哪個(gè)引腳!

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:392580 發(fā)表于 2018-9-2 12:47 | 顯示全部樓層
beep=1  delay()    beep=0   再加個(gè)delay()試試~~~~~~~~~不行的話就是I/O腳配置問題,驅(qū)動(dòng)能力不行

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:392604 發(fā)表于 2018-9-2 15:12 | 顯示全部樓層
管腳定義也沒有啊,我覺得你可以把后面的先注釋掉,然后單看蜂鳴器能不能控制到

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:392682 發(fā)表于 2018-9-3 12:18 來自觸屏版 | 顯示全部樓層
蜂鳴器是有源的嗎?
回復(fù)

使用道具 舉報(bào)

ID:392937 發(fā)表于 2018-9-3 13:58 | 顯示全部樓層
檢查管腳,確定無誤后再拆分程序測試查找原因
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表