0

主题

0

好友

526

积分

职业侠客 当前离线

Rank: 5Rank: 5

UID
113920
帖子
576
精华
0
经验
526 点
金钱
526 ¥
注册时间
2009-6-23
发表于 2010-1-11 02:38 | 显示全部楼层
无聊画了个电路,是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之类的模拟开关.

图010.JPG


数据手册:
74LS164.rar (91.97 KB, 下载次数: 609)

0

主题

0

好友

526

积分

职业侠客 当前离线

Rank: 5Rank: 5

UID
113920
帖子
576
精华
0
经验
526 点
金钱
526 ¥
注册时间
2009-6-23
 楼主| 发表于 2010-1-11 03:15 | 显示全部楼层
深夜自己顶一下

3

主题

1

好友

177

积分

论坛游民 当前离线

Rank: 3Rank: 3

UID
2701
帖子
251
精华
0
经验
177 点
金钱
198 ¥
注册时间
2005-1-13
发表于 2010-1-11 05:08 | 显示全部楼层
不错......

11

主题

2

好友

2272

积分

罗宾汉 当前离线

Rank: 7Rank: 7Rank: 7

UID
40180
帖子
5097
精华
0
经验
2272 点
金钱
2223 ¥
注册时间
2008-4-12
发表于 2010-1-11 08:20 | 显示全部楼层
这个我支持,我想搞好久…可就难倒在单片机那关。给个小意见,开机延时,还在静音状态时,搞个指示灯闪烁的。到正常工作了,指示灯常亮。
头像被屏蔽

40

主题

0

好友

1474

积分

禁止发言 当前离线

UID
3028
帖子
1367
精华
0
经验
1474 点
金钱
1269 ¥
注册时间
2005-2-15
发表于 2010-1-11 09:26 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

20

主题

0

好友

1803

积分

侠之大者 当前离线

Rank: 6Rank: 6

UID
114704
帖子
4545
精华
2
经验
1803 点
金钱
1544 ¥
注册时间
2009-6-28
发表于 2010-1-11 09:36 | 显示全部楼层
第三条不太支持,容易误动作,如果用红外遥控的话,Avr为例子。有两种方法(由于接收头是0/5v跳变类型的),可以读外部中断,也可以直接接在计时器上计时,以示区别

2

主题

1

好友

211

积分

业余侠客 当前离线

发哥

Rank: 4

UID
38737
帖子
322
精华
0
经验
211 点
金钱
211 ¥
注册时间
2008-3-28
发表于 2010-1-11 09:43 | 显示全部楼层
我的M62429遥控音量+VFD屏显示已经在听了
头像被屏蔽

40

主题

0

好友

1474

积分

禁止发言 当前离线

UID
3028
帖子
1367
精华
0
经验
1474 点
金钱
1269 ¥
注册时间
2005-2-15
发表于 2010-1-11 09:52 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

20

主题

0

好友

1803

积分

侠之大者 当前离线

Rank: 6Rank: 6

UID
114704
帖子
4545
精华
2
经验
1803 点
金钱
1544 ¥
注册时间
2009-6-28
发表于 2010-1-11 09:58 | 显示全部楼层
ADC KEY处理好的话,其实不会误动的。
zhonggx 发表于 2010-1-11 09:52

请教一下,按以上思路,同时按下两个键,会有什么样的后果

22

主题

1

好友

583

积分

职业侠客 当前离线

Rank: 5Rank: 5

UID
35285
帖子
2400
精华
0
经验
583 点
金钱
578 ¥
注册时间
2008-2-8
发表于 2010-1-11 10:47 | 显示全部楼层
学习一下
头像被屏蔽

40

主题

0

好友

1474

积分

禁止发言 当前离线

UID
3028
帖子
1367
精华
0
经验
1474 点
金钱
1269 ¥
注册时间
2005-2-15
发表于 2010-1-11 12:35 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

0

主题

0

好友

526

积分

职业侠客 当前离线

Rank: 5Rank: 5

UID
113920
帖子
576
精华
0
经验
526 点
金钱
526 ¥
注册时间
2009-6-23
 楼主| 发表于 2010-1-11 12:38 | 显示全部楼层
9# fedora10

嗯嗯!这也是一个问题,可以用4017扫描,在不同位置识别,不过貌似AD转换来的简单,这个电路按双键电平离开可识别范围当作不动作就行

0

主题

0

好友

526

积分

职业侠客 当前离线

Rank: 5Rank: 5

UID
113920
帖子
576
精华
0
经验
526 点
金钱
526 ¥
注册时间
2009-6-23
 楼主| 发表于 2010-1-11 12:44 | 显示全部楼层
5# zhonggx

看了一下...那个MCU很多脚...哈哈..有个小遗憾就是元件标号看不清...

0

主题

0

好友

526

积分

职业侠客 当前离线

Rank: 5Rank: 5

UID
113920
帖子
576
精华
0
经验
526 点
金钱
526 ¥
注册时间
2009-6-23
 楼主| 发表于 2010-1-11 12:48 | 显示全部楼层
4# 无冬之夜


哈哈...可以考虑在数码管的小数点位引出,反正不用这一个位...而且开机时候数码管也不用...用它引出到小灯...

开机做大延时闪动,平时小数点位由于做片选信号,电压改变很快,视为常亮.

20

主题

0

好友

1803

积分

侠之大者 当前离线

Rank: 6Rank: 6

UID
114704
帖子
4545
精华
2
经验
1803 点
金钱
1544 ¥
注册时间
2009-6-28
发表于 2010-1-11 13:07 | 显示全部楼层
9# fedora10

你要处理组合键?就几个键的话,原则上也可以,但电路要改一下……但楼主没有说要组合键好不好。
zhonggx 发表于 2010-1-11 12:35

感谢你的指导,希望与你继续探讨,我本身是做传感器的,如需要红外的控制代码,可以交流下

0

主题

0

好友

208

积分

业余侠客 当前离线

Rank: 4

UID
163076
帖子
625
精华
0
经验
208 点
金钱
208 ¥
注册时间
2010-1-10
发表于 2010-1-11 13:10 | 显示全部楼层
呵呵  ~~苦在编不来程!!也想试一下!!!

0

主题

1

好友

293

积分

业余侠客 当前离线

Rank: 4

UID
41952
帖子
413
精华
0
经验
293 点
金钱
293 ¥
注册时间
2008-4-30
发表于 2010-1-11 13:15 | 显示全部楼层
bucuo

2

主题

0

好友

1670

积分

侠之大者 当前离线

火星叔叔

Rank: 6Rank: 6

UID
88875
帖子
2223
精华
1
经验
1670 点
金钱
1630 ¥
注册时间
2009-3-17
发表于 2010-1-11 13:16 | 显示全部楼层
红外的话不能采用这种判别长度的方法来处理键值的。
头像被屏蔽

12

主题

1

好友

1536

积分

禁止发言 当前离线

我没病-没发烧

UID
106574
帖子
2437
精华
0
经验
1536 点
金钱
1511 ¥
注册时间
2009-5-24
发表于 2010-1-11 16:04 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

388

主题

1

好友

2052

积分

罗宾汉 当前离线

Rank: 7Rank: 7Rank: 7

UID
2073
帖子
2822
精华
2
经验
2052 点
金钱
1350 ¥
注册时间
2004-11-7

社区贡献 论坛版主 DIY大赛获奖 DIY大赛冠军

发表于 2010-1-11 16:12 | 显示全部楼层
不懂单片机。若楼主搞套件,我要一套两声道一套7.1
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Powered by Discuz! X3.4

© 2001-2012 Comsenz Inc.

返回顶部