📄 PIC16F877的应用--A/D转换器 - microchip单片机应用论坛 - 单片机专区 - 单片机论坛 - 上海齐济电子有限公司.htm
字号:
value=http://web.gougou.com/search?search=%70%69%63%31%36%66%38%37%37%e8%ae%ba%e5%9d%9b&id=10000000
name=url> 会员名称: <INPUT class=input1 size=14 name=username> 密码: <INPUT
class=input1 type=password size=14 name=password> <INPUT class=button onclick=checklogin() type=submit value=" 登陆 "> <A
href="http://www.chipgem.com.cn/bbs/register.asp" target=_blank>没有注册</A>
<A href="http://www.chipgem.com.cn/bbs/forget.asp" target=_blank>忘记密码</A>
</TD></FORM>
<FORM name=search action=search.asp?action=search method=post>
<TD align=right>论坛搜索: <INPUT class=input1 size=15 name=keyword> <INPUT class=button type=submit value=立即搜索 name=submit> <INPUT class=button onclick="window.location.href='index.asp'" type=button value=论坛首页 name=main></TD></FORM></TR>
<TR>
<TD colSpan=2>
<HR class=hr SIZE=1>
</TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 width=768 align=center>
<TBODY>
<TR>
<TD width=60><IMG
src="PIC16F877的应用--A/D转换器 - Microchip单片机应用论坛 - 单片机专区 - 单片机论坛 - 上海齐济电子有限公司.files/img_affiche_cn.gif"></TD>
<TD>
<MARQUEE onclick=javascript:stop(this) onmouseout=javascript:start(this)
scrollAmount=2 scrollDelay=10 width="100%" height=10><FONT
color=#ff0000><B>资源共享</B>:
本站在不断更新和添加新的内容,旨在为更多的单片机爱好者提供便利,但是毕竟力量有限,希望各位爱好者能够在下载本站东西的时候,共享一些自己收集的资料,方便更多的单片机爱好者,我们对作出贡献的网友表示万分感谢!希望大家多支持我们的工作。再谢!(2004/8/14)</FONT></MARQUEE></TD>
<TD align=right width=200><SELECT class=input2 style="WIDTH: 190px"
onchange="if(this.options[this.selectedIndex].value!=''){location=this.options[this.selectedIndex].value;}"><OPTION>快速跳转论坛至...</OPTION>
<OPTION value=index.asp> ╋论坛首页</OPTION><OPTION
value=main.asp?parentid=101> ╋单片机专区</OPTION><OPTION
value=list.asp?boardid=1> |—Holtek单片机应用论坛</OPTION><OPTION
value=list.asp?boardid=2
selected> |—Microchip单片机应用论坛</OPTION><OPTION
value=list.asp?boardid=3> |—方案设计技巧及应用实例</OPTION><OPTION
value=list.asp?boardid=7> |—电子图书馆</OPTION><OPTION
value=main.asp?parentid=102> ╋休闲小站</OPTION><OPTION
value=list.asp?boardid=5> |—神侃俱乐部</OPTION><OPTION
value=main.asp?parentid=103> ╋论坛事务</OPTION><OPTION
value=list.asp?boardid=6> |—论坛事务中心</OPTION><OPTION
value=help.asp> ╋论坛帮助</OPTION><OPTION
value=online.asp> ╋当前在线</OPTION></SELECT> </TD></TR>
<TR>
<TD colSpan=3>
<HR class=hr SIZE=1>
</TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width=768 align=center border=0>
<TBODY>
<TR>
<TD>
<TABLE width="100%">
<TBODY>
<TR>
<TD><B><A href="http://www.chipgem.com.cn/bbs/index.asp">单片机论坛</A> -
<A
href="http://www.chipgem.com.cn/bbs/main.asp?parentid=101">单片机专区</A>
- <A
href="http://www.chipgem.com.cn/bbs/list.asp?boardid=2">Microchip单片机应用论坛</A>
- <FONT color=#336699>PIC16F877的应用--A/D转换器</FONT></B></TD>
<TD align=right><INPUT class=button onclick="window.location.href='list.asp?boardid=2&page=1'" type=button value=返回主题列表>
<INPUT class=button onclick="window.location.href='newtopic.asp?boardid=2'" type=button value=发表主题></TD></TR></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR bgColor=#ffffff>
<TD>当前主题: <FONT color=#ff0000><B>PIC16F877的应用--A/D转换器</B></FONT> (
人气:<B>1946</B> 回复:<B>4</B> )</TD>
<TD align=right><A href="javascript:this.location.reload()"><IMG
src="PIC16F877的应用--A/D转换器 - Microchip单片机应用论坛 - 单片机专区 - 单片机论坛 - 上海齐济电子有限公司.files/refresh.gif"
border=0></A> <INPUT class=button onclick="window.location.href='index.asp'" type=button value=返回论坛首页>
<INPUT class=button onclick="window.location.href='newreply.asp?boardid=2&topicid=65'" type=button value=回复主题></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=1 cellPadding=4 width="100%" bgColor=#0088e0
border=0><TBODY>
<TR bgColor=#0088e0>
<TD align=middle width=140><FONT color=#ffffff>主题作者</FONT></TD>
<TD align=middle><FONT color=#ffffff>主题内容</FONT></TD></TR>
<TR bgColor=#ffffff>
<TD vAlign=top align=middle width=140 rowSpan=2><A
href="http://www.chipgem.com.cn/bbs/profile.asp?username=pobby"
target=_blank><B><FONT size=4>pobby</FONT></B></A><BR>
<DIV
align=left> 级别: 管理员<BR> 发表: 232<BR> 回复: 292<BR> 阅读: 325<BR> 积分: 76780<BR> 注册: 2003年5月27日
</DIV></TD>
<TD vAlign=top>
<TABLE cellSpacing=0 cellPadding=4 width="100%" border=0>
<TBODY>
<TR>
<TD><FONT face=黑体
size=4>PIC16F877的应用--A/D转换器</FONT> <FONT
color=#ff0000></FONT><BR>
<P></P>PIC16F877的应用--A/D转换器<BR><BR> PIC16F877片内有8路10位A/D转换器,引脚②~⑤为AN0~AN3、⑦~⑩为AN4~AN7。MPLAB-ICD的实验板上16F877的RA0口接了一只供有电压的10kΩ电位器,在D口(RD0~RD7)接了8只LED,如附图所示。笔者用16F877 A/D转换通道其中一路作A/D转换,以说明A/D转换编写程序的方法和在线调试及编程。<BR> 在附图中,笔者把R6的可变输出(电压模拟量)端接到RA0/AN0作为模拟量输入;用D口(RD0~RD7)的8只LED显示A/D转换的结果(按二进制显示)。<BR> 一、 建立A/D转换源程序的要点 编写10位的一路A/D转换程序看似简单,但对初学者却有一定难度,因为编写A/D转换程序时,要熟练使用PIC16F877内部的多个特殊功能寄存器。附表列出了与A/D转换有关的部分特殊功能寄存器。在A/D转换器中未用到的寄存器位以空白表示。<BR> 1.A/D引脚控制寄存器ADCON1 ADCON1的bit0~bit3(PCFG0~PCFG3)为A/D转换功能选择位,若为1110,则表示AN0(RA0)通道是模拟量输入,其余通道为数字I/O(其他编码功能,请参见书籍介绍)。Bit7(ADFM)为A/D结果格式选择位,1表示结果右移,0表示结果左移。<BR> 2.中断标志寄存器PIR1 PIR1的bit6(ADIF)为A/D中断标志位,该位为1表示模数转换已完成,为0表示转换未完成。<BR> 3.A/D操作控制寄存器ADCON0 ADCON0的bit0(ADON)为A/D转换允许位,该位为1打开A/D转换器,为0关闭A/D转换器;bit2(GO/DONE)为A/D转换状态位,该位为1启动A/D转换,为0表示A/D转换已完成(A/D转换完成后该位自动清零);bit3~bit5为A/D通道选择位,其值对应于通道号,000为0通道;bit6~Bit7(ADCS0、ADCS1)为A/D转换时钟选择,00=fosc/2,01=fosc/8,10=fosc/32,11=fRC(RC振荡器)。为正确进行A/D转换,A/D转换时钟值不宜选得太小。<BR> 4.A/D结果高字节寄存器ADRESH 存放A/D转换结果的高字节。<BR> 编写A/D转换的源程序,还会用到STATUS、OPTION、INTCON……寄存器。<BR> 二、PIC16F877 A/D转换源程序.ASM实例<BR> 笔者编写的A/D转换源程序清单如下:<BR> LIST P=PIC16F877 ;选芯片型号<BR> #INCLUDE P16F877.INC<BR> ORG 0 ;复位矢量<BR> GOTU START<BR> ORG D'20" ;程序起始<BR>START BCF STATUS,6<BR> BSF STATUS,5 ;选BANK1<BR> CLRF TRISD ;设D口为输出<BR> CLRW ;0→W<BR> MOVLW B'10000111' ;TMR0,预分频<BR> MOVWF OPTION_REG ;1:256<BR> CLRW<BR> MOVLW B'00000001'<BR> MOVWF TRISB ;设B0为输入<BR> MOVWF TRISA<BR> MOVLW 0<BR> MOVLW B'00001110' ;A/D结果左移<BR> MOVWF ADCON1 ;VDD为参考电压<BR> BCF STATUS,5 ;复位<BR> ;BANK0<BR> CLRF PORTD ;清D口<BR> MOVLW B'01000001' ;打开A/D选时钟<BR> MOVWF ADCON0 ;fosc/8<BR>MAIN BTFSS INTCON,T0IF ;TMR0溢出?<BR> GOTO MAIN ;等待<BR> BCF INTCON,T0IF ;TMR0溢出<BR> BCF PIR1,ADIF ;清标志位<BR> ;T0IF<BR> BSF ADCON0,GO ;启动A/D变换<BR>WAIT BTFSS PIR1,ADIF ;变换判标志位?<BR> GOTO WAIT ;等待<BR> MOVF ADRESH,W ;A/D转换完成<BR> MOVWF PORTD ;高字节到D口<BR> CLRF PORTD ;0→D口<BR>WAITPWSH BTFSS PORTB,0 ;判0位<BR> GOTO WAITPUSH ;等待<BR> MOVWF PORTD ;高字节送D口<BR> GOTO MAIN <BR> END <BR> 说明:1. 因LED显示仅用了8位(D口上),所以A/D转换的低二位未显示。2. 从源程序中可以看出,A/D转换是通过控制PIC16F877内部特殊功能寄存器来完成的。<BR> 三、PIC01.ASM的在线调试和程序固化<BR> 上述源程序可按照上期本版介绍的方法进行在线调试。调试时可用MPLAB工具栏中的连续功能键操作。若在操作一次后再连续调试时,应改变附图中电位器中心抽头的电压值,方能观察A/D变换的结果。程序调试好后再把目标码.Hex固化到16F877中,即可观察不同的模拟量变换成数字量的结果,并可用三用表实测进行验证。<BR><A
href="PIC16F877的应用--A/D转换器 - Microchip单片机应用论坛 - 单片机专区 - 单片机论坛 - 上海齐济电子有限公司.files/l2.jpg"
target=_blank><IMG alt=::点击图片在新窗口中打开:: hspace=2
src="PIC16F877的应用--A/D转换器 - Microchip单片机应用论坛 - 单片机专区 - 单片机论坛 - 上海齐济电子有限公司.files/l2.jpg"
onload="javascript:if(this.width>screen.width-500)this.style.width=screen.width-500;"
vspace=2 border=0></A> </TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=4 width=400 align=right border=0>
<TBODY>
<TR>
<TD>
<HR color=#c2c2c2 SIZE=1>
¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥<BR>¥ 共享资源,分享乐趣,齐济电子为爱好者服务! ¥<BR>¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥</TD></TR></TBODY></TABLE></TD></TR>
<TR bgColor=#ffffff>
<TD>
<TABLE cellSpacing=0 cellPadding=4 width="100%" border=0>
<TBODY>
<TR>
<TD></TD>
<TD align=right>作者2004-4-3 0:34:46第3次编辑过 发表时间: 2003-12-4
11:52:37</TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
<TABLE><BR>
<TBODY></TBODY></TABLE>
<TABLE width="100%">
<TBODY>
<TR>
<TD>当前主题共有<FONT color=#ff0000><B>4</B></FONT>条回复内容 | <B><A
href="http://www.chipgem.com.cn/bbs/view.asp?boardid=2&topicid=65#bottom">快速回复</A>
<A
href="http://www.chipgem.com.cn/bbs/newreply.asp?boardid=2&topicid=65">发表回复</A>
<A
href="http://www.chipgem.com.cn/bbs/newtopic.asp?boardid=2">发表主题</A>
<A
href="http://www.chipgem.com.cn/bbs/list.asp?boardid=2&page=1">返回主题列表</A></B></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=1 cellPadding=4 width="100%" bgColor=#0088e0
border=0><TBODY>
<TR bgColor=#0088e0>
<TD align=middle width=140><FONT color=#ffffff>回复作者</FONT></TD>
<TD align=middle><FONT color=#ffffff>回复内容</FONT></TD></TR>
<TR bgColor=#ffffff>
<TD vAlign=top align=middle width=140 rowSpan=2><A
href="http://www.chipgem.com.cn/bbs/profile.asp?username=pobby"
target=_blank><FONT size=4><B>pobby</B></FONT></A><BR>
<DIV
align=left> 级别: 管理员<BR> 发表: 232<BR> 回复: 292<BR> 阅读: 325<BR> 积分: 76780<BR> 注册: 2003年5月27日</DIV></TD>
<TD vAlign=top height=60>
<TABLE cellSpacing=0 cellPadding=4 width="100%" border=0>
<TBODY>
<TR>
<TD><BR></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=4 width=400 align=right border=0>
<TBODY>
<TR>
<TD>
<HR color=#c2c2c2 SIZE=1>
¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥<BR>¥ 共享资源,分享乐趣,齐济电子为爱好者服务! ¥<BR>¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥</TD></TR></TBODY></TABLE></TD></TR>
<TR bgColor=#ffffff>
<TD>
<TABLE cellSpacing=0 cellPadding=4 width="100%" border=0>
<TBODY>
<TR>
<TD></TD>
<TD align=right>回复时间: 2003-12-4
11:53:49</TD></TR></TBODY></TABLE></TD></TR>
<TR bgColor=#ffffff>
<TD vAlign=top align=middle width=140 rowSpan=2><A
href="http://www.chipgem.com.cn/bbs/profile.asp?username=lhlhe"
target=_blank><FONT size=4><B>lhlhe</B></FONT></A><BR>
<DIV
align=left> 级别: 普通会员<BR> 发表: 1<BR> 回复: 1<BR> 阅读: 13<BR> 积分: 250<BR> 注册: 2004年11月24日</DIV></TD>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -