打印

八段显示码发生器(v1.0)

[复制链接]
2768|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
52mcu|  楼主 | 2009-9-25 21:54 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 52mcu 于 2009-9-25 22:14 编辑

八段显示码发生器(v1.0)
任意的段位驱动,任意的数码管字符,完整的字符集,自动代码生成,驱动数码管/段式液晶好帮手!

ledDecoder.JPG (108.49 KB )

ledDecoder.JPG

LEDDecoder.rar

443.1 KB

评分
参与人数 1威望 +6 收起 理由
程序匠人 + 6

相关帖子

来自 2楼
acmilann| | 2009-9-25 22:36 | 只看该作者
#define                LNumb_a                BIT7
#define                LNumb_b                BIT6
#define                LNumb_c                BIT5
#define                LNumb_d                BIT4
#define                LNumb_e                BIT0
#define                LNumb_f                BIT2
#define                LNumb_g                BIT1
#define                LNumb_x                BIT3

static char code LCD_NNumber[18] =
{
        LNumb_a+LNumb_b+LNumb_c+LNumb_d+LNumb_e+LNumb_f,                        // 0
        LNumb_b+LNumb_c,                                                                                        // 1
        LNumb_a+LNumb_b+LNumb_d+LNumb_e+LNumb_g,                                        // 2
        LNumb_a+LNumb_b+LNumb_c+LNumb_d+LNumb_g,                                        // 3
        LNumb_b+LNumb_c+LNumb_f+LNumb_g,                                                        // 4
        LNumb_a+LNumb_c+LNumb_d+LNumb_f+LNumb_g,                                        // 5
        LNumb_a+LNumb_c+LNumb_d+LNumb_e+LNumb_f+LNumb_g,                        // 6
        LNumb_a+LNumb_b+LNumb_c,                                                                        // 7
        LNumb_a+LNumb_b+LNumb_c+LNumb_d+LNumb_e+LNumb_f+LNumb_g,        // 8
        LNumb_a+LNumb_b+LNumb_c+LNumb_d+LNumb_f+LNumb_g,                        // 9
        LNumb_a+LNumb_b+LNumb_c+LNumb_e+LNumb_f+LNumb_g,                        // a
        LNumb_c+LNumb_d+LNumb_e+LNumb_f+LNumb_g,                                        // b
        LNumb_a+LNumb_d+LNumb_e+LNumb_f,                                                        // c
        LNumb_b+LNumb_c+LNumb_d+LNumb_e+LNumb_g,                                        // d
        LNumb_a+LNumb_d+LNumb_e+LNumb_f+LNumb_g,                                        // e
        LNumb_a+LNumb_e+LNumb_f+LNumb_g,                                                        // f
    LNumb_f+LNumb_e+LNumb_d,                                    // L
    LNumb_e+LNumb_g                                                   // r
};

使用特权

评论回复
板凳
52mcu|  楼主 | 2009-9-25 22:44 | 只看该作者
BIT7 BIT6 。。。。BIT0  是如何定义的

使用特权

评论回复
地板
eric.tang| | 2009-9-25 23:54 | 只看该作者
收藏一下!

使用特权

评论回复
5
acmilann| | 2009-9-25 23:58 | 只看该作者
#define                BIT0                0x01
#define                BIT1                0x02
#define                BIT2                0x04
#define                BIT3                0x08
#define                BIT4                0x10
#define                BIT5                0x20
#define                BIT6                0x40
#define                BIT7                0x80

使用特权

评论回复
6
红金龙吸味| | 2009-9-26 00:27 | 只看该作者
不错,谢谢。

使用特权

评论回复
7
ZRL700424| | 2009-9-26 08:28 | 只看该作者
本帖最后由 ZRL700424 于 2009-9-26 08:29 编辑

偶这也有一个

单片机工具.rar

24.07 KB

使用特权

评论回复
8
ningling_21| | 2009-9-26 09:32 | 只看该作者
不错的小工具

使用特权

评论回复
9
hotpower| | 2009-9-26 10:55 | 只看该作者
没这个必要,用2楼的宏定义是不错的想法。

使用特权

评论回复
10
gfs0521| | 2009-9-26 16:22 | 只看该作者
看似不错,下载收藏

使用特权

评论回复
11
52mcu|  楼主 | 2009-10-9 21:59 | 只看该作者
本帖最后由 52mcu 于 2009-10-9 22:10 编辑

为更加易于使用 最近对“八段显示码发生器(v1.0)” 升级至版本(v1.01)
改进如下:
1、扩充了默认的字符集 使之包含全亮符(ON)和全灭符(OFF)
2、加入了非数字字符的索引。使得可以用如下代码方便的显示数字和非数字字符
  //显示数字字符‘4’
  POART = CharCode['4'-0x30]
  //显示非数字字符‘A’
  POART = CharCode[GetChIndex('A')]

3、修正了一个内部变量bug

4、八段显示码发生器(v1.01)的输出结果如下:


typedef struct
{
  char     Character;
  unsigned char Index;
}TCharIndex;
  
  
//示例代码,即插即用 sample code
//#define LENGTH(a) (sizeof(a)/sizeof((a)[0]))
//查找非数字字符在段码值数组中的索引
unsigned char GetChIndex(char Character)
{  
    unsigned char i;
    for(i=0;i<LENGTH(CharIndex);i++)  {
       if(Character == CharIndex.Character)
            return CharIndex.Index;
    }
    return LENGTH(CharCode)-1;
}
//显示数字字符‘4’
POART = CharCode['4'-0x30]
//显示非数字字符‘A’
POART = CharCode[GetChIndex('A')]
  
  
//D7 D6 D5 D4 D3 D2 D1 D0
//A  B  C  D  E  F  G  DP  LED段码值数组 (共阴高电平点亮)
                                  //0    1    2    3    4    5    6    7    8    9   
unsigned char  const  CharCode[]={0xFC,0x60,0xDA,0xF2,0x66,0xB6,0xBE,0xE4,0xFE,0xF6
                                  //A   b    C    d    E    F    g    H    i    J   
                                 ,0xEE,0x3E,0x9C,0x7A,0x9E,0x8E,0xF6,0x6E,0x08,0x78
                                  //L   o    p    q    r    t    U    v    y    c   
                                 ,0x1C,0x3A,0xCE,0xE6,0x0A,0x22,0x7C,0x38,0x4E,0x1A
                                  //h   T    -    _    .    ON    OFF   
                                 ,0x2E,0x8C,0x02,0x10,0x01,0xFF,0x00}
TCharIndex const CharIndex[] = {{'A',10},{'b',11},{'C',12},{'d',13},{'E',14},{'F',15},{'g',16},{'H',17},{'i',18},{'J',19},{'L',20},{'o',21},{'p',22},{'q',23},{'r',24},{'t',25},{'U',26},{'v',27},{'y',28},{'c',29},{'h',30},{'T',31},{'-',32},{'_',33},{'.',34}}

LEDDecoder.rar

444.41 KB

使用特权

评论回复
12
taoest| | 2009-10-10 12:50 | 只看该作者
能用宏解决的,就不要单独搞个工具了。多麻烦。

使用特权

评论回复
13
Mindist| | 2009-10-15 14:43 | 只看该作者
好贴顶起~~~

使用特权

评论回复
14
明月小厨| | 2013-10-11 19:48 | 只看该作者
怎么下不了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

157

主题

292

帖子

0

粉丝