📄 [原创]带spi接口的16位ad7705驱动程序[avr论坛].htm
字号:
<TR>
<TD class=td_a vAlign=top rowSpan=2>
<DIV
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; PADDING-BOTTOM: 0px; LINE-HEIGHT: 30px; PADDING-TOP: 10px; HEIGHT: 30px">
<DIV
style="FILTER: glow(color='#9898BA',strength='2'); FLOAT: left; WIDTH: 105px"><FONT
face=Verdana color=#da2549><B>tonghe</B></FONT></DIV>
<DIV style="MARGIN-TOP: 3px; FLOAT: left; WIDTH: 23px"><IMG
alt=帅哥哟,在线,有人找我吗?
src="[原创]带SPI接口的16位AD7705驱动程序[AVR论坛].files/Male.gif"></DIV>
<DIV style="MARGIN-TOP: 8px; FLOAT: left; MARGIN-LEFT: 5px; WIDTH: 15px">
<SCRIPT language=javascript type=text/javascript>document.write (astro(''));</SCRIPT>
</DIV></DIV>
<DIV><IMG height=32 alt=""
src="[原创]带SPI接口的16位AD7705驱动程序[AVR论坛].files/image4.gif" width=32></DIV>
<DIV><IMG style="MARGIN: 5px 0px"
src="[原创]带SPI接口的16位AD7705驱动程序[AVR论坛].files/level18.gif"></DIV>
<DIV>等级:版主</DIV>
<DIV>文章:2415</DIV>
<DIV>积分:6311</DIV>
<DIV>圈子:<A
href="http://www.iccavr.com/forum/IndivGroup_List.asp?action=usergrouplist&userid=302">参与的圈子</A></DIV>
<DIV>注册:2007年1月4日</DIV></TD>
<TD class=td_b style="OVERFLOW: hidden; LINE-HEIGHT: normal" vAlign=top
width="82%">
<DIV>
<DIV class=user_menu_info>
<DIV style="FLOAT: right; COLOR: #333">楼主</DIV>
<DIV class=text_style style="FLOAT: right"><A
onclick="fontSize('m','textstyle_25382')"
href="javascript:void(0);">小</A><A
onclick="fontSize('b','textstyle_25382')"
href="javascript:void(0);">大</A></DIV> <A
href="http://www.iccavr.com/forum/userspace.asp?sid=302">个性首页</A></DIV></DIV>
<DIV style="LINE-HEIGHT: 22px; HEIGHT: 22px">
<DIV style="FLOAT: left"><IMG alt=发贴心情
src="[原创]带SPI接口的16位AD7705驱动程序[AVR论坛].files/face1.gif"></DIV><B>[原创]带SPI接口的16位AD7705驱动程序</B></DIV>
<DIV id=textstyle_25382
style="PADDING-RIGHT: 3px; MARGIN-TOP: 20px; PADDING-LEFT: 3px; FONT-SIZE: 9pt; OVERFLOW-X: hidden; PADDING-BOTTOM: 3px; WIDTH: 97%; TEXT-INDENT: 0px; LINE-HEIGHT: 22px; PADDING-TOP: 3px; HEIGHT: 150px">
<P>最近在做一个印度项目时,应用到16位AD转换器AD7705,此器件<SPAN
style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">是<SPAN
lang=EN-US>AD公司推出的双通道16位∑-Δ(电荷平衡式)A/D转换器。具有高分辨率、宽动态范围、自校准,低功耗及优良的抗噪声性能,因此非常适用于仪表测量和工业控制等领域。<SPAN
lang=EN-US
style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">16位无丢失代码;0.003%的非线性度;内部放大器可选择1,2,4,8,16,32,64,128;8种增益;输出数据更新速率可编程;具有自校准和系统校准功能,三线串行接口,可缓冲模拟输入;低功耗。经努力,目前已调通一个通道,现将驱动程序共享,愿起到抛砖引玉的作用。此程序在项目板上调试通过,而且测试精度极高,显示的电压值准确稳定。</SPAN></SPAN></SPAN></P>
<P><SPAN
style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><SPAN
lang=EN-US><SPAN lang=EN-US
style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">#include
<iom16v.h><BR>#include <macros.h><BR>#include
"delay.h"<BR>#include "ylkz_io.h"<BR>#include "FYD_12864_B.h"<BR>#include
"AD7705.h"</SPAN></SPAN></SPAN></P>
<P><SPAN
style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><SPAN
lang=EN-US><SPAN lang=EN-US
style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">//数据类型的定义<BR>#define
uchar unsigned char <BR>#define uint unsigned int<BR>#define spk_f
230</SPAN></SPAN></SPAN></P>
<P><SPAN
style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><SPAN
lang=EN-US><SPAN lang=EN-US
style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">//全局变量定义<BR>uint
vol;</SPAN></SPAN></SPAN></P>
<P><SPAN
style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><SPAN
lang=EN-US><SPAN lang=EN-US
style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">/********************************<BR>*
器件端口初始化函数 *<BR>********************************/<BR>void
port_init(void)<BR>{<BR>PORTA = 0b00001111;<BR>DDRA = 0b00110000;<BR>PORTB
= 0b00011000;<BR>DDRB = 0b00010111; //输出<BR>PORTC = 0xFF;<BR>DDRC =
0b11000000; //输入<BR>PORTD = 0b00011100;<BR>DDRD =
0b11010000;<BR>}</SPAN></SPAN></SPAN></P>
<P><SPAN
style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><SPAN
lang=EN-US><SPAN lang=EN-US
style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">/*************************************<BR>*
蜂鸣器操作函数组
*<BR>*************************************/<BR>//无源蜂鸣器操作函数<BR>//入口:n响声次数,m响声时长1/10MS<BR>void
spk(uchar n,uint m)<BR>{<BR>uint a;<BR>CLI();
//暂停中断,以免影响声音<BR>for(;n;n--)<BR>{<BR>a=(m*100/spk_f)*5;
//计算循环次数<BR>for(;a;a--)<BR>{;<BR>SPK_TG;<BR>delay_us(spk_f);<BR>SPK_TG;<BR>delay_us(spk_f);<BR>}<BR>SPK_OFF;<BR>delay_ms(100);<BR>}<BR>SEI();
//开中断<BR>}</SPAN></SPAN></SPAN></P>
<P><SPAN
style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><SPAN
lang=EN-US><SPAN lang=EN-US
style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">/****************************<BR>*
电压显示函数 *<BR>* 入 口:da 电压数据 *<BR>****************************/<BR>void
dy_disp(uint da)<BR>{<BR>uchar
temp;<BR>locate(1,1);<BR>lcd("AD7705测试程序:");<BR>locate(2,2);<BR>lcd("一通道电压值");<BR>locate(3,3);<BR>temp=((da/1000)+0x30);<BR>wr_12864(1,temp);<BR>temp=(da%1000)/100+0x30;<BR>wr_12864(1,temp);<BR>temp=(da%100)/10+0x30;<BR>wr_12864(1,temp);<BR>temp=(da%10)+0x30;<BR>wr_12864(1,temp);<BR>lcd("mV");<BR>}</SPAN></SPAN></SPAN></P></DIV></TD></TR>
<TR>
<TD class=td_d vAlign=bottom width="82%">
<DIV id=sigline_1
style="CLEAR: both; FLOAT: left; OVERFLOW-X: hidden; WIDTH: 85%; TEXT-ALIGN: left"><IMG
src="[原创]带SPI接口的16位AD7705驱动程序[AVR论坛].files/sigline.gif"><BR>虽然已经老了,仍需活到老,学到老!</DIV>
<SCRIPT language=javascript
type=text/javascript>fixheight('sigline_1');</SCRIPT>
<BR>
<DIV class=info>
<UL class=info>
<LI>评论[<FONT color=#3399ff>支持者: <SPAN id=isagree1_25382>0</SPAN>
人</FONT> ,<FONT color=#ff6600>反对者: <SPAN id=isagree2_25382>0</SPAN>
人</FONT>,<FONT color=#009933>中立者: <SPAN id=isagree0_25382>0</SPAN>
人</FONT>] <A
href="http://www.iccavr.com/forum/Appraise.asp?boardid=2&topicid=4958&postid=25382"
target=_blank><FONT color=red>查看评论信息</FONT></A></LI></UL></DIV></TD></TR>
<TR height=20>
<TD style="PADDING-LEFT: 20px" vAlign=center width="22%"><IMG
title=ip地址已设置保密 style="PADDING-LEFT: 2px; FLOAT: left"
src="[原创]带SPI接口的16位AD7705驱动程序[AVR论坛].files/ip.gif">
<DIV style="PADDING-LEFT: 2px; FLOAT: left; TEXT-INDENT: 12px">2008-1-28
22:54:00</DIV></TD>
<TD class=td_c
style="PADDING-RIGHT: 6px; PADDING-LEFT: 6px; PADDING-BOTTOM: 6px; PADDING-TOP: 6px; TEXT-ALIGN: left"
vAlign=center width="82%">
<DIV style="FLOAT: left; LINE-HEIGHT: 26px; HEIGHT: 26px"><A
href="http://www.iccavr.com/shop/Product.asp?id=22" target=_blank><FONT
color=#0033ff>AVR mega16学习板</FONT></A>:电路合理、结构清晰,专为初学者设计。<FONT
color=#ff0000>价格:240元</FONT></DIV>
<DIV style="FLOAT: right; MARGIN-RIGHT: 5px; HEIGHT: 26px"><A
href="http://www.iccavr.com/forum/dispbbs.asp?boardid=2&id=4958#top"><IMG
style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px"
alt=回到顶部
src="[原创]带SPI接口的16位AD7705驱动程序[AVR论坛].files/p_up.gif"></A></DIV></TD></TR></TBODY></TABLE></DIV><A
name=25384></A>
<DIV class=postlary2>
<TABLE style="TABLE-LAYOUT: fixed; WIDTH: 100%" cellSpacing=0 cellPadding=0
border=0>
<TBODY>
<TR>
<TD class=td_a vAlign=top rowSpan=2>
<DIV
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; PADDING-BOTTOM: 0px; LINE-HEIGHT: 30px; PADDING-TOP: 10px; HEIGHT: 30px">
<DIV
style="FILTER: glow(color='#9898BA',strength='2'); FLOAT: left; WIDTH: 105px"><FONT
face=Verdana color=#da2549><B>tonghe</B></FONT></DIV>
<DIV style="MARGIN-TOP: 3px; FLOAT: left; WIDTH: 23px"><IMG
alt=帅哥哟,在线,有人找我吗?
src="[原创]带SPI接口的16位AD7705驱动程序[AVR论坛].files/Male.gif"></DIV>
<DIV style="MARGIN-TOP: 8px; FLOAT: left; MARGIN-LEFT: 5px; WIDTH: 15px">
<SCRIPT language=javascript type=text/javascript>document.write (astro(''));</SCRIPT>
</DIV></DIV>
<DIV><IMG height=32 alt=""
src="[原创]带SPI接口的16位AD7705驱动程序[AVR论坛].files/image4.gif" width=32></DIV>
<DIV><IMG style="MARGIN: 5px 0px"
src="[原创]带SPI接口的16位AD7705驱动程序[AVR论坛].files/level18.gif"></DIV>
<DIV>等级:版主</DIV>
<DIV>文章:2415</DIV>
<DIV>积分:6311</DIV>
<DIV>圈子:<A
href="http://www.iccavr.com/forum/IndivGroup_List.asp?action=usergrouplist&userid=302">参与的圈子</A></DIV>
<DIV>注册:2007年1月4日</DIV></TD>
<TD class=td_b style="OVERFLOW: hidden; LINE-HEIGHT: normal" vAlign=top
width="82%">
<DIV>
<DIV class=user_menu_info>
<DIV style="FLOAT: right; COLOR: #333">第 <FONT color=red>2</FONT> 楼</DIV>
<DIV class=text_style style="FLOAT: right"><A
onclick="fontSize('m','textstyle_25384')"
href="javascript:void(0);">小</A><A
onclick="fontSize('b','textstyle_25384')"
href="javascript:void(0);">大</A></DIV> <A
href="http://www.iccavr.com/forum/userspace.asp?sid=302">个性首页</A></DIV></DIV>
<DIV style="LINE-HEIGHT: 22px; HEIGHT: 22px">
<DIV style="FLOAT: left"><IMG alt=发贴心情
src="[原创]带SPI接口的16位AD7705驱动程序[AVR论坛].files/face1.gif"></DIV><B></B></DIV>
<DIV id=textstyle_25384
style="PADDING-RIGHT: 3px; MARGIN-TOP: 20px; PADDING-LEFT: 3px; FONT-SIZE: 9pt; OVERFLOW-X: hidden; PADDING-BOTTOM: 3px; WIDTH: 97%; TEXT-INDENT: 0px; LINE-HEIGHT: 22px; PADDING-TOP: 3px; HEIGHT: 150px">
<P>
<P><SPAN
style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><SPAN
lang=EN-US><SPAN lang=EN-US
style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"></SPAN></SPAN></SPAN></P><SPAN
style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><SPAN
lang=EN-US><SPAN lang=EN-US
style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">/************************************<BR>*
定时器1初始化函数 *<BR>* 功 能:定时读取AD7705数据 *<BR>* 定时时间:预分频64,定时500MS *<BR>*
实际定时:499.991mSec (0.0%) *<BR>************************************/<BR>void
timer1_init(void)<BR>{<BR>TCCR1B = 0x00; //停止定时器<BR>TCNT1H = 0x1F;
//装初值<BR>TCNT1L = 0x01;<BR>TCCR1A = 0x00;<BR>// TCCR1B = 0x03;
//启动定时器<BR>}<BR>/******************************<BR>* 定时器1中断函数
*<BR>******************************/<BR>#pragma interrupt_handler
timer1_ovf_isr:iv_TIMER1_OVF<BR>void timer1_ovf_isr(void)<BR>{<BR>TCNT1H =
0x1F; //重装初值<BR>TCNT1L = 0x01;<BR>LED_TG;
//工作指示灯闪亮<BR><BR>vol=ad7705();<BR>if(vol)<BR>{<BR>vol=(vol/131)*5;
//电压MV<BR>dy_disp(vol);<BR>}<BR>}</SPAN></SPAN></SPAN>
<P></P>
<P><SPAN
style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><SPAN
lang=EN-US><SPAN lang=EN-US
style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">/******************************<BR>*
器件初始化函数 *<BR>******************************/<BR>void
init_devices(void)<BR>{<BR>CLI();
//先关总中断<BR>port_init();<BR>timer1_init();<BR>MCUCR = 0x00;<BR>GICR =
0x00;<BR>TIMSK = 0x04; //开启中断源<BR>SEI();
//开总中断<BR>}</SPAN></SPAN></SPAN></P>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -