用过STC12C5A60S2自带数模AD转换的大侠请进。

我在AD中断里面让他往串口发送ADC_RES,每回都是错的,就算不发送ADC_RES,发送个变量,他发过去的也是错的,我用到了其他定时器的中断,我已经把定时器O中断优先级设为最高,不知道哪还有问题。请高手帮忙,不胜感激,回答有用的定追加。

第1个回答  推荐于2017-09-11
你的设计初终应该是想在AD采样完成数据的时候,自动往串口发送采样值对吧。
除非是在AD采集实时性要求很高很高的情况下,不建议使用过多的中断去处理任务。
如果是我,我的做法应该是,首先让AD一样运行,一采在做采样,不去管AD当前采样有没有完成,都去读取AD里面的缓存(没有采样完成的数据他是不可能放到缓存中的)。
你现在是串口开了中断,所以,直接就在串口中断中,读取AD就可以了。
另外,你的串口发送有问题,可以先不用中断,使用查询的方式启用串口看看,有没有问题。应该不会是中断优先级的问题。

多说一句,单片机程序中,能够少用中断,尽量少用。追问

我觉得你说的很有道理,我的设计也是你这个思路,我确实是让AD一直转换着,然后用了个定时器0每10ms中断,在中断中采集一下ADC_RES放入数组,在主函数中用查询的方式判断数组是否存满,存满后取平均值发送到串口,串口我也没有用中断,用的是查询的方式发数据。

追答

另外,我想问下,STC现在什么价位?

追问

这个便宜,六七块钱,串口我之前调试好了,在主函数和定时器中断中发送字符和字符串都正确,求平均数的模块也正确,我觉得我的AD是在工作,因为它进中断了,可是在中断中处理的怎么都是错的,像往串口发变量,这个很奇怪,每次采集的数据一样是不是跟着点有关系?你加我QQ吧?!我们讨论一下。

本回答被提问者采纳

我用的STC12C5A60S2自带的A\/D转换,想把结果提取出来然后显示到四个八段...
5v单片机是0-5v,必须接到stc单片机的ad输入口,即标有ADC的io口。,8个通道都进行ad转换,并且,显示出来,通过串口发送通道和ad转换值

51单片机程序问题 stc12c5a60s2 的a\/d转换问题..
1.转换的引脚由ADC_CONTG的低3位CHS2、CHS1和CHS0控制,三位二进制能表示0~7八个数,与P1口一一对应。ADC的结构决定了它一次只能转换一个口,但是STC的转换速度达到10万次\/秒,依次转换P1.0和P1.1与同时转换差别不大。设置P1.0时,ch=0x00.设置P1.1时,ch=0x01.2.是按照一个字节读的...

我在写一个stc12c5a60s2的A\/D转换程序,其中高8位结果放在ADC_RES寄存器...
可以这样,首先定义一个16位无符号整型ADC_RESULT 如果AUXR1=0则 ADC_RESULT=ADC_RES;先将结果高字节放入ADC_RESULT=ADC_RESULT<<2;然后左移2位ADC_RESL=ADC_RESL&0x03;确保无用位为0ADC_RESULT=ADC_RESULT | ADC_RESL;最后组合起来称为16位二进制数如果AUXR1=1则 ADC_RESULT=ADC_RES;先将...

大神请进,STC12C5A60S2单片机内部ADC
STC12C5A60S2单片机内部ADC只有一个,虽然外部可以用P1口的8个脚,作8个通道的输入,但在采集数据时,只能开通一个通道,不允许8个通道都开的,所以,会互相影响的。如果是单独使用的话都可以正常工作,就应该是每个都要单独用的。所以,两个通道都用,也要按单独使用那样来转换。就算是8个通道都用...

stc12c5a60s2这款单片机的ad功能,测5v电压的话理论上十位ad可以达到1\/...
你先用float计算,然后最后结果取int型进行四舍五入会好些,不然误差太大,adc

STC12C5A60S2系列的单片机A\/D转换后,如何把自己想要的量用LED显示
AD转换后存在单片机中,肯定是用16进制表示的,而LED显示(是数码管吧),用的段码,根据共阴、共阳是不同的,所以,我想:1、可能是你的数码管是共阴的还是共阳的没看清楚,说不定段码用错了,那就乱码了;2、段码只是针对一位来说的,对于多位的数码管,是要先分离个十百千万...一个个分离...

关于STC12C5A60S2的ADC转换问题
ADC_CONTR、ADC_POWER 、ADC_SPEEDLL 等,是宏定义。你需要在你的.c文件中添加相关的头文件。

关于STC12C5A60S2 AD测量的问题 都快疯了!
分析:单片机P1.0口的高电平是依靠P1 “短路”到地来实现低电平的。结论:首先是R7、R8太大。其次,如果频率高的话,特别是低电平占空小的话,C3就太大也会这样。最后是358的“吸入”电流太小,原因是电路设计不良。

STC12C5A60S2 的AD转化问题。电压偏移。
STC单片机AD转换,检测AD的端口应该设置为模拟量输入(端口为高阻态),从状态数据看显然是设置有问题,如P1.1端口为AD输入端,应该设置 P1ASF = 0000 0010,如 sfr P1ASF = 0x02; \/\/ P1.1端口模拟量输入 可以检查一下程序是否有这一项,可以修改一下试试。

stc12c5a60s2的ad转换器使用问题
你的电路可能有些问题,这是我一个项目的实际AD电路你,参考一下。3接VCC,1接GND,2相当于你的Vin,AD2接到P1口。

相似回答