打算设计一台单片机控制的红外线遥控前级
设计构想如下:
直流化的设计,完全没有交藕电容,即使音源带有数十毫伏的直流也能保证输出端直流电压接近零。
模拟开关芯片选择输入信号,最多八组二声道音源。
平衡或非平衡输入缓冲级。
音量控制采用12位元带反相功能的四象限乘法(four quadrant multiplication) 数字/模拟转换器 DAC。
可以用遥控以数码方式把信号反相来纠正一些错误的录音。
对不同平均幅度的音源进行数码自动音量调整(ALC),因为俺受够了不同电视节目音量忽大忽小的折腾,当然此功能在不需要时可以关闭。
开机延时和音源信号消失超于设定时间有自动关机功能(包括外接机器如功放,CD机,DVD 等)。
七画LED屏显示音源选择和音量位置,不需要时可以自动把扫描关闭以降低数码噪音。
有自学能力的红外线接收器,方便不同编码的各类型不同牌子的遥控器使用。
PWM 测试信号发生器,方便测试和观察放大器的输出波形。
使用ZILOG Encore!XP Z8F 单片机控制。
希望有兴趣跟帖的朋友可以从整个制作过程中学到一些新的知识,如
1. 模拟开关芯片的应用
2. 乘法数字/模拟转换器当音量调节使用(不是一般常用的数字电位器芯片如PGA2310, CS3310 等)
3. 数码自动音量调整
4. 信号消失自动关机功能
5. 自学功能的红外线接收
6. 用程序和PWM 当函数发生器
7. 单片机在音响的应用和如何编写单片机语言等等。
在未来几个月之内俺会依据进度把各部分已完成的程序发上来与各位共享。
图看不全的话清按着<Ctrl> 再用老鼠的滚轮
![单片机的应用例子--多功能红外线遥控前级](/uploads/allimg/121004/160P5MQ-1.gif)
![单片机的应用例子--多功能红外线遥控前级](/uploads/allimg/121004/160P5F19-2.gif)
因为手头上刚好有几个十多年前用剩的 AD 芯片,AD 芯片的最大好处是里面的电阻是薄膜的,质量应该比专用电子电位器里的半导体电阻优秀。
音源切换不用继电器因为担心在大音量超低音震动下会出现触点弹跳,用芯片切换另一好处是体积小而外部噪音干扰较低。
也考虑过用液晶显示,不过几米以外就看不清楚了,所以最后决定用LED。
俺是海外的,这个前级也是为上海的一个朋友设计的,开板子的事就由国内的朋友来办吧,俺会尽全力配合。
俺认为输入400欧姆的导通电阻影响是很微小的,假设它本身带给了0.01%的失真,但是在66K的总输入阻抗中只占有不到百分之一的比例,所以最后影响还不到0.0001%。它对输入阻抗和增益的影响也因为是平衡输入的切换而大部分被抵消了。
输入端的钳位二极管是必须的,否则芯片会轻易的被外面的静电或脉冲干扰所击毁,不过这二极管是钳位到正负15伏电源的,对峰值顶多是5伏的输入信号是不产生作用的,二极管几个pF的极电容还可以对射频过滤有一定的帮助。
开始动手
在俺这儿开电路板需费一百多美金,这里又没有烧友同好分享,所以就找了一块两年前工程用剩的LED显示板,用洞洞板把主要元件焊了上去,再加上电源和外部接线就可以了。先写了LED屏的扫描部分,过些日子有空时再编写控制程序,然后就可以测试各种功能了。
![单片机的应用例子--多功能红外线遥控前级](/uploads/allimg/121004/160P55522-0.jpg)
![单片机的应用例子--多功能红外线遥控前级](/uploads/allimg/121004/160P55237-3.jpg)
![单片机的应用例子--多功能红外线遥控前级](/uploads/allimg/121004/160P51a3-4.jpg)
显示屏扫描子程序
;每一毫秒调用一次
;江文正,2007-08-15
.include "eZ8.inc"
segment code
xref _readbut ;读取按键
xref _DigCtr ;位数计
xref _DplDuty ;亮度占空比
xref _DplFlag ;bit0 = 闪烁, bit1 = 自动音量, bit2 = 切换, bit3 = 测试,bit4 = 设置遥控码
xref _FuncNr ;功能选择
xref _Volume ;音量
xref _ChNr ;输入切换号码
xdef _shiftdpl ;移位刷屏
;=================================================
; 引脚定义
data1 equ PBOUT ort B
data1_0 equ 11111110B B0
data1_1 equ 00000001B B0
stb1 equ PBOUT ort B
stb1_0 equ 11111101B B1
stb1_1 equ 00000010B B1
clk1 equ PCOUT ort C
clk1_0 equ 01111111B C7
clk1_1 equ 10000000B C7
minus_0 equ 00010000B ;-0
minus_1 equ 00111000B ;-1
;7 段显示笔画定仪表指针
seg_ptr:; FABGCD.E
.BYTE 11101101B ;0
.BYTE 00101000B ;1
.BYTE 01110101B ;2
.BYTE 01111100B ;3
.BYTE 10111000B ;4
.BYTE 11011100B ;5
.BYTE 11011101B ;6
.BYTE 01101000B ;7
.BYTE 11111101B ;8
.BYTE 11111100B ;9
.BYTE 11111001B ;A
.BYTE 11000101B ;C
.BYTE 00111101B ;d
.BYTE 10010101B ;t
.BYTE 10101101B ;U
.BYTE 10100100B ;V
SegBuf equ R5
DigPos equ R4
;======================================
_shiftdpl:
CP _DigCtr,#05
JR ULT,$F
inc _DplDuty
cp _DplDuty,#4 ;此数用于调节亮度
JR ugt,$F
ret (责任编辑:admin) |