這是我曾經做的智能儀器設計實驗,ADC0808與單片機8051的中斷方式接口電路。采用線選法規定其端口地址,用單片機的P2.7引腳作為為選信號,因此端口地址為7FFFH。片選信號和 信號一起經或非門產生ADC0808的啟動信號START和地址鎖存信號ALE;片選信號和 信號一起經或非門產生ADC0808輸出允許信號OE,OE=1時選通三態門,使輸出鎖存器中的轉換結果送入數據總線。ADC0808的EOC信號經反相后接到8051的 引腳,用于產生轉換完成的中斷請求信號。ADC0808芯片的3位模擬量輸入通道地址碼輸入端A、B、C分別接到8051的P0.0、P0.1和P0.2,故只要向端口地址7FFFH分別寫入數據00H~07H,即可啟動模擬量輸入通道0~7進行A/D轉換。
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
電路圖
單片機源程序如下:
- #include"reg52.h"
- #include"absacc.h"
- #define ADC 0x7fff //定義ADC0808端口地址
- unsigned data ADCDat[8] _at_ 0x30 ;
- unsigned i=0;
- main()
- {
- EX1=1; IT1=1; EA=1;
- XBYTE[ADC]=i; //啟動ADC0808第0通道
- while(1)
- {
- if(P3^3==0) //查詢P3^3狀態
- P1=ADCDat[0] ; } //第0通道轉換結果送至P1口顯示
- }
- int1()interrupt 2 using 1
- {
- ADCDat[i]=XBYTE[ADC]; //讀取ADC0808轉換結果并存入內存
- i++;
- XBYTE[ADC]=i; //啟動ADC0808下一通道
- if(i==8)
- {
- i=0;
- XBYTE[ADC]=i; //重新啟動ADC0808第0通道
- }
- }
復制代碼
所有資料51hei提供下載:
ADC接口實驗.zip
(19.45 KB, 下載次數: 53)
2019-3-10 15:58 上傳
點擊文件名下載附件
電路圖(可直接仿真)+程序
|