网站大量收购独家精品文档,联系QQ:2885784924

C8051F020硬件电路设计.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C8051F020硬件电路设计

C8051F020硬件电路设计 一直觉得自己设计的C8051F020电路板的过程比较凌乱,想找个时间来总结下,所以就有了这篇文章。其实这个电路板的功能很简单,主要就是板上设计了LCD12864、LCD1602以及键盘的接口,但是在设计过程中出现了很多问题,现在来做个总结。首先来个电路板的照片如图1所示。电路板所以的IO口都用牛角座引出,方便连接。 图1 系统板实物图片 1、关于ADC的设计。 去年在研究C8051F020片内的ADC0的时候发现一个奇怪的问题,每当采采集电压达到3V左右的时候采集的数字量就已经达到了最大值4095(参考电压接的是3.3v),即使电压再升高,比如达到3.2V,采集的电压的数字量始终是4095(12位的ADC),当时想当然的认为是器件的非线性问题,但是官方给出的数据是转换误差为:±1LSB,当时就一直怀疑芯片给的数据有问题。为了验证是否是非线性问题,于是就自己做测试,采集到的数据如图2所示。 图2 ADC0测试曲线 从图2中看到器件在0~3 V左右的时候采集的数据线性是非常好的,只是在达到3 V以后数据始终是4095。这到底是什么问题呢,当时由于时间紧,没有仔细的读数据手册,只是在程序中把参考电压的值改为3.1V(测试的时候3.1V达到极限),这样程序处理也是没有问题的。 现在又要从新设计这个板子,由于时间比较充裕,自己就发誓一定要找到原因。首先排除的是器件的非线性问题,这个从图2中就已经证实了。那么是数据手册给的数据有问题么?虽然有这个怀疑,但是想来数据手册给的数据应该是没问题的,那么估计是没有仔细了解数据手册的内容,于是乎就仔细的研读了数据手册。在一个叫电压基准的电气特性的表格中找到了答案,如图3所示。 图3 电压基准的电气特性 从图3中看到外部基准电压的范围为1~AV+-0.3V,这里的AV+为3.3V,也就是说外部输入的参考电压必须比输入给ADC的电源电压小0.3V。这确实让我感到欣喜与震惊。欣喜的是找到了问题,震惊的是以前用过的ADC参考电压和电源电压一般都是相同的(也可能是自己见识少了吧,呵呵)。 找到问题后,解决起来就简单了。在单片机外部设计一个小于3.1V的参考电压电路就行了。其实设计参考电压一般有两种方案,采用专用稳压IC和用稳压管设计稳压电路。当时在网上找来找去没找到3.1V和3.0V的稳压IC,没办法,就用稳压管设计吧,由于以前用过TL431,设计起来也蛮方便的,精度的话普通的应用还是可以满足的。 图4 TL431设计图 图4电路中设计了三个接线柱,主要是为了参考电压也可以选择芯片内部产生的2.4V的电压。具体参数设计如下:设计的输出稳压电压为3.0V,那么电阻R17上的压降为2V,查询数据手册,TL431工作的最大需要电流为1mA,最小电流为0.4mA,那么R17的阻值范围为2K~5K,实际电路中R18、R19以及芯片还需要一定的电流,最后确定的R17的值还需要修正;先来看看R18,R19的设计,由于R19和R18的压降是确定的(R19为2.5V,R18为0.5V),为了使电路耗电最小,电阻的值应该越大越好,但是电阻越大越容易受到干扰,这里取R19的值为10K,那么R18的值就可计算得到为2K,这时候R18和R19消耗的电流为0.25mA;芯片的电流官方给的数据是1uA,所以这个电流可以忽略,那么现在可以得到该稳压电路需要的提供的电流范围为0.65mA~1.25mA,那么R17的取值范围为1.6K~3K,电路中取的值为2K。 2、C8051F020单片机IO口深入分析 C8051F020有八个IO端口,每个端口有八位,可分为两组:低四个端口P0~P3和高四个端口P4~P7。八个端口的结构都是一样的,不同之处为:高端口的输出形式是统一设定的,由P74OUT寄存器统一配置。当P74OUT配置为0xFF时,为推挽输出形式;当P74OUT配置为0x00时,为漏极开路输出。而且高端口不能位寻址,这个特点给编程带来了很多不便,但是通过电路的设计是可以克服的,下面会具体谈到。低端口则由相对应的PXMDOUT(X的值为0、1、2、3),而且可以单独配置端口的每一个位的输出形式。低端口是可以位寻址的。端口的电路框图如图5所示。 图5 I/O单元功能框图 如图5所示的电路结构框图中,配置为推挽输出时,当端口输出为“1”时,MOS管1打开,端口引脚电压为VDD;当端口输出为“0”时,MOS管1关闭,MOS管2打开,端口引脚输出为DGND。配置为漏极开路时,当端口输出为“1”时,MOS管1和MOS管2关闭,端口引脚输出为高阻态;当端口输出为“0”时,端口引脚输出为DGND。不管端口配置为什么输出形式,只要读取端口寄存器,都将返回端口的电平值。但是,当配置为推挽输出时,引脚端口电压是确定的“1”或“0

文档评论(0)

shenlan118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档