AD的基本應用要求如下:
采樣可變電阻電壓與光敏電阻電壓
要求如下:
獨立按鍵S4為通道切換選擇,系統上電的時候,采樣通道1光敏電阻的數據并顯示在數據管上。按下S4松開后,切換到通道3采樣可調電阻的數據并顯示;再次按下S4松開后,又切換回通道1采樣光敏
電阻數據,如此循環往復。前3位數碼管顯示通道號,后3位顯示PCF8591相應通道讀取的數據。
AD的基本應用要求如圖:
51hei圖片_20200803183655.png (83.27 KB, 下載次數: 50)
下載附件
2020-8-3 18:37 上傳
單片機源程序如下:
- #include"XPT2046.h"
- void SPI_Write(uchar dat) //寫入數據
- {
- uchar i;
- CLK = 0; //拉低時鐘信號電位
- for(i=0; i<8; i++) //循環寫入八位字節
- {
- DIN = dat >> 7; //從最高位到最低為開始傳送
- dat <<= 1;
- CLK = 0; //接收時讓時鐘信號不斷變化
- CLK = 1;
- }
- }
- uint SPI_Read(void) //讀取數據
- {
- uint i, dat=0;
- CLK = 0;
- for(i=0; i<12; i++) //讀取12位數據
- {
- dat <<= 1; //讀取要先移位再賦值,寫入就相反
- CLK = 1;
- CLK = 0;
- dat |= DOUT;
- }
- return dat;
- }
- uint Read_AD_Data(uchar cmd) //讀取數據
- {
- uchar i;
- uint AD_Value;
- CLK = 0; //拉低時鐘信號電位
- CS = 0; //拉低片選信號電位
- SPI_Write(cmd); //發送命令字符
- for(i=6; i>0; i--); //延時等待轉換結果
- CLK = 1; //發送一個時鐘周期,清除BUSY
- _nop_();
- _nop_();
- CLK = 0;
- _nop_();
- _nop_();
- AD_Value=SPI_Read();
- CS = 1; //讀取完要關閉片選信號
- return AD_Value; //信號處理后返回的值
- }
復制代碼
51hei.png (6.11 KB, 下載次數: 53)
下載附件
2020-8-3 18:43 上傳
所有資料51hei提供下載:
關于ADC的基本應用.7z
(43.25 KB, 下載次數: 19)
2020-8-3 18:38 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|