5iMX.com 我爱模型 玩家论坛 ——专业遥控模型和无人机玩家论坛(玩模型就上我爱模型,创始于2003年)

标题: 用 STC89C52 的IO口测电位器阻值的方法,打算用来造枪控。 [打印本页]

作者: skypup    时间: 2013-10-7 19:02
标题: 用 STC89C52 的IO口测电位器阻值的方法,打算用来造枪控。
一直想用 1.5元的 STC89C52 与 4.8元的超再生无线模块制作遥控器,但是 STC89C52 没有 AD 模块,所以一直受阻。
今天找到了一种变相解决的方法。

例如,一个50K的电位器,可以串一个10K的电阻连到 P0 的端口,同时这个端口通过 0.1uF 的电容连接到地。

通常情况下 P0 = 0, 让电容把电放干净。
需要读取电阻值时,P0 = 1,并用循环(用中断与定时器更好)近似读取 P0 = 0 的时间:nCount = 0; while (P0 == 0) nCount++;

根据 nCount 的值,估算出电阻。

(, 下载次数: 5)


作者: 蓝海de梦    时间: 2013-10-7 20:06
上多大的晶振,STC12C5A60S2带AD转换的啊

作者: 野草    时间: 2013-10-7 20:24
这个精度应该不敢用吧,而且自带AD的片子一大堆干嘛非用C52呢,而且就算外加一个AD也才几毛钱 ,干嘛费这劲呀。。。。。

作者: 阿翠    时间: 2013-10-7 20:54
路过

作者: 东方弥勒佛    时间: 2013-10-7 21:02
都是高手啊

作者: 白小淘    时间: 2013-10-7 21:14
你这个太慢了吧,一秒钟能更新几次?

作者: 白色de小牙刷    时间: 2013-10-7 21:40
3楼正解。

作者: skypup    时间: 2013-10-7 22:22
本帖最后由 skypup 于 2013-10-7 22:24 编辑

用的是 16M 晶振, 纯属个人喜好。我的PIC与Arduino都是用的16M晶振。

充电时间 400us - 2700us, 车模用的枪控只需要2个电位器,在2 * 2700us = 5.4ms之内可以完成对2个电位器的取值,每个运算周期有20ms 那么长,足够了。



作者: skypup    时间: 2013-10-24 22:59
(, 下载次数: 27)

增加了 EEPROM 读写功能。

// 函数定义
#define EEPROMRead(tnAddress)           IapReadByte(tnAddress)
#define EEPROMWrite(tnAddress, tcValue) IapProgramByte(tnAddress, tcValue)

例程:
EEPROMWrite(nTemp, 'A');
cTemp = EEPROMRead(nTemp);
SendString("1 cTemp = ");
Send(cTemp);




作者: sabaka    时间: 2013-10-25 15:29
stm8s系列最便宜1块2的003都带ad的,体积又小性能好,接口全,干嘛还要用51呢

作者: 40560335    时间: 2013-11-14 22:00
虽然不玩51,但是也听说过,据说有种增强型的51,无所不能啊,怎么会连最基本的ADC都不支持?

作者: 无刷电直    时间: 2013-11-15 10:21
楼主这招很高啊,人家如果想抄,一时半会还领会不到楼主的意图啊

作者: yelong98    时间: 2013-11-15 13:51
除非像十年前一样硬件达不到需求,或者为研究而做尝试,否则我觉得没啥意义,话说的比较直白,但目的不是打击楼主,台系的日系的大 陆系的带ad的单片机多的是,即便是要求1.5元以下的也多得是选择





欢迎光临 5iMX.com 我爱模型 玩家论坛 ——专业遥控模型和无人机玩家论坛(玩模型就上我爱模型,创始于2003年) (http://5imx.com/) Powered by Discuz! X3.3