📄 [原创]带spi接口的16位ad7705驱动程序[avr论坛].htm
字号:
<DIV class=text_style style="FLOAT: right"><A
onclick="fontSize('m','textstyle_25386')"
href="javascript:void(0);">小</A><A
onclick="fontSize('b','textstyle_25386')"
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_25386
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>/****************************************<BR>* AD7705在M16下驱动程序 *<BR>* 文
件 名:AD7705.c *<BR>* 描 述:16位∑-Δ模数转换器 *<BR>* 作 者:周长洪 *<BR>* 建立日期:2007年12月27日
*<BR>* 版 本:V2007.01 *<BR>* 修改日期:2007年12月27日 *<BR>* 控制芯片:Mega16 *<BR>*
时钟频率:7.3728MHz *<BR>* 波 特 率:9600BPS *<BR>* 联接方式:AD7705 ________ M16 *<BR>*
片 选:CS_7705 _______ PA4 *<BR>* 复 位:RESET _________ PA5 *<BR>* 数据有效:DRRY
__________ PB3 *<BR>****************************************/<BR>#include
<iom16v.h><BR>#include <macros.h><BR>#include "delay.h"</P>
<P>//控制端口定义<BR>//端口操作定义<BR>#define CS_7705 PA4 //AD7705的片选接在PA4<BR>#define
SET_CS_7705 PORTA |= 1<<CS_7705<BR>#define CLR_CS_7705 PORTA &=
~(1<<CS_7705)</P>
<P>#define RET PA5 //AD7705的复位接在PA5<BR>#define SET_RET PORTA |=
1<<RET<BR>#define CLR_RET PORTA &= ~(1<<RET)</P>
<P>#define DRRY PB3 //AD7705的数据有效接在PB3<BR>#define DRRY_7705 (PINB &
(1<<DRRY))</P>
<P>//SPI接口初始化函数<BR>void spi_init(void)<BR>{<BR>DDRB |=
(1<<PB5)|(1<<PB7); //设置MOSI 和SCK 为输出<BR>DDRB &=
~(1<<PB6); //MISO为输入<BR>SPCR = (1<<SPE)|(1<<MSTR);
//使能SPI主机模式fck/4<BR>}</P>
<P>//写入AD7705一字节函数<BR>//入口:data 需写入的字节数据<BR>void wr_byte(unsigned char
data)<BR>{<BR>SPDR = data; //启动数据传输<BR>while (!(SPSR &
(1<<SPIF))) //等待传输结束 <BR>{<BR>;<BR>}<BR>}</P>
<P>//读出AD7705数据函数<BR>//出口:读出的2字节数据<BR>unsigned int
rd_7705(void)<BR>{<BR>unsigned int temp; //定义临时变量<BR>wr_byte(0x38);
//选择读数据寄存器,1通道<BR>SPDR = 0; //启动数据传输<BR>while (!(SPSR &
(1<<SPIF))) //等待传输结束 <BR>{ <BR>;<BR>}<BR>temp = SPDR<<8;
//读取高字节<BR><BR>SPDR = 0; //启动数据传输<BR>while (!(SPSR & (1<<SPIF)))
//等待传输结束 <BR>{ <BR>;<BR>}<BR>temp |= SPDR;
//读取低字节<BR>return(temp);<BR>}</P>
<P>//判断有无数据函数<BR>//出口:读出的2字节数据<BR>unsigned int
ad7705(void)<BR>{<BR>if(DRRY_7705==0)<BR>{<BR>return(rd_7705());<BR>}<BR>else<BR>{<BR>return(0);<BR>}<BR>}</P>
<P>//AD7705初始化函数<BR>void init_7705(void)<BR>{<BR>spi_init();<BR>DDRA |=
(1<<CS_7705)|(1<<RET); //定义端口方向<BR>DDRB &=
~(1<<DRRY);<BR>PORTB|= 1<<DRRY;<BR>CLR_CS_7705;
//片选有效<BR>CLR_RET; //复位端低有效<BR>delay_ms(500); //保持500MS低电平<BR>SET_RET;
//复位端回复高<BR>delay_ms(1);<BR>wr_byte(0x20); //选择时钟寄存器<BR>wr_byte(0x0C);
//50HZ的转换频率<BR>wr_byte(0x10); //选择设置寄存器<BR>wr_byte(0x44);
//自校准模式,增益为1,单极性<BR>}</P></DIV></TD></TR>
<TR>
<TD class=td_d vAlign=bottom width="82%">
<DIV id=sigline_4
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_4');</SCRIPT>
<BR>
<DIV class=info>
<UL class=info>
<LI>评论[<FONT color=#3399ff>支持者: <SPAN id=isagree1_25386>0</SPAN>
人</FONT> ,<FONT color=#ff6600>反对者: <SPAN id=isagree2_25386>0</SPAN>
人</FONT>,<FONT color=#009933>中立者: <SPAN id=isagree0_25386>0</SPAN>
人</FONT>] <A
href="http://www.iccavr.com/forum/Appraise.asp?boardid=2&topicid=4958&postid=25386"
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:58: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=25387></A>
<DIV class=postlary1>
<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>5</FONT> 楼</DIV>
<DIV class=text_style style="FLOAT: right"><A
onclick="fontSize('m','textstyle_25387')"
href="javascript:void(0);">小</A><A
onclick="fontSize('b','textstyle_25387')"
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_25387
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>
<P></P><BR><IMG title=dvubb alt=图片点击可在新窗口打开查看
src="[原创]带SPI接口的16位AD7705驱动程序[AVR论坛].files/jpg.gif"
onload=imgresize(this); border=0>此主题相关图片如下:整板2.jpg<BR><A
href="[原创]带SPI接口的16位AD7705驱动程序[AVR论坛].files/20081282361683477.jpg"
target=_blank><IMG title=dvubb alt=图片点击可在新窗口打开查看
src="[原创]带SPI接口的16位AD7705驱动程序[AVR论坛].files/20081282361683477.jpg"
onload=imgresize(this); border=0></A><BR></DIV></TD></TR>
<TR>
<TD class=td_d vAlign=bottom width="82%">
<DIV id=sigline_5
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_5');</SCRIPT>
<BR>
<DIV class=info>
<UL class=info>
<LI>评论[<FONT color=#3399ff>支持者: <SPAN id=isagree1_25387>0</SPAN>
人</FONT> ,<FONT color=#ff6600>反对者: <SPAN id=isagree2_25387>0</SPAN>
人</FONT>,<FONT color=#009933>中立者: <SPAN id=isagree0_25387>0</SPAN>
人</FONT>] <A
href="http://www.iccavr.com/forum/Appraise.asp?boardid=2&topicid=4958&postid=25387"
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
23:06: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">AVR学习工具普及版:<A
href="http://www.iccavr.com/shop/Product.asp?id=28" target=_blank><FONT
color=#0033ff>AVR下载线</FONT></A><FONT color=#ff0000>价格:50元</FONT> <A
href="http://www.iccavr.com/shop/Product.asp?id=29" target=_blank><FONT
color=#0033ff>AVR仿真器</FONT></A><FONT color=#ff0000>价格:60元</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=25870></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='#A6BA98',strength='2'); FLOAT: left; WIDTH: 105px"><FONT
face=Verdana color=#61b713><B>zzfd97</B></FONT></DIV>
<DIV style="MARGIN-TOP: 3px; FLOAT: left; WIDTH: 23px"><IMG
alt=帅哥哟,离线,有人找我吗?
src="[原创]带SPI接口的16位AD7705驱动程序[AVR论坛].files/ofMale.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/image1.gif" width=32></DIV>
<DIV><IMG style="MARGIN: 5px 0px"
src="[原创]带SPI接口的16位AD7705驱动程序[AVR论坛].files/level0.gif"></DIV>
<DIV>等级:新手上路</DIV>
<DIV>文章:24</DIV>
<DIV>积分:288</DIV>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -