找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

單片機數(shù)字電壓表程序問題求分析

查看數(shù): 2210 | 評論數(shù): 6 | 收藏 0
關燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發(fā)布時間: 2019-5-16 22:16

正文摘要:

想請教下這個到底是哪里的問題,我用51單片機頭文件試過不對,用define uchar unsigned char

回復

ID:500743 發(fā)表于 2019-5-17 13:59
#include"intrins.h"
#define TIME0H 0x3C
#define TIME0L 0xB0
uchar uc_Clock;
//定時器0中斷計數(shù)
bit b_DATransform=0;
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<把電壓顯示在LCD上>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
void vShowVoltage(uchar uiNumber)
{
        uchar ucaNumber[3],ucCount;
        if(uiNumber>999)                                       
                uiNumber=999;
        ucaNumber[0]=uiNumber/100;                                                                //把計算數(shù)字的每個位存入數(shù)組。
        ucaNumber[1]=(uiNumber-100*(int)ucaNumber[0])/10;                                                       
        ucaNumber[2]=uiNumber-100*(int)ucaNumber[0]-10*ucaNumber[1];
        for(ucCount=0;ucCount<3;ucCount++)
        {
                vShowOneChar(ucaNumber[ucCount]+48);                                //從首位到末位逐一輸出。
                if(ucCount==0)
                        vShowOneChar('.');
        }
}
//*************************************************************************************************
//*                                                                                                                                                                                                  *
//*                          ********************************主函數(shù)******************************                                  *
//*                                                                                                                                                                                                  *
//*************************************************************************************************


void main()
{
        TMOD=0x01;                        //定時器0,模式1。
        TH0=TIME0H;
        TL0=TIME0L;
        TR0=1;                                //啟動定時器。
        ET0=1;                                //開定時器中斷。
        EA=1;                                //開總中斷
        vdInitialize();
        vWriteCMD(0x84);           //寫入顯示起始地址(第一行第4個位置)
        vShowChar("voltage");
        vWriteCMD(0xC9);     
        vShowChar("(V)");
        while(1)
        {
                if(b_DATransform==1)
                {
                        b_DATransform=0;
                        vWriteCMD(0xC4);
                        vShowVoltage(uiADTransform());
                }
        }
}
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<定時器0中斷函數(shù)>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
void t0() interrupt 1
{
        if(uc_Clock==0)
        {
                uc_Clock=5;
                b_DATransform=1;
        }
        else
                uc_Clock--;
        TH0=TIME0H;                   //恢復定時器0。
        TL0=TIME0L;
}這是程序
ID:500743 發(fā)表于 2019-5-17 13:58
改完報錯還是出現(xiàn)missing“”;“before“*”如果是uc_Clock在后面就是beforen uc_Clock,要不然就是跳出一大堆錯誤
ID:500743 發(fā)表于 2019-5-17 13:53
51mcu 發(fā)表于 2019-5-17 07:14
把第一行的“*”號去掉。

file:///C:/Users/Administrator/Desktop/1.jpg   不行嗯
ID:511890 發(fā)表于 2019-5-17 12:39
星號后面加個空格,再不行,就分開寫,先定義別名:typedef uchar* uc_Clock;然后在使用之前賦值。如在main最前面賦值:un_Clock=0;
ID:176854 發(fā)表于 2019-5-17 09:22
typedef 是給數(shù)據類型定義一個別名。
如果你只是定義一個指針uchar *uc_Clock = 0;即可
ID:34643 發(fā)表于 2019-5-17 07:14
把第一行的“*”號去掉。

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

Powered by 單片機教程網

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