




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、帶SPI接口的16位AD7705驅動程序來源于 作者:tonghe最近在做一個印度項目時,應用到16位AD轉換器AD7705,此器件是AD公司推出的雙通道16位(電荷平衡式)A/D轉換器。具有高分辨率、寬動態范圍、自校準,低功耗及優良的抗噪聲性能,因此非常適用于儀表測量和工業控制等領域。16位無丟失代碼;0.003的非線性度;內部放大器可選擇1,2,4,8,16,32,64,128;8種增益;輸出數據更新速率可編程;具有自校準和系統校準功能,三線串行接口,可緩沖模擬輸入;低功耗。經努力,目前已調通一個通道,現將驅動程序共享,愿起到拋磚引玉的作用。此程序在項目板上調試通過,而且測試精度極高,顯示
2、的電壓值準確穩定。#include #include #include delay.h#include ylkz_io.h#include FYD_12864_B.h#include AD7705.h/數據類型的定義#define uchar unsigned char #define uint unsigned int#define spk_f 230/全局變量定義uint vol;/* 器件端口初始化函數 */void port_init(void)PORTA = 0b00001111;DDRA = 0b00110000;PORTB = 0b00011000;DDRB = 0b000101
3、11; /輸出PORTC = 0xFF;DDRC = 0b11000000; /輸入PORTD = 0b00011100;DDRD = 0b11010000;/* 蜂鳴器操作函數組 */無源蜂鳴器操作函數/入口:n響聲次數,m響聲時長1/10MSvoid spk(uchar n,uint m)uint a;CLI(); /暫停中斷,以免影響聲音for(;n;n-)a=(m*100/spk_f)*5; /計算循環次數for(;a;a-);SPK_TG;delay_us(spk_f);SPK_TG;delay_us(spk_f);SPK_OFF;delay_ms(100);SEI(); /開中斷/
4、* 電壓顯示函數 * 入 口:da 電壓數據 */void dy_disp(uint da)uchar temp;locate(1,1);lcd(AD7705測試程序:);locate(2,2);lcd(一通道電壓值);locate(3,3);temp=(da/1000)+0x30);wr_12864(1,temp);temp=(da%1000)/100+0x30;wr_12864(1,temp);temp=(da%100)/10+0x30;wr_12864(1,temp);temp=(da%10)+0x30;wr_12864(1,temp);lcd(mV);/* 定時器1初始化函數 * 功
5、能:定時讀取AD7705數據 * 定時時間:預分頻64,定時500MS * 實際定時:499.991mSec (0.0%) */void timer1_init(void)TCCR1B = 0x00; /停止定時器TCNT1H = 0x1F; /裝初值TCNT1L = 0x01;TCCR1A = 0x00;/ TCCR1B = 0x03; /啟動定時器/* 定時器1中斷函數 */#pragma interrupt_handler timer1_ovf_isr:iv_TIMER1_OVFvoid timer1_ovf_isr(void)TCNT1H = 0x1F; /重裝初值TCNT1L = 0
6、x01;LED_TG; /工作指示燈閃亮vol=ad7705();if(vol)vol=(vol/131)*5; /電壓MVdy_disp(vol); /* 器件初始化函數 */void init_devices(void)CLI(); /先關總中斷port_init();timer1_init();MCUCR = 0x00;GICR = 0x00;TIMSK = 0x04; /開啟中斷源SEI(); /開總中斷/* 主函數 */void main(void)init_devices();delay_ms(10);lcd12864_init();delay_ms(50);init_7705()
7、;spk(1,100); cls();delay_ms(20);guanggao(); /顯示廣告語delay_ms(2000);cls(); /清屏delay_ms(200);TCCR1B = 0x03; /啟動定時器cls();while(1);/* AD7705在M16下驅動程序 * 文 件 名:AD7705.c * 描 述:16位模數轉換器 * 作 者:周長洪 * 建立日期:2007年12月27日 * 版 本:V2007.01 * 修改日期:2007年12月27日 * 控制芯片:Mega16 * 時鐘頻率:7.3728MHz * 波 特 率:9600BPS * 聯接方式:AD7705
8、_ M16 * 片 選:CS_7705 _ PA4 * 復 位:RESET _ PA5 * 數據有效:DRRY _ PB3 */#include #include #include delay.h/控制端口定義/端口操作定義#define CS_7705 PA4 /AD7705的片選接在PA4#define SET_CS_7705 PORTA |= 1CS_7705#define CLR_CS_7705 PORTA &= (1CS_7705)#define RET PA5 /AD7705的復位接在PA5#define SET_RET PORTA |= 1RET#define CLR_RET P
9、ORTA &= (1RET)#define DRRY PB3 /AD7705的數據有效接在PB3#define DRRY_7705 (PINB & (1DRRY)/SPI接口初始化函數void spi_init(void)DDRB |= (1PB5)|(1PB7); /設置MOSI 和SCK 為輸出DDRB &= (1PB6); /MISO為輸入SPCR = (1SPE)|(1MSTR); /使能SPI主機模式fck/4/寫入AD7705一字節函數/入口:data 需寫入的字節數據void wr_byte(unsigned char data)SPDR = data; /啟動數據傳輸while
10、 (!(SPSR & (1SPIF) /等待傳輸結束 ;/讀出AD7705數據函數/出口:讀出的2字節數據unsigned int rd_7705(void)unsigned int temp; /定義臨時變量wr_byte(0x38); /選擇讀數據寄存器,1通道SPDR = 0; /啟動數據傳輸while (!(SPSR & (1SPIF) /等待傳輸結束 ;temp = SPDR8; /讀取高字節SPDR = 0; /啟動數據傳輸while (!(SPSR & (1SPIF) /等待傳輸結束 ;temp |= SPDR; /讀取低字節return(temp);/判斷有無數據函數/出口:讀出的2字節數據unsigned int ad7705(void)if(DRRY_7705=0)return(rd_7705();elsereturn(0);/AD7705初始化函數void init_7705(void)spi_init();DDRA |= (1CS_7705)|(1RET); /定義端口方向DDRB &= (1DRRY);PORTB|= 1DRRY;CLR_CS_7705; /片選有效CLR
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工業管道的運行與維護培訓
- 工作中的信息安全管理與保護策略
- 工業節能電機系統的優化與改造
- 工業風建筑裝飾設計案例分享
- 工作效率提升的智能穿戴設備探討
- 工作與生活平衡的時間管理策略
- 工作流程優化與管理效能提升培訓課程類題目
- 工程師培訓課程中的統計過程控制
- 工程物理學的發展方向探討
- 工程項目中的物資采購與財務審計
- GB/T 23932-2009建筑用金屬面絕熱夾芯板
- 北京開放大學工具書與文獻檢索形成性考核1答案-答案
- 初中地理會考試卷
- 清華大學抬頭信紙
- Unit 2 Lesson 1 Money vs Success 課件 高中英語新北師大版性選擇必修第一冊(2022-2023學年)
- 天津大學年《儀器分析實驗》期末試題及答案
- 特種設備風險分級管控清單(叉車)
- 《創新創業實踐》課程思政教學案例(一等獎)
- 項目激勵管理制度
- 核酸的降解與核苷酸代謝課件
- T∕CGMA 033001-2018 壓縮空氣站能效分級指南
評論
0/150
提交評論