118

主题

0

好友

4168

积分

罗宾汉 当前离线

江西人在广东

Rank: 7Rank: 7Rank: 7

UID
3563
帖子
4355
精华
2
经验
4168 点
金钱
1275 ¥
注册时间
2005-3-22

优秀设计 论坛贵宾

发表于 2007-7-20 23:56 | 显示全部楼层
原帖由 ET 于 2007-7-20 13:56 发表
为什么都喜欢用数码管啊,用带背光的液晶不好吗?不但可以显示字符,如果采用简单的图形液晶还可以显示图画非常好看啊,



用液晶一般远了就无法看清了。
头像被屏蔽

44

主题

0

好友

1267

积分

禁止发言 当前离线

民工

UID
3715
帖子
1199
精华
0
经验
1267 点
金钱
483 ¥
注册时间
2005-3-30
发表于 2007-7-22 14:29 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

17

主题

0

好友

984

积分

职业侠客 当前离线

没事就来看看

Rank: 5Rank: 5

UID
14037
帖子
954
精华
0
经验
984 点
金钱
695 ¥
注册时间
2006-10-30
发表于 2007-7-22 22:18 | 显示全部楼层
用模拟开关做音源输入比较怀疑,等楼主的试验结果。
4094是串入并出?

13

主题

10

好友

792

积分

贵宾 当前离线

Rank: 3Rank: 3

UID
9409
帖子
658
精华
0
经验
792 点
金钱
323 ¥
注册时间
2006-5-15

社区贡献 论坛贵宾

 楼主| 发表于 2007-7-22 22:54 | 显示全部楼层
4094是串入移位寄存器加并出

显示屏部分的板子画好了,主板部分改天有空再画。
前级显示.jpg
前级显示1.JPG

17

主题

0

好友

984

积分

职业侠客 当前离线

没事就来看看

Rank: 5Rank: 5

UID
14037
帖子
954
精华
0
经验
984 点
金钱
695 ¥
注册时间
2006-10-30
发表于 2007-7-23 23:36 | 显示全部楼层
粗略看了下DG508的DATASHEET,开关导通时有130-400的导通电阻,另外在输入输出端有钳位二极管,这些因素应该对音质会产生影响的吧。

13

主题

10

好友

792

积分

贵宾 当前离线

Rank: 3Rank: 3

UID
9409
帖子
658
精华
0
经验
792 点
金钱
323 ¥
注册时间
2006-5-15

社区贡献 论坛贵宾

 楼主| 发表于 2007-7-24 09:43 | 显示全部楼层
谢谢guog兄弟的宝贵意见,俺认为输入400欧姆的导通电阻影响是很微小的,假设它本身带给了0.01%的失真,但是在66K的总输入阻抗中只占有不到百分之一的比例,所以最后影响还不到0.0001%。它对输入阻抗和增益的影响也因为是平衡输入的切换而大部分被抵消了。
输入端的钳位二极管是必须的,否则芯片会轻易的被外面的静电或脉冲干扰所击毁,不过这二极管是钳位到正负15伏电源的,对峰值顶多是5伏的输入信号是不产生作用的,二极管几个pF的极电容还可以对射频过滤有一定的帮助。

32

主题

0

好友

3558

积分

贵宾 当前离线

来自上海的

Rank: 3Rank: 3

UID
8411
帖子
3222
精华
3
经验
3558 点
金钱
1885 ¥
注册时间
2006-4-5

社区贡献

发表于 2007-7-24 09:50 | 显示全部楼层
这几天已经在准备材料了。

17

主题

0

好友

984

积分

职业侠客 当前离线

没事就来看看

Rank: 5Rank: 5

UID
14037
帖子
954
精华
0
经验
984 点
金钱
695 ¥
注册时间
2006-10-30
发表于 2007-7-24 18:16 | 显示全部楼层
期待你出成品看效果。

96

主题

3

好友

2269

积分
     

罗宾汉 当前离线

Rank: 7Rank: 7Rank: 7

UID
11148
帖子
2084
精华
0
经验
2269 点
金钱
1925 ¥
注册时间
2006-8-2
发表于 2007-7-24 18:25 | 显示全部楼层
期待

10

主题

0

好友

152

积分

论坛游民 当前离线

Rank: 3Rank: 3

UID
17493
帖子
94
精华
0
经验
152 点
金钱
8 ¥
注册时间
2007-1-15
发表于 2007-7-24 18:34 | 显示全部楼层
支持樓主,幫頂
請問打算做什麼尺寸?
謝謝

13

主题

10

好友

792

积分

贵宾 当前离线

Rank: 3Rank: 3

UID
9409
帖子
658
精华
0
经验
792 点
金钱
323 ¥
注册时间
2006-5-15

社区贡献 论坛贵宾

 楼主| 发表于 2007-8-16 13:46 | 显示全部楼层

开始动手

在俺这儿开电路板需费一百多美金,这里又没有烧友同好分享,所以就找了一块两年前工程用剩的LED显示板,用洞洞板把主要元件焊了上去,再加上电源和外部接线就可以了。先写了LED屏的扫描部分,过些日子有空时再编写控制程序,然后就可以测试各种功能了。
前级1.jpg
前级2.jpg
前级4.jpg

13

主题

10

好友

792

积分

贵宾 当前离线

Rank: 3Rank: 3

UID
9409
帖子
658
精华
0
经验
792 点
金钱
323 ¥
注册时间
2006-5-15

社区贡献 论坛贵宾

 楼主| 发表于 2007-8-16 14:04 | 显示全部楼层

显示屏扫描子程序

;每一毫秒调用一次
;江文正,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
$$:                clr        _DplDuty
;                call        __readbut

                push        R0                ;如果只有 C 语言调用此子程序,进栈和退栈部分可以抹掉
                push        R1                ;
                push        R2                ;
                push        R3
                push        R4
                push        R5                ;

                                LD            DigPos,#00000001B
                CPX          _DigCtr,#05
                JR            ULT,NX_DIG
                LDX        _DigCtr,#0
NX_DIG  ADDX     _DigCtr,#1
                LDX        R0,_DigCtr
$$:                RR            DigPos
                djnz        R0,$B
                                LDX          SegBuf,_Volume
                cpx        _DigCtr,#03
                jr        ult,$F
                        LDX          SegBuf,_ChNr
$$:
                TMX        _DigCtr,#1
                JR        NZ,LSD
                SWAP        SegBuf                ;若是偶数,左右四比特对换
LSD                           AND         SegBuf,#0FH        ;淹没左四比特
                LD         R0, #high(seg_ptr)        ;画段指针
                LD         R1, #low(seg_ptr)        ;
                ADD          R1,SegBuf                  ;加上错位
                ADC          R0,#0
                LDC          SegBuf,@RR0               ;从画段表获取数据                           
                cpx        _FuncNr,#0
                jr        ne,$F
                cpx        _DigCtr,#3                ;显示音量时第三位数空白
                jr        eq,blank
$$:                cpx        _DigCtr,#05
                jr        ult,$F
blank                         clr            SegBuf                        ;灭显示
$$:
                                LD            R3,SegBuf              ;输出画段
                COM         R3                ;低电平驱动
                                CALL         OUT_BYTE
                                LD            R3,DigPos                ;输出位数
                                CALL         OUT_BYTE
                ORX        stb1,#stb1_1        ;转移数据
                NOP
                NOP
                NOP
                                ANDX        stb1,#stb1_0
                ANDX        data1,#data1_0
                andx        _DplFlag,#%FE        ;标记处理完毕

                pop        R5                ;如果只有 C 语言调用此子程序,进栈和退栈部分可以抹掉
                pop        R4
                pop        R3
                pop        R2
                pop        R1
                pop        R0
                                RET

OUT_BYTE        ;串移数据
                                LD            R2,#08        ;8 比特
SFT_LP       
                ANDX        data1,#data1_0
                RL             R3
                JR             NC,CLKING
                ORX          data1,#data1_1
CLKING        ;输出一个时钟脉冲
                NOP
                NOP
                NOP
                ORX          clk1,#clk1_1
                NOP
                NOP
                NOP
                ANDX         clk1,#clk1_0
                DJNZ          R2,SFT_LP
                RET
;--------------------------------------------

17

主题

1

好友

1018

积分
     

侠之大者 当前离线

Rank: 6Rank: 6

UID
4191
帖子
805
精华
0
经验
1018 点
金钱
528 ¥
注册时间
2005-5-10
发表于 2007-8-16 15:37 | 显示全部楼层
辛苦了。

8

主题

0

好友

1229

积分

侠之大者 当前离线

Rank: 6Rank: 6

UID
19826
帖子
1800
精华
0
经验
1229 点
金钱
1135 ¥
注册时间
2007-3-8
发表于 2007-8-16 18:15 | 显示全部楼层
这个要顶,等进度,可别太慢了

13

主题

10

好友

792

积分

贵宾 当前离线

Rank: 3Rank: 3

UID
9409
帖子
658
精华
0
经验
792 点
金钱
323 ¥
注册时间
2006-5-15

社区贡献 论坛贵宾

 楼主| 发表于 2007-8-23 16:08 | 显示全部楼层
刚完成了采用 NEC 波形的读码部分,改天再写飞利浦波形的。

; 汇编部分,中断子程序

vector        C3=_isr_C3; 红外线, 下降沿,
_isr_C3:
        tmx                PCIN,#%08                ; 只取下降沿
        jr                nz,c3_x
        ldx                _width,T1H                ; 一次 = 92.23uS
        ldx                T1H,#%0                        ; 定时器重新置零
        orx                _ir_flag,#1                ; 标记收到红外线信号
c3_x
        iret


;=============================================================

vector        TIMER1=_isr_T1                        ;23.52mS
_isr_T1:                ;
        ldx                _step_ctr,#0        ; 无红外线信号空挡,步骤置零
        iret                                       


//C 语言部分
////////////////////////////////////////////////////////
// NEC uPD6121 波形 红外线读码 2007-08-23 江文正
// 方法 : 接收管输出下降沿触发中断子程序,读取下降沿之间的时间 width 后把定时器重新置零
// width 单位= 92.23uS, 前提是 定时器时钟 = 5.5296 MHz, prescale = 2
// 两个下降沿之间时段: 引导码, >11.81mS : width=128
// 重复码, >9mS : width=97
// >1.69mS : width=18 = 高电平数据,  <1.69mS : width=18 = 低电平数据


IR_decode()
{       
char rcv_8bit=0;
int rcv_16bit=0;

        ir_flag &= 0xFE;        //标记已处理
        if (step_ctr ==0)
        {
                step_ctr=1;        //开始
        }
        else
        {
                if (width > 128)        //引导码
                {
                        step_ctr=2;
                        user_code=0;        // 清0
                        cmd_code=0;        // 清0
                }
                else
                {
                        if (width > 97)        //重复码
                        {
                                step_ctr=34;        //
                        }
                    else
                        {
                                if (width > 18)        //高电平
                                {
                                        rcv_8bit=1;
                                        rcv_16bit=1;
                                }

                                if (step_ctr<18)        //用户码
                                        {
                                                rcv_16bit = rcv_16bit << (step_ctr-1);
                                                user_code |= rcv_16bit;
                                        }
                                else
                                {
                                        if (step_ctr<26)        //控制码
                                        {
                                                rcv_8bit = rcv_8bit << (step_ctr-17);
                                                cmd_code |= rcv_8bit;
                                        }
                                }
                                if (step_ctr>25)                //反码
                                {
                                        rcv_8bit = rcv_8bit << (step_ctr-25);
                                        comp_code |= rcv_8bit;
                                }
                       
                                step_ctr++;
                                if (step_ctr>33)                //有效码
                                {
                                        comp_code ^= 0xFF;        //2反位,2'complement
                                        comp_code--;
                                    if (cmd_code != comp_code)
                                        {
                                                step_ctr = 0;        //错码,无效
                                        }
                                }
                        }
                }
        }
}

0

主题

0

好友

7

积分

注册会员 当前离线

Rank: 2

UID
26189
帖子
7
精华
0
经验
7 点
金钱
7 ¥
注册时间
2007-8-21
发表于 2007-8-23 19:32 | 显示全部楼层
这样做出来后音色有没有变?

32

主题

0

好友

3558

积分

贵宾 当前离线

来自上海的

Rank: 3Rank: 3

UID
8411
帖子
3222
精华
3
经验
3558 点
金钱
1885 ¥
注册时间
2006-4-5

社区贡献

发表于 2007-8-24 11:42 | 显示全部楼层
原帖由 PROTEL 于 2007-8-23 19:32 发表
这样做出来后音色有没有变?

我的输入的显示的按照楼主的图纸做好了,自己烂的板子
主电路板周末自己画个印板腐蚀下(还不会用Protell画,惭愧 ),只有手工画,用记号笔画着玩了
23-08-07_2147.jpg

32

主题

0

好友

3558

积分

贵宾 当前离线

来自上海的

Rank: 3Rank: 3

UID
8411
帖子
3222
精华
3
经验
3558 点
金钱
1885 ¥
注册时间
2006-4-5

社区贡献

发表于 2007-8-24 11:49 | 显示全部楼层
本来想用00的,可惜自己的00水平实在是差了一点,感觉还是画个板子腐蚀打孔焊接的速度要比用00的连线的速度快了不少。
前一段时间在忙找工作的事情也把这个工程给耽搁了不少时日 ,又逢连日高温,实在是懒得动手了
这次的主要目的是向楼主学习单片机的编程,顺便验证下四象限乘法运算的可行性。为了简化,全部采用了运算放大器。
我的电路可能比楼主的更简化,连平衡转单端的都简化了

32

主题

0

好友

3558

积分

贵宾 当前离线

来自上海的

Rank: 3Rank: 3

UID
8411
帖子
3222
精华
3
经验
3558 点
金钱
1885 ¥
注册时间
2006-4-5

社区贡献

发表于 2007-8-24 11:51 | 显示全部楼层
AD7543和Z8F082A确实非常难以找到
我是在淘宝上找的
Zilog的单片机确实是先进,可惜国内用的人少了一点,成本也稍微高了一点
头像被屏蔽

1

主题

0

好友

466

积分

禁止发言 当前离线

UID
24730
帖子
627
精华
0
经验
466 点
金钱
465 ¥
注册时间
2007-7-16
发表于 2007-9-28 14:26 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版| ( 鄂ICP备2025138941号-3 ICP证:鄂B2-20130019 公安局网监备:420100007348 邮箱:1343292467@qq.com )

GMT+8, 2025-10-5 07:47 , Processed in 0.146902 second(s), 7 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 2001-2012 Comsenz Inc.

返回顶部