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

QQ登錄

只需一步,快速開始

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

哪位幫我用keil C251編譯一下程序

[復(fù)制鏈接]
ID:33548 發(fā)表于 2024-2-4 20:44 | 顯示全部樓層 |閱讀模式
這個(gè)STC32G單片機(jī)程序編譯老是出錯(cuò),生成不了hex文件,哪位幫我用keil C251編譯驗(yàn)證一下,看看是我的軟件問題還是這個(gè)程序有錯(cuò)誤。

9.DS18B20 溫度顯示實(shí)驗(yàn).rar

40.22 KB, 下載次數(shù): 17

回復(fù)

使用道具 舉報(bào)

ID:253767 發(fā)表于 2024-2-5 06:48 | 顯示全部樓層
請(qǐng)把程序直接貼出來
回復(fù)

使用道具 舉報(bào)

ID:863362 發(fā)表于 2024-2-5 12:28 | 顯示全部樓層
出錯(cuò)信息貼出來
回復(fù)

使用道具 舉報(bào)

ID:68189 發(fā)表于 2024-2-5 14:05 | 顯示全部樓層
代碼錯(cuò)誤,去看看C語言編程教程,補(bǔ)充一下基礎(chǔ)知識(shí),就可以了.
回復(fù)

使用道具 舉報(bào)

ID:33548 發(fā)表于 2024-2-5 16:49 | 顯示全部樓層
#include <STC32G.H>
#include <intrins.H>

#define uchar unsigned char
#define uint unsigned int        
#define ulong unsigned long        
        
uint i,j;
sbit DQ=P3^4;
uchar code tab[]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90,0XBF,0XFF};
uchar yi,er,san,si;

uchar irdata[33];
uchar ircord[4];
bit deal_ok,ir_ok;
uchar time,point=10;

void delayms(int ms);
void allinit();
void display(uchar yi,uchar er,uchar san,uchar si);

void dsinit();
uchar read();
uchar temget();
void write(uchar dat);
void t0_init(void);        

void main()
{
        uchar wendu;
        allinit();
        yi=11;er=11;san=11;si=11;
        
        while(1)
        {
                wendu=temget();
               
                er=wendu/100;
                san=wendu%100/10;
                si=wendu%10;
               
                display(yi,er,san,si);
        }
}

void delayms(int ms)
{
        int i,j;
        for(i=ms;i>0;i--)
                for(j=845;j>0;j--);
}

void allinit()
{
        P0M0=0X00;P0M1=0X00;
        P1M0=0X00;P1M1=0X00;
        P2M0=0X00;P2M1=0X00;
        P3M0=0X00;P3M1=0X00;
        P4M0=0X00;P4M1=0X00;
}

void t0_init(void)
{
        EAXFR=1;
        CKCON=0X00;
        WTST=0X00;
        AUXR |= 0x80;               
        TMOD &= 0xF0;               
        TL0 = 0xCD;               
        TH0 = 0xD4;               
        TF0 = 0;               
        TR0 = 1;                        
        ET0=1;
        EA=1;
}

/********************************************************************
* Ãû³Æ : display()
* ¹¦ÄÜ : ÊýÂë¹ÜÏÔʾº¯Êý
* ÊäÈë : ÎÞ
* Êä³ö : ÎÞ
***********************************************************************/
void display(uchar yi,uchar er,uchar san,uchar si) //ÏÔʾº¯Êý
{
   P2=tab[yi];
   P41 = 0;
   delayms(2);
   P41 = 1;

   P2=tab[er];
   P42 = 0;
   delayms(2);
   P42 = 1;

   P2=tab[san];
   P44 = 0;
   delayms(2);
   P44 = 1;

   P2=tab[si];
   P45 = 0;
   delayms(2);
   P45 = 1;
}



uchar temget()
{
        uchar temp;
        uchar low,high;
        
        dsinit();
        write(0xcc);
        write(0x44);
        Delay500us();        Delay500us();        

        dsinit();
        write(0xcc);
        write(0xbe);
        
        low=read();
        high=read();
        
        temp=high<<4;//0000 0101  =0101 0000
        temp |= (low>>4); //  1010 0110   0000 0110 | 0101 0000=0101 0110
        
        return temp;
}

uchar read()
{
        uchar i;
        uchar dat;
        
        for(i=0;i<8;i++)
        {
                DQ=0;
                _nop_();
                dat>>=1;
                DQ=1;
                if(DQ==1)
                {
                        dat |= 0x80;// dat=dat|0x80;   0000 0000 | 1000 0000 =1000 0000
                }
                Delay100us();
        }
        return dat;
}

void write(uchar dat)
{
        uchar i;
        for(i=0;i<8;i++)
        {
                DQ=0;
                DQ=dat&0x01;//0100 0100 & 0000 0001 // 0000 0001
                Delay100us();
                DQ=1;
                dat>>=1;//dat=dat>>1;//1001 0000//0010 0001
        }
}

void dsinit()
{
        DQ=0;
        Delay500us();
        DQ=1;
        Delay500us();
}



void TM0_Isr() interrupt 1
{
        i++;
        TL0 = 0xCD;
        TH0 = 0xD4;
        if(i==500)        //500*1MS=500MS
        {
                i=0;
                P0=_crol_(P0,1);
        }
}
A.png
回復(fù)

使用道具 舉報(bào)

ID:161164 發(fā)表于 2024-2-6 09:08 | 顯示全部樓層
找bug技巧1:先看第一個(gè)報(bào)錯(cuò)
回復(fù)

使用道具 舉報(bào)

ID:517951 發(fā)表于 2024-2-7 09:50 | 顯示全部樓層
看上面的截圖: program size: code=551, 就說明已經(jīng)編譯成功了, 需要勾選一下ide選項(xiàng): 生成hex文件.
回復(fù)

使用道具 舉報(bào)

ID:33548 發(fā)表于 2024-2-7 11:13 | 顯示全部樓層
生成hex文件選項(xiàng)已經(jīng)勾選了
51hei截圖20240207111257.png
回復(fù)

使用道具 舉報(bào)

ID:384109 發(fā)表于 2024-2-7 12:33 | 顯示全部樓層
編譯不成功,但也沒貼出錯(cuò)誤信息
回復(fù)

使用道具 舉報(bào)

ID:619259 發(fā)表于 2024-2-13 22:21 | 顯示全部樓層
Delay500us();   Delay100us();   都沒寫子函數(shù),不錯(cuò)才怪
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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