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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

STC8G單片機adc發(fā)送串口報錯這里怎么寫?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:936755 發(fā)表于 2022-10-8 11:01 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
/*************  功能說明    **************
程序適用:STC8G全系列和STC8H全系列
選擇晶振:內(nèi)部11.0592MH
復(fù)位電路:內(nèi)部復(fù)位
參考電壓:VCC

功能:3通到AD采集功能,P1.2、P1.3、P1.4為輸入腳(開發(fā)板上排針為RT、30,31腳)
      通過杜邦線把RT連接開發(fā)板AD腳進行電位器進行電壓變化
          30,31可以接外部0到5V電壓輸入。 接GND,VCC,3V,做測試

******************************************/

#include "STC8G.H"
#include "system.h"
#include "STC8G_10AD.h"
#include "USART.h"
typedef unsigned int WORD;           //延時函數(shù)

#define ADCTIM  (*(unsigned char volatile xdata *)0xfea8)
#define A P11

#define     MAIN_Fosc       11059200UL  //定義主時鐘
#define Timer0_Reload   (MAIN_Fosc / 1000)      //Timer 0 中斷頻率, 1000次/秒

//unsigned int GetADCResult(unsigned char channel);

u8 t0_ct;                                  //延時函數(shù)
u8 Vdat1,channel;
unsigned int adc_temp;         //延時函數(shù)標(biāo)記使用
unsigned int temp_ad;

bit AD_change_bit;

//u8 data lcd_buff_1[16];
//u8 data lcd_buff_2[16];

void IO_init_config(void);
void display_buff(void);

//========================================================================
// 函數(shù): void timer0_int (void) interrupt TIMER0_VECTOR
// 描述:  timer0中斷函數(shù).
//========================================================================
void timer0_int (void) interrupt 1
{
        if(++t0_ct >= 100)  //0.1S           延時可調(diào)
        {
                t0_ct = 0;                   //延時函數(shù)
                AD_change_bit = 1;
        }
}

void    Timer0_init(void)
{
        TR0 = 0;    //停止計數(shù)
        ET0 = 1;    //允許中斷
    //  PT0 = 1;    //高優(yōu)先級中斷
        TMOD &= ~0x03;
        TMOD |= 0;  //工作模式, 0: 16位自動重裝, 1: 16位定時/計數(shù), 2: 8位自動重裝, 3: 16位自動重裝, 不可屏蔽中斷
    //  TMOD |=  0x04;  //對外計數(shù)或分頻
        TMOD &= ~0x04;  //定時
    //  INTCLKO |=  0x01;  //輸出時鐘
        INTCLKO &= ~0x01;  //不輸出時鐘

//        AUXR |=  0x80;  //1T mode
//        TH0 = (u8)((65536UL - Timer0_Reload) / 256);
//        TL0 = (u8)((65536UL - Timer0_Reload) % 256);

        AUXR &= ~0x80;  //12T mode
        TH0 = (u8)((65536UL - Timer0_Reload/12) / 256);
        TL0 = (u8)((65536UL - Timer0_Reload/12) % 256);
        TR0 = 1;    //開始運行
                EA = 1;
}

void main()
{
        unsigned int res=0;
        unsigned char result[4]={0}; //unsigned char result[4]={0};
//        unsigned int temp;        //全局變量

    P1M1 = 0x01;   
        P1M0 = 0x00;;   //P1設(shè)置為準(zhǔn)雙向口


        InitSerialPort();                 //初始化串口,波特率9600,8bit數(shù)據(jù)位,1停止位,無校驗
        IO_init_config();
        Timer0_init();
        STC8G_ADC_Iint();                           //STC8G系列10位AD初始化函數(shù)
        P_SW2 |= 0x80;                        //打開          外設(shè)端口切換寄存器
    P_SW2 &= 0x7f;                        //關(guān)閉          外設(shè)端口切換寄存器
    ADCTIM = 0x3f;                      //設(shè)置ADC內(nèi)部時序
    ADCCFG = 0x0f;                      //設(shè)置ADC時鐘為系統(tǒng)時鐘/2/16
         
        while(1)
        {



                if(AD_change_bit) //0.1S改變顯示一次
                {
                SendByte('\t');                                  //發(fā)送數(shù)據(jù)采集結(jié)果
                SendString("AD_Value = ");          //發(fā)送數(shù)據(jù)采集結(jié)果
        //        SendByte(HEX2ASCII(disbuff[0]));
            GetADC10bitResult_Char(channel,result);
        SendByte(channel);   
                SendByte(result);
                SendByte('\n');                                   //發(fā)送數(shù)據(jù)采集結(jié)果




                        AD_change_bit = 0;
                        ADC_CONTR = 0x80; //打開ADC電源
                        temp_ad = Get_ext_Vx(1);
                        GetADC10bitResult( channel);   //讀取ADC結(jié)果
                        ADC_CONTR|=0x01;               // 設(shè)定轉(zhuǎn)換的通道,P3.3是0011
            ADC_CONTR|=0x40;               // 開始AD轉(zhuǎn)換,即ADC_START=1
                        temp_ad =ADC_RES;                          //讀取轉(zhuǎn)換結(jié)果
                        temp_ad=temp_ad<<2;            //左移2位
                temp_ad=temp_ad|ADC_RESL;          //讀取ADC_FLAG保存軟件
                       adc_temp=temp_ad;                          //adc加載寄存器數(shù)據(jù)

//                        display_buff();
//                        for(k=11;k<16;k++)
//                        {
//                                LCD_Write_Char(k,0,lcd_buff_1[k]); //顯示通道2--P1.2
//                        }
                  
                   if(temp_ad>10)         //ADC采集電壓范圍 210=1V
                  {
                  P55=0;
                  }
                  else                  //表示如果滿足if條件則不執(zhí)行else,否則執(zhí)行else
                  {         
                  P55=1;
                  }


                }
        }
}

//void display_buff(void)
//{        
//        lcd_buff_1[11] = (temp_ad/1000)+0x30;         //通到2
//        lcd_buff_1[12] = '.';
//        lcd_buff_1[13] = (temp_ad%1000/100)+0x30;
//        lcd_buff_1[14] = (temp_ad%1000%100/10)+0x30;
//        lcd_buff_1[15] = (temp_ad%1000%100%10)+0x30;
//
//}

/*****************
STC8系列任何型號必須初始化配置IO口模式,
其它IO口的功能設(shè)置,可以不用初始化。
原因:上電除了P3.1和P3.0為準(zhǔn)雙向IO口模式外,其它為高阻輸入模式
*************/
void IO_init_config(void)
{        //PxM1和PxM0必須要初始化配置,不然IO口不能正常輸入輸出
        A=0;
    P0M1 = 0x00;   
        P0M0 = 0x00;;   //P0設(shè)置為準(zhǔn)雙向口

    P1M1 = 0x00;   
        P1M0 = 0x00;;   //P1設(shè)置為準(zhǔn)雙向口

    P2M1 = 0x00;   
        P2M0 = 0x00;;   //P2設(shè)置為準(zhǔn)雙向口

    P3M1 = 0x00;   
        P3M0 = 0x00;;   //P3設(shè)置為準(zhǔn)雙向口

    P4M1 = 0x00;   
        P4M0 = 0x00;;   //P4設(shè)置為準(zhǔn)雙向口

    P5M1 = 0x00;   
        P5M0 = 0x00;;   //P5設(shè)置為準(zhǔn)雙向口

//        P0PU = 0x00;        //0禁內(nèi)部上拉4.1K電阻,1打開內(nèi)部上拉4.1K電阻
//        P1PU = 0x00;        //0禁內(nèi)部上拉4.1K電阻,1打開內(nèi)部上拉4.1K電阻
//        P2PU = 0x00;        //0禁內(nèi)部上拉4.1K電阻,1打開內(nèi)部上拉4.1K電阻
//        P3PU = 0x00;        //0禁內(nèi)部上拉4.1K電阻,1打開內(nèi)部上拉4.1K電阻
//        P4PU = 0x00;        //0禁內(nèi)部上拉4.1K電阻,1打開內(nèi)部上拉4.1K電阻
//        P5PU = 0x00;        //0禁內(nèi)部上拉4.1K電阻,1打開內(nèi)部上拉4.1K電阻
//
//        P0NCS = 0x00;   //0使能施密特觸發(fā)功能,1禁止施密特觸發(fā)功能
//        P1NCS = 0x00;   //0使能施密特觸發(fā)功能,1禁止施密特觸發(fā)功能
//        P2NCS = 0x00;   //0使能施密特觸發(fā)功能,1禁止施密特觸發(fā)功能
//        P3NCS = 0x00;   //0使能施密特觸發(fā)功能,1禁止施密特觸發(fā)功能
//        P4NCS = 0x00;   //0使能施密特觸發(fā)功能,1禁止施密特觸發(fā)功能
//        P5NCS = 0x00;   //0使能施密特觸發(fā)功能,1禁止施密特觸發(fā)功能
//
//        P0SR  = 0xff;        //0電平轉(zhuǎn)換速度快,1電平轉(zhuǎn)換速度慢
//        P1SR  = 0xff;        //0電平轉(zhuǎn)換速度快,1電平轉(zhuǎn)換速度慢
//        P2SR  = 0xff;        //0電平轉(zhuǎn)換速度快,1電平轉(zhuǎn)換速度慢
//        P3SR  = 0xff;        //0電平轉(zhuǎn)換速度快,1電平轉(zhuǎn)換速度慢
//        P4SR  = 0xff;        //0電平轉(zhuǎn)換速度快,1電平轉(zhuǎn)換速度慢
//        P5SR  = 0xff;        //0電平轉(zhuǎn)換速度快,1電平轉(zhuǎn)換速度慢
//
//        P0DR  = 0xff;   //0增強驅(qū)動能力,1一般驅(qū)動能力
//        P1DR  = 0xff;   //0增強驅(qū)動能力,1一般驅(qū)動能力
//        P2DR  = 0xff;   //0增強驅(qū)動能力,1一般驅(qū)動能力
//        P3DR  = 0xff;   //0增強驅(qū)動能力,1一般驅(qū)動能力
//        P4DR  = 0xff;   //0增強驅(qū)動能力,1一般驅(qū)動能力
//        P5DR  = 0xff;   //0增強驅(qū)動能力,1一般驅(qū)動能力
//
//        P0IE  = 0xff;        //0禁止數(shù)字信號輸入,1使能數(shù)字信號輸入
//        P1IE  = 0xff;        //0禁止數(shù)字信號輸入,1使能數(shù)字信號輸入
//        P3IE  = 0xff;        //0禁止數(shù)字信號輸入,1使能數(shù)字信號輸入
}


51hei圖片_20221008104624.jpg (84.34 KB, 下載次數(shù): 23)

51hei圖片_20221008104624.jpg

STC8ADC.rar

85.3 KB, 下載次數(shù): 8

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

使用道具 舉報

沙發(fā)
ID:1034262 發(fā)表于 2022-10-9 12:17 | 只看該作者
建議先測試STC官方歷程。
回復(fù)

使用道具 舉報

板凳
ID:290373 發(fā)表于 2022-10-9 13:19 | 只看該作者
你的程序里面沒這個GetADC10bitResult_Char函數(shù)
回復(fù)

使用道具 舉報

地板
ID:936755 發(fā)表于 2022-10-12 18:41 | 只看該作者
田賀 發(fā)表于 2022-10-9 13:19
你的程序里面沒這個GetADC10bitResult_Char函數(shù)

加了還是別的報錯,可以幫我看看怎么可以運行?
回復(fù)

使用道具 舉報

5#
ID:384109 發(fā)表于 2022-10-12 21:39 | 只看該作者
最好把錯誤提示發(fā)上來吧,另外result是數(shù)組,sendbyte只是發(fā)送一個字節(jié)吧
回復(fù)

使用道具 舉報

6#
ID:936755 發(fā)表于 2022-10-14 14:22 | 只看該作者
目前就是發(fā)送不了ADC采集端口的數(shù)據(jù),

51hei圖片_20221014142752.jpg (157.43 KB, 下載次數(shù): 25)

51hei圖片_20221014142752.jpg
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 性视频一区 | 精品久久久一区 | 欧美在线综合 | 国产在线一区观看 | 国产视频精品在线观看 | 色综合久久久 | 色婷婷综合久久久中文字幕 | 羞羞色视频 | 国产 日韩 欧美 中文 在线播放 | 欧美在线视频网 | 国产高清视频在线 | 国产欧美精品区一区二区三区 | 久久亚洲精品国产精品紫薇 | 久久久久国产精品午夜一区 | 美女黄网站视频免费 | 日韩精品成人免费观看视频 | 大吊一区二区 | 亚洲综合精品 | 日本久久精品视频 | 亚洲一区二区三区国产 | 一区二区三区电影网 | 全免费a级毛片免费看视频免费下 | 日日摸夜夜添夜夜添特色大片 | 国产精品大片 | 久色视频在线 | 一区二区免费 | 欧美一级在线 | 69堂永久69tangcom | 一区二区三区精品视频 | 欧美成人一区二区三区 | 亚洲精品电影网在线观看 | 青青青伊人 | 亚洲天堂中文字幕 | 久久国产精品亚洲 | 91精品国产99久久 | 精品视频在线免费观看 | 久久69精品久久久久久久电影好 | 亚洲69p| 一级毛片中国 | 国产精品欧美一区二区三区 | 国产精品国产三级国产aⅴ中文 |