数码管驱动电路.doc

上传人:hw****26 文档编号:3529196 上传时间:2019-06-02 格式:DOC 页数:8 大小:435KB
下载 相关 举报
数码管驱动电路.doc_第1页
第1页 / 共8页
数码管驱动电路.doc_第2页
第2页 / 共8页
数码管驱动电路.doc_第3页
第3页 / 共8页
数码管驱动电路.doc_第4页
第4页 / 共8页
数码管驱动电路.doc_第5页
第5页 / 共8页
点击查看更多>>
资源描述

1、数码管的使用方法与发光二极管没什么区别,只是把七或八只发光二极管组合在一个模件上组成了个 8 字和小数点,用以显示数字。为了减少管脚,把各个发光管的其中同一个极接在一起作为共用点,因此就产生了共阳极和共阴极数码之说。共阳管就是把各个发光管的正极接在一起,而共阴管就刚好相反。见下图:一般来说大部分的逻辑 IC 的吸收电流要强于输出电流。因此,大家都爱使用共阴极的数码管,因为可选的 IC多些。很可惜,我的这组数码管是共阳的,因此公共端我打算用三级管来驱动。我的最小系统板:我用最常用的 S9012,首先我得计划好电路方式,就采用最常用的动态扫描显示。先搭建最简电路,调试出需采用元件的参数。先不接上图

2、的 R2 和 74HC244,将数码管一个段直接接地。调节 R1,测得 S9012 基极电流为 0.21mA 时集电极也就是数码管上已有 40mA,说明放大倍数足够了。这时接上 R2 和 74HC244,调节 R2 使数码管电流控制在 15mA,这样当 8 个段一起点亮时三极管上得通过 120mA 的电流。而基极上需要 0.63mA,为了减小三极管的负荷应使三极管过饱和, ,调节 R1 使基极电流为 2mA,此时测得集电极和漏极之间的电压约 0.1V。好!此时 R1 为 2K。R2 为 240 欧姆。确定。接下来就是确定电路。电路的接口与 AT89S51 间有三组接口:段码、位码和电源。为了让

3、 AT89S51 独立出来这三级接口都采用插针做接口,用排线自由连接到 AT89S51 的 P1-P3 口,电源用短路帽连接,完成后的板子见下图反面:说明:然后就是写程序。先写个查询方式的吧!/六位管码管在以 0.3 秒的间隔在闪烁,这是采用查询方式的,比较占 CUP 资源/*定义管脚:P2_0-上横 a P3_0-个位P2_1-右上竖 b P3_1-十位P2_2-右下竖 c P3_2-百位P2_3- 下横 d P3_3-千位P2_4-左下竖 e P3_4-万位P2_5-左上竖 f P3_5-十万位P2_6-中间横 gP2_7-小数点 H*/# include typedef unsigned

4、 char uchar;uchar code bit_num=0xfe,0xfd,0xfb,0xf7,0xef,0xdf;/位码值表:0,1,2,3,4,5uchar code meg_val=0x03,0x9f,0x25,0x0d,0x99,0x49;/段码值表:0,1,2,3,4,5uchar code hello=0x03,0xe3,0xe3,0x61,0x91,0xff; /HELLOuchar code beybey=0x89,0x61,0xc1,0x89,0x61,0xc1;/beybeyuchar code ab6789=0xc1,0x11,0x09,0x01,0x1f,0x41

5、;/ab6789void delay(int n);void main(void)uchar i,m;P2=0xff; /先将段码关闭P3=0xff; /将位码关闭delay(20);/等待一会while(1)for (m=30;m0;m-) /显示 30 次约 0.3 秒for(i=0;i0;k-);=当我插把程序写入片子,插上电运行时,是乱码。你猜怎么回事?原来那个 P2 口方向是反的,您注意过没有,在 AT89S51 管脚排列上,P0-P1 和 P3 都是上方为 PX_0。而唯独 P2 口管脚排列是下方为 P2_0。方向则好是反的。既然反了,我就把段码表重写一下。再试,一切正常。在这里我

6、说一下段码的排列,好多人问数码管段码是如何排列的,我也在网上查了,好像没有什么标准的排法,随自己的接法而定,这也是导致为什么在网上下载的一些数码管程序在自己的板子上不能正常显示的原因。就普遍而言我最上面的那张图示的标法最多,在上面程序里原打算也是 P2_0 对应段码 a(也就是上面的横) 。一直到 P2_7 对应段为 h(就是小数点)。结果哪知道 P2 口刚好是反的。这样一来也就是倒过来了,P2_0 对应段h(小数点了) 。例如我原先定义的数码管显示“2”段码为 10100100B 的,一接反了就不再是“2”了。而要想再显示“2”那就把段码的高低位倒过来。改为 00100101B 就 OK 了

7、。下面再写个用中断来显示的:/这是采用中断方式的,也是带闪烁的。/*定义管脚:P2_0-小数点 P3_0-个位 P2_1-中横 P3_1-十位P2_2-左上竖 P3_2-百位P2_3-左下竖 P3_3-千位P2_4-下横 P3_4-万位P2_5-右下竖 P3_5-十万位P2_6-右上竖P2_7-上横*/# include typedef unsigned char uchar;uchar code bit_num=0xfe,0xfd,0xfb,0xf7,0xef,0xdf;/位码:0,1,2,3,4,5uchar code meg_val=0x49,0x99,0x0d,0x25,0x9f,0x

8、03;/段码:0,1,2,3,4,5uchar i,aa; /定义全局变量bit fg; /定义一个亮起和熄灭标志void timer0(void) interrupt 1 using 1 /中断程序if (fg) /当 fg 为 1 时点亮 6 位数码管 P2=0xff;if (i=6)i=0;elseP3=bit_numi; /输出位码到 P3 口P2=meg_vali; /输出段码到 P2 口i+;else /当 fg 为 0 时熄灭数码管if(aa=0)P3=0xff;P2=0xff;aa+;if (aa=254) /当 aa 值累加至 254 时 fg 标志翻转。fg=fg; aa=

9、0;TH0=0xf8; /重装定时器初值,2ms,值为 65536-2000TL0=0x30;void main(void)P2=0xff; /先将段码关闭P3=0xff; /将位码关闭TMOD=0x01;/设置 T0 为模式 1TH0=0xf8; /装入计数初值高位TL0=0x30; /装入计数初值低位EA=1; /总充许ET0=1; /T0 充许fg=1; /将亮、灭标志设置为亮TR0=1; /启动中断while(1);OK!类别:c51 单片机 | | 添加到搜藏 | 分享到 i 贴吧 | 浏览(10344) | 评论 (52) 上一 21txz001 2008-11-01 10:56

10、| 回复 回答 gsping2000: 你说的很对,在我们用 S51 直接驱动发光管时,是得用共阳极的。但这只是小功率实验性的使用,在成品化使用时一般数码管的公共端(也就是位码)不是由三极管来驱动而是由 IC 来直接驱动,而大部分的数码管驱动 IC 也是通过吸收电流来驱动的,如常用的 ULN2003,它的驱动电流为 200mA。所以成品化使用时,用共阴数码管的较多。这就是我说的用共阴极数码管可选的 IC 较多。 24txz001 2008-11-08 12:29 | 回复 回答 an_yue: 74HC244 的作用就是增大段码的输出功率,吸收更大的电流,S51 的 P 口一般不超过 15mA

11、,而 74HC244 可吸收20mA。其实这个动态数码管目前每个段码通过 20mA 的电流还是有点暗呢。 28gsping2000 2009-01-14 21:47 | 回复 ULN2003 搜索到的基本是驱动继电器或者电机。已知 ULN2003 是接共阴数码管的位选,利用的是吸入电流。但是段选还是需要上拉电阻吗?那实际不是有些“浪费电”?但是用三极管驱动共阳的就避免了“浪费电”。我实在是混乱了,还请明示。 控 制 电 路 本 系 统 完 成 的 控 制 有 压 袋 、 推 包 、 喂 料 、 粗 流 下 料 等 , 分 别 由 单 片 机 双 向 I/O端 口 的 RC0、 RC1、 RC2

12、 和 RC3 输 出 控 制 。 单 片 机 输 出 的 控 制 信 号 经 过 三 极 管 放大 、 光 耦 隔 离 、 又 一 级 三 极 管 放 大 , 分 别 驱 动 控 制 继 电 器 K1、 K2、 K3 和K4, 使 其 按 照 控 制 的 要 求 通 电 或 断 电 , 继 而 产 生 压 袋 、 粗 流 下 料 、 喂 料 、 推 包 等 相应 的 控 制 动 作 ; 同 时 , 在 继 电 器 开 关 回 路 中 , 接 有 发 光 二 极 管 , 用 以 显 示 控 制 状 态 。此 控 制 电 路 中 的 光 耦 隔 离 , 增 加 了 系 统 的 抗 干 扰 性 , 也 起 到 了 保 护 作 用 。 单 片 机 的控 制 电 路 如 图 5 所 示 。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 实用文档资料库 > 策划方案

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。