第7章 80C51单片机常用接口电路设计.ppt

  1. 1、本文档共90页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第7章 80C51单片机常用接口电路设计 在单片机应用系统中,显示器是最常用的输出设备。常用的显示器有: 发光二极管(LED) 液晶显示器(LCD) 。 发光二极管(LED)又分为七段LED显示器(数码管)和LED点阵显示屏。 液晶显示器(LCD)又分为字符液晶与图形液晶。 7.1.1 七段LED显示器(数码管) LED的工作原理 多位LED显示问题的解决 LED的工作原理 LED的主要部分是七段发光管,分别为a、b、c、d、e、f、g。有的产品还附带有小数点DP。通过发光段的不同组合,可以显示0~9和A~F共16个字母数字。 LED可分为: (1)共阳级结构 (2)共阴极结构 共阴极LED显示器的发光二极管的阴极连在一起,通常此公共阴极接地。当某个发光二极管的阳极为高电平时,发光二极管点亮,相应的段被显示。 共阳极LED显示器的发光二极管的阳极连在一起,通常此公共阳极接正电压,当某个发光二极管的阴极接低电平时,发光二极管被点亮,相应的段被显示 。 数字到段码的译码方法 将一个4位二进制数据转换为LED的7位显示代码(段码)的方法有: 用专用芯片完成段译码的示意(共阳极) 软件译码法 ①将0~F(或0~9)对应的段码组成一个表,存在存储器中; ②查表得段码 多位LED显示问题的解决 (1)问题的提出 实际使用时,往往用几个显示管实现多位显示,如果每一个LED占用一个独立的输出端口,则占用的输出端口就很多。 (2)问题的解决方法 硬件:采用公用的驱动电路 软件:采用扫描方法 一个数据通道作为位控制,该端口输出的选择信号使某一位为高电平(共阳极)时,该位对应的LED便显示数据。 另一个数据通道输出段码,尽管所有的LED均收到了段码,但只有被位选择信号选中的那个LED才显示数据,其他并不发光。 在程序中,软件按一定频率循环输出位选择信号和对应的显示数据,利用眼睛的视觉惯性,从LED显示器上便可见到相当稳定的数字显示。 七段LED数码管实验 硬件连接情况 在实验学习板中,有8个共阴极的LED,位选信号通过P0口,再通过74HC573驱动LED。段码通过74HC595(串行输入,并行输出,节约并口)输出至LED. 实际上为了节约并口资源,P0口连接两个74HC573,另一片驱动点阵及交通灯电路。两个驱动芯片的转换通过一个波段开关控制。当开关拨到上边时,点阵驱动电路起作用,相反当拨到下边时,数码管驱动电路起作用。 实验1 在左边第一个LED上显示数字5 步骤: (1)通过74HC595送5的段码 (2)通过P0口送位选信号 include reg51.h #define uchar unsigned char sbit clk=P2^7; //595时钟信号输入管脚 sbit st =P2^6; //595锁存信号输入管脚 sbit io =P2^5; //595数据信号输入管脚 void wr595(uchar ucdat) { uchar i; clk=1; st=1; for(i=8;i0;i--) //循环八次,写一个字节 { io=ucdat0x01; //发送BIT0 位 clk=0; clk=1; //时钟上升沿 ucdat=ucdat1; //要发送的数据右移,准备发送下一位 } st=0; st=1; //锁存数据 } Void main() { while(1) { uchar k=0xb6; //5的段码 wr595(k); P0=0XFEH; } } 实验2 让8位数码管显示1、2、3、4、5、6、7、8 #include reg51.h #include intrins.h #define uchar unsigned char #define uint unsigned int #define SLED_BIT P0 //LED位选信号输入管脚 sbit clk=P2^7; //595时钟信号输入管脚 sbit st =P2^6; //595锁存信号输入管脚 sbit io =P2^5; //595数据信号输入管脚 uchar code uc7leds[]={0xfc,0x60,0xda,0xf2, 0x66,0xb6,0xbe,0xe0, 0xfe}; //定义0-8段码 uchar display_7leds[8]={1,2,3,4,5,6,7,8}; //功能:向595发送

文档评论(0)

70后老哥 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档