第四讲 单片机数码管实验.pptxVIP

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第四讲 单片机数码管实验

单片机控制数码管实验; 图1 单位数码管 图2双位数码管 图3 四位数码管 数码管是一个“日.”字型,由7 个小段和1个小数点组成,共8个发光二极管,生产商为了封装统一,一般讲单位数码管都封装10个引脚,将另外两个连在一起,作为数码管的公共端,有共阳极和共阴极之分。; 引脚 共阴极 共阳极;对于共阴极数码管,内部的8个发光二极管的引脚在数码管内部连在一起,而它们的阳极是独立的。通常设计电路时,将阴极接地。给数码管的任意一个阳极加一个高电平,对应的二极管变被点亮(二极管的两侧便有了压差)。 如果想要显示出一个8字,并且右下角的小数点也亮的话,则给8个阳极全部送高电平; 如果想让它显示0字,则除了给“g,dp”送低电平外,其他引脚全部送高电平。 共阳极数码管原理类似。;数码管内部的发光二极管亮时,需要5mA以上的电流,但不宜过大,否则会烧毁发光二极管。由于单片机的I/O口送不出如此大的电流,故数码管和单片机连接时需要加驱动电路,74HC573锁存器是一个不错的选择,其输出的电流大,接口简单。;对于只有一个数码管的电路,给不同的电平编码,便显示了不同的数字。那么对于有多个数码管的电路,如何让不同的数码管显示不同的数字呢? 如图2 、图3,是双位一体、四位一体数码管,它们内部的公共端是独立的,而负责显示什么数字的段线是全部连在一起的,独立的公共端可以控制多位一体中的哪一个数码管点亮,而连在一起的段线可以控制点亮什么数字。公共端叫“位选线”,连接在一起的段线叫“段选线”。有了这两个线,便可以控制任意数码管的任意数字。;对于多位一体的数码管,位选可独立控制,段选是连在一起的,可以通过位选选通控制哪几个数码管亮,而此时,位选选通的数码管显示的数字始终是一样的(因段选是连在一起的)。这种显示叫静态显示。; P1.0---a P1.1---b P1.2---c P1.3---d P1.4---e P1.5---f P1.6---g P1.7---dp 即,单片机P1的8个引脚,分别控制a~dp发光二极管,将某引脚置1,则对应的发光二极管亮(共阴极的原因)。;如,欲显示数字0,则g,dp灭,将对应的引脚(P1.6,P1.7)置低电平,a~dp的亮灭编码为0011 1111,即十六进制0x3F(特别注意,P1的高位对应二进制的高位)。 又如,欲显示数字1,则只有b,c亮,将对应的引脚(P1.1,P1.2)置高电平,a~dp的亮灭编码为0000 0110,即0x06。 同理,可依次推断显示数字0~9,ABCDEF的编码。; 0x3f , 0x06 , 0x5b , 0x4f , 0x66 , 0x6d , 0 1 2 3 4 5 0x7d , 0x07 , 0x7f , 0x6f , 0x77 , 0x7c , 6 7 8 9 A B 0x39 , 0x5e , 0x79 , 0x71 , 0x00 C D E F 无显示;2、位选;由上述原理图可见,P1引脚还可通过第二个锁存器控制数码管的位选,P1.0~P1.7分别控制从左到右的8个数码管。相应引脚置低电平,则将对应的数码管选通(因是共阴极,将数码管的公共端置低电平时,才是真正共阴极一致性)。 如,欲让第一个数码管亮,则让P1.0置低电平,其余引脚高电平,给位选编码为1111 1110,即十六进制0xFE。;#includereg52.h #define DataPort P1 //定义数据端口 程序中遇到DataPort 则用P1 替换 sbit LATCH1=P2^6; //定义锁存使能端口 段锁存 sbit LATCH2=P2^7; //定义锁存使能端口 位锁存 ;主函数: main() { DataPort=0xfe; //取位码 第一位数码管选通,即二进制1111 1110 LATCH2=1; //位锁存打??,放位选电流进去 LATCH2=0; //位锁存关闭 DataPort=0x7F; //取显示数据,段码 “8”共阴字符码 二进制0111 1111 LATCH1=1; //段锁存打开,放段选电流进去 LATCH1=0; //段锁存关闭,保持段选电流 } ;main() { unsigned char i=0; while(1) {

文档评论(0)

celkhn5460 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档