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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4059|回復: 6
收起左側

單片機編程遇到未定義標識符和參數列表長度不同怎么辦

[復制鏈接]
ID:701275 發表于 2020-3-20 11:06 | 顯示全部樓層 |閱讀模式

出現未定義標識符怎么解決?參數列表長度不同怎么辦?

出現未定義標識符怎么解決?參數列表長度不同怎么辦?

回復

使用道具 舉報

ID:235200 發表于 2020-3-20 12:36 | 顯示全部樓層
是不是延時函數delay()括號內要加入實際參數呢?程序不全,不能作出準確的答復
回復

使用道具 舉報

ID:452950 發表于 2020-3-20 13:47 | 顯示全部樓層
如果前面有聲明這個函數的話,調用要這樣:
Waitforstarting();
如果有輸入參數要填在括號里面。
第一個錯誤在35行,看不到
回復

使用道具 舉報

ID:701275 發表于 2020-3-20 16:56 | 顯示全部樓層
csmyldl 發表于 2020-3-20 12:36
是不是延時函數delay()括號內要加入實際參數呢?程序不全,不能作出準確的答復

這里是聲明部分和主函數部分函數。出問題的是:void Delay(uint time)參數列表長度不同、waitforstarting未定義標識符,你看看是哪里出問題了。
#include<reg52.h>
#include<intrins.h>
#include<math.h>
#define uchar unsigned char
#define uint unsigned int
#define Lcd_Data P0;       //定義LCD數據端口

uchar code dispbuf[33]={"Temperature:   Distance:  mm"};
uchar numcode[10]={'0','1','2','3','4','5','6','7','8','9'};
uint num[29]={0};
uchar jsh,jsl;                                //計時器的高低位
uchar count=0;                                //10秒計次數
uint distance;                                 //距離

sbit RS=P2^0;
sbit RW=P2^1;
sbit E=P2^2;
sbit DQ=P2^7;                                 //DS18B20數字端口
sbit Busy=P0^7;
                               
uint temp;                                           //溫度變量
uchar bdata flag;                           //DS18B20存在標準

void Delay(void);                        //延時函數
void Read_Busy(void);                                //檢查LCD是否忙
void lint_18B20(void);                           //初始化18B20
void Write_Comm(uchar);                          //寫入LCD命令
void Write_Data(uhar);                          //寫入LCD數據
void lint_LCD(void);                          //初始化LCD

uchar Readonechar(void);         //讀取第一個字節
void Writeonechar(uchar dat);    //寫入第一個字節
void testtemp(void);             //啟動溫度轉換
uint wd(void);                   //讀取溫度
void Delay(uint time);            //延時函數

sbit sta_flag=flag^0;                           //10MS到標準位
sbit fuhao=flag^1;                                   //溫度符號位
sbit START=P1^0;                                   //啟動測距
sbit CNT=P2^5;                                           //發射超聲波
sbit CSBIN=P2^6;                                   //返回信號
sbit BUZZER=P3^7;

void timer(void);
void delay1ms(void);                                        //延時1MS
void sys_init(void);                                        //系統初始化
void display(void);                                                //顯示函數
void computer(void);                                        //計算
void hextobcd(bit flag,uchar num);                //轉換BCD
void bm(void);                                                         //求補碼
void delay15(uchar us);                                        //延時15us

/***********主函數**************/
void main(void)
{
        uchar i,j;
        for(i=0;i<255;i++)
                for(j=0;j<255;j++);       
        sys_init();                                                        //初始化
        display();                                                        //顯示
        sta_flag=0;                                                        //標準復位
        Waitforstarting;                                        // 檢查按鍵
        while(START);
        for(i=0;i<20;i++)
        delay1ms();
        if(START)
        goto waitforstarting;
        BUZZER=0;                                                       
        i=100000;
        while(i--);
        TR0=1;                                                                //啟動定時器0
        ET0=1;
        testtemp();                                                        //啟動溫度轉換
        while(1)
        {
                if(sta_flag)                                        //10MS到了
                {
                        while(0==CSBIN);                        //收到回波
                        TR1=0;
                        jsh=TH1;
                        jsl=TL1;
                        if(15==count)                                //900MS到檢測溫度
                        {
                                temp=wd();                                //讀取溫度
                                count=0;
                                testtemp();                                //重新啟動轉換
                                display();                                //刷新顯示
                        }
                computer();                                                //計算距離
                hextobcd();                                                //轉換BCD碼
                sta_flag=0;
                }
        }
}
回復

使用道具 舉報

ID:701275 發表于 2020-3-20 16:58 | 顯示全部樓層
xxpp2011 發表于 2020-3-20 13:47
如果前面有聲明這個函數的話,調用要這樣:
Waitforstarting();
如果有輸入參數要填在括號里面。

這是聲明和主函數部分,問題是:void Delay(uint time)參數列表長度不同、waitforstarting未定義標識符
你可以幫忙看看哪里出問題了嗎?
#include<reg52.h>
#include<intrins.h>
#include<math.h>
#define uchar unsigned char
#define uint unsigned int
#define Lcd_Data P0;       //定義LCD數據端口

uchar code dispbuf[33]={"Temperature:   Distance:  mm"};
uchar numcode[10]={'0','1','2','3','4','5','6','7','8','9'};
uint num[29]={0};
uchar jsh,jsl;                                //計時器的高低位
uchar count=0;                                //10秒計次數
uint distance;                                 //距離

sbit RS=P2^0;
sbit RW=P2^1;
sbit E=P2^2;
sbit DQ=P2^7;                                 //DS18B20數字端口
sbit Busy=P0^7;
                               
uint temp;                                           //溫度變量
uchar bdata flag;                           //DS18B20存在標準

void Delay(void);                        //延時函數
void Read_Busy(void);                                //檢查LCD是否忙
void lint_18B20(void);                           //初始化18B20
void Write_Comm(uchar);                          //寫入LCD命令
void Write_Data(uhar);                          //寫入LCD數據
void lint_LCD(void);                          //初始化LCD

uchar Readonechar(void);         //讀取第一個字節
void Writeonechar(uchar dat);    //寫入第一個字節
void testtemp(void);             //啟動溫度轉換
uint wd(void);                   //讀取溫度
void Delay(uint time);            //延時函數

sbit sta_flag=flag^0;                           //10MS到標準位
sbit fuhao=flag^1;                                   //溫度符號位
sbit START=P1^0;                                   //啟動測距
sbit CNT=P2^5;                                           //發射超聲波
sbit CSBIN=P2^6;                                   //返回信號
sbit BUZZER=P3^7;

void timer(void);
void delay1ms(void);                                        //延時1MS
void sys_init(void);                                        //系統初始化
void display(void);                                                //顯示函數
void computer(void);                                        //計算
void hextobcd(bit flag,uchar num);                //轉換BCD
void bm(void);                                                         //求補碼
void delay15(uchar us);                                        //延時15us

/***********主函數**************/
void main(void)
{
        uchar i,j;
        for(i=0;i<255;i++)
                for(j=0;j<255;j++);       
        sys_init();                                                        //初始化
        display();                                                        //顯示
        sta_flag=0;                                                        //標準復位
        Waitforstarting;                                        // 檢查按鍵
        while(START);
        for(i=0;i<20;i++)
        delay1ms();
        if(START)
        goto waitforstarting;
        BUZZER=0;                                                       
        i=100000;
        while(i--);
        TR0=1;                                                                //啟動定時器0
        ET0=1;
        testtemp();                                                        //啟動溫度轉換
        while(1)
        {
                if(sta_flag)                                        //10MS到了
                {
                        while(0==CSBIN);                        //收到回波
                        TR1=0;
                        jsh=TH1;
                        jsl=TL1;
                        if(15==count)                                //900MS到檢測溫度
                        {
                                temp=wd();                                //讀取溫度
                                count=0;
                                testtemp();                                //重新啟動轉換
                                display();                                //刷新顯示
                        }
                computer();                                                //計算距離
                hextobcd();                                                //轉換BCD碼
                sta_flag=0;
                }
        }
}
回復

使用道具 舉報

ID:701275 發表于 2020-3-20 17:06 | 顯示全部樓層
xxpp2011 發表于 2020-3-20 13:47
如果前面有聲明這個函數的話,調用要這樣:
Waitforstarting();
如果有輸入參數要填在括號里面。

這里是聲明部分和主函數部分函數。出問題的是:void Delay(uint time)參數列表長度不同、waitforstarting未定義標識符,你看看是哪里出問題了。
#include<reg52.h>
#include<intrins.h>
#include<math.h>
#define uchar unsigned char
#define uint unsigned int
#define Lcd_Data P0;       //定義LCD數據端口

uchar code dispbuf[33]={"Temperature:   Distance:  mm"};
uchar numcode[10]={'0','1','2','3','4','5','6','7','8','9'};
uint num[29]={0};
uchar jsh,jsl;                                //計時器的高低位
uchar count=0;                                //10秒計次數
uint distance;                                 //距離

sbit RS=P2^0;
sbit RW=P2^1;
sbit E=P2^2;
sbit DQ=P2^7;                                 //DS18B20數字端口
sbit Busy=P0^7;
                                
uint temp;                                           //溫度變量
uchar bdata flag;                           //DS18B20存在標準

void Delay(void);                        //延時函數
void Read_Busy(void);                                //檢查LCD是否忙
void lint_18B20(void);                           //初始化18B20
void Write_Comm(uchar);                          //寫入LCD命令
void Write_Data(uhar);                          //寫入LCD數據
void lint_LCD(void);                          //初始化LCD

uchar Readonechar(void);         //讀取第一個字節
void Writeonechar(uchar dat);    //寫入第一個字節
void testtemp(void);             //啟動溫度轉換
uint wd(void);                   //讀取溫度
void Delay(uint time);            //延時函數

sbit sta_flag=flag^0;                           //10MS到標準位
sbit fuhao=flag^1;                                   //溫度符號位
sbit START=P1^0;                                   //啟動測距
sbit CNT=P2^5;                                           //發射超聲波
sbit CSBIN=P2^6;                                   //返回信號
sbit BUZZER=P3^7;

void timer(void);
void delay1ms(void);                                        //延時1MS
void sys_init(void);                                        //系統初始化
void display(void);                                                //顯示函數
void computer(void);                                        //計算
void hextobcd(bit flag,uchar num);                //轉換BCD
void bm(void);                                                         //求補碼
void delay15(uchar us);                                        //延時15us

/***********主函數**************/
void main(void)
{
        uchar i,j;
        for(i=0;i<255;i++)
                for(j=0;j<255;j++);        
        sys_init();                                                        //初始化
        display();                                                        //顯示
        sta_flag=0;                                                        //標準復位
        Waitforstarting;                                        // 檢查按鍵
        while(START);
        for(i=0;i<20;i++)
        delay1ms();
        if(START)
        goto waitforstarting;
        BUZZER=0;                                                        
        i=100000;
        while(i--);
        TR0=1;                                                                //啟動定時器0
        ET0=1;
        testtemp();                                                        //啟動溫度轉換
        while(1)
        {
                if(sta_flag)                                        //10MS到了
                {
                        while(0==CSBIN);                        //收到回波
                        TR1=0;
                        jsh=TH1;
                        jsl=TL1;
                        if(15==count)                                //900MS到檢測溫度
                        {
                                temp=wd();                                //讀取溫度
                                count=0;
                                testtemp();                                //重新啟動轉換
                                display();                                //刷新顯示
                        }
                computer();                                                //計算距離
                hextobcd();                                                //轉換BCD碼
                sta_flag=0;
                }
        }
}
回復

使用道具 舉報

ID:452950 發表于 2020-3-20 17:17 | 顯示全部樓層
建檔扶貧對象 發表于 2020-3-20 16:56
這里是聲明部分和主函數部分函數。出問題的是:void Delay(uint time)參數列表長度不同、waitforstarting ...

void Delay(uint time)
這個函數聲明的時候定義了輸入變量time,所以調用的時候要用Delay(xxx),里面填延時的長度。
waitforstarting
這個我不知道是什么,前面也沒有聲明這個函數,格式也不對
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲电影免费 | 日韩一区二区在线播放 | 国产精品99一区二区 | 福利电影在线 | 黄色香蕉视频在线观看 | 欧美精品一区二区蜜桃 | 国产9999精品 | 成人久草 | 天天久久 | 在线小视频 | 成人久久18免费网站麻豆 | 精品一区二区在线观看 | 亚洲精品久久久久久一区二区 | 一级aaaaaa毛片免费同男同女 | 亚洲成人精品国产 | 亚洲成人精品在线观看 | 91久久精品一区二区三区 | 日本三级做a全过程在线观看 | 久久久久久久久国产精品 | 日韩av美女电影 | 精品日韩一区 | 成人亚洲 | 一级a性色生活片久久毛片波多野 | 久久久精品一区二区三区 | 亚洲成av人片在线观看 | 精品国产乱码久久久久久牛牛 | 欧美日韩一 | 日本理论片好看理论片 | 情侣黄网站免费看 | 国产一区二区三区高清 | 亚洲一区二区三区在线视频 | 亚洲精品一区二区三区免 | 看片地址 | 电影在线 | 久久久久亚洲 | 国产精品日韩欧美一区二区三区 | 中文字幕国产 | 亚洲午夜av | 亚洲欧洲一区二区 | 欧美 日韩 综合 | 波多野吉衣在线播放 |