• C51 静态数码管 个人笔记


    显示器介绍

    单片机系统中常用的显示器有:

    • LED(Light Emitting Diode):发光二极管显示器
    • LCD(Liquid Crystal Display)液晶显示器
    • TFT 液晶显示器等。

    LED显示器有两种显示结构:

    • 段显示(7段、米字型等)
    • 点阵显示(5×8、8×8点阵等)

    我们这里用八段led数码管,静态数码管
    LED数码管根据LED的不同接法可以分为2类

    • 共阴
    • 共阳

    共阴共阳电路图

    显示数字和字母表

    共阳

    0 1 2 3 4 5 6 7 8 9 A B C D E F 无显示
    0xC0 0xF9 0xA4 0xB0 0x99 0x92 0x82 0xF8 0x80 0x90 0x88 0x83 0xC6 0xA1 0x86 0x8E 0xFF

    共阴

    0 1 2 3 4 5 6 7 8 9 A B C D E F 无显示
    0x3f 0x06 0x5b 0x4f 0x66 0x6d 0x7d 0x07 0x7f 0x6f 0x77 0x7c 0x39 0x5e 0x79 0x71 0x00

    例如共阴的数字1 :
    0000 0110
    hgfe dcba

    代码

    #include <reg51.h>
    typedef unsigned int u16;		 
    typedef unsigned char u8;
    #define delaytime 50000000
    #define led P0
     
    //这里用的静态数码管是共阳的
    
     //RAM 占用少,存在flash 里面:code
     //共阴的表,main中取反用
    u8 code ledSegment  [16] = {	0x3f,	0x06,	0x5b,	0x4f,	0x66,	0x6d,
    						0x7d,	0x07,	0x7f,	0x6f,	0x77,
    						0x7c,	0x39,	0x5e,	0x79,	0x71};
    void delay(u16 i)
    {
    	while(i--);
    }
    
    
    void main(void)
    {
    	int i=0;
    	while(1)
    	{
    	 	led = ~ledSegment[i];
    		delay(delaytime);
    		i = (i+1)%16;
    	}
    }
    
  • 相关阅读:
    5.不用拷贝的对象可以用ref
    4.bind绑定
    3.bind与仿函数以及普通函数
    35.自己实现vector模板库myvector
    2.boost遍历数组容器
    1.boost库的安装
    34.share_ptr智能指针共享内存,引用计数
    33.unique_ptr独享内存智能指针
    32.智能指针auto_ptr
    131.typename在嵌套类中的作用
  • 原文地址:https://www.cnblogs.com/YuQiao0303/p/9907614.html
Copyright © 2020-2023  润新知