您的位置 首页 设计

单片机点亮数码管程序设计解析

本站为您提供的单片机点亮数码管程序设计解析,一个数码管有八段:A,B,C,D,E,F ,G,H即由八个发光二极管组成;发光二极管导通的方向是一定的(导通电压一般取为1.7V),这八个发光二极管的公共端有两种:可以分别接+5V(即为共阳极数码管)或接地(即为共阴极数码管)

  一个数码管有八段:A,B,C,D,E,F ,G,H即由八个发光二极管组成;发光二极管导通的方向是必定的(导通电压一般取为1.7V),这八个发光二极管的公共端有两种:能够别离接+5V(即为共阳极数码管)或接地(即为共阴极数码管)

  共阳极: 位选为高电平(即1)选中数码管, 各段选为低电平(即0接地时)选中各数码段,

  共阴极: 位选为低电平(即0)选中数码管, 各段选为高电平(即1接+5V时)选中各数码段。

  单片机点亮数码管程序规划解析

  1位数码显现数字其实便是这8个发光二极管,哪个亮哪个不亮,然后到达显现数字的作用,亮和不亮无非便是0或1。以共阴极为例。

  数码管的段顺次从低到高如图中的a,b,c,d,e,f,g,h(h是小数点),假如要显现数字1,即b,c亮,其他都不亮,对应的二进制数字为:00000110,转换为16进制为0x06。即段码为0X06时,这个数码管就能显现数字1了。以此类推就能够得出1-9的断码了。共阳极的原理也是如此,对共阴极的段码取反即可。

  8位数码管能够理解为8个1位数码管组成的,这就涉及到位码,你能够理解为方位,像第一位数码管,第二位数码管这样。以共阴极为例。位选为低电平(即0)时选中该数码管。

  比方你有1个8八位数码管,你只想让第1、2、3、位数码管显现亮起来,那么即选中1,2,3,其他均不选,二进制数字为11111000,转换为16进制为0XF8,只需设置位码为0xF8即可到达这个作用了,其他也是相同的,共阳极取反即可。

  数码管结构及作业原理,段码计算方法

  单片机点亮数码管程序规划解析

  段码计算方法:理论上,八个笔段能够显现128种不同的字符,扣除其间没有意义的组合状况后,七段LED数码管能够显现的字符如表所示。相应的其它字符也可推算出来。

  单片机点亮数码管程序规划解析

  单片机点亮数码管

  单片机点亮数码管程序规划解析

  根据上图规划显现驱动函数

  #include 《STC89.H》 //延时程序代码

  void delay_ms(unsigned int Cnt) {

  unsigned int t; while(Cnt–) { t=100; while(–t); } }

  //主程序代码

  void main()

  { unsigned char i;

  unsigned char code LED[16]= { 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,

  0x39,0x5e,0x79,0x71, };

  while(1) { P1=0xfe; for(i=1;i《=6;i++) { P0=LED[i];

  delay_ms(400);

  P1=(P1《《1)|0x01;

  }

  }

  }

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ziliao/sheji/56932.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部