找回密码
 立即注册
搜索
yeec近年来原创帖合集 本站基础知识下载汇总 yeec网站学习币充值链接 学习中心正式上线

[原创]一个51系统设计的过程(硬件篇)

[复制链接]
顶风 发表于 2005-11-7 18:27 | 显示全部楼层 |阅读模式

注册登录才能更好的浏览或提问。

您需要 登录 才可以下载或查看,没有账号?立即注册

×

受朋友之托,做一个简单的方波发生器。最初的要求很简单:在400微秒之内产生13窄总计4个脉冲,还需要一个端口接收脉冲启动的请求信号。由于原来搞过几个基于51系统的小项目,于是就打算用51来做。即使是用89C2051来完成上述功能,也会闲置大量的资源。于是我有了个想法,加入键盘,显示,掉电存储等环节――将输出频率变为可调、可设定、可显示,岂不更好。这样,这个小东西就成为一个较为完整的51系统。以此为基底,通过修改程序,可以将它变成能完成其他功能的装置,比如说:电子时钟。而且我也有了更疯狂的想法:把我做这个东西的整个过程贴到论坛上,让同行们通过这个小家伙的制作过程,对电子产品的开发有一个管中窥豹的了解,或许对日后的维修工作有所帮助。

那么现在让我们开始吧。

一.任务分析:
一个输出端口(Wave):400微秒之内产生13窄总计4个脉冲。
一个输入端口(Port):接收脉冲启动的请求信号。
4个按键:上(UP)、下(DOWN)、设置(SET)、启动(START)。
显示采用MC14489驱动57LED显示器
采用25045保存需要掉电存储的数据,并完成复位、看门狗等功能。

二.资源分配:
输入输出端口各占用1条I/O线;
4个按键占用4条I/O线;
25045占用4条I/O线;
MC14489占用3条I/O线;
以上共需要13条I/O线,89C2051总计15条I/O线,剩下两条怎么办?我将它们分配为:
一个用作蜂鸣器,一个用于设定状态的指示灯。
至此,89C2051的I/O线分配完毕。

[此贴子已经被作者于2006-1-30 1:05:00编辑过]
顶风作品 QQ:50443527 TEL:13701010924 E-Mail:leehp@sohu.com http://www.yeec.com

yeec维修网视频培训资料购买链接
BeckmanCoulter DXA系列培训资料
Ortho VITROS 系列培训资料
Ortho enGen_ThermoFisher TCA 实验室自动化系统培训资料
Roche Cobas 实验室自动化系统培训资料
Roche Cobas modular系列分析仪培训资料
Horiba-ABX Yumizen系列培训资料
DiaSorin Liaison系列培训资料
Advia2120培训资料
Inpeco-Aptio系列培训资料
Atellica Solution系列培训资料
Siemens Immunoassay系列培训资料 西门子化学发光系列
SIEMENS Advia系列培训资料 西门子生化系列
Toshiba/Abbott系列培训资料 东芝雅培生化系列
Abbott Architect 系列培训资料 雅培生化化学发光系列
ACL TOP 系列培训资料 沃芬TOP血凝系列
BeckmanCoulter Immunoassay系列培训资料 贝克曼化学发光系列
BeckmanCoulter DXH 系列培训资料 贝克曼DXH血球系列
BeckmanCoulter自动样品处理系统介绍性培训资料 贝克曼前后处理流水线系列
BeckmanCoulter AU系列培训资料 贝克曼AU生化系列
BeckmanCoulter DXC系列培训资料 贝克曼DXC生化系列
LaboSpect003/008/AS 7100/7180分析仪培训资料
Horiba-ABX系列培训资料 Horiba-ABX血球系列
Sysmex 血凝系列培训(CA/CS)
Sysmex 尿液分析系列培训(UF1000/5000/UC3500)
Sysmex 血球系列培训(KX21/POCH/XS/XT/XE)
Sysmex XN系列培训(XN-L/XN1000/XN2000/XN3000/XN9000)
Sysmex HISCL系列培训
可直接淘宝店铺购买https://yeec.taobao.com,或咨询手机/微信:13991827712,QQ:67708237
 

 楼主| 顶风 发表于 2005-11-7 18:29 | 显示全部楼层

三.芯片介绍:

MC14489:是MOTOROLA公司生产的57LED译码驱动芯片。它不需要外接驱动三极管就可以直接驱动5位共阴极LED数码显示器或25LED指示灯,也可实现共阴极LED数码显示器和LED指示灯的组合驱动。主要特性如下:

a) 具有三线串行接口(SPI,可直接与具有SPI接口的CPU相连,也可采用软件模拟SPI接口,最大串行时钟频率可达4MHz

b) 有一个8位的内部系统设置寄存器,它的内容决定芯片的工作模式。

c) 有一个24位的显示寄存器,该寄存器用于存放包括小数点段在内的显示代码。内部系统设置寄存器和显示寄存器的内容都是通过串行接口输入的。MC14489采用“位抓取”技术,在向内部系统设置寄存器和显示寄存器输送数据时不需要引导码和地址码,而是根据一次串行输入数据的字节数由内部自动确定送往哪一个寄存器。若输入的时单字节数据,将被送往系统设置寄存器;若输入的是多字节数据,将被送往显示寄存器。

d) 可以通过一个公用的外接电阻Rx来确定每一段的最大峰值电流,也可以由输入的显示代码决定全部显示段为满亮度显示或半亮度显示。

e) 通过系统设置寄存器的第0位,可设置全部显示段为全亮或全暗,上电复位后芯片自动处于全暗的低功耗方式。

f) 芯片内部具有BCD7段译码电路,可显示09AF这些16进制数,还可显示15种其他字符。

各引脚排列如图:

各引脚的功能如下:

DATA IN:串行数据输入。

CLOCK:时钟输入脚,接串行数据输入时所需的移位脉冲。

ENABLE:串行输入使能。低电平有效。

Rx:外接限流电阻。取值范围:700Ω至无穷大。当Rx700Ω,段的峰值电流约为35mA,当Rx为无穷大时,显示器全灭。

DATA OUT:串行数据输出。本处不用。

ah:各段输出驱动脚。

BANK1~BANK5:位扫描输出。是低阻抗的接地开关,每个引脚可吸收320mA电流。

VDD:电源正端。

Vss:电源地线。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
顶风作品 QQ:50443527 TEL:13701010924 E-Mail:leehp@sohu.com http://www.yeec.com
 楼主| 顶风 发表于 2005-11-7 18:32 | 显示全部楼层

X25045XICOR公司生产的带看门狗的串行EEPROM芯片。芯片包含3个功能:看门狗定时器、电压监控及串行EEPROM。是目前比较流行的单片机外围芯片。主要特性如下:

a) 具有三线串行接口(SPI,可直接与具有SPI接口的CPU相连,也可采用软件模拟SPI接口。

b) 具有时间可编程看门狗定时器,提供CPU复位信号。

c) 电源电压监控,当电源电压低于设定值后,提供CPU复位信号。

d) 具有512×8EEPROM,擦写次数超过10万次,掉电后数据保持超过100年。

各引脚排列如图:

各管脚功能如下:

SO:串行数据输出脚。

SI:串行数据输入脚。

SCK:时钟输入脚,接串行数据输入输出时所需的移位脉冲。

RESET:复位信号输出。

CS:片选脚及喂狗信号输入脚。

Vcc:电源正端。

Vss:电源地线。

上述两个芯片的详细说明请去下载厂方的DATASHEET。其他的元件电阻、电容、按键开关、接线端子、LED指示灯、LED显示器、晶振、蜂鸣器不在赘述。89C2051由于内容太多,不在这里做过多的探讨,毕竟我的小文是讲述开发过程而不是分析单片机的结构和时序。请买本51单片机的基础书籍,里面有详细的介绍。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
顶风作品 QQ:50443527 TEL:13701010924 E-Mail:leehp@sohu.com http://www.yeec.com
 楼主| 顶风 发表于 2005-11-7 18:34 | 显示全部楼层

四.电路图的绘制:
我认为电路图绘制的基本原则是美观大方,左边输入,右边输出。走线清晰,让人容易解读,相同类型的线用总线与总线接口画法画出。(我曾经见过一个比这个图还简单的电路图,没有一条总线,全用Wire线画出,整个画面就是乱糟糟的一团子线,除了设计者其他人别想看明白,估计设计者过一段时间也会看不明白了。)要记住:画出的图不只是你看的,更多的是让他人看的。

现在比较流行的电路图绘制软件是PROTEL,我画这个电路图用的是PROTEL99SE版。至于如何使用PROTEL软件,不是一句话两句话能说得清楚的,还是那句老话:买本书看看吧。画原理图的最终目的是要得到一张网络表,所以每放一个器件在图纸上都要指明器件的名称、标称值、封装形式等信息,为以后的绘制电路板提供准确充足的信息。

说起来画原理图很简单,将需要的元器件放到图纸上,然后用导线连接起来就可以了。实际上这里面还有不少学问呢。就拿放置元器件来说吧:有的人画图时不想自己画元器件,总想软件的器件库里面会有他需要的所有器件,这实际上是不可能的,每一个画电路图者都要有创建新元件的能力。看我的电路图就可以看到,里面的三个集成电路的管脚位置和器件大小都做了调整,如果都按照器件库里面的管脚排列方式来画,那么最终的图纸可能会是丑陋的。另外,PROTEL器件库里的管脚排列方式不一定就是正确的,而且不同封装的集成电路管脚排列方式有可能不同,所以一定要用集成电路厂方提供的DATASHEET来校对管脚,以免发生错误。(此图的右下方是电源及滤波电容和退藕电容。)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
顶风作品 QQ:50443527 TEL:13701010924 E-Mail:leehp@sohu.com http://www.yeec.com
 楼主| 顶风 发表于 2005-11-7 18:40 | 显示全部楼层

五.网络表的校对:

原理图画完以后,就可以用软件的Creat NetList功能生成网络表了。无论你的原理图正确与否,都会生成一张网络表,所以网络表的校对工作就显得尤其重要了。举一个例子,如果一条导线从集成电路管脚的根部引出连到其他器件上,在原理图上看似乎是连到一起的,实际上并没有告诉软件这两点具有电气连接的特性,(在网络表里可以看出这两点是不相连的)。如果使用自动布线画电路板的话,就会造成错误――你希望在电路板上这两点之间会自动连上铜箔,而实际上没有被连接。

网络表是一个有特定格式的文本文件,里面标明了每个器件的名称、标称值、封装等信息,最重要的是标明了器件管脚的互相连接情况。拿着原理图和网络表仔细校对每一个器件的每一个管脚的连接是否正确确实是一件很繁琐也很痛苦的事情,但我没有发现还有其他可以规避的方法,只能慢慢校对了。
顶风作品 QQ:50443527 TEL:13701010924 E-Mail:leehp@sohu.com http://www.yeec.com
 楼主| 顶风 发表于 2005-11-7 18:44 | 显示全部楼层

六.画板:

有的人对自动布线嗤之以鼻,我对这种看法持审慎的批评态度。如果自动布线能够完成功能,为什么要费劲吧啦地手工布线呢?本人手工画过两块并不复杂的小板,其繁琐枯燥的程度令人抓狂。况且现在的自动布线的算法已经非常先进,能自动布出很漂亮的板图。当然,对于高频电路板仍需要手工布线调整,这里面有经验的成分,但我想随着计算机技术的进步,电子工程师们终将会从繁琐的布线中解放出来而把精力更多地用于电路的结构和功能上。对于这块小板,用自动布线完全可以满足功能,我使用自动布线完成。

新建一个PCB文件,加入器件封装库,然后调入网络表,系统就会将所有的器件自动放在电路板上(通常调入网络表时总会有各式各样的错误,这时要对照着原理图仔细修改,直到没有任何错误为止――很多的时候是元器件的封装错误造成的,需要自建封装格式才能解决),如图所示:

可以看到零件零散地放到电路图上,此时需要做的工作是调整元器件的位置。这需要时间精力和耐心,不但会影响到自动布线能否布通,而且还决定你的板子最终的美观程度。PROTEL软件有自动放置器件的功能,但这个功能做出的图形通常比较丑陋,所以,这一步建议用手工排列器件,并且软件也提供了丰富的对齐的功能帮助你排出一块漂亮的板图。

将器件排列好以后,在KeepOutLayer层上用线画出电路板的最终边界(这很重要,否则自动布线不能进行,而且这也最终决定了你电路板的大小)。自动布线前的工作就全完成了。(我在四角手工放了4个焊盘,用来做以后电路板的固定螺丝的穿孔。)

另外对照原理图看看你原理图上所画的器件是否都在板图上呢,如果没有就赶紧找原因。通常,如果原理图和网络表正确,这个检查可以不做。
[此贴子已经被作者于2005-11-7 21:47:13编辑过]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
顶风作品 QQ:50443527 TEL:13701010924 E-Mail:leehp@sohu.com http://www.yeec.com
 楼主| 顶风 发表于 2005-11-7 18:47 | 显示全部楼层

七.自动布线:

元器件排列好了,就可以用软件的自动布线功能布线了。自动布线之前,要指定布线的规则:铜箔的宽度啦、拐角的形状啦、过孔的形状等等,规则之多让人头昏脑涨。幸好这个板子比较简单,没那么多麻烦事,把线宽和步距调整一下就可以了。没有表贴元件的双层板,我一般将线宽设定为12mil,步距25milVCC网路是供电网络,加宽到20mil,其他的比如说LED显示器的BANK线加宽到15mil,基本上就OK了。

然后调用Auto Route功能自动布线,计算机布通这块板子只用了几秒钟。最后需要做的工作是覆铜,就是在没有铜箔的空白处画上铜皮或铜网。对覆铜是否有必要有各式各样的看法,但我一般都覆铜,PROTEL里面也有自动覆铜的功能,并且在自动覆铜前,我选择将自动覆铜与GND网络相连。这样,最终的板图画好了。

将板图导出到一个单独的文件里,就可以送出取加工了。在电路板制作的这一周时间里,可以仔细考虑考虑程序的设计问题啦。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
顶风作品 QQ:50443527 TEL:13701010924 E-Mail:leehp@sohu.com http://www.yeec.com
郑振寰 发表于 2005-11-7 20:44 | 显示全部楼层

欢迎阿,老顶开始真正的网络基础教学了。

sio2 发表于 2005-11-7 22:51 | 显示全部楼层

佩服,值得学习,我对protel还不熟悉,因为以往我都是用刻刀加工覆铜板,觉得还挺快的,在全身心投入的情况下,标准0.1英寸的两个引脚之间还能走两条线,通过实践而且还能锻炼自己的电磁干扰方面的分析能力。。。。。。但这不适合更大规模电路的设计,手工设计也太累,看来我该学学protel了。

gerlan 发表于 2005-12-14 11:14 | 显示全部楼层

谢谢!!我在学protel99,可我电路设计不好.能学好吗?

pcxiu 发表于 2005-12-17 17:05 | 显示全部楼层
是的,上的课还不错啊,简单易懂啊。
linqr 发表于 2005-12-26 09:46 | 显示全部楼层

支持楼主。

楼主的编写程序是用汇编,还是C语言?也能不能说说程序啊?谢谢!

 楼主| 顶风 发表于 2005-12-26 18:41 | 显示全部楼层

我最初是用汇编来写程序的,但程序结构性很差,而且修改维护非常困难,过了一段日子,自己都会记不清当初写某些代码的意图了。

现在我用C51写程序,连中断服务程序都用C来写。板子早已做好,一直在我这里放着。但最近实在是太忙了,白天累得象条野狗,晚上回家也不愿意动手写程序,一直拖到现在,然大伙久等了,实在抱歉。我会尽快调整好状态把程序写完调试好的。谢谢您的关注。

顶风作品 QQ:50443527 TEL:13701010924 E-Mail:leehp@sohu.com http://www.yeec.com
王振东 发表于 2023-10-13 23:19 | 显示全部楼层
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|手机版|小黑屋|加入QQ群|注销账号|yeec维修网

GMT+8, 2024-11-21 22:36 , Processed in 0.868375 second(s), 41 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表