当前位置: 首页 > news >正文

海南七星彩网站开发小生互联免费主机

海南七星彩网站开发,小生互联免费主机,深圳网站制作公司报价单,wordpress 轻博客LED数码管:数码管是一种简单、廉价的显示器,是由多个发光二极管封装在一起组成"8"字器件 51单片机是共阴极连接 74HC245这个芯片有什么作用呢?解:这个芯片被称之为双向数据缓冲器这个芯片的作用,用来进行数据缓冲(提高驱…

LED数码管:数码管是一种简单、廉价的显示器,是由多个发光二极管封装在一起组成"8"字器件

请添加图片描述

请添加图片描述

51单片机是共阴极连接

请添加图片描述

请添加图片描述

请添加图片描述

74HC245这个芯片有什么作用呢?解:这个芯片被称之为双向数据缓冲器这个芯片的作用,用来进行数据缓冲(提高驱动能力)的。那么缓冲这个是什么意思?

假设我们给上二进制,就从A0到达B0这是连接的关系,DIR如果接的是高电平(1)那么就能把左边的数据接到我们右边的数据上。电容(100nf)在这里的作用是:芯片的供电更加稳定叫做电源滤波

静态数码管显示:

确定阴码(选择第几个数字):根据译码器的CBA表示

确定阳码(具体哪个段亮):通过abcdefg(dp)组合出01序列,经过双向数据缓冲器后高位对高位(逆序)

选择第六个数字:
LED3 -> Y2 -> 010 -> P2_4=0;P2_3=1;P2_2=0;
显示"6":
abcdefg(dp) -> 10111110 -逆序-> 0111 1101 -> P0=0x7d;
#include <REGX52.H>unsigned char NixieTable[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};void Nixie(unsigned char location, Number){switch(location){case 1: P2_4 = 1;P2_3 = 1;P2_2 = 1;break;case 2: P2_4 = 1;P2_3 = 1;P2_2 = 0;break;case 3: P2_4 = 1;P2_3 = 0;P2_2 = 1;break;case 4: P2_4 = 1;P2_3 = 0;P2_2 = 0;break;case 5: P2_4 = 0;P2_3 = 1;P2_2 = 1;break;case 6: P2_4 = 0;P2_3 = 1;P2_2 = 0;break;case 7: P2_4 = 0;P2_3 = 0;P2_2 = 1;break;case 8: P2_4 = 0;P2_3 = 0;P2_2 = 0;break;}P0 = NixieTable[Number];
}
void main(){Nixie(2, 2);while(1){}
}

动态数码管显示:

消影:

当我们要显示数码管的时候首先要:位选 段选、还要显示的话就还要 位选、段选,循环。

那么这样就会出现问题:首先是选择"位选端"给上低电平,然后是段选给上数据,然后给上下一位位选的数据。但是:由于我们单片机的速度是很快的,在段选到下一个位选之间就会出现问题。我们选中下一位这个时刻很短的时间内,上一个数据就会串到下一个数据。因为它们是挨着一起的,我在选中下一位之后 上一位的数据自然是会直接过来的。这样就会显示出数据的串位的问题了!

那么我们应该怎么避免这个问题?那我们就需要在上一个段选端给清零,这样即使到下一位它也不会对上一位产生影响!因为以及清零了。所以在子函数上需要优化下,显示完之后我们首先要延迟1ms这个是为了能让程序更加稳定显示,并且 进行清零!

#include <REGX52.H>unsigned char NixieTable[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
void Delay(unsigned int xms)
{unsigned char i, j;i = 2;j = 239;while(xms--){do{while (--j);} while (--i);}
}void Nixie(unsigned char location, Number, short dp){switch(location){case 1: P2_4 = 1;P2_3 = 1;P2_2 = 1;break;case 2: P2_4 = 1;P2_3 = 1;P2_2 = 0;break;case 3: P2_4 = 1;P2_3 = 0;P2_2 = 1;break;case 4: P2_4 = 1;P2_3 = 0;P2_2 = 0;break;case 5: P2_4 = 0;P2_3 = 1;P2_2 = 1;break;case 6: P2_4 = 0;P2_3 = 1;P2_2 = 0;break;case 7: P2_4 = 0;P2_3 = 0;P2_2 = 1;break;case 8: P2_4 = 0;P2_3 = 0;P2_2 = 0;break;}P0 = dp ? NixieTable[Number] | 0x80 : NixieTable[Number]; // 可以显示小数点Delay(1);P0 = 0;
}void main(){while(1){Nixie(1, 1, 1);Nixie(2, 2, 0);Nixie(3, 3, 1);Nixie(4, 4, 0);}
}

数码管驱动方式:

  • 单片机直接扫描:硬件设备简单,但会耗费大量的单片机CPU时间
  • 专用驱动芯片:内部自带显存、扫描电路,单片机只需告诉她显示什么即可(TM1640)

静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个的单片机I/O口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。

  • 静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多。

数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是哪个数码管会显示出字形,取决于单片机对位选通COM端电路的控制。

所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的。

流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的。

  • 动态驱动的优点是能够节省大量的I/O端口,而且功耗更低。缺点是花费cpu占用时间,编程较为复杂。
http://www.yayakq.cn/news/862140/

相关文章:

  • 国土局网站建设经验如何做淘宝客个人网站
  • 网站开发需要的技术人才网站不用备案
  • 《教师网站建设与应用管理制度》济南行知网站建设有限公司怎么样
  • 哪个网站是做韩国化妆品正品专业网吧装修设计公司
  • 云主机网站wordpress中标签作用
  • 北京网站建设 网站制作仿站小工具wordpress
  • 国外优秀企业网站百度seo新规则
  • 广州h5网站建设公司专业网站的建设设行吗
  • 企业网站排名软件度智能优化昆明专门做网站
  • 龙华网站建设首页地址ps怎么做网站模板
  • 建的网站打开很慢win10 wordpress安装教程视频教程
  • 网站qq安全认证网上最畅销的10种商品
  • 清远网站制作公司垡头网站建设
  • 企业网站推广方案设计毕业设计网站开发中怎么设置快捷键
  • 单位网站建设的重要性企业网站外包建设
  • wordpress类似网站软件工程师证书有用吗
  • 温州做网站软件佛山专业网站建设团队
  • 千华网鞍山门户网站软件系统设计流程
  • 建设中心小学网站长春个人网站制作公司
  • 怎么修改网站首页logo手机微信怎么创建公众号
  • 网站风格设计怎么写纯代码wordpress底部悬浮菜单
  • 成都项目网站建设有什么做动画的网站
  • 直播是网站怎么做广告创意设计培训
  • 网站建设解密郑州网站优化方案
  • 黄山家居网站建设怎么样三网一体网站建设
  • node.js网站开发框架app门户网站
  • 餐饮型网站开发建筑素材网站
  • 企业网站文化建设北京综合网站建设报价
  • 专业设计网站公司strange wordpress主题
  • 泉州关键词网站排名微信小程序一键生成链接