|
发表于 2013-12-27 15:50:55
|
显示全部楼层
用函数进行二次定义啊,将要显示的内容放到一个数组或变量中,用函数实现IO的真正更新!
例如数码管的8段定义为H FGEDCBA 有2位数码管,行选为COL1 COL2
- // h f g e d c b a
- const unsigned char code segtable[16] = {
- 0x5f,0x06,0x3b,0x2f,0x66,0x6d,0x7d,0x07,0x7f,0x6f, 0x77,0x7c,0x59,0x3e,0x79,0x71,
- };
- //
- // h f g e d c b a
- void show_l0(unsigned char aa)
- {
- //A
- if(segtable[aa]&0x01)PORTB|=(1<<0);//pb0
- else PORTB&=~(1<<0);
- //B
- if(segtable[aa]&0x02)PORTC|=(1<<0;//pc0
- else PORTC&=~(1<<0);
- //C
- if(segtable[aa]&0x04)PORTD|=(1<<0);//pd0
- else PORTD&=~(1<<0);
- //D
- if(segtable[aa]&0x08)PORTB|=(1<<1)//pb1;
- else PORTB&=~(1<<1);
- //E
- if(segtable[aa]&0x10PORTB|=(1<<2)//pb2;
- else PORTB&=~(1<<2);
- //G
- if(segtable[aa]&0x20)PORTB|=(1<<3)//pb3;
- else PORTB&=~(1<<3);
- //F
- if(segtable[aa]&0x40)PORTB|=(1<<4)//pb4;
- else PORTB&=~(1<<4);
- //H
- if(segtable[aa]&0x80)PORTB|=(1<<5)//pb5;
- else PORTB&=~(1<<5);
- }
复制代码
|
|