[胆机基础] 单片机在胆机中的应用

[复制链接] 查看: 10891|回复: 20

16

主题

0

好友

1095

积分
     

侠之大者 当前离线

无所事事的小猪

Rank: 6Rank: 6

UID
3197
帖子
933
精华
1
经验
1095 点
金钱
836 ¥
注册时间
2005-3-1
发表于 2006-1-4 19:33 | 显示全部楼层
    单片机与胆机似乎是风马牛不相及的事。但是目前单片机的价格已经很低,功能很完善,用到胆机里也不是不可以,例如作为延时开、关机,遥控,甚至用单片机来对管子的工作状态进行调整等,也是可以使用的。当然延时电路使用延时继电器既简单又方便,单片机毫无优势可言。然而,你把开路保护,过流保护等电路集成进去,单片机的作用就发挥出来了。本文以51系列单片机为例,介绍下单片机的运用。为简单起见,本文不打算详细阐述单片机的工作原理,而是简单介绍一些必要的知识后直接进入应用部分。需要用的或需要说明的知识随时补充。
    51系列单片机基础知识
AT89S52是ATMEL公司生产的兼容标准MCS-51指令系统及80C51引脚结构的低功耗,高性能CMOS 8位单片机。与MCS-51相比,S52内建了8kB的可在系统编程(ISP)的闪存,可反复擦写1000次。ISP的建立,为应用此款单片机提供了极大的便利:稍有动手能力的朋友都可以做一个并口烧写器,其成本仅20多元。
除了ISP功能外,S52还构建了内部看门狗(watchdog),使得芯片使用起来更加可靠;RAM的数量增加到了256个字节。主要功能特性如下:
· 兼容MCS-51指令系统                  · 8k可反复擦写(>1000次)ISP Flash ROM
· 32个双向I/O口                          · 4.5-5.5V工作电压
· 3个16位可编程定时/计数器 · 时钟频率0-33MHz
· 全双工UART串行中断口线  · 256x8bit内部RAM
· 2个外部中断源                          · 低功耗空闲和省电模式
· 中断唤醒省电模式                          · 3级加密位
· 看门狗(WDT)电路                  · 软件设置空闲和省电功能
· 灵活的ISP字节和分页编程  · 双数据寄存器指针
S52的引脚定义如下:
<img src="attachments/dvbbs/2006-1/200615131932891.gif" border="0" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt=\'Click here to open new window\nCTRL+Mouse wheel to zoom in/out\';}" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor=\'hand\'; this.alt=\'Click here to open new window\nCTRL+Mouse wheel to zoom in/out\';}" onclick="if(!this.resized) {return true;} else {window.open(\'attachments/dvbbs/2006-1/200615131932891.gif\');}" onmousewheel="return imgzoom(this);" alt="" />
管脚定义:VCC、GND--+5v电源和地;P0.0/AD0--P0.7/AD7为I/O及地址/数据复用口,也就是说,当仅使用片内存储器而无外部地址/数据访问时,32-39脚仅作为I/O(输入in/输出out)使用,如有外部地址/数据访问时,32-39脚作为地址/数据复用口使用,此时32-39脚不能简单地作为I/O口使用。所谓地址/数据复用,就是在一个访问周期内,此8个引脚首先输出低8位的地址(AD0-AD7),经外部锁存器锁存后作为地址总线输出,随即此8个脚作为数据总线,用来输出或者输入8位数据。
同样的,P2.0-P2.7(21-28)脚也是多用口,与P0口的区别是访问外部存储器时,P2口仅作为地址总线的高8位。P1口的P1.0、P1.1的第2功能是定时计数器2的外部输入端及定时计数器启动/停止端;P1.5、P1.6、P1.7为ISP的功能引脚。
RST(9)脚为复位脚,用于系统上电复位及其他复位,高电平有效。
P3口的第2功能分别是:TXD、RXD—串行通信口的发送、接收端。INT0、INT1,外部中断输入端。T0、T1,定时器0、1的外部输入端。WR、RD为使用外部存储器时的写/读信号。ALE/PROG(30)为访问外部存储器时的允许地址锁存信号。当ALE为高时,P0口送出16位地址的低8位,并在ALE下降时锁存。即使不访问外部存储器,ALE也以系统时钟的1/6的频率送出周期性的正脉冲。但需注意:当执行MOVX指令时(访问外部数据存储器)时,将跳过一个ALE脉冲。PLOG为EPROM型单片机的编程信号。S52不使用此功能。
PSEN为外部程序存储器读选通信号,低电平有效。
EA脚用于区分内部程序存储器还是外部程序存储器。当EA为低电平时,单片机仅使用外部程序存储器。当EA接高电平时,程序不超过8K(0X1FFF)时使用内部程序存储器,超过8K时访问外部程序存储器。因此编制程序时要注意,当系统使用P0和P2口时,一旦系统访问外部程序存储器,将导致这2个口的16条I/O口线出现不可预料的结果。
XTAL1、XTAL2是内部时钟发生器。接下来说说与ISP有关的几个管脚,分别是6脚(MOSI串行信号输入)7脚(MISO串行信号输出)8脚(SCK串行时钟)和9脚(RST复位)。具体连接图如下:

<img src="attachments/dvbbs/2006-1/200615191433176.gif" border="0" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt=\'Click here to open new window\nCTRL+Mouse wheel to zoom in/out\';}" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor=\'hand\'; this.alt=\'Click here to open new window\nCTRL+Mouse wheel to zoom in/out\';}" onclick="if(!this.resized) {return true;} else {window.open(\'attachments/dvbbs/2006-1/200615191433176.gif\');}" onmousewheel="return imgzoom(this);" alt="" />

这里我们先不去讨论具体细节,只要按图做好就可以了。25脚DB25插头连接电脑的并行口,MISO、SCK、MOSI、RST等几根信号线连到单片机上,当然单片机的时钟和电源要先准备好。建议使用6M或12M的晶体。下载软件可以去这里下载:http://www.atmel.com/dyn/resources/prod_documents/at89isp.zip
好了,硬件部分暂时告一段落。建议朋友们用一块试验板来学习单片机,CPU使用40脚双列直插的,先在板上焊好插座。






评分

参与人数 1HD币 +50 收起 理由
wzy728 + 50 重发

查看全部评分

109

主题

1

好友

8012

积分

超级版主 当前离线

论坛版主

Rank: 8Rank: 8

UID
6
帖子
6498
精华
17
经验
8012 点
金钱
1636 ¥
注册时间
2004-3-16

元老级 社区贡献 优秀设计

发表于 2006-1-11 23:19 | 显示全部楼层

顶一把

[em09][em09][em09]

16

主题

0

好友

1095

积分
     

侠之大者 当前离线

无所事事的小猪

Rank: 6Rank: 6

UID
3197
帖子
933
精华
1
经验
1095 点
金钱
836 ¥
注册时间
2005-3-1
 楼主| 发表于 2006-1-11 22:56 | 显示全部楼层

这2天好慢啊,没办法继续。今天接着上

Keil中进行编译是很简单的事情。程序编制好后点下图中示出的按钮(rebuild all target files),即图中圈出的地方。
<img src="attachments/dvbbs/2006-1/2006111225324885.gif" border="0" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt=\'Click here to open new window\nCTRL+Mouse wheel to zoom in/out\';}" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor=\'hand\'; this.alt=\'Click here to open new window\nCTRL+Mouse wheel to zoom in/out\';}" onclick="if(!this.resized) {return true;} else {window.open(\'attachments/dvbbs/2006-1/2006111225324885.gif\');}" onmousewheel="return imgzoom(this);" alt="" />

程序即编译完毕,并生成.HEX文件供下载。俺使用的是双龙的下载程序,其界面如下图。

<img src="attachments/dvbbs/2006-1/2006111225513164.gif" border="0" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt=\'Click here to open new window\nCTRL+Mouse wheel to zoom in/out\';}" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor=\'hand\'; this.alt=\'Click here to open new window\nCTRL+Mouse wheel to zoom in/out\';}" onclick="if(!this.resized) {return true;} else {window.open(\'attachments/dvbbs/2006-1/2006111225513164.gif\');}" onmousewheel="return imgzoom(this);" alt="" />

对于S52下载,只要选中型号,其他按图中选择即可。如果需要加密,可选择对应的级别。Lock Mode 4是最高级别,默认的是1级,不加密。至于要下载的文件,点软件界面中的“文件”按钮,在弹出来的窗口中选中你想要下载的文件即可。该文件以.HEX或.BIN结尾,一般选择.HEX。
好了,至此一个最简单的例子即告完成。例子中的程序是经过俺编译通过并下载到芯片中验证的。本文的目的是启发大家自己动手,因此描述并不是特别详细,希望有兴趣的朋友自行扩展它的功能。例如程序中哪些是可以调整的,起到什么作用,都可以动脑思索一番。这里提供点思路:在这个程序中稍加修改,然后驱动继电器即可实现高压延时供电。
上面有朋友问可否用于音量控制,答案是肯定的。音量控制可用电子电位器(不推荐使用,虽然简单,但可能影响音质)或者使用电动机驱动的电位器,配上简单的驱动电路,增加红外头,配个遥控器即可增加遥控功能。
过段时间俺再上个保护电路,希望大家能喜欢。

20

主题

0

好友

344

积分

业余侠客 当前离线

Rank: 4

UID
6713
帖子
372
精华
0
经验
344 点
金钱
60 ¥
注册时间
2005-12-8
发表于 2006-1-8 22:58 | 显示全部楼层

[灌水]

路过

16

主题

0

好友

1095

积分
     

侠之大者 当前离线

无所事事的小猪

Rank: 6Rank: 6

UID
3197
帖子
933
精华
1
经验
1095 点
金钱
836 ¥
注册时间
2005-3-1
 楼主| 发表于 2006-1-8 22:43 | 显示全部楼层

C编程可以看作是对一系列用户函数的定义。函数包括编译器自带的库函数,和用户自己定义的函数。
第4行的sbit   R=P1^0; 定义了一个名为“R”的位变量,且是特殊的位变量,对它的操作(在计算机系统中,所谓操作指的是“读/写”的意思)实际上是对单片机的P1口的第1个脚进行操作,也就是芯片的第1脚。C语言中没有行号,每一条语句“;”(分号)结束。我们可以在一行中书写多条语句,每条语句均以分号分隔。
第5行的uchar i,j; 定义了2个无符号全局变量。这2个变量在程序中未使用,仅用来做个示范。
第6行delay(unit t)                ///****延时*****///
是一个函数说明部分。一个函数由两部分组成:
1.        函数说明部分。它包括函数名、函数类型、函数属性、函数参数(形参)名、形式参数类型。一个函数名后面必须跟一对圆括号,函数参数可以没有。函数说明的尾部没有分号。
2.        函数体。函数体即函数说明部分下面的花括号“{ }”内的部分,包括变量定义和执行部分。
因此delay就是一个函数名。该函数完成一个延时功能。括号内的unit t表明该函数带有一个参数,且参数的属性是无符号整形数。而后面的“///****延时*****///”是对语句的注释。C中以“//”来开始一行的注释,或者以“/*……*/”来注释一段内容。注释的作用是增加程序的可读性。
8、9行的uchar x; unit y;分别定义了无符号变量x和无符号整形变量y,这2个变量都是局部变量。所谓局部变量,简单地说,就是在局部起作用的变量。这里变量x、y仅在delay()这个函数中起作用。
10、11行是循环语句,这里构成了一个循环嵌套,for(y=t;y>0;y--)是外层循环,for(x=167;x>0;x--);是内层循环。后面的注释意为在12M时钟下,x=167时该延时程序延迟1ms。如果使用不同的时钟频率,应该修改x的值,尽量使延时程序准确。
主函数“main()”中,首先位变量R赋值,也就是让芯片的第1脚为高电平1。此时对应的发光二极管为灭的状态。接下来的while(1)也是一条循环语句。当然这条语句也可以换成其他的,只要作用相同即可。While语句的一般形式为:
while(表达式)
{语句/*循环体*/}
在这里,表达式是while循环能否继续的条件,而语句部分则是循环体,是重复执行的部分。只要表达式为真,就重复执行循环体内的语句。该语句中括号内的数字“1”的含义为逻辑“真”,因此程序将一直在此循环。这个循环是死循环,即跳不出去的循环。
循环体在执行什么操作呢?让1脚输出0v,延时500ms,再让1脚输出高电平1,延时500ms,反复循环。于是发光二极管就闪烁起来了。
程序中delay(500)就是调用函数的语句,括号中的“500”就是参数,它的含义是把“500”这个参数传递给delay这个函数,使得delay函数执行500ms的延时。
一个说明:该例子中的unit实为uint之误,应该写成uint。
明天续上如何编译并下载到单片机中执行的部分。[em11]

0

主题

1

好友

2829

积分
     

罗宾汉 当前离线

Rank: 7Rank: 7Rank: 7

UID
3771
帖子
2977
精华
0
经验
2829 点
金钱
2735 ¥
注册时间
2005-4-3
发表于 2006-1-8 21:15 | 显示全部楼层

好文,通俗易懂。期待下文。。。。。。

头像被屏蔽

34

主题

0

好友

704

积分

禁止发言 当前离线

UID
4319
帖子
812
精华
0
经验
704 点
金钱
375 ¥
注册时间
2005-5-20
发表于 2006-1-8 20:38 | 显示全部楼层

好文!帮顶请继续!

192

主题

0

好友

1596

积分

侠之大者 当前离线

机械大师

Rank: 6Rank: 6

UID
1481
帖子
2053
精华
0
经验
1596 点
金钱
786 ¥
注册时间
2004-9-6
发表于 2006-1-8 15:02 | 显示全部楼层

有没有遥控电源的作用 还有遥控音量

16

主题

0

好友

1095

积分
     

侠之大者 当前离线

无所事事的小猪

Rank: 6Rank: 6

UID
3197
帖子
933
精华
1
经验
1095 点
金钱
836 ¥
注册时间
2005-3-1
 楼主| 发表于 2006-1-6 13:56 | 显示全部楼层

第一个程序实例

#include<reg51.h>
#define uchar unsigned char
#define unit  unsigned int

sbit   R=P1^0;
uchar i,j;

delay(unit t)                ///****延时*****///
{
        uchar x;
        unit y;
        for(y=t;y>0;y--)
    for(x=167;x>0;x--);                       //167 12M   100 10M//
}


main()
{
        R=1;
        while(1)
        {
                R=0;
                delay(500);
                R=1;
                delay(500);
        }
}
这个例子就是前面说到的让发光二极管闪烁的。程序的第一行定义了一个包含文件,其中reg51.h文件定义了所有8051的特殊功能寄存器及中断。第2、3行使用#define 语句来实现简化的缩写形式来定义变量的数据类型以方便程序书写。
在C语言中,程序基本上就是一个函数定义的集合,这个集合中有且仅有一个名为main的函数(主函数)。主函数是程序的入口,其中的所有语句执行完毕,程序就结束了。
--未完待续--

16

主题

0

好友

1095

积分
     

侠之大者 当前离线

无所事事的小猪

Rank: 6Rank: 6

UID
3197
帖子
933
精华
1
经验
1095 点
金钱
836 ¥
注册时间
2005-3-1
 楼主| 发表于 2006-1-5 19:37 | 显示全部楼层

接下来说说软件

接下来进行编程软件部分。这里以Keil为例。软件及安装使用说明在网上很好找的,搜一下一大堆。现在假定你已经安装好了软件。我们可以开始第一个例子:让发光二极管周期性地闪烁。为实现这个功能,你需要找一个发光二极管,阳极串510欧电阻接+5v,阴极接到单片机的第1脚上。然后打开Keil,在左上角找到project(项目)下拉菜单,然后点new project,输入一个名字,这个名字是你将要建立的项目的名字,然后点保存。
在弹出来的窗口中选择CPU,我们要选择的是ATMEL公司的89S52,然后点确定。
<img src="attachments/dvbbs/2006-1/2006151931087.jpg" border="0" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt=\'Click here to open new window\nCTRL+Mouse wheel to zoom in/out\';}" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor=\'hand\'; this.alt=\'Click here to open new window\nCTRL+Mouse wheel to zoom in/out\';}" onclick="if(!this.resized) {return true;} else {window.open(\'attachments/dvbbs/2006-1/2006151931087.jpg\');}" onmousewheel="return imgzoom(this);" alt="" />
接下来出现的窗口点YES即可。
<img src="attachments/dvbbs/2006-1/200615193030194.jpg" border="0" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt=\'Click here to open new window\nCTRL+Mouse wheel to zoom in/out\';}" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor=\'hand\'; this.alt=\'Click here to open new window\nCTRL+Mouse wheel to zoom in/out\';}" onclick="if(!this.resized) {return true;} else {window.open(\'attachments/dvbbs/2006-1/200615193030194.jpg\');}" onmousewheel="return imgzoom(this);" alt="" />

如果出现另一个提示,是告诉你需要拷贝的文件已存在点YES或NO都可以。
做完这些后在keil中,左边会出现一个窗口,有一个名为Target 1的文件夹。在它上面右击,选择options for target 1,然后在弹出的标签上点下output,找到create HEX File并在它前面的小框上打个勾。这个是告诉keil,编译成功后同时创建单片机可直接使用的程序代码。我们需要用下载软件将这个HEX文件烧到单片机里就可以使用了。HEX是后缀,文件名与你创建的项目(project)是同名的。
<img src="attachments/dvbbs/2006-1/200615193311634.gif" border="0" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt=\'Click here to open new window\nCTRL+Mouse wheel to zoom in/out\';}" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor=\'hand\'; this.alt=\'Click here to open new window\nCTRL+Mouse wheel to zoom in/out\';}" onclick="if(!this.resized) {return true;} else {window.open(\'attachments/dvbbs/2006-1/200615193311634.gif\');}" onmousewheel="return imgzoom(this);" alt="" />
<img src="attachments/dvbbs/2006-1/200615192843487.jpg" border="0" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt=\'Click here to open new window\nCTRL+Mouse wheel to zoom in/out\';}" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor=\'hand\'; this.alt=\'Click here to open new window\nCTRL+Mouse wheel to zoom in/out\';}" onclick="if(!this.resized) {return true;} else {window.open(\'attachments/dvbbs/2006-1/200615192843487.jpg\');}" onmousewheel="return imgzoom(this);" alt="" />

接下来我们要做的是创建一个C语言的源文件。单击file,再点new,打开
了一个新文件,把它保存下来,文件名以.C结尾,然后关闭这个文件。点开target 1文件夹左边的加号,会出现一个source group 1,右击它,选择add files to group…,然后添加刚才创建的文件。注意点一下Add按钮就可以了。关闭弹出的窗口。这时候你会发现source group 1中出现了你刚添加的文件,双击它,在弹出的窗口中就可以输入你的程序了。
<img src="attachments/dvbbs/2006-1/200615193513818.gif" border="0" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt=\'Click here to open new window\nCTRL+Mouse wheel to zoom in/out\';}" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor=\'hand\'; this.alt=\'Click here to open new window\nCTRL+Mouse wheel to zoom in/out\';}" onclick="if(!this.resized) {return true;} else {window.open(\'attachments/dvbbs/2006-1/200615193513818.gif\');}" onmousewheel="return imgzoom(this);" alt="" />




























评分

参与人数 1经验 +20 威望 +2 魅力 +20 贡献值 +2 收起 理由
wzy728 + 20 + 2 + 20 + 2 bf

查看全部评分

292

主题

32

好友

1万

积分
     

超级版主 当前离线

nostalgia

Rank: 8Rank: 8

UID
2492
帖子
18343
精华
17
经验
19692 点
金钱
12949 ¥
注册时间
2004-12-23

元老级 社区贡献 论坛版主 优秀版主

发表于 2006-1-5 10:31 | 显示全部楼层

当然可以发,我自己都用这东西

122

主题

1

好友

3044

积分
     

罗宾汉 当前离线

Rank: 7Rank: 7Rank: 7

UID
1775
帖子
3639
精华
0
经验
3044 点
金钱
1018 ¥
注册时间
2004-10-7
发表于 2006-1-5 06:20 | 显示全部楼层

新鲜。

帮顶。

1

主题

0

好友

73

积分

论坛游民 当前离线

Rank: 3Rank: 3

UID
6927
帖子
7
精华
0
经验
73 点
金钱
1 ¥
注册时间
2005-12-24
发表于 2006-1-13 14:07 | 显示全部楼层

.......

可以做电子分频器吗???比如我想做个3K的2分频...

16

主题

0

好友

1095

积分
     

侠之大者 当前离线

无所事事的小猪

Rank: 6Rank: 6

UID
3197
帖子
933
精华
1
经验
1095 点
金钱
836 ¥
注册时间
2005-3-1
 楼主| 发表于 2006-10-30 23:19 | 显示全部楼层
<p>&nbsp;&nbsp;&nbsp; 哎~~~~最近比较忙,没写点新东西。。</p><p>&nbsp;&nbsp;&nbsp; 89C52不支持ISP编程,需要用并行编程器。如果没有的话用起来很麻烦啊。S52也不过8元左右</p>
头像被屏蔽

53

主题

0

好友

960

积分
     

禁止发言 当前离线

UID
6631
帖子
972
精华
0
经验
960 点
金钱
477 ¥
注册时间
2005-12-3
发表于 2006-10-30 20:14 | 显示全部楼层
89C52能用吗

1

主题

0

好友

138

积分

论坛游民 当前离线

Rank: 3Rank: 3

UID
13329
帖子
69
精华
0
经验
138 点
金钱
0 ¥
注册时间
2006-10-13
发表于 2006-10-30 17:51 | 显示全部楼层
路过[em09]

0

主题

0

好友

103

积分

论坛游民 当前离线

Rank: 3Rank: 3

UID
12151
帖子
47
精华
0
经验
103 点
金钱
43 ¥
注册时间
2006-9-8
发表于 2006-10-31 13:21 | 显示全部楼层
<p>用STC12C2052AD就足够了!片小,20脚,带AD.功能挺多!控制个胆机那就绰绰有余。哈哈!关键玩胆机的人会这玩意的不多。偶上班搞这玩意和arm,下班就不能玩了。累死了!看看电子管,电子从阴极出来,曲曲折折来到屏极,哈哈!怪有意思!</p>

141

主题

2

好友

3650

积分
     

贵宾 当前离线

Rank: 3Rank: 3

UID
4694
帖子
3628
精华
6
经验
3650 点
金钱
2758 ¥
注册时间
2005-6-22

社区贡献 论坛贵宾

发表于 2006-12-30 10:39 | 显示全部楼层
<p>摇控开关机</p><p>定时开关机</p><p>音源选择</p><p>音量摇控</p><p>想要这几个功能!</p>

0

主题

0

好友

101

积分

论坛游民 当前离线

Rank: 3Rank: 3

UID
16355
帖子
73
精华
0
经验
101 点
金钱
55 ¥
注册时间
2006-12-24
发表于 2006-12-30 00:46 | 显示全部楼层

51落后的很

<p>51最大的优势就是教学资源丰富,例程比海水还多,除此之外,一无是处。比速度,慢得很;比功能,弱得很,比价格,还比别人得高出一截;比性价比跟不要说了,综合比较,一个字差。</p>

27

主题

0

好友

278

积分

业余侠客 当前离线

Rank: 4

UID
8598
帖子
178
精华
0
经验
278 点
金钱
206 ¥
注册时间
2006-4-12
发表于 2007-1-3 00:02 | 显示全部楼层

即然单片机有时钟,那肯定有高频数字干扰这会影响音质的

即然单片机有时钟,那肯定有高频数字干扰这会影响音质的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Powered by Discuz! X3.4

© 2001-2012 Comsenz Inc.

返回顶部