求解STC 12C5A60S2的编程问题,本人初次涉及单片机,对编程不太了解,编了个AD转化的小程序,求高手看下!

求解STC 12C5A60S2的编程问题,本人初次涉及单片机,对编程不太了解,编了个AD转化的小程序,求高手看下!,第1张

我最近也在弄STC的单片机,看了下代码,觉得以下这段似乎有点问题

for(i=0;i<10;i++)

{

tp=0;

ADC_RES=0;

ADC_RESL=0; //低两位清零

ADC_CONTR|=0x08; //启动AD转换

while(!tp) //判断AD转换是否完成

{

tp=0x10;

tp&=ADC_CONTR;

}

ADC_CONTR&=0xe7;

ad_average_result=ADC_RES;

q=q+ad_average_result;

}

你的意图是想做10次转换,然后取平均值作为最终结果吧, while(!tp) 就是说转换完成后将转换完成标志位清零接着再取出转换后的数,可是转换未完成的话就跳出while直接执行后面的语句了吧,不过这个就是有问题应该也不会导致完全没结果输出,也就是结果有问题的话灯应该也会亮的,还有是否确定模拟信号输入口是否和寄存器设置所选的一致,P1ASF这个寄存器我也找不到说明

一般大企业都会用域环境,目的是统一管理计算机、账号。

域环境能大大减少网络管理者的工作强度,通过在OU上设置策略可以达到批量设置属性、权限等的目的。

微软的建议是多余10太PC就考虑域环境。

域的搭建很简单,2003系统直接运行dcpromo就能启动向导。

我觉得这个要靠兴趣,有兴趣学什么都简单。

A是模拟信号的意思,D是数字信号的意思,AD转换就是模数转换,顾名思义,就是把模拟信号转换成数字信号,例如把电压值转化为数字信号。

2,为什么要AD转换?

单片机(以及其他处理器)只能处理数字信号,当单片机想要获取电路上某一点的电压值时,就得用到AD转换了,如果你直接把单片机的引脚接到电路这个点上,单片机只知道这个点的电压是低电平还是高电平,又怎么能得到他的电压值呢?例如数字式的万用表,它测量电压时,先有一个AD转换电路,把电压值转换成一个数值,然后把这个值送个单片机(当然万用表里的用的处理芯片不是单片机),单片机经过计算处理后,再把这电压值显示到显示到屏幕上。

不过现在有一些比较强的单片机,其内部已经集成了AD转换器,不需要你再外接AD转换芯片。

3,8位16位的ad转换芯片是什么意思?

8位,16位就代表了AD转换芯片的转换分辨率,数字越大,分辨率越高,同时也反映了它的精度,数字越大,精度相对也越高。8位算是最低了,有些单片机里集成的AD转换器一般是10位的。12位和16位的芯片价格就比较贵了。

4,分辨率?

举个简单的例子,8位芯片只能转换最小到001V的电压,而12位的芯片却能转换最小到0001V的电压,如果一个电压为3359V,8位芯片转出来后的数值是335V,12位芯片转换出来后是3359V,精度比8位就高一个档次了。(注:这里数值不是正确的数值,举例用,切勿实际使用)

5,采样?

采样是AD转换的速度性能指标,通俗的说就是每秒里能采样多少次,采样次数越高芯片性能越好。如果对采样不理解,也可以用另一种方式理解,就是一个AD转换芯把电压值转换成数字值这个过程所需要的时间,时间越短越好。

6,精度?

精度是AD芯片的一个重要参数,表示采集到的数据和真实值之间的相差的程度。例如单片机转换出来的结果是03V,而实际可能是031V,这样就相差了001V。这种误差是不可避免无法消除的。这和在第3点中提到的位数有关,位数越高,这样的误差越小。

7,这些知识点在“数字电路基础”一书中有详细解释,说明你数字电路没学好,自己好好加油了。

以上就是关于求解STC 12C5A60S2的编程问题,本人初次涉及单片机,对编程不太了解,编了个AD转化的小程序,求高手看下!全部的内容,包括:求解STC 12C5A60S2的编程问题,本人初次涉及单片机,对编程不太了解,编了个AD转化的小程序,求高手看下!、ad域管理干嘛用的,好学吗,得学多少时间、单片机ad与pwm问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10628752.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-10
下一篇 2023-05-10

发表评论

登录后才能评论

评论列表(0条)

保存