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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2799|回復: 3
打印 上一主題 下一主題
收起左側

STC12C5A60S2的AD采集程序 求分享

[復制鏈接]
跳轉到指定樓層
樓主
ID:459513 發表于 2019-1-6 17:48 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
有大佬用過STC12C5A60S2的AD采集嗎?分享一下唄!
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:430980 發表于 2019-1-28 11:58 | 只看該作者
還要嗎?
回復

使用道具 舉報

板凳
ID:250700 發表于 2019-1-28 14:13 | 只看該作者
// STC 官網 STC12C5Axx Series MCU A/D 例程
#include "reg51.h"
#include "intrins.h"

#define FOSC    11059200L
#define BAUD    9600

typedef unsigned char BYTE;
typedef unsigned int WORD;

/*Declare SFR associated with the ADC */
sfr ADC_CONTR   =   0xBC;           //ADC control register
sfr ADC_RES     =   0xBD;           //ADC high 8-bit result register
sfr ADC_LOW2    =   0xBE;           //ADC low 2-bit result register
sfr P1ASF       =   0x9D;           //P1 secondary function control register

/*Define ADC operation const for ADC_CONTR*/
#define ADC_POWER   0x80            //ADC power control bit
#define ADC_FLAG    0x10            //ADC complete flag
#define ADC_START   0x08            //ADC start control bit
#define ADC_SPEEDLL 0x00            //420 clocks
#define ADC_SPEEDL  0x20            //280 clocks
#define ADC_SPEEDH  0x40            //140 clocks
#define ADC_SPEEDHH 0x60            //70 clocks

void InitUart();
void InitADC();
void SendData(BYTE dat);
BYTE GetADCResult(BYTE ch);
void Delay(WORD n);
void ShowResult(BYTE ch);

void main()
{
    InitUart();                     //Init UART, use to show ADC result
    InitADC();                      //Init ADC sfr
    while (1)
    {
        ShowResult(0);              //Show Channel0
        ShowResult(1);              //Show Channel1
        ShowResult(2);              //Show Channel2
        ShowResult(3);              //Show Channel3
        ShowResult(4);              //Show Channel4
        ShowResult(5);              //Show Channel5
        ShowResult(6);              //Show Channel6
        ShowResult(7);              //Show Channel7
    }
}

/*----------------------------
Send ADC result to UART
----------------------------*/
void ShowResult(BYTE ch)
{
    SendData(ch);                   //Show Channel NO.
    SendData(GetADCResult(ch));     //Show ADC high 8-bit result

//if you want show 10-bit result, uncomment next line
//    SendData(ADC_LOW2);             //Show ADC low 2-bit result
}

/*----------------------------
Get ADC result
----------------------------*/
BYTE GetADCResult(BYTE ch)
{
    ADC_CONTR = ADC_POWER | ADC_SPEEDLL | ch | ADC_START;
    _nop_();                        //Must wait before inquiry
    _nop_();
    _nop_();
    _nop_();
    while (!(ADC_CONTR & ADC_FLAG));//Wait complete flag
    ADC_CONTR &= ~ADC_FLAG;         //Close ADC

    return ADC_RES;                 //Return ADC result
}

/*----------------------------
Initial UART
----------------------------*/
void InitUart()
{
    SCON = 0x5a;                    //8 bit data ,no parity bit
    TMOD = 0x20;                    //T1 as 8-bit auto reload
    TH1 = TL1 = -(FOSC/12/32/BAUD); //Set Uart baudrate
    TR1 = 1;                        //T1 start running
}

/*----------------------------
Initial ADC sfr
----------------------------*/
void InitADC()
{
    P1ASF = 0xff;                   //Open 8 channels ADC function
    ADC_RES = 0;                    //Clear previous result
    ADC_CONTR = ADC_POWER | ADC_SPEEDLL;
    Delay(2);                       //ADC power-on and delay
}

/*----------------------------
Send one byte data to PC
Input: dat (UART data)
Output:-
----------------------------*/
void SendData(BYTE dat)
{
    while (!TI);                    //Wait for the previous data is sent
    TI = 0;                         //Clear TI flag
    SBUF = dat;                     //Send current data
}

/*----------------------------
Software delay function
----------------------------*/
void Delay(WORD n)
{
    WORD x;

    while (n--)
    {
        x = 5000;
        while (x--);
    }
}
回復

使用道具 舉報

地板
ID:475247 發表于 2019-2-10 16:52 | 只看該作者
好樣的,收下了

評分

參與人數 1黑幣 +35 收起 理由
shuisheng + 35

查看全部評分

回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 一区二区三区免费 | 精品视频久久久久久 | 韩日一区二区三区 | 国产精品免费视频一区 | 午夜噜噜噜 | 成人伊人网 | 成人1区2区| 翔田千里一区二区 | 欧美激情va永久在线播放 | 在线激情视频 | 青青草免费在线视频 | 中文字幕一区二区三区四区五区 | 欧美伊人久久久久久久久影院 | 黄色av网站免费看 | 国产精品国产亚洲精品看不卡15 | 黄色大片视频 | 国产精品日韩欧美一区二区三区 | 中文字幕一区二区三区四区 | 日韩精品一区二区三区中文在线 | 精品一区二区在线观看 | 久久久久久久网 | 久久夜夜 | 综合久久综合久久 | 日韩一区二区在线视频 | www.久久影视 | 国产真实精品久久二三区 | 中文字幕一级 | 91精品久久久久久久久中文字幕 | 久精品视频 | 欧美激情综合色综合啪啪五月 | 国产精品久久777777 | 国产精品无码专区在线观看 | 视频1区2区 | 亚洲精品一区在线观看 | 欧美一区二区激情三区 | 自拍中文字幕 | 日韩一区二区三区av | 久久久久久久综合 | 青青伊人久久 | 99re在线视频精品 | 牛牛热在线视频 |