51單片機—ADC0808—05—①
畢竟ADC這個東西用的比較多,也很成熟,做出來的東西也是挺多的,所以這個東東就用兩三個實驗來敘述吧~
本文引用地址:http://m.butianyuan.cn/article/201611/322019.htm先說一下ADC0808 這款A(yù)/D轉(zhuǎn)換器的介紹:
1、ADC0808的簡介
A/D轉(zhuǎn)換器是一種能把輸入模擬電壓或者電流信息變成與其成正比的數(shù)字量信息的電路芯片。A/D轉(zhuǎn)換器用于實現(xiàn)模擬量到數(shù)字量的轉(zhuǎn)換。
ADC0808是典型的8通道模擬輸入8位并行數(shù)字輸出的逐次逼近式A/D轉(zhuǎn)換器。該轉(zhuǎn)換器采用COMS工藝,可以實現(xiàn)8路模擬信號的分時采集。片內(nèi)有8路模擬選通開關(guān),以及相應(yīng)的通道地址鎖存用譯碼電路。
1)ADC0808芯片的介紹
2)ADC0808的引腳
3)ADC0808的工作流程
4)與51單片機的借口
基本上也就這么點東西~~~很簡單吧~~我感覺也是~~
我艸,然我白白調(diào)了半天程序,就那么一點點的錯誤,浪費了好多的時間,真不爽啊~~~
貼圖看看~~
由于以后會用模塊化編程,便于自己以后直接調(diào)用~~~,這個主函數(shù):
//------------------------------------------------------------------------------
//實現(xiàn)由ADC0808作為A/D轉(zhuǎn)換器對電阻進行電壓的測試
//數(shù)碼管顯示的數(shù)據(jù)范圍為0~255
#include"reg52.h"
#include"macroandconst.h"
#include"delay.h"
#include"adc0808.h"
//------------------------------------------------------------------------------
uchar code seg_disp[4]={0x10,0x20,0x40,0x00};
uchar count;
sbit
uchar temp_0=0;
//------------------------------------------------------------------------------
//定時器初始化函數(shù)
void timer_init()
{
//
}
//------------------------------------------------------------------------------
//main
void main()
{
}
//------------------------------------------------------------------------------
//timer0
void timer0() interrupt 1
{
}
//------------------------------------------------------------------------------
//timer1
void timer1() interrupt 3
{
}
然后就是ADC0808的初始化函數(shù)了(一些輔助的函數(shù)我就不貼出來了,比如宏定義啊,軟件延時啊,引腳定義什么的~~):
//------------------------------------------------------------------------------
//adc0808的文件函數(shù)
#include"reg52.h"
#include"delay.h"
#include"macroandconst.h"
//------------------------------------------------------------------------------
sbit START=P3^0;
sbit OE=P3^1;
sbit EOC=P3^2;
sbit CLK=P3^7;
uchar get_data;
uchar temp;
uchar display[3];
//------------------------------------------------------------------------------
//ADC0808的啟動和轉(zhuǎn)換的初始化函數(shù)
void ADC0808_init()
{
}
評論