fan313220 发表于 2009-8-6 20:55:44

mark

fengleileifeng 发表于 2009-8-10 20:30:23

不错,,,收藏了,,,

zchenj 发表于 2009-8-11 09:14:42

就三根线啊~ 强

382383706 发表于 2009-11-3 16:57:57

mark

dwrszgq 发表于 2009-11-3 20:19:39

7920反白记号

kongzizhishi 发表于 2009-11-4 21:34:03

不错,标记下

sunmy 发表于 2009-11-4 21:42:53

7920反白

mfkqqw 发表于 2009-11-5 00:17:11

不错!

baggio18 发表于 2009-11-5 15:39:49

mark 学习之

lizhihuanok 发表于 2009-11-10 09:19:39

MARK

tom030704 发表于 2009-11-10 09:39:30

great!~

nlz007 发表于 2009-11-11 14:42:35

做个记号...

vincent101 发表于 2009-11-11 22:15:37

谢谢,这确实是好东西,标记了。

kangkang 发表于 2009-11-13 19:09:30

好东西啊

anning 发表于 2009-11-13 21:15:06

mark!

sleet1986 发表于 2009-11-13 22:50:17

学了一招,呵呵。。

fish215 发表于 2009-11-16 14:14:47

拜读~
向楼主学习

fish215 发表于 2009-11-16 14:18:22

楼主能不能上传取字模的软件啊~?!谢谢楼主

wayhe 发表于 2010-1-27 11:12:59

st7920显示中文和反白都很容易,要在指定位置显示一个英文字符和反白就比较麻烦了。

gxy508 发表于 2010-1-27 13:59:48

mark

sky_walker 发表于 2010-4-8 00:04:33

mark

raosibin 发表于 2010-5-4 22:15:40

学习了

chahu1227 发表于 2010-5-12 15:48:26

mark

cat_li 发表于 2010-5-12 16:27:53

好东西,收藏了

ljt8015 发表于 2010-5-12 20:17:06

mark

btyang 发表于 2010-7-29 11:45:18

好帖,必须MARK

man_king 发表于 2010-8-17 10:57:14

mark

poet_lee 发表于 2010-8-17 14:17:37

谢谢分享 不错

dianqing 发表于 2010-8-21 10:35:51

反白标记!谢谢楼主。。。

cuiyuanbin 发表于 2010-9-18 20:11:06

好!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

qinhya 发表于 2010-9-18 22:34:05

顶!

lv998127 发表于 2010-9-18 23:54:41

路过!

abu0210 发表于 2010-9-23 13:59:05

mark一下,有时间仔细看啊!

wzxavr 发表于 2010-11-12 11:11:52

学习

Gloriousle 发表于 2010-12-7 23:17:56

MARK

torch 发表于 2011-1-4 20:28:35

come on

254278455 发表于 2011-2-27 13:05:43

太帅了   一点就亮膜拜

woodlynn 发表于 2011-2-27 13:19:38

好早的帖啊,好好的帖啊

254278455 发表于 2011-2-27 13:45:31

移植到GCC成功

/***********************************************************************
工    程:ST7920驱动的12864液晶的3线串行驱动模式
创建日期:2007年9月16日
创 建 人:朱海峰
邮    箱:ntzhf100@163.com      QQ:543376422
引脚定义:RS(CS)=====>PB5
                  RW(SID)====>PB6
          EN(SCLK)===>PB7
                  PSB为硬件控制,接高电平为8位或4位的并行模式,接低电平为串行模式
                  本例程使用3线串行模式
************************************************************************/
#include <avr/io.h>
#include <util/delay.h>


#define uchar unsigned char
#define uint unsigned int
#define nop()         asm("nop")
#define xtal 8
#define CS       PB5
#define SID       PB6
#define        SCLK PB7

#define Set_CS()        DDRB |= (1<<CS);PORTB |= (1<<CS)
#define Set_SID()        DDRB |= (1<<SID);PORTB |= (1<<SID)
#define Set_SCLK()        DDRB |= (1<<SCLK);PORTB |= (1<<SCLK)

#define Clr_CS()        DDRB |= (1<<CS);PORTB &=~(1<<CS)
#define Clr_SID()        DDRB |= (1<<SID);PORTB &=~(1<<SID)
#define Clr_SCLK()        DDRB |= (1<<SCLK);PORTB &=~(1<<SCLK)



//====================================================================
//函数声明
//void Delay(volatile uint ms);                           //延时子程序
void W_1byte(uchar RW, uchar RS, uchar W_data);
void Write_8bits(uint W_bits);
void LCD_Init(void);
void Char_Set_XY(uchar x, uchar y, uchar *p);
void Set_Draw(void);
//设定哪一行,从那一个位置开始到那一个位置结束使用反白
//x=液晶屏上汉字的位置(1~8);end_x=汉字结束的地址(1~8);y=1~4行
//clear=1:清除反白;clear=0:设置反白;
void Set_White(uchar x,uchar y,uchar end_x,uchar clear);       
void Draw_Pic(uchar x, uchar y, const uchar *Draw);
/*
/********************************************************************
********************************************************************/
const uchar PIC1={
/*--调入了一幅图像:C:\Documents and Settings\Administrator\桌面\atmel.bmp--*/
/*--宽度x高度=128x64--*/

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0x00,0x00,
0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0x00,0x00,
0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0x00,0x00,
0x00,0x00,0x01,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0x00,0x00,
0x00,0x00,0x03,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0x00,0x00,
0x00,0x00,0x03,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0x00,0x00,
0x00,0x00,0x07,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0x00,0x00,
0x00,0x00,0x07,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0x00,0x00,
0x00,0x00,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0x00,0x00,
0x00,0x00,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0x00,0x00,
0x00,0x00,0x00,0x07,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x07,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x3F,0xE7,0xFC,0xFF,0xFF,0xFF,0xE0,0xFF,0xFF,0xCF,0xF8,0x00,0x00,0x00,
0x00,0x00,0x3F,0xE7,0xFC,0xFF,0xFF,0xFF,0xF0,0xFF,0xFF,0xCF,0xF8,0x00,0x00,0x00,
0x00,0x00,0x7F,0xE7,0xFC,0xFF,0xFF,0xFF,0xF8,0xFF,0xFF,0xCF,0xF8,0x00,0x00,0x00,
0x00,0x00,0x7F,0xE7,0xFC,0xFF,0xFF,0xFF,0xFC,0xFF,0xFF,0xCF,0xF8,0x00,0x00,0x00,
0x00,0x00,0xFF,0xE7,0xFC,0xFF,0xBF,0xEF,0xFC,0xFF,0xFF,0xCF,0xF8,0x00,0x00,0x00,
0x00,0x00,0xFF,0xE7,0xFC,0xFF,0xBF,0xE7,0xFC,0xFF,0xFF,0xCF,0xF8,0x00,0x00,0x00,
0x00,0x01,0xFF,0xE7,0xFC,0xFF,0xBF,0xE7,0xFC,0xFF,0xFF,0xCF,0xF8,0x00,0x00,0x00,
0x00,0x03,0xFF,0xE7,0xFC,0xFF,0xBF,0xE7,0xFC,0xFF,0xFF,0xCF,0xF8,0x00,0x00,0x00,
0x00,0x03,0xFF,0xE7,0xFC,0xFF,0xBF,0xE7,0xFC,0xFF,0xFF,0xCF,0xF8,0x00,0x00,0x00,
0x00,0x07,0xFF,0xE7,0xFC,0xFF,0xBF,0xE7,0xFC,0xFC,0x00,0x0F,0xF8,0x00,0x00,0x00,
0x00,0x07,0xFF,0xE7,0xFC,0xFF,0xBF,0xE7,0xFC,0xFF,0xFF,0xCF,0xF8,0x00,0x00,0x00,
0x00,0x0F,0xFF,0xE7,0xFC,0xFF,0xBF,0xE7,0xFC,0xFF,0xFF,0xCF,0xF8,0x00,0x00,0x00,
0x00,0x0F,0xFF,0xE7,0xFC,0xFF,0xBF,0xE7,0xFC,0xFF,0xFF,0xCF,0xF8,0x00,0x00,0x00,
0x00,0x1F,0xFF,0xE7,0xFC,0xFF,0xBF,0xE7,0xFC,0xFF,0xFF,0xCF,0xF8,0x00,0x00,0x00,
0x00,0x1F,0xFF,0xE7,0xFC,0xFF,0xBF,0xE7,0xFC,0xFF,0xFF,0xCF,0xF8,0x00,0x00,0x00,
0x00,0x3F,0xFF,0xE7,0xFC,0xFF,0xBF,0xE7,0xFC,0xFF,0xFF,0xCF,0xF8,0x00,0x00,0x00,
0x00,0x3F,0xFF,0xE7,0xFC,0xFF,0xBF,0xE7,0xFC,0xFF,0xFF,0xCF,0xF8,0x00,0x00,0x00,
0x00,0x7F,0xFF,0xE7,0xFC,0xFF,0xBF,0xE7,0xFC,0xFF,0xFF,0xCF,0xF8,0x00,0x00,0x00,
0x00,0xFF,0xFF,0xE7,0xFC,0xFF,0xBF,0xE7,0xFC,0xFF,0xFF,0xCF,0xF8,0x00,0x00,0x00,
0x00,0xFF,0xFF,0xE7,0xFC,0xFF,0xBF,0xE7,0xFC,0xFC,0x00,0x0F,0xF8,0x00,0x00,0x00,
0x01,0xFF,0xBF,0xE7,0xFC,0xFF,0xBF,0xE7,0xFC,0xFE,0x00,0x0F,0xF8,0x00,0x00,0x00,
0x01,0xFF,0x3F,0xE7,0xFC,0xFF,0xBF,0xE7,0xFC,0xFF,0xFF,0xCF,0xFF,0xF8,0x00,0x00,
0x03,0xFF,0x3F,0xE7,0xFC,0xFF,0xBF,0xE7,0xFC,0xFF,0xFF,0xCF,0xFF,0xF8,0x00,0x00,
0x03,0xFE,0x3F,0xE7,0xFC,0xFF,0xBF,0xE7,0xFC,0xFF,0xFF,0xCF,0xFF,0xF0,0x00,0x00,
0x07,0xFE,0x3F,0xE7,0xFC,0xFF,0xBF,0xE7,0xFC,0xFF,0xFF,0xCF,0xFF,0xF0,0x00,0x00,
0x07,0xFF,0x3F,0xE7,0xFC,0xFF,0xBF,0xE7,0xFC,0xFF,0xFF,0xCF,0xFF,0xE0,0x00,0x00,
0x0F,0xFF,0x3F,0xE7,0xFC,0xFF,0xBF,0xE7,0xFC,0xFF,0xFF,0xCF,0xFF,0xE0,0x00,0x00,
0x0F,0xFF,0x3F,0xE7,0xFC,0xFF,0xBF,0xE7,0xFC,0xFF,0xFF,0xCF,0xFF,0xC0,0x00,0x00,
0x1F,0xFF,0x3F,0xE7,0xFC,0xFF,0xBF,0xE7,0xFC,0xFF,0xFF,0xCF,0xFF,0xC0,0x00,0x00,
0x1F,0xFF,0x3F,0xE7,0xFC,0xFF,0x1F,0xE7,0xFC,0xFF,0xFF,0xCF,0xFF,0x80,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x1F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x3E,0x00,0x00,
0x1F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x63,0x00,0x00,
0x1F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFD,0x00,0x00,
0x1F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0xB6,0x80,0x00,
0x1F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0xBE,0x80,0x00,
0x1F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0xB6,0x80,0x00,
0x1F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0xF7,0x00,0x00,
0x1F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF0,0x63,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};

//==================================================================       

const uchar PIC2={
/*--调入了一幅图像:C:\Documents and Settings\Administrator\桌面\AVR.BMP--*/
/*--宽度x高度=128x64--*/

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3C,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x43,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xBD,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x27,
0x00,0x00,0x1F,0xFF,0x83,0xFF,0xE0,0x00,0x00,0xFF,0xF8,0x3F,0xFF,0xFF,0x01,0x3C,
0x00,0x00,0x3F,0xFF,0x81,0xFF,0xF0,0x00,0x01,0xFF,0xF0,0x7F,0xFF,0xFF,0xC1,0x3E,
0x00,0x00,0x3F,0xFF,0xC1,0xFF,0xF0,0x00,0x01,0xFF,0xF0,0x7F,0xFF,0xFF,0xE0,0xA7,
0x00,0x00,0x3F,0xFF,0xC1,0xFF,0xF0,0x00,0x03,0xFF,0xE0,0x7F,0xFF,0xFF,0xF0,0xE7,
0x00,0x00,0x7F,0xFF,0xE0,0xFF,0xF8,0x00,0x03,0xFF,0xE0,0xFF,0xFF,0xFF,0xF8,0x7E,
0x00,0x00,0x7F,0xFF,0xE0,0xFF,0xF8,0x00,0x03,0xFF,0xE0,0xFF,0xFF,0xFF,0xF8,0x00,
0x00,0x00,0x7F,0xFF,0xE0,0x7F,0xFC,0x00,0x07,0xFF,0xC1,0xFF,0xFF,0xFF,0xFC,0x00,
0x00,0x00,0xFF,0xFF,0xF0,0x7F,0xFC,0x00,0x07,0xFF,0xC1,0xFF,0xFF,0xFF,0xFC,0x00,
0x00,0x00,0xFF,0xFF,0xF0,0x7F,0xFE,0x00,0x0F,0xFF,0x83,0xFF,0xFF,0xFF,0xFE,0x00,
0x00,0x01,0xFF,0xFF,0xF8,0x3F,0xFE,0x00,0x0F,0xFF,0x83,0xFF,0xE0,0x7F,0xFE,0x00,
0x00,0x01,0xFF,0xFF,0xF8,0x3F,0xFE,0x00,0x1F,0xFF,0x07,0xFF,0xC0,0x3F,0xFE,0x00,
0x00,0x03,0xFF,0xFF,0xF8,0x3F,0xFF,0x00,0x1F,0xFF,0x07,0xFF,0xC0,0x3F,0xFE,0x00,
0x00,0x03,0xFF,0xFF,0xFC,0x1F,0xFF,0x00,0x1F,0xFE,0x07,0xFF,0xC0,0x3F,0xFE,0x00,
0x00,0x03,0xFF,0xFF,0xFC,0x1F,0xFF,0x80,0x3F,0xFE,0x0F,0xFF,0x80,0x3F,0xFE,0x00,
0x00,0x07,0xFF,0xFF,0xFE,0x0F,0xFF,0x80,0x3F,0xFE,0x0F,0xFF,0x80,0x3F,0xFE,0x00,
0x00,0x07,0xFF,0x9F,0xFE,0x0F,0xFF,0x80,0x7F,0xFC,0x1F,0xFF,0x00,0x7F,0xFE,0x00,
0x00,0x07,0xFF,0x9F,0xFF,0x07,0xFF,0xC0,0x7F,0xFC,0x1F,0xFF,0x00,0xFF,0xFC,0x00,
0x00,0x0F,0xFF,0x8F,0xFF,0x07,0xFF,0xC0,0x7F,0xF8,0x1F,0xFF,0x01,0xFF,0xFC,0x00,
0x00,0x0F,0xFF,0x0F,0xFF,0x03,0xFF,0xC0,0xFF,0xF8,0x3F,0xFF,0xFF,0xFF,0xF8,0x00,
0x00,0x0F,0xFF,0x0F,0xFF,0x83,0xFF,0xE0,0xFF,0xF8,0x3F,0xFF,0xFF,0xFF,0xF8,0x00,
0x00,0x1F,0xFF,0x07,0xFF,0x83,0xFF,0xE1,0xFF,0xF0,0x7F,0xFF,0xFF,0xFF,0xF0,0x00,
0x00,0x1F,0xFE,0x07,0xFF,0xC1,0xFF,0xF1,0xFF,0xF0,0x7F,0xFF,0xFF,0xFF,0xE0,0x00,
0x00,0x3F,0xFE,0x07,0xFF,0xC1,0xFF,0xF3,0xFF,0xE0,0x7F,0xFF,0xFF,0xFF,0xC0,0x00,
0x00,0x3F,0xFE,0x03,0xFF,0xC0,0xFF,0xFB,0xFF,0xE0,0xFF,0xFF,0xFF,0xFF,0x80,0x00,
0x00,0x7F,0xFC,0x03,0xFF,0xE0,0xFF,0xFB,0xFF,0xC0,0xFF,0xFF,0xFF,0xFF,0x00,0x00,
0x00,0x7F,0xFC,0x03,0xFF,0xE0,0x7F,0xFF,0xFF,0xC1,0xFF,0xFF,0xFF,0xFC,0x00,0x00,
0x00,0x7F,0xF8,0x01,0xFF,0xF0,0x7F,0xFF,0xFF,0x81,0xFF,0xFF,0xFF,0xE0,0x00,0x00,
0x00,0xFF,0xFF,0xFF,0xFF,0xF8,0x3F,0xFF,0xFF,0x83,0xFF,0xFF,0xFF,0xC0,0x00,0x00,
0x00,0xFF,0xFF,0xFF,0xFF,0xF8,0x3F,0xFF,0xFF,0x83,0xFF,0xF3,0xFF,0xC0,0x00,0x00,
0x00,0xFF,0xFF,0xFF,0xFF,0xF8,0x3F,0xFF,0xFF,0x03,0xFF,0xE3,0xFF,0xE0,0x00,0x00,
0x01,0xFF,0xFF,0xFF,0xFF,0xFC,0x1F,0xFF,0xFF,0x07,0xFF,0xE3,0xFF,0xE0,0x00,0x00,
0x01,0xFF,0xFF,0xFF,0xFF,0xFC,0x1F,0xFF,0xFE,0x07,0xFF,0xC3,0xFF,0xE0,0x00,0x00,
0x03,0xFF,0xFF,0xFF,0xFF,0xFE,0x1F,0xFF,0xFE,0x0F,0xFF,0xC1,0xFF,0xF0,0x00,0x00,
0x03,0xFF,0xFF,0xFF,0xFF,0xFE,0x0F,0xFF,0xFE,0x0F,0xFF,0x81,0xFF,0xF0,0x00,0x00,
0x03,0xFF,0xFF,0xFF,0xFF,0xFE,0x0F,0xFF,0xFC,0x0F,0xFF,0x81,0xFF,0xF8,0x00,0x00,
0x07,0xFF,0xFF,0xFF,0xFF,0xFF,0x07,0xFF,0xFC,0x1F,0xFF,0x81,0xFF,0xF8,0x00,0x00,
0x07,0xFF,0xFF,0xFF,0xFF,0xFF,0x07,0xFF,0xF8,0x3F,0xFF,0x00,0xFF,0xF8,0x00,0x00,
0x0F,0xFF,0xC0,0x00,0x1F,0xFF,0x83,0xFF,0xF8,0x3F,0xFF,0x00,0xFF,0xF8,0x00,0x00,
0x0F,0xFF,0x80,0x00,0x0F,0xFF,0x83,0xFF,0xF0,0x3F,0xFE,0x00,0xFF,0xFC,0x00,0x00,
0x0F,0xFF,0x80,0x00,0x0F,0xFF,0xC3,0xFF,0xF0,0x7F,0xFE,0x00,0x7F,0xFC,0x00,0x00,
0x1F,0xFF,0x00,0x00,0x0F,0xFF,0xC1,0xFF,0xF0,0x7F,0xFC,0x00,0x7F,0xFC,0x00,0x00,
0x1F,0xFF,0x00,0x00,0x07,0xFF,0xC1,0xFF,0xE0,0x7F,0xFC,0x00,0x7F,0xFE,0x00,0x00,
0x1F,0xFF,0x00,0x00,0x07,0xFF,0xE0,0xFF,0xE0,0xFF,0xF8,0x00,0x7F,0xFE,0x00,0x00,
0x3F,0xFE,0x00,0x00,0x03,0xFF,0xE0,0xFF,0xC0,0xFF,0xF8,0x00,0x3F,0xFE,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};

/********************************************************************/

int main()
{
        uchar i = 0;
        PORTB = 0XFF;                        //
        DDRB = 0XFF;                        //PB口全部设为输出模式
        Clr_CS();
        Clr_SID();
        Clr_SCLK();
        LCD_Init();
        //Delay(50);
_delay_ms(50);
        LCD_Init();                               //初始化两边是关键,否则液晶上电重起将不能显示
        while(1)
        {       
                nop();
                nop();
                _delay_ms(500);
                Char_Set_XY(0,0,"ST7920_3_wires");
                Char_Set_XY(2,1,"反白练习");
                Char_Set_XY(0,2,"可以单字反白或不");
                Char_Set_XY(3,3,"反白");
                _delay_ms(2000);
                _delay_ms(2000);
                Set_Draw();
                _delay_ms(100);
                Set_White(1,1,7,0);                        //第1行,第1个汉字位置到第8汉字位置反白
                Set_White(3,2,6,0);                        //第2行,第3个汉字位置到第6汉字位置反白
                Set_White(1,3,8,0);                        //第3行,第1个汉字位置到第8汉字位置反白
                Set_White(4,4,5,0);                        //第4行,第4个汉字位置到第5汉字位置反白
                _delay_ms(2000);
                _delay_ms(2000);
                Set_White(4,1,4,1);                        //第1行,第4个汉字位置等取消反白
                Set_White(5,2,5,1);                        //第2行,第5个汉字位置等取消反白
                Set_White(6,3,6,1);                        //第3行,第6个汉字位置等取消反白
                Set_White(4,4,4,1);                        //第4行,第4个汉字位置等取消反白
                _delay_ms(2000);
                _delay_ms(2000);
                Set_White(1,1,1,1);                        //
                Set_White(3,2,3,1);                        //
                Set_White(2,3,2,1);                        //
                Set_White(5,4,5,1);                        //
                _delay_ms(2000);
                _delay_ms(2000);
                Set_White(1,1,8,1);                        //第1行,第1个汉字位置到第8汉字位置取消反白
                Set_White(1,2,8,1);                        //第2行,第1个汉字位置到第8汉字位置取消反白
                Set_White(1,3,8,1);                        //第3行,第1个汉字位置到第8汉字位置取消反白
                Set_White(1,4,8,1);                        //第4行,第1个汉字位置到第8汉字位置取消反白
               
                _delay_ms(2000);
                _delay_ms(2000);
                W_1byte(0,0,0x30);                //基本指令集,,绘图显示OFF
                W_1byte(0,0,0x01);                //清除显示
                W_1byte(0,0,0x01);                //清除显示
                W_1byte(0,0,0x01);                //清除显示
                Set_Draw();
                _delay_ms(100);
                Draw_Pic(0,0,*PIC1);        //先替换液晶内部RAM中的数据,再开显示
                W_1byte(0,0,0x36);                //8BIT控制界面,扩充指令集,,绘图显示ON
                _delay_ms(5000);
                W_1byte(0,0,0x34);                //绘图显示OFF,主要解决画图时拖尾的现象,即先
                                                                //替换好液晶内部RAM中的数据在开显示。                                                                       
                Draw_Pic(0,0,*PIC2);
                W_1byte(0,0,0x36);                //8BIT控制界面,扩充指令集,绘图显示ON
                _delay_ms(5000);
                                                                //画完图后要显示文字要重新设置成普通模式       
                W_1byte(0,0,0x30);                //基本指令集,,绘图显示OFF
                W_1byte(0,0,0x01);                //清除显示
               
        }
}
/******************************************************************/
void LCD_Init(void)
{
        uchar cmd;
        cmd=0x30;                        //功能设置 8位数据,基本指令
        W_1byte(0,0,cmd);
        _delay_ms(2);
        cmd=0x0C;                        //显示状态 ON,游标OFF,反白OFF
        W_1byte(0,0,cmd);        //写指令
        _delay_ms(2);
        cmd=0x01;                        //清除显示
        W_1byte(0,0,cmd);        //写指令
        _delay_ms(2);
        cmd=0x02;                        //地址归位
        W_1byte(0,0,cmd);        //写指令
        _delay_ms(2);
        cmd=0x80;                        //设置DDRAM地址
        W_1byte(0,0,cmd);        //写指令
        _delay_ms(2);                        //延时
}
/*******************************************************************
函 数 名:W_1byte
入口参数:RW、RS、W_data
出口参数:无
建立日期:2007年3月3日
修改日期:
函数作用:写一个字节的数据到12864液晶,包括指令和数据
说    明:RW=1,从液晶读数据到MCU;RW=0,写一个数据到液晶;
               (一般RW都设为0,即只向液晶写数据,不读数据)
          RS=1,写入的是数据;RS=0,写入的是指令;
                  一般模式:RW=0,RS=1;写数据
                                          RW=0,RS=0;写指令
********************************************************************/
void W_1byte(uchar RW, uchar RS, uchar W_data)
{
        uint H_data,L_data,S_ID = 0xf8;       //11111RWRS0
        if(RW == 0)
        {
               S_ID &=~ 0x04;
        }
        else                                        //if(RW==1)
        {
               S_ID |= 0X04;
        }
        if(RS == 0)
        {
               S_ID &=~ 0x02;
        }
        else                                        //if(RS==1)
        {
               S_ID |= 0X02;
        }
        H_data = W_data;
        H_data &= 0xf0;                        //屏蔽低4位的数据
        L_data = W_data;                   //xxxx0000格式
        L_data &= 0x0f;                        //屏蔽高4位的数据
        L_data <<= 4;                        //xxxx0000格式
        Set_CS();
        Write_8bits(S_ID);                 //发送S_ID
        Write_8bits(H_data);        //发送H_data
        Write_8bits(L_data);        //发送L_data
        Clr_CS();       
}
/********************************************************************
函 数 名:Write_8bits
入口参数:W_bits
出口参数:无
建立日期:2007年3月3日
修改日期:
函数作用:负责串行输出8个bit位
说    明:
********************************************************************/
void Write_8bits(uint W_bits)
{
        uint i,Temp_data;
        for(i=0; i<8; i++)
        {
                Temp_data = W_bits;
                Temp_data <<= i;
                if((Temp_data&0x80)==0)
                {
                       Clr_SID();
                }
                else
                {
                       Set_SID();
                }
                nop();
                Set_SCLK();
                nop();
                nop();
                Clr_SCLK();
                nop();
                Clr_SID();
        }
}
/********************************************************************
函 数 名:Delay
入口参数:ms
出口参数:无
建立日期:2007年3月3日
修改日期:
函数作用:毫秒级的延时程序,当晶振为12Mhz时,xtal=12;
说    明:
********************************************************************/
void Delay(volatile uint ms)
{
    uint i;
    while(ms--)   
   {
   for(i=1;i<(uint)(xtal*143-2);i++)
         ;
   }   
}
//===================================================================*/
/********************************************************************
函 数 名:Char_Set_XY
入口参数:x,y,*p
出口参数:无
建立日期:2007年8月26日
修改日期:
函数作用:
说    明:
********************************************************************/
void Char_Set_XY(uchar x, uchar y, uchar *p)
{
   if(y == 0)
        {
               W_1byte(0,0,(0x80+x));       
        }
        if(y == 1)
        {
                W_1byte(0,0,(0x90+x));
        }
        if(y == 2)
        {
                W_1byte(0,0,(0x88+x));
        }
        if(y == 3)
        {
                W_1byte(0,0,(0x98+x));
        }
        while(*p != 0)
        {
                W_1byte(0,1,*p++);
        }
}
//===================================================================*/

/********************************************************************
函 数 名:Set_Draw(
入口参数:无
出口参数:无
建立日期:2007年8月26日
修改日期:
函数作用:
说    明:
********************************************************************/
void Set_Draw(void)
{
        //W_1byte(0,0,0x01);                        //清屏
        _delay_ms(20);                                        //延时
        //W_1byte(0,0,0x34);                        //8BIT控制界面,扩充指令集,,绘图显示OFF
        W_1byte(0,0,0x36);
        _delay_ms(20);                                        //延时
}
//===================================================================*/
/********************************************************************
函 数 名:Draw_Pic128*64
入口参数:x,y,*Draw
出口参数:无
建立日期:2007年8月26日
修改日期:
函数作用:
说    明:
********************************************************************/
/*************************************************/

void Draw_Pic(uchar x, uchar y, const uchar *Draw)
{
        uchar i, j, temp_x, temp_y;                //
        temp_x = x;                                                //
        temp_y = y;                                                //
        temp_x |= 0x80;                                        //
        temp_y |= 0x80;                                        //
        for(i=0;i<32;i++ )                                //上半屏32行
        {
                W_1byte(0,0,temp_y++);                //设置绘图区的Y地址坐标0
                W_1byte(0,0,temp_x);                //设置绘图区的X地址坐标0
                for(j=0;j<16;j++)                        //
                {
                       W_1byte(0,1,*Draw++);        //
                }
        }
       
        temp_x = 0x88;                                        //
        temp_y = 0x80;                                        //
        j = 0;                                                        //
        for(;i<64;i++ )
        {
                W_1byte(0,0,temp_y++);                //设置绘图区的Y地址坐标
                W_1byte(0,0,temp_x);               //设置绘图区的X地址坐标
                for(j=0;j<16;j++)
                {
                       W_1byte(0,1,*Draw++);        //
                }
        }
       
}
/**************************************************/
/**************************************************/
void Set_White(uchar x,uchar y,uchar end_x,uchar clear)
{
        uchar i, j, white_x, white_y,white_end_x,clr_x,clr_y;                //
        white_end_x = (end_x-x+1);
        white_end_x <<= 1;
        if(y==1)
        {
               white_x = (0x80+x-1);
                white_y = 0x80;
                clr_x = 0x80;
                clr_y = 0x80;
        }
        else if(y==2)
        {
               white_x = (0x80+x-1);
                white_y = 0x90;
                clr_x = 0x80;
                clr_y = 0x90;
        }
        else if(y==3)
        {
               white_x = (0x88+x-1);
                white_y = 0x80;
                clr_x = 0x88;
                clr_y = 0x80;
        }
        else if(y==4)
        {
               white_x = (0x88+x-1);
                white_y = 0x90;
                clr_x = 0x88;
                clr_y = 0x90;
        }
        if(clear==0)//要反白时,先将整行的液晶全部清成不反白(此处行指y)
        {
               for(i=0;i<16;i++ )                        //16行
                {
                       W_1byte(0,0,clr_y++);        //设置绘图区的Y地址坐标0
                        W_1byte(0,0,clr_x);                //设置绘图区的X地址坐标0
                        for(j=0;j<16;j++)                //
                        {
                               W_1byte(0,1,0x00);        //清成不反白
                               nop();
                        }
                }
        }
        nop();
        for(i=0;i<16;i++ )                                //16行,因为是16*16汉字
        {
                W_1byte(0,0,white_y++);                //设置绘图区的Y地址坐标0
                W_1byte(0,0,white_x);                //设置绘图区的X地址坐标0
                for(j=0;j<white_end_x;j++)        //
                {
                       if(clear==1)
                       {
                                  W_1byte(0,1,0x00); //取消这一行的8个点的反白,液晶地址自动加1
                                                                   //(此处行指一个一个液晶点所组成的行)
                       }
                       else
                       {
                                W_1byte(0,1,0xff); //反白这一行的8个点,液晶地址自动加1
                                                                   //(此处行指一个一个液晶点所组成的行)
                       }
                       nop();
                }
        }
}
/*************************************************/

nbc327 发表于 2011-3-24 22:15:14

学习一下!

afeiyang 发表于 2011-4-4 16:14:09

试试看………………

0810612124 发表于 2011-4-5 17:16:19

很不错

neverdead 发表于 2011-5-3 12:55:36

mark,论坛里面很少有液晶方面的资料……

CSU_David 发表于 2011-5-3 14:24:20

顶下~

bestfang 发表于 2011-5-3 21:39:37

为什么我已经登录 却不能下载附件

ewindiy 发表于 2011-5-6 16:44:20

好东西

XUEPENGBIN 发表于 2011-6-16 16:58:40

MK

wayeah 发表于 2011-6-16 17:20:56

留意一下

dzmcs 发表于 2011-7-7 20:45:02

反白的速度比较慢啊!

635656623 发表于 2011-7-9 12:37:17

MARK

momoshuihan 发表于 2011-7-15 14:39:34

我正在看,先标记一下

qq20707 发表于 2011-7-28 20:42:11

mark了 。。。

rafd 发表于 2011-7-28 22:01:42

记号

qqqq_1111 发表于 2011-7-31 13:27:09

就是先用字库显示汉字然后把有汉字的地方全部用绘图写FF就可以把汉字反白了,这是我无意中发现的,呵呵
————————————————————————————————————————————————————
这方法好呀

dhbighead 发表于 2011-7-31 17:36:30

找了一圈....终于搞定了

顺便说一下

部分的ST7920 是事先就固定只能用并行的 要去掉R9一个0欧姆的电阻 改到R10上

jyjmaster 发表于 2011-7-31 18:39:21

MARK....

zhouaheng 发表于 2011-8-6 18:50:49

好东西 发现一个问题iccvar 汉字显示的程序 移植到AVR 显示是错误但是字符 和画图程序 却可以 这点谁碰到没有

loveskangaroo 发表于 2011-8-7 00:30:56

好东西 收藏

qqqq_1111 发表于 2011-8-11 08:58:52

怎样在任意点上显示的?

ardentyouth 发表于 2011-8-11 09:04:51

之前一段时间做过反白,总有杂点,试试楼主这个看看效果

xxt2011 发表于 2011-8-11 13:37:47

很好不错,谢谢楼主的资料

power_check 发表于 2011-8-11 17:09:15

记下先

youmeng 发表于 2011-8-16 20:02:49

mark

role_2099 发表于 2011-8-20 13:09:46

多谢楼主,PIC16F877A并行模式移植成功

blackhorse21 发表于 2011-8-26 19:31:40

MARK!

l09046162 发表于 2011-8-27 08:48:10

mark 谢谢楼主分享!!!!

0810612124 发表于 2011-8-28 17:02:31

mark

dammon 发表于 2011-8-30 15:04:28

mark

starsun 发表于 2011-8-31 01:38:46

不错!!!
mark

ljq673091 发表于 2011-9-2 17:26:42

顶一个,先标记

hepday 发表于 2011-9-11 16:35:18

用得着~

lanjingjing 发表于 2011-9-11 18:03:54

有个12864液晶,刚好可以试试。

huangyefei 发表于 2011-9-11 21:31:43

MARK

duxingkei 发表于 2011-10-13 23:11:15

看样子用得上

jxauzhongkewen 发表于 2011-11-4 23:22:09

刚好在研究反白,mark!!!

allen6kid 发表于 2011-12-19 12:36:30

mark

lisen090 发表于 2011-12-19 22:25:45

顶一下不错!

comway 发表于 2012-2-23 12:52:20

怎么能让12864的显示旋转180度

thxl_kis 发表于 2012-2-25 18:57:10

看看不错

enovo2468 发表于 2012-2-25 23:26:17

mark

starsun 发表于 2012-4-16 15:50:45

经鉴定有用

lqjjdx 发表于 2012-4-18 18:32:43

相当不错的程序,可我还是有两个小小的问题,前面51楼和71楼的朋友已经说过了,但我还是想说一下,就是显示字母和数字的时候,如何只对奇数的字母反白,打个比方说:我显示屏上第一行显示的是时间18:29:34现在我要对分钟进行修改,也就是要让29反白,我该如何实现呢,再者就是,我用此做菜单的时候,就出现了71楼说的情况,反应实在太慢了,我字都送上去好久了,才反白,刚开始我还以为是我的按键没用了呢,请楼主和各位大神指点一下,非常感谢。{:smile:}

liu252799093 发表于 2012-12-3 16:30:23

lanshuitianxia 发表于 2007-10-7 23:28 static/image/common/back.gif
哈哈 十一回家时逛街顺便买了个摄像头玩玩。来上几个液晶反白的效果图。效果不好,让大家见笑了。
正筹划着 ...

请问下,单个字符能反白吗?看你的是单个汉字。

nsj21n 发表于 2012-12-5 12:23:47

3线模式好啊,省资源!

xiazhisong 发表于 2012-12-10 22:05:51

学习学习、、、

richwen 发表于 2012-12-12 13:39:19

路过,插个记号!

jz701209李 发表于 2012-12-12 21:20:48

记号一下,...........

kazuyin 发表于 2013-5-20 15:34:55

lanshuitianxia 发表于 2007-9-17 00:45 static/image/common/back.gif
自己顶一下,可惜没有相机,要不可以传几张效果图上来了。那个有兴趣把这个程序试一下,并拍几个图片上来啊 ...

请问一下这个可以实现单个字符的反白吗?我看你写的是任意位置汉子的反白~~

drz2146 发表于 2013-6-24 22:13:09

学习了!学习了!

qq开始学单片机 发表于 2014-2-6 08:10:37

mark                  

蓝蓝的恋 发表于 2014-3-13 15:51:54

想法挺有创意的ya~{:smile:}

qq开始学单片机 发表于 2014-6-6 20:56:48

楼主,我用51移植,显示不成功喔

rjx 发表于 2014-6-8 09:15:41

好帖,学习了

xinjihua 发表于 2014-6-8 11:21:38


不错!!

做个记号,以后好查

奮闘ing 发表于 2015-4-15 21:35:47

学习了,谢谢啦~,不知道为什么我的老是不成功~
页: 1 [2]
查看完整版本: 刚出炉带汉字库(ST7920驱动)的12864液晶的反白程序,任意位置汉字反白