⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 c8051单片机技术群.htm

📁 C8051F120 _AD开发过程中的一些代码和文档
💻 HTM
📖 第 1 页 / 共 2 页
字号:
<P class=postText>void Interrupts_Init()<BR>{<BR>&nbsp; EIE2 = 0x02;&nbsp;&nbsp; //允许ADC0中断&nbsp;&nbsp; <BR>}</P>
<P class=postText>void Init_Device(void)<BR>{<BR>&nbsp;&nbsp;&nbsp; Timer_Init();<BR>&nbsp;&nbsp;&nbsp; UART_Init();<BR>&nbsp;&nbsp;&nbsp; ADC_Init();<BR>&nbsp;&nbsp;&nbsp; Voltage_Reference_Init();&nbsp;&nbsp; //初始化主程序<BR>&nbsp;&nbsp;&nbsp; Port_IO_Init();<BR>&nbsp;&nbsp;&nbsp; Oscillator_Init();<BR>&nbsp;&nbsp;&nbsp; Interrupts_Init();<BR>}<BR>//end init//</P>
<P class=postText>/****************************************************************************</P>
<P class=postText>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 主函数定义开始</P>
<P class=postText>*****************************************************************************/</P>
<P class=postText>void main(void)<BR>{<BR>&nbsp;&nbsp;&nbsp; WDTCN=0xde;<BR>&nbsp;&nbsp;&nbsp; WDTCN=0xad;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //关看门狗<BR>&nbsp;&nbsp;&nbsp; Init_Device();<BR>&nbsp;&nbsp;&nbsp; lcd_init();<BR>&nbsp;&nbsp;&nbsp; AD0EN=1;<BR>&nbsp;&nbsp;&nbsp; delay_ms(5);<BR>&nbsp;&nbsp;&nbsp; EA=1;<BR>&nbsp;&nbsp;&nbsp; TI0=1;<BR>&nbsp;&nbsp;&nbsp; while(1)<BR>&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(m==1)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m=0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TMR3CN&amp;=0xFB;&nbsp; //关定时器3<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Sjcl();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //处理数据<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TMR3CN|=0X04;&nbsp;&nbsp; //开定时器3<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp; }<BR>}<BR>/****************************************************************************<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ADC0中断处理 </P>
<P class=postText>****************************************************************************/</P>
<P class=postText>void ADC0_ISR(void) interrupt 15&nbsp; <BR>{<BR>&nbsp;&nbsp;&nbsp; ADC0CN&amp;=0xdf; <BR>&nbsp;&nbsp;&nbsp; if(ADC0_data_n%2==0)<BR>&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ADC0_data1[ADC0_data_n1] = ADC0;<BR>&nbsp;&nbsp;ADC0_data_n1++;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AMX0SL = 0x01;<BR>&nbsp;&nbsp;&nbsp;&nbsp; }</P>
<P class=postText>&nbsp;&nbsp;&nbsp; else<BR>&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp; ADC0_data2[ADC0_data_n2]=ADC0;<BR>&nbsp;&nbsp;ADC0_data_n2++;<BR>&nbsp;&nbsp;AMX0SL=0x00;<BR>&nbsp;&nbsp;&nbsp;&nbsp; }</P>
<P class=postText>&nbsp;&nbsp;&nbsp; ADC0_data_n++;<BR>&nbsp;&nbsp;&nbsp; if(ADC0_data_n==1600)//两路采集完800点<BR>&nbsp;&nbsp;&nbsp; { <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m=1;<BR>&nbsp;&nbsp;&nbsp; }<BR>}</P>
<P class=postText>/****************************************************************************<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 数据采集完处理函数</P>
<P class=postText>****************************************************************************/</P>
<P class=postText>void Sjcl(void)<BR>{&nbsp; <BR>&nbsp;&nbsp; /*unsigned int j;*/<BR>&nbsp;&nbsp; /*unsigned char xdata lcd_senddata[4];//四位LCD显示数据*/<BR>&nbsp;&nbsp; unsigned int i;<BR>&nbsp;&nbsp; unsigned long data ADC0_dataadd=0;//采集完毕的累加计算值<BR>&nbsp;&nbsp; unsigned long data a=0;<BR>&nbsp;&nbsp; unsigned long data b=0;<BR>&nbsp;&nbsp; float data c;<BR>&nbsp;&nbsp; float data d;<BR>&nbsp;&nbsp; float data P_dataadd=0;<BR>&nbsp;&nbsp; float data U=0;<BR>&nbsp;&nbsp; float data I=0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp; float data S=0;<BR>&nbsp;&nbsp; float data P=0;<BR>&nbsp;&nbsp; float data Q=0;<BR>&nbsp;&nbsp; float data COSg=0;<BR>&nbsp;&nbsp; //通道一数据处理&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp; for(i=0;i&lt;=ADC0_data_n1;i++)<BR>&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a=ADC0_data1[i];<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ADC0_dataadd=ADC0_dataadd+a*a;</P>
<P class=postText>&nbsp;&nbsp; }</P>
<P class=postText>&nbsp;&nbsp; U=ADC0_dataadd/ADC0_data_n1;//取平均值 <BR>&nbsp;&nbsp; U=sqrt(U);//取平方根值<BR>&nbsp;&nbsp; U=(U*2.451)/0x0fff;//计算实际电压值<BR>&nbsp;&nbsp; <BR>&nbsp;&nbsp; //通道二数据处理<BR>&nbsp;&nbsp;&nbsp; ADC0_dataadd=0;<BR>&nbsp;&nbsp;&nbsp; for(i=0;i&lt;=ADC0_data_n2;i++)<BR>&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a=ADC0_data2[i];<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ADC0_dataadd=ADC0_dataadd+a*a;</P>
<DIV class=postText>&nbsp;&nbsp; }<BR>&nbsp;&nbsp; I=ADC0_dataadd/ADC0_data_n2;//取平均值 <BR>&nbsp;&nbsp; I=sqrt(I);//取平方根值<BR>&nbsp;&nbsp; I=(I*2.451)/0x0fff;//计算实际电压2值<BR>&nbsp;&nbsp; S=U*I;<BR>&nbsp;&nbsp; for(i=0;i&lt;=ADC0_data_n1;i++) //计算P值<BR>&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp; c=((float)ADC0_data1[i]*2.451)/0x0fff;<BR>&nbsp;&nbsp;&nbsp;&nbsp; d=((float)ADC0_data1[i]*2.451)/0x0fff;<BR>&nbsp;&nbsp;&nbsp;&nbsp; P_dataadd=P_dataadd+c*d;<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp; P=P_dataadd/ADC0_data_n1;//取平均值 <BR>&nbsp;&nbsp; Q=sqrt(S*S-P*P);//计算Q值<BR>&nbsp;&nbsp; COSg=P/S;//计算cosg值<BR>&nbsp;&nbsp; printf("************************************\n");<BR>&nbsp;&nbsp; delay_ms(10);<BR>&nbsp;&nbsp; printf("U=%.3fv&nbsp;&nbsp; I=%.3fv\n",U,I); <BR>&nbsp;&nbsp; delay_ms(10);<BR>&nbsp;&nbsp; printf("S=%.3fw&nbsp;&nbsp; P=%.3fw&nbsp;&nbsp; Q=%.3fw\n",S,P,Q);<BR>&nbsp;&nbsp; delay_ms(10);<BR>&nbsp;&nbsp; printf("COSg=%.3f\n",COSg); <BR>&nbsp;&nbsp; delay_ms(10);<BR>&nbsp;&nbsp; ADC0_data_n=0;<BR>&nbsp;&nbsp; ADC0_data_n1=0;<BR>&nbsp;&nbsp; ADC0_data_n2=0;<BR>}</DIV>
<DIV class=postText><A href="http://www.mcublog.com/blog/tb.asp?id=16684">http://www.mcublog.com/blog/tb.asp?id=16684</A></DIV></DIV>
		</div>
		<div class="more"></div>
	</div>
</div>

<div id="oblog_ad_team_post_1"></div>

			
<div id="comment_list"></div>
<div id=team_post_pages></div><div id="form_comment"><a name="add_comment"></a><form action='group.asp?cmd=save&gid=1&pid=45&modify=' method='post' name='commentform' id='commentform'>
<div id="ad_teamcomment"><script src='ad/ad_teamcommentjs.htm'></script></div><ul><p>游客 , 欢迎您参与圈子讨论,在此处发布的内容将不显示在您的博客中</p></ul><ul>用户名:<input name='UserName' type='text' id='UserName' size='15' maxlength='20' value='' /></ul>
<ul>密&nbsp;&nbsp;&nbsp;&nbsp;码:<input name='Password' type='password' id='Password' size='15' maxlength='20' value='' /> </ul>
<ul>
<div id="oblog_edit"><img src="images/loading.gif"></div> 
</ul>
<ul><span id="ob_code" style="display:none">验证码:<input name="CodeStr" type="text" size="6" maxlength="4" /> <img id="ob_codeimg" src="/blog/inc/code.asp?s=944131" style="cursor:hand;border:1px solid #ccc;vertical-align:top;" onclick="this.src=this.src+'&t='+ Math.random();"   alt="看不清?点一下" /><input type="hidden" name="ob_codename" value="944131" /> 
</span><input type='submit' value=' 提交 '></ul>
</form></div>
<script>function addcode(){return true;}</script><script src="commentedit.asp"></script>
		</div>
		<!--=c_content=end=-->
	</div>
	<!--=c_body=end=-->
	<div class="both"></div>
</div>
<!--=c_main=end=-->
<!--=footer=start=-->
<div id="footer">
<TABLE cellSpacing=1 width=1000 align=center border=0>
<TBODY>
<TR>
<TD>
<DIV align=center twffan="done">关于本站 | 版权声明 | 特别鸣谢 | <A href="ad_contact.asp" target=_blank>联系我们</A> | <A href="http://guestbook.activepower.net/script/user/list.asp?userid=32665" target=_blank>友情链接</A> | 网站导航 | <A href="http://guestbook.activepower.net/script/user/list.asp?userid=32665" target=_blank>项目合作</A> | <A href="ad_contact.asp" target=_blank>广告服务</A> | <A href="user_reg.asp" target=_blank>用户注册</A></DIV></TD></TR>
<TR>
<TD>
<DIV align=center twffan="done">Copyright @ 2004-2008 <A href="admin/admin_index.asp" target=_blank>MCUBLOG.com</A> All Rights Reserved </DIV></TD></TR>
<TR>
<TD>
<DIV align=center twffan="done"><A href="index.asp" target=_blank>MCUBLOG.com</A> 版权所有 严禁以任何形式复制、抄袭</DIV></TD></TR>
<TR>
<TD>
<DIV align=center twffan="done"></DIV></TD></TR>
<TR>
<TD></TD></TR>
<TR>
<TD>
<DIV align=center twffan="done">网站客服: <A href="http://wpa.qq.com/msgrd?V=1&Uin=16408297&Site=www.mcublog.com&Menu=yes" target=blank><IMG alt=点击立刻在线交流 src="http://wpa.qq.com/pa?p=1:16408297:1" border=0 twffan="done"></A> <FONT color=#ff0000>(16408297)</FONT> &nbsp;业务联系/技术支持:<A href="http://wpa.qq.com/msgrd?V=1&Uin=31597130&Site=www.mcublog.com&Menu=yes" target=blank><IMG alt=点击立刻在线交流 src="http://wpa.qq.com/pa?p=1:31597130:1" border=0 twffan="done"></A> <FONT color=#ff0000>(31597130)</FONT> <A href="http://wpa.qq.com/msgrd?V=1&Uin=18774170&Site=www.mcublog.com&Menu=yes" target=blank><IMG alt=点击立刻在线交流 src="http://wpa.qq.com/pa?p=1:18774170:1" border=0 twffan="done"></A> <FONT color=#ff0000>(18774170)</FONT></DIV></TD></TR>
<TR>
<TD>
<DIV align=center twffan="done"><A href="http://www.miibeian.gov.cn/" target=_blank>沪ICP备05004438号</A>
<SCRIPT language=JavaScript> 
    var __cc_uid="mcublog"; 
</SCRIPT>

<SCRIPT language=JavaScript src="http://www.6come.com/count/count.js"> 
</SCRIPT>

<SCRIPT language=javascript src="http://count20.51yes.com/click.aspx?id=202941126&logo=12"></SCRIPT>
 </DIV></TD></TR>
<TR></TR>
<TR>
<TD>
<DIV align=center twffan="done</DIV></TD></TR></TBODY></TABLE>
"><script language="javascript" type="text/javascript" src="http://js.users.51.la/732163.js"></script>
<noscript><a href="http://www.51.la/?732163" target="_blank"><img alt="我要啦免费统计" src="http://img.users.51.la/732163.asp" style="border:none" /></a></noscript><div id="ad_teambot"><script src='ad/ad_teambotjs.htm'></script></div>
</div>
<!--=footer=end=-->
</div>
<!--=main=end=-->
</body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -