找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1931|回復: 5
打印 上一主題 下一主題
收起左側(cè)

單片機C語言 為什么Usartfiguration重復定義怎么修改?

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:1069757 發(fā)表于 2023-4-11 10:56 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#include <REGX52.H>
#include "LCD1602.h"
#include "DS18B20.h"
#include "Delay.h"
#include "Timer0.h"

float T;

void main()
{
        UsartConfiguration();        
        Timer0_Init();
        DS18B20_ConvertT();                //上電先轉(zhuǎn)換一次溫度,防止第一次讀數(shù)據(jù)錯誤
        Delay(1000);                        //等待轉(zhuǎn)換完成
        LCD_Init();
        LCD_ShowString(1,1,"Temperature:");
        P1_0=0;
        while(1)
        {
                DS18B20_ConvertT();        //轉(zhuǎn)換溫度
                T=DS18B20_ReadT();        //讀取溫度
                if(T<0)                                //如果溫度小于0
                {
                        LCD_ShowChar(2,1,'-');        //顯示負號
                        T=-T;                        //將溫度變?yōu)檎龜?shù)
                }
                else                                //如果溫度大于等于0
                {
                        LCD_ShowChar(2,1,'+');        //顯示正號
                }
                LCD_ShowNum(2,2,T,3);                //顯示溫度整數(shù)部分
                LCD_ShowChar(2,5,'.');                //顯示小數(shù)點
                LCD_ShowNum(2,6,(unsigned long)(T*10000)%10000,4);//顯示溫度小數(shù)部分
                if(T>=24)
                {P1_0=1;
                }
                else
                        P1_0=0;
        }
}

sbit Motor=P1^0;
unsigned char Counter,Compare;        //???????,????PWM
unsigned char KeyNum,Speed;
void forward()
{
                Compare=0 ;
}

void back()
{
        Compare=50       ;        
}

void left()
{
        Compare=100;
}


void Com_Int(void) interrupt 4
{
        unsigned char receive_data;        
        EA = 0;
        if(RI == 1)
        {
                RI=0;
                receive_data = SBUF;
                switch(receive_data)
                {
                        case ('1'):
                                forward();break;
                        case ('2'):
                                back();break;
                        case ('3'):
                                left();break;

                }                        
        }               
                EA = 1;
}

void UsartConfiguration()
{        
        SCON=0X50;        //SCON ??????????,???????????????/????????????               
        TMOD=0X20;                        
        PCON=0X00;               
        TH1=0Xfd;                    
        TL1=0Xfd; //????9600????fd
        TR1= 1;                                       
        ES = 1;        
            EA = 1;  
   PS=1;        
}




void Timer0_Routine() interrupt 1
{
        TL0 = 0x9C;                //??????
        TH0 = 0xFF;                //??????
        Counter++;
        Counter%=100;        //??????????0~99
        if(Counter<Compare)        //????????
        {
                Motor=1;                //??1
        }
        else                                //????????
        {
                Motor=0;                //??0
        }
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:161164 發(fā)表于 2023-4-11 11:25 | 只看該作者
太多頭文檔了
把整個keil項目打包上來吧
回復

使用道具 舉報

板凳
ID:291668 發(fā)表于 2023-4-11 13:03 | 只看該作者
不懂,看不明白,想問什么
回復

使用道具 舉報

地板
ID:807182 發(fā)表于 2023-4-11 14:51 | 只看該作者
猜測你應該是void UsartConfiguration()  報錯了,把UsartConfiguration()這個函數(shù)定義放在main函數(shù)前面,要不在main函數(shù)前面先用static定義一下這個函數(shù),試下能不能解決
回復

使用道具 舉報

5#
ID:1069757 發(fā)表于 2023-4-11 15:20 來自手機 | 只看該作者
是這個函數(shù)報錯了
回復

使用道具 舉報

6#
ID:883242 發(fā)表于 2023-4-11 15:34 | 只看該作者
具體錯誤貼出來,更像是UsartConfiguration()沒有原型聲明。
回復

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表