常规原理说明可看其他博主,下面说一下调试过程遇到的问题点。
1.注意段式LCD的供电电压,选与供电电压接近的电压供电。驱动电压注意是是1/2偏压还是1/3偏压。
2.注意LCD的观察方向,12点方向还是6点方向,部分LCD有可能观察方向不同会有鬼影。
3.注意扫描频率,一般在50-250hz
4.COM口的上下拉电阻必须一致,不然可能出现鬼影
5.在SEG段不点亮的情况下,也要交替翻转盖引脚,用于消除鬼影。网上部分例程在不点亮时直接拉低,容易出现鬼影。
6.每个周期内的高低电平时间必须一样,因此在更新数据是切记在扫描完一轮周期以后。
下面附上 1/3Duty 1/2 BIAS的LED的调试代码
/*
MCU PIN P17 P16 P15 P14 P13 P12 P11 P10 P27 P26 P25 P24 P23 P22 P21 P20
LCD PIN 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
LCD PIN name COM0 COM1 COM2 SEG1 SEG2 SEG3 SEG4 SEG5 SEG6 SEG7 SEG8 SEG9 SEG10 SEG11 SEG12
COM0 -- -- -- 1D -- -- 2D COL -- 3D -- -- 4D --
-- COM1 -- 1E 1G 1C 2E 2G 2C 3E 3G 3C 4E 4G 4C
-- -- COM2 1F 1A 1B 2F 2A 2B 3F 3A 3B 4F 4A 4B
*/
/*
段码 //自定义每段的值 对应上述的PIN
- -A -- //0x01 0x02 0x04 -- D --
F B //0x08 0x10 0x20 E G C
-- G -- //0x40 0x80 0x100 F A B
E C
-- D --
*/
#define NUM0 0x01EF//A+B+C+D+E+F = 0x80+0x100+0x20+0x02+0x08+0x40
#define NUM1 0x0120//B+C
#define NUM2 0x019A//A+B+G+E+D
#define NUM3 0x01B2//A+B+G+C+D
#define NUM4 0x0170//F+G+B+C
#define NUM5 0x00F2//A+F+G+C+D
#define NUM6 0x00ff//A+F+E+D+C+G
#define NUM7 0x01A0//A+B+C
#define NUM8 0x01FF//B+C
#define NUM9 0x01F7//A+B+C+D+F+G
/*开启的位数
1 2 3 4 5 6
0x01 0x02 0x04 0x08 0x10 0x20
*/
#define WEI_NUM 0x03 //开启的位数//0x03=0x01+