- 1、本文档共14页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
混响电路设计
51单片机的调音台混响控制电路[声明:]? ? 由于本文内容过于简单,因此只供 51 编程初学者参考,高手请飘过。。。[正文:]上午一个朋友打电话说收了个调音台,数码混响电路坏了,一片M65831数码混响IC和一片89C2051控制电路烧得发黄,更换M65831后混响固定为500mS,无法调节。随后发了个图纸给我,简单分析后发现电路并不复杂,89S2051接受两个按键的控制信号,进行增减计数并显示在数码管上,同时输出控制信号(D1~D4)给M65831以控制混响时间。每次设置值改变后都送入一片24C08保存。网上查到了M65831的手册,D1~D4其实就是对应0~16的二进制步进数值。鉴于该电路比较简单,重新编程的过程比较适合初学者参考,因此挖个坑,把重写过程开源供大家参考。[未完待续][ 本帖最后由 DreamonII 于 2008-12-1 14:53 编辑 ]电路虽简单,但需要控制的部件还挺多的。。。? ?·控制7段数码管,显示 0~9,A~F 共 16 个字符;? ?·检测两个键的状态,我理解为一键增,一键减,再加个功能:两键同时按为清 0;? ?·读写24C01(SDA,SCK);? ?·控制M65831混响时间(D1~D4 计数输出)。老规矩,逐一解决然后整合。注意:以下代码采用 Keil C51 编写,直接在贴子里边想边写,未测试,写完后再统一调试。为书写方便,习惯性定义两个类型:
#define uchar unsigned char
#define uint??unsigned int
复制代码
由图中可以看出各控制端口的功能定义:
#define LED? ? P1? ? // 其中 P1.0 用作读取键信号,输出恒为 1;
#define CTRL? ?P3? ? // 仅使用P3.0~P3.3作控制输出
sbit KEY_1 = P1^0;? ? // 向上键
sbit KEY_2 = P3^7;? ? // 向下键
sbit SCK? ?= P3^4;? ? // IIC 串行时钟,用于读写 24C08
sbit SDA? ?= P3^5;? ? // IIC 串行数据,用于读写 24C08
uchar value;? ?? ?? ? // 定义一个变量,用于保存混响值
复制代码
还不知道会不会有问题,先写着,出错再改。。。再来看数码管显示控制。一提到 51 控制数码管,第一反应就是查表。定义显示表并不是容易的事,费时费力,好在我有先见之明,很早前就写了51LED 代码生成器。。。对照图中接法逐一设置端口与笔段对应关系,注意,由于采用了共阳接法(所有笔段都是低电平点亮),因此要勾选“反相”复选钮。设置好了,点“常用字符集”按钮,生成了 0~F 共 16 个数字和一个“-”,再点一下“生成源码”按钮,码表生成好了。。。
uchar code table[17]={0x03,
? ? ? ? ? ? ? ? 0xcf,0x25,0x85,0xc9,0x91,
? ? ? ? ? ? ? ? 0x11,0xc7,0x01,0x81,0x41,
? ? ? ? ? ? ? ? 0x19,0x33,0x0d,0x31,0x71,
? ? ? ? ? ? ? ? 0xfd};
复制代码
[待续][ 本帖最后由 DreamonII 于 2008-12-1 16:43 编辑 ] LED_CODE.PNG (14.49 KB)
下载次数:5
2008-12-1 13:50
再看看怎么查表显示。。。
// 在 LED 上显示数字
void Display(uchar ch)
{
? ? LED = table[ch] | 0x01;??// 查表显示。保持 P1.0 为高,以读取键值
}
复制代码
什么???? 就这么简单???是的啊。。。 不然还能怎么样呢???IIC操作参见/viewthread.php?tid=75943extra=page%3D4我的程序中写的有错误,不更正了。。。[未完待续]再来看看我们伟大的主要功能:混响时间控制。。。
// 向 M65831 发送控制信息
void DelayCtrl(uchar val)
{
? ? uchar temp;
? ? temp = CTRL 0x0f;? ? // 保存非控制信息,并清除控制位
? ? temp |= (val 4);? ? // 合并控制数据
? ? CTRL = temp;? ?? ?? ???// 这就完了。。。
}
复制代码
好象还差点什么。。。。哦,对了,键“盘”。。。就两个键,这事好办了。。。放在主函数 main() 里查
您可能关注的文档
- 济胜知识体系1304操作过滤的使用.doc
- 浙大版概率论与数理统计答案第九章.doc
- 浙大计算机学院科研团队情况介绍表陈纯EAGLE实验室.doc
- 浙教版七年级上数学第一章全套教案.doc
- 浙江会计电算化考试题2.doc
- 浙江省2006年10月高等教育自学考试天然药物化学及答案.doc
- 浙江省2011年1月高等教育自学考试天然药物化学试题课程代码10119.doc
- 浙江省宁波市20132014学年高二下学期期末考试地理试卷.doc
- 浙江省宁波效实中学20122013学年高二下学期期末考试试卷.doc
- 浙江省宁波市20132014学年高二下学期期末考试地理试题Word版含答案.doc
- 北师大版小学数学三年级上册《寄书》教学设计.docx
- 统编版(部编版)语文二年级上册《雪孩子》教学设计.docx
- 统编版(部编版)语文二年级上册《八角楼上》教学设计.docx
- 北师大版小学数学三年级上册《长方形周长》教学设计.docx
- 北师大版小学数学三年级上册《丰收了》教学设计.docx
- 统编版(部编版)语文二年级上册《夜宿山寺》教学设计.docx
- 统编版(部编版)语文二年级上册《风娃娃》教学设计.docx
- 统编版(部编版)语文二年级上册《朱德的扁担》教学设计.docx
- 统编版(部编版)语文二年级上册《难忘的泼水节》教学设计.docx
- 统编版(部编版)语文二年级上册《纸船和风筝》教学设计.docx
文档评论(0)