- 积分
- 526
- 在线时间
- 449 小时
- 最后登录
- 2017-2-12
- 阅读权限
- 50
- 精华
- 0
 
- UID
- 113920
- 帖子
- 576
- 精华
- 0
- 经验
- 526 点
- 金钱
- 526 ¥
- 注册时间
- 2009-6-23
|
无聊画了个电路,是PIC12F675单片机控制M62429数字音量电位器的,并且带有2位数码管音量显示.电路比较简单,洞洞板足够应付
PIC程序还在想着,先扔个图,看看大家有没好想法
整个电路成本加起来就十几元,自制很方便.
PIC12F506编程器在用下面那个电路自制,也是超级简单的.
http://www.dzjs.net/html/dianziDIY/2008/0327/3059.html
初步设想是这样的:
1. 开机延时自动读入上次音量值与音量渐入: 开机未准备好时静音,使用一个简单的延时即可.然后通过读取PIC16F506 EEPROM中的旧音量值,由最低音量开始上升,连续发送多次音量调整信号,实现开机音量逐渐变大.
2. 输入电压过大时自动衰减: 如果某次音量峰值超过一定上限n dB。则将此时音量值衰减n dB,并且保持t秒.t由编程决定.比如可以取0.5s.音量检测输入经过二极管和电阻平滑后进入GP2引脚AD采样.内部比较之后通过调整M62429实现衰减.
3. 按键或者遥控调整音量: 通过不同开关按下时在A/D输入端口GP0产生不同电压,AD转换比较后触发相应的操作.配合片内定时器实现:
* 按下按钮0~100ms当作误操作,无视
* 按下按钮100ms~3s属于短按,音量变化1dB
* 按下按钮3~5s属于中按,音量变化每次改变1dB,每秒连发3次
* 按下按钮>5s属于长按,音量变化每次改变1dB,每秒连发5次
4. 显示当前音量电位器位置: 先从音量值存储点读取当前音量值,转换音量为BCD码,查表得到段码然后串行输出到74164.由于PIC引脚资源紧张,使用小数点引脚作为数码管片选信号,软件协调一下,可行性还要验证.
5. 音量调整后一段时间,将当前音量值写入EEPROM.以备断电后能记住当前音量.
6. 还有关机渐出,使用不同方法衰减过高输入等更多想法...期待大家的意见..
存在问题:
1. 不知道片内4MHz时钟能不能产生足够长延时
2. 由于PIC引脚资源紧张,74164和M62429共用时钟了,不知道会不会出错.
3. 按钮用A/D方法不稳定,会因为按键不良产生误操作.可能要接续一个CD4066之类的模拟开关.
数据手册:
74LS164.rar
(91.97 KB, 下载次数: 609)
|
|