国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

sadpacific的個人空間 http://www.qingdxww.cn/space-uid-25802.html [收藏] [復制] [RSS]

博客

stc90c52ad測試程序

已有 2487 次閱讀2011-4-6 18:52 |個人分類:學習

/*------------------------------------------------------------------*/
/* --- STC MCU International Limited -------------------------------*/
/* --- STC 1T Series MCU A/D Conversion Demo -----------------------*/
/* --- Mobile: (86)13922805190 -------------------------------------*/
/* --- Fax: 86-755-82944243 ----------------------------------------*/
/* --- Tel: 86-755-82948412 ----------------------------------------*/
/* --- Web: www.STCMCU.com -----------------------------------------*/
/* If you want to use the program or the program referenced in the  */
/* article, please specify in which data and procedures from STC    */
/*------------------------------------------------------------------*/
#include "reg51.h"
#include "intrins.h"
#define FOSC    18432000L
#define BAUD    9600
typedef unsigned char BYTE;
typedef unsigned int WORD;
/*Declare SFR associated with the ADC */
sfr ADC_CONTR   =   0xC5;           //ADC control register
sfr ADC_RES     =   0xC6;           //ADC high 8-bit result register
sfr ADC_LOW2    =   0xC7;           //ADC low 2-bit result register
sfr P1ASF       =   0x97;           //P1 secondary function control register

/*Define ADC operation const for ADC_CONTR*/
#define ADC_FLAG    0x10            //ADC complete flag
#define ADC_START   0x08            //ADC start control bit
#define ADC_SPEEDLL 0x60            //534 clocks
#define ADC_SPEEDL  0x40            //356 clocks
#define ADC_SPEEDH  0x20            //178 clocks
#define ADC_SPEEDHH 0x00            //89 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
    IE = 0xa0;                      //Enable ADC interrupt and Open master interrupt switch
                                    //Start A/D conversion
    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 and Send to UART
//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_SPEEDLL|ch|ADC_START;
 _nop_();
 _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_SPEEDLL ;
    Delay(2);                       //ADC power-on delay and Start A/D conversion
}

/*----------------------------
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--);
    }
}
 

路過

雞蛋

鮮花

握手

雷人

全部作者的其他最新博客

評論 (0 個評論)

facelist

您需要登錄后才可以評論 登錄 | 立即注冊

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
返回頂部
主站蜘蛛池模板: 国产视频每日更新 | 国产精品三级一区二区 | 北条麻妃在线亚州不卡二区 | 欧美日韩一区二区三区视频 | 国产一区二区免费不卡在线播放 | 99re视频这里只有精品 | 一区二区日韩精品中文字幕 | 二级特黄绝大片免费视频大片 | 久久久久久久国产免费看 | 日本加勒比在线精品视频 | 欧美成人免费在线观看 | 福利 网红 精品 免费 高清 | 五月天在线网站 | 国产成人精品免费影视大全 | 亚洲综合欧美日韩 | 亚洲线精品一区二区三区 | 亚洲综合狠狠99婷婷 | 欧美精品一二三区 | 国产女明星专区视频在线播放 | 欧美最爽乱淫视频播放黑人 | 快色在线观看免费播放高清 | 日本www黄| 九九精品视频在线观看九九 | 在线观看国产精品日本不卡网 | 九月婷婷综合 | 在线欧美卡1卡2卡三卡四 | 日韩系列在线 | 年轻的馊子1中字hd 年轻的嫂子在线线观免费观看 | 窝窝影院午夜看片 | 久久99国产精品久久99无号码 | 九九热精品视频在线观看 | 韩国免费高清一级毛片性色 | 日本护士在线视频xxxx免费 | 亚洲欧美在线观看视频 | 欧美日韩精品一区二区 | 国产福利91精品一区二区三区 | 久久婷婷五月综合色丁香 | 四虎精品成人免费永久 | 亚洲精品资源在线 | 亚洲国产欧美目韩成人综合 | 色婷婷.com|