我的adc0816怎么采不进数据呢?大虾们帮看看好吗?

[复制链接]
2242|0
 楼主| ccjchen 发表于 2007-4-18 10:12 | 显示全部楼层 |阅读模式
ADC, TE, COM, AI, ni
#define&nbsp;_TEST_C_<br />#include&nbsp;&quot;reg52.h&quot;<br />#include&nbsp;&quot;stdlib.h&quot;<br />#include&nbsp;&quot;absacc.h&quot;<br />#include&nbsp;&quot;intrins.h&quot;<br />#include&nbsp;&quot;test.h&quot;<br />#include&nbsp;&quot;math.h&quot;<br />#define&nbsp;uchar&nbsp;unsigned&nbsp;char<br />#define&nbsp;uint&nbsp;&nbsp;unsigned&nbsp;int<br />#define&nbsp;COM8251&nbsp;XBYTE[0x8601]<br />#define&nbsp;DAT8251&nbsp;XBYTE[0x8600]<br /><br /><br />#define&nbsp;IN0&nbsp;&nbsp;&nbsp;XBYTE[0x8000]<br />/*在使用外部数据区的信息之前,必须用指令将他们移动到内部数据区中;当数据处理完之后,将结果返回到片外数据存储区*/<br />uchar&nbsp;&nbsp;data&nbsp;data_temp[6]={0x52,0x53,0x54,0x55,0x00,0x58};<br />uchar&nbsp;&nbsp;&nbsp;temp[6]={52,0x53,0x54,0x55,0x00,0x58};<br />uchar&nbsp;k;&nbsp;&nbsp;<br />&nbsp;uchar&nbsp;data&nbsp;a;<br />static&nbsp;uchar&nbsp;idata&nbsp;ad[16];<br /><br />void&nbsp;&nbsp;initmcu(void);<br />void&nbsp;&nbsp;wait(uchar&nbsp;p,q);<br />void&nbsp;&nbsp;init8251();<br /><br />void&nbsp;&nbsp;ad0816(uchar&nbsp;idata&nbsp;*x);<br /><br />void&nbsp;Trans8251(void)&nbsp;&nbsp;interrupt&nbsp;1&nbsp;using&nbsp;1<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TH0&nbsp;&nbsp;=&nbsp;0XFF;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TL0&nbsp;&nbsp;=&nbsp;0XFF;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ad0816(ad);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(a=0x5A;a&gt0x30;a--)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while((COM8251&0x01)==0);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DAT8251=ad[1];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;for(k=0;k&lt6;k++)//注意在串口调试助手中一定要赋值,否则这里的程序将不会运行。<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while((COM8251&0x02)==0);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;temp[k]=DAT8251;//串口调试助手不能写成0x54样式,否则收不到&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />}<br />void&nbsp;main(void)&nbsp;<br />{&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;EA&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;initmcu();<br />&nbsp;&nbsp;&nbsp;&nbsp;EA&nbsp;=&nbsp;1;<br />&nbsp;&nbsp;&nbsp;&nbsp;init8251();<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;//ad0816(ad);<br />&nbsp;&nbsp;<br />}<br /><br />void&nbsp;&nbsp;init8251()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;//wait(11,82);//8251工作速度慢,每送一个控制字,等待一会儿延时2ms<br />&nbsp;&nbsp;&nbsp;&nbsp;COM8251&nbsp;=&nbsp;0x00;<br />&nbsp;&nbsp;&nbsp;&nbsp;DAT8251&nbsp;=&nbsp;0x00;<br />&nbsp;&nbsp;&nbsp;&nbsp;DAT8251&nbsp;=&nbsp;0x00;<br />&nbsp;&nbsp;&nbsp;&nbsp;COM8251&nbsp;=&nbsp;0x40;//以上为8251复位部分<br />&nbsp;&nbsp;&nbsp;&nbsp;wait(11,82);<br />&nbsp;&nbsp;&nbsp;&nbsp;COM8251&nbsp;=&nbsp;0x4e;//9600baud,1停止位,无校验,8位数据,X16<br />&nbsp;&nbsp;&nbsp;&nbsp;wait(11,82);<br />&nbsp;&nbsp;&nbsp;&nbsp;COM8251&nbsp;=&nbsp;0x35;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;wait(11,82);<br />}<br /><br /><br />void&nbsp;&nbsp;initmcu(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TMOD&nbsp;=&nbsp;0x06;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//9600波特11.0592MHz,方式2<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TL0&nbsp;&nbsp;=&nbsp;0XFF;&nbsp;&nbsp;&nbsp;&nbsp;TH0&nbsp;=&nbsp;0XFF;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IP&nbsp;&nbsp;=&nbsp;0x02;&nbsp;ET0&nbsp;=&nbsp;1;TR0&nbsp;=&nbsp;1;<br />}<br /><br /><br /><br />void&nbsp;&nbsp;ad0816(uchar&nbsp;idata&nbsp;*x)<br />{<br />&nbsp;&nbsp;&nbsp;uchar&nbsp;i;<br />&nbsp;&nbsp;&nbsp;uchar&nbsp;xdata&nbsp;*ad_adr;<br />&nbsp;&nbsp;&nbsp;ad_adr=&IN0;<br />&nbsp;&nbsp;&nbsp;for(i=0;i&lt16;i++)<br />&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*ad_adr=0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//启动转换从0通道开始<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_nop_();&nbsp;_nop_();&nbsp;_nop_();&nbsp;_nop_();&nbsp;_nop_();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_nop_();&nbsp;_nop_();&nbsp;_nop_();&nbsp;_nop_();&nbsp;_nop_();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x=*ad_adr;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ad_adr++;<br />&nbsp;&nbsp;&nbsp;}<br />}<br /><br />void&nbsp;&nbsp;wait(uchar&nbsp;p,q)<br />{<br />&nbsp;&nbsp;&nbsp;uchar&nbsp;&nbsp;i,j;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//(2*j+3)*i+4<br />&nbsp;&nbsp;&nbsp;for&nbsp;(i=p;i&gt0;i--)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(j=q;j&gt0;j--);<br />}
您需要登录后才可以回帖 登录 | 注册

本版积分规则

175

主题

446

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部