在开发板上第一次还可以正常显示,但从后面开始下载程序也一直显示一面有点乱的字符(是前几次的显示内容,排版很乱)。
请大神帮我看看啊!谢谢了! 后面也有我的keil文件打包,谢谢!
- #include
- #include"5110.h"
- #define uchar unsigned char
- #define uint unsigned int
- ***it rst = P2^0;
- ***it ce = P2^1;
- ***it dc = P2^2;
- ***it din = P2^3;
- ***it sclk = P2^4;
- uchar code asc2tab[][6] =
- {
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },// sp
-
- { 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00 },// !
-
- { 0x00, 0x00, 0x07, 0x00, 0x07, 0x00 },// "
-
- { 0x00, 0x14, 0x7f, 0x14, 0x7f, 0x14 },// #
-
- { 0x00, 0x24, 0x2a, 0x7f, 0x2a, 0x12 },// $
-
- { 0x00, 0x62, 0x64, 0x08, 0x13, 0x23 },// %
-
- { 0x00, 0x36, 0x49, 0x55, 0x22, 0x50 },// &
-
- { 0x00, 0x00, 0x05, 0x03, 0x00, 0x00 },// '
-
- { 0x00, 0x00, 0x1c, 0x22, 0x41, 0x00 },// (
-
- { 0x00, 0x00, 0x41, 0x22, 0x1c, 0x00 },// )
-
- { 0x00, 0x14, 0x08, 0x3E, 0x08, 0x14 },// *
-
- { 0x00, 0x08, 0x08, 0x3E, 0x08, 0x08 },// +
-
- { 0x00, 0x00, 0x00, 0xA0, 0x60, 0x00 },// ,
-
- { 0x00, 0x08, 0x08, 0x08, 0x08, 0x08 },// -
-
- { 0x00, 0x00, 0x60, 0x60, 0x00, 0x00 },// .
-
- { 0x00, 0x20, 0x10, 0x08, 0x04, 0x02 },// /
-
- { 0x00, 0x3E, 0x51, 0x49, 0x45, 0x3E },// 0
-
- { 0x00, 0x00, 0x42, 0x7F, 0x40, 0x00 },// 1
-
- { 0x00, 0x42, 0x61, 0x51, 0x49, 0x46 },// 2
-
- { 0x00, 0x21, 0x41, 0x45, 0x4B, 0x31 },// 3
-
- { 0x00, 0x18, 0x14, 0x12, 0x7F, 0x10 },// 4
-
- { 0x00, 0x27, 0x45, 0x45, 0x45, 0x39 },// 5
-
- { 0x00, 0x3C, 0x4A, 0x49, 0x49, 0x30 },// 6
-
- { 0x00, 0x01, 0x71, 0x09, 0x05, 0x03 },// 7
-
- { 0x00, 0x36, 0x49, 0x49, 0x49, 0x36 },// 8
-
- { 0x00, 0x06, 0x49, 0x49, 0x29, 0x1E },// 9
-
- { 0x00, 0x00, 0x36, 0x36, 0x00, 0x00 },// :
-
- { 0x00, 0x00, 0x56, 0x36, 0x00, 0x00 },// ;
-
- { 0x00, 0x08, 0x14, 0x22, 0x41, 0x00 },// <
-
- { 0x00, 0x14, 0x14, 0x14, 0x14, 0x14 },// =
-
- { 0x00, 0x00, 0x41, 0x22, 0x14, 0x08 },// >
-
- { 0x00, 0x02, 0x01, 0x51, 0x09, 0x06 },// ?
-
- { 0x00, 0x32, 0x49, 0x59, 0x51, 0x3E },// @
-
- { 0x00, 0x7C, 0x12, 0x11, 0x12, 0x7C },// A
-
- { 0x00, 0x7F, 0x49, 0x49, 0x49, 0x36 },// B
-
- { 0x00, 0x3E, 0x41, 0x41, 0x41, 0x22 },// C
-
- { 0x00, 0x7F, 0x41, 0x41, 0x22, 0x1C },// D
-
- { 0x00, 0x7F, 0x49, 0x49, 0x49, 0x41 },// E
-
- { 0x00, 0x7F, 0x09, 0x09, 0x09, 0x01 },// F
-
- { 0x00, 0x3E, 0x41, 0x49, 0x49, 0x7A },// G
-
- { 0x00, 0x7F, 0x08, 0x08, 0x08, 0x7F },// H
-
- { 0x00, 0x00, 0x41, 0x7F, 0x41, 0x00 },// I
-
- { 0x00, 0x20, 0x40, 0x41, 0x3F, 0x01 },// J
-
- { 0x00, 0x7F, 0x08, 0x14, 0x22, 0x41 },// K
-
- { 0x00, 0x7F, 0x40, 0x40, 0x40, 0x40 },// L
-
- { 0x00, 0x7F, 0x02, 0x0C, 0x02, 0x7F },// M
-
- { 0x00, 0x7F, 0x04, 0x08, 0x10, 0x7F },// N
-
- { 0x00, 0x3E, 0x41, 0x41, 0x41, 0x3E },// O
-
- { 0x00, 0x7F, 0x09, 0x09, 0x09, 0x06 },// P
-
- { 0x00, 0x3E, 0x41, 0x51, 0x21, 0x5E },// Q
-
- { 0x00, 0x7F, 0x09, 0x19, 0x29, 0x46 },// R
-
- { 0x00, 0x46, 0x49, 0x49, 0x49, 0x31 },// S
-
- { 0x00, 0x01, 0x01, 0x7F, 0x01, 0x01 },// T
-
- { 0x00, 0x3F, 0x40, 0x40, 0x40, 0x3F },// U
-
- { 0x00, 0x1F, 0x20, 0x40, 0x20, 0x1F },// V
-
- { 0x00, 0x3F, 0x40, 0x38, 0x40, 0x3F },// W
-
- { 0x00, 0x63, 0x14, 0x08, 0x14, 0x63 },// X
-
- { 0x00, 0x07, 0x08, 0x70, 0x08, 0x07 },// Y
-
- { 0x00, 0x61, 0x51, 0x49, 0x45, 0x43 },// Z
-
- { 0x00, 0x00, 0x7F, 0x41, 0x41, 0x00 },// [
-
- { 0x00, 0x55, 0x2A, 0x55, 0x2A, 0x55 },// 55
-
- { 0x00, 0x00, 0x41, 0x41, 0x7F, 0x00 },// ]
-
- { 0x00, 0x04, 0x02, 0x01, 0x02, 0x04 },// ^
-
- { 0x00, 0x40, 0x40, 0x40, 0x40, 0x40 },// _
-
- { 0x00, 0x00, 0x01, 0x02, 0x04, 0x00 },// '
-
- { 0x00, 0x20, 0x54, 0x54, 0x54, 0x78 },// a
-
- { 0x00, 0x7F, 0x48, 0x44, 0x44, 0x38 },// b
-
- { 0x00, 0x38, 0x44, 0x44, 0x44, 0x20 },// c
-
- { 0x00, 0x38, 0x44, 0x44, 0x48, 0x7F },// d
-
- { 0x00, 0x38, 0x54, 0x54, 0x54, 0x18 },// e
-
- { 0x00, 0x08, 0x7E, 0x09, 0x01, 0x02 },// f
-
- { 0x00, 0x18, 0xA4, 0xA4, 0xA4, 0x7C },// g
-
- { 0x00, 0x7F, 0x08, 0x04, 0x04, 0x78 },// h
-
- { 0x00, 0x00, 0x44, 0x7D, 0x40, 0x00 },// i
-
- { 0x00, 0x40, 0x80, 0x84, 0x7D, 0x00 },// j
-
- { 0x00, 0x7F, 0x10, 0x28, 0x44, 0x00 },// k
-
- { 0x00, 0x00, 0x41, 0x7F, 0x40, 0x00 },// l
-
- { 0x00, 0x7C, 0x04, 0x18, 0x04, 0x78 },// m
-
- { 0x00, 0x7C, 0x08, 0x04, 0x04, 0x78 },// n
-
- { 0x00, 0x38, 0x44, 0x44, 0x44, 0x38 },// o
-
- { 0x00, 0xFC, 0x24, 0x24, 0x24, 0x18 },// p
-
- { 0x00, 0x18, 0x24, 0x24, 0x18, 0xFC },// q
-
- { 0x00, 0x7C, 0x08, 0x04, 0x04, 0x08 },// r
-
- { 0x00, 0x48, 0x54, 0x54, 0x54, 0x20 },// s
-
- { 0x00, 0x04, 0x3F, 0x44, 0x40, 0x20 },// t
-
- { 0x00, 0x3C, 0x40, 0x40, 0x20, 0x7C },// u
-
- { 0x00, 0x1C, 0x20, 0x40, 0x20, 0x1C },// v
-
- { 0x00, 0x3C, 0x40, 0x30, 0x40, 0x3C },// w
-
- { 0x00, 0x44, 0x28, 0x10, 0x28, 0x44 },// x
-
- { 0x00, 0x1C, 0xA0, 0xA0, 0xA0, 0x7C },// y
-
- { 0x00, 0x44, 0x64, 0x54, 0x4C, 0x44 },// z
-
- { 0x14, 0x14, 0x14, 0x14, 0x14, 0x14 }
- };
- void delay(uint t);
- void write_5110_byte(uchar dat, uchar com);
- void set_5110_xy(uchar x, uchar y);
- void lcd_5110_clear(void);
- void lcd_5110_init(void);
- void write_5110_string(uchar x, uchar y, uchar *s);
- void write_5110_num(uchar x, uchar y, uchar num);
- void write_5110_pic(uchar x, uchar y, uchar *map, uchar longx, uchar longy);
- void write_5110_byte(uchar dat, uchar com)
- {
- uchar i;
- ce = 0;
- if (com == 0)
- {
- dc = 0;
- }
- else
- {
- dc = 1;
- }
- for (i = 0; i < 8; i++)
- {
- if (dat & 0x80)
- {
- din = 1;
- }
- else
- {
- din = 0;
- }
- sclk = 0;
- dat = dat << 1;
- sclk = 1;
- }
- ce = 1;
- }
- void lcd_5110_init(void)
- {
- delay(10);
- rst = 0;
- delay(2);
- rst = 1;
-
- ce = 0;
- delay(2);
- ce = 1;
- delay(2);
-
- write_5110_byte(0x21, 0);
- write_5110_byte(0xc8, 0);
- write_5110_byte(0x06, 0);
- write_5110_byte(0x13, 0);
- write_5110_byte(0x20, 0);
- lcd_5110_clear();
- write_5110_byte(0x0c, 0);
-
- ce = 0;
- }
- void set_5110_xy(uchar x, uchar y)
- {
- write_5110_byte(0x40 | y, 0);
- write_5110_byte(0x80 | x, 0);
- }
- void lcd_5110_clear(void)
- {
- uchar i, j;
- for (i = 0; i < 6; i++)
- {
- set_5110_xy(j, i);
- dc = 1;
- while(j < 84)
- {
- write_5110_byte(0x00, 0);
- j++;
- }
- j = 0;
- }
- }
- void write_5110_string(uchar x, uchar y, uchar *s)
- {
- uchar line;
-
- set_5110_xy(x,y);
- while(*s)
- {
- for (line = 0; line < 6; line ++)
- {
- dc = 1;
- write_5110_byte(asc2tab[*s - 32][line], 1);
- }
- s++;
- }
- ce = 1;
- }
- void write_5110_num(uchar x, uchar y, uchar num)
- {
- uchar line;
- set_5110_xy(x, y);
- dc = 1;
- for (line = 0; line < 6; line++)
- {
- write_5110_byte(asc2tab[num + 16][line], 1);
- }
- ce = 1;
- }
- void write_5110_pic(uchar x, uchar y, uchar *map, uchar longx, uchar longy)
- {
- uchar row;
- uint i, n;
-
- if (longy % 8 == 0)
- {
- row = longy / 8;
- }
- else
- {
- row = longy / 8 + 1;
- }
- set_5110_xy(x, y);
- for (n = 0; n < row; n++)
- {
- for (i = 0; i < longx; i++)
- {
- set_5110_xy(x + i, y + n);
- write_5110_byte(map[i + n * longx], 1);
- }
- }
- }
- void delay(uint t)
- {
- for (; t > 0; t--)
- {
- ;
- }
- }
复制代码
上面是5110的驱动代码,下面是主函数
- #include
- #include"5110.h"
- #define uchar unsigned char
- #define uint unsigned int
- uchar code string[] = "Noika 5110";
- void main()
- {
- lcd_5110_init();
- while(1)
- {
- write_5110_string(2,2,string);
- lcd_5110_clear();
- }
- }
复制代码
|