找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 564|回复: 9
打印 上一主题 下一主题
收起左侧

哪位帮我用keil C251编译一下程序

[复制链接]
跳转到指定楼层
楼主
这个STC32G单片机程序编译老是出错,生成不了hex文件,哪位帮我用keil C251编译验证一下,看看是我的软件问题还是这个程序有错误。

9.DS18B20 温度显示实验.rar

40.22 KB, 下载次数: 17

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:253767 发表于 2024-2-5 06:48 | 只看该作者
请把程序直接贴出来
回复

使用道具 举报

板凳
ID:863362 发表于 2024-2-5 12:28 | 只看该作者
出错信息贴出来
回复

使用道具 举报

地板
ID:68189 发表于 2024-2-5 14:05 | 只看该作者
代码错误,去看看C语言编程教程,补充一下基础知识,就可以了.
回复

使用道具 举报

5#
ID:33548 发表于 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 (39.36 KB, 下载次数: 17)

A.png
回复

使用道具 举报

6#
ID:161164 发表于 2024-2-6 09:08 | 只看该作者
找bug技巧1:先看第一个报错
回复

使用道具 举报

7#
ID:517951 发表于 2024-2-7 09:50 | 只看该作者
看上面的截图: program size: code=551, 就说明已经编译成功了, 需要勾选一下ide选项: 生成hex文件.
回复

使用道具 举报

8#
ID:33548 发表于 2024-2-7 11:13 | 只看该作者
生成hex文件选项已经勾选了

51hei截图20240207111257.png (34.69 KB, 下载次数: 14)

51hei截图20240207111257.png
回复

使用道具 举报

9#
ID:384109 发表于 2024-2-7 12:33 | 只看该作者
编译不成功,但也没贴出错误信息
回复

使用道具 举报

10#
ID:619259 发表于 2024-2-13 22:21 | 只看该作者
Delay500us();   Delay100us();   都没写子函数,不错才怪
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表