51单片机入门教程(3) |
您所在的位置:网站首页 › 数码管接法图解 › 51单片机入门教程(3) |
51单片机入门教程(3)——数码管显示
一、LED数码管简介二、数码管静态显示三、数码管动态显示
特别鸣谢:HFUTer-朱聪强 一、LED数码管简介LED数码管(LED Segment Displays)是由多个发光二极管封装在一起组成的器件。常见的LED数码管为“8”字型的,共计8段。每一段对应一个发光二极管。 ![]() 数码管静态显示就是无论多少位LED数码管,同时处于显示状态。 为了使数码管显示不同的符号或数字,只需要把某些段发光二极管点亮就可以了。 假设在共阴极的数码管上显示字符'0',需要将a、b、c、d、e、f置为高电平,即数码管八位输入为0011 1111,对应的16进制数为0X3F。所以我们只需要在程序中将0X3F赋值给对应的端口,如下: //假设数码管与P0端口相连接 P0 = 0X3F;//显示字符‘0’按照上述方法,显示各种字符的8段LED数码管的段码如下: 例程如下: /****************************************************************************** * 名称:单只数码管循环显示0~9 * 说明:主程序中的循环语句反复将0~9的段码送至P0口,使数字0~9循环显示 ******************************************************************************/ #include #define uchar unsigned char #define uint unsigned int //共阳数码管编码表 uchar code table1[] = {0xc0,0xf9,0xa4,0xb0, 0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83, 0xc6,0xa1,0x86,0x8e}; //共阴数码管编码表 uchar code table2[] = {0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71}; //延时 void DelayMS(uint x) { uchar t; while(x--) for(t=0;t P0 = table2[i]; if(i == 9) i = 0; DelayMS(300); } while(1); } 三、数码管动态显示如果有两位的数码管,每个数码管要显示不同的字符,那么电路该怎么搭建呢? 像这样??? |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |