找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4454|回复: 0
打印 上一主题 下一主题
收起左侧

快速了解12864点阵液晶屏的使用方法(详细)

[复制链接]
跳转到指定楼层
楼主
大家可找我申请免费的样品
T12864C002是TRUSTYLCD.COM旗下目前使用率最高的一款COG结构的12864点阵液晶屏,其特点是质量可靠,功耗低,订货方便不停产,尺寸适中,可应用到多种行业设备上。现在就详细介绍这款产品的使用方法,让你能在最短的时间内搞定LCD液晶显屏能正常显示出文字和图片。(产品规格书及。
点阵数量: 128(w)*64(h)
显示模式: FSTN正显(白底黑字), STN正显(黄绿底黑字),或STN负显(蓝底白字)。
背光模式: LED白色(或其他色),背光结构有支架背光或平面背光(配套铁框使用)。
控制芯片:ST7565R
通讯接口:FPC-36PIN焊接,可SPI串口或8位并口通讯。
工作电压:3.3V
工作温度: -20℃~70℃
外形尺寸: 69.0mm*46.0mm*2.8mm(不含背光时的尺寸)
视域尺寸: 65.5mm*38.0mm
单点大小: 0.45mm*0.49mm






  
Pin No.
  
Pin Name
Function
1224313436
NC
空脚
3
/CS1
Chip selection input                 片选
4
/RES
Rester                          复位
5
A0
Data/Command control             选择指令或数据
6
/WR
Write (/WR ) control signal input.      
7
/RD
Read (/RD ) control signal input.      
8~15
DB0-DB7
8bit Date bus                       数据
16
VDD
Power supply voltage (Positive)       电源3~3.3V
17
VSS
Negative power supply,0V           
18
VOUT
positive voltage supply pin of the chip.  升压输出,对地接电容
19~23
C3+,C1-,C1+,C2+,C2-
When internal DC-DC voltage converter  is used, external capacitor is connected between these pins.       升压电路接电容
25~29
V1,V2,V3,V4,V0
LCD driving voltages.                      分压电路
30
VR
Output voltage regulator terminal.   外部调对比度接电阻位
32
C86
MPU interface selection pin        选择80806800时序
33
P/S
Parallel data input/serial data input switch terminal 选择并口或串口
35
IRS
This terminal selects the resistors for the V0 voltage level  adjustment.  选择内部调对比度或外部调比比度

接口定义说明:
了解了显示屏的基本参数及接口定义后,
首先设计硬件电路,这款LCD的硬件部份比较简单,按上图设计好PCB电路图,外围只需外加9颗无极性的1Uf/16V电容即可,这里注意一定要用无极性的,以免方向搞错造成损坏,耐压在16V以上(因为液晶内部升压后会到达13.5V左右,所以最低要耐压16V的才行),液晶屏的VDD供电电压是3.3V,在2.7V~3.3V之间的电压都可以(电压不同可能对比度需要软件调节一下),如果必需要用5V供电,那VDD可以接一个AMS1117-3.3降压三极管(5V降到3.3V),这仅仅是VDD降压到了3.3V,其他信号线还是5V也是不行的,这里有两种方法可以选用,最简单的是信号线上串一个1K的电阻,这样可以降低一点电压,不过这种信号线电流很小,串了电阻也就对IC起到了一定的保护作用,另一种就是用降压芯片降压到3.3V,这种成本较高一点,但是可靠性也更强。接下来就要确定好是选用8位并口通讯还是SPI串口通讯了,不管用哪一种接口,对于128*64点阵来讲,显示的速度要感受上不是很明显,除非要求很高的产品,一般产品均可以选用SPI串口,这样可以选用IO口较少的单片机,可以减少整体成本。在使用SPI串口时,其他不需要用到的PIN脚统一接到GND上,这样显示会更稳定。
如果觉得自己设计PCB太麻烦,也可以向LCD厂家要求提供带PCB板的液晶模组,这样开发样机会更节省时间,质量也可靠。



硬件做好后,那就写程序调试显示了,下面以51单片机为基础介绍一下编写显示程序:

指令表:
  
No.
  
Instrctions
Code
Function
A0
/RD
/WR
D7
D6
D5
D4
D3
D2
D1
D0
1
Display ON/OFF
0
1
0
1
0
1
0
1
1
1
DON
DON=0,display off
  
DON=1,display on
2
Display start line  set
0
1
0
0
1
Display start  address
Set the display  RAM display start line address
3
Set Page Address
0
1
0
1
0
1
1
Page  address
Set the display  RAM Page address
4
Ser Column Address
  
(Upper-4 bits)
0
1
0
0
0
0
1
Col. Add
Set the  upper-4-bit of column address counter
Ser Column Address
  
(Lower-4 bits)
0
1
0
0
0
0
0
Col. Add
Set the  low-4-bit of column address counter
5
Read Staus
0
0
1
Status
0
0
0
0
Read the status  data
6
Write Display  Data
1
1
0
Write Data
Write data into  the display RAM
7
Read Display  Data
1
0
1
Read Data
Read data from  the display RAM
8
ADC Select
0
1
0
1
0
1
0
0
0
0
ADC
Set the display RAM address  SEG output
  
Correspondence
  
ADC = 0,Normal. ADC =  1,Reverse
9
Normal/Reverse  Display
0
1
0
1
0
1
0
0
1
1
REV
REV = 0, Normal
  
REV = 1, Reverse
10
Entire Display  ON/OFF
0
1
0
1
0
1
0
0
1
0
EON
EON = 0, Normal
  
EON = 1, Entire  display ON
11
Set LCD Bias
0
1
0
1
0
1
0
0
0
1
BIAS
Bias = 0, 1/9 Bias
  
Bias = 1, 1/7  Bias
12
Set  Read-Modify-Write
0
1
0
1
1
1
0
0
0
0
0
Enter the “Read-Modify-Write”  mode
13
Reset  Read-Modify-Write
0
1
0
1
1
1
0
1
1
1
0
Clear the “Read-Modify-Write”  mode
14
Reset
0
1
0
1
1
1
0
0
0
1
0
Resets the LCD  module
15
SHL S elect
0
1
0
1
1
0
0
SHL
*
*
*
Set the COM scanning  direction
  
SHL = 0, Normal
  
SHL = 1, Flipped in  y-direction
  
* = don’t care terms
16
Power Control  Set
0
1
0
0
0
1
0
1
VC
VR
VF
Set the power circuit  operation mode
  
VF : LCD  Supply Voltage Follower
  
VR : LCD  Supply Voltage Regulator
  
VF : LCD  Supply Voltage Converter
  
(1 = ON, 0 = OFF)
17
Regulator  Resistor Select
0
1
0
0
0
1
0
0
Ratio
Set the built-in  resistor ratio (Rb/Ra)
18
Electronic  volume mode set
0
1
0
1
0
0
0
0
0
0
1
Set reference  voltage mode
Electronic  volume register set
0
1
0
*
*
Electronic
  
Control value
Set reference voltage  register
19
Power Save


-
-
-
-
-
-
-
-
-
-
Compound instruction
  
Display OFF + Entire Display ON
20
NOP
0
1
0
1
1
1
0
0
0
1
1
Non-operation  command




file:///C:/Users/admin/AppData/Local/Temp/msohtmlclip1/01/clip_image006.jpg
file:///C:/Users/admin/AppData/Local/Temp/msohtmlclip1/01/clip_image008.jpg
file:///C:/Users/admin/AppData/Local/Temp/msohtmlclip1/01/clip_image010.jpg实测显示效果

下面是具体显示程序(SPI串口,实测可正显示显示)
  1. #include <reg51.h>
  2. #include <intrins.h>
  3. #include <absacc.h>
  4. #define uchar unsigned char
  5. #define uint unsigned int

  6. sbit  R_S=         P3^5;//指令/数据选择信号
  7. sbit  RES=         P3^4;//复位信号
  8. sbit  SCK=P1^6;
  9. sbit  SDA=P1^7;
  10. sbit CS1=P3^7;//片选
  11. bit Flage1=0;

  12. void LcdInit();   
  13. void Clear();     
  14. void Delayms(uint ms);   
  15. void Comwrite(uchar cmd);     
  16. void Datwrite(uchar dat);        

  17. void Setadd(uchar xl,uchar yl);
  18. void disp_str(unsigned char *p,unsignedchar uCol,uPage);  
  19. unsigned char CurOffset;
  20. #define ASC_CHR_WIDTH       8
  21. #define ASC_CHR_HEIGHT      12

  22. typedef struct typFNT_ASC16
  23. {
  24.    char Index[1];
  25.    char Msk[16];
  26. };

  27. code struct typFNT_ASC16  ASC_16[] =
  28. {        
  29. "1",0x00,0x00,0x08,0x08,0xFC,0x00,0x00,0x00,0x00,0x00,0x04,0x04,0x07,0x04,0x04,0x00,
  30. "2",0x00,0x00,0x08,0x04,0x84,0x44,0x38,0x00,0x00,0x00,0x06,0x05,0x04,0x04,0x04,0x00,
  31. "3",0x00,0x00,0x08,0x04,0x44,0x44,0xB8,0x00,0x00,0x00,0x02,0x04,0x04,0x04,0x03,0x00,
  32. "4",0x00,0x00,0x80,0x60,0x18,0xFC,0x00,0x00,0x00,0x00,0x01,0x01,0x05,0x07,0x05,0x00,
  33. "5",0x00,0x00,0x7C,0x44,0x44,0x44,0x84,0x00,0x00,0x00,0x02,0x04,0x04,0x04,0x03,0x00,
  34. "6",0x00,0x00,0xF0,0x48,0x44,0x44,0x80,0x00,0x00,0x00,0x03,0x04,0x04,0x04,0x03,0x00,
  35. "7",0x00,0x00,0x0C,0x04,0x84,0x64,0x1C,0x00,0x00,0x00,0x00,0x06,0x01,0x00,0x00,0x00,
  36. "8",0x00,0x00,0xB8,0x44,0x44,0x44,0xB8,0x00,0x00,0x00,0x03,0x04,0x04,0x04,0x03,0x00,
  37. "9",0x00,0x00,0x38,0x44,0x44,0x44,0xF8,0x00,0x00,0x00,0x00,0x04,0x04,0x02,0x01,0x00,
  38. "0",0x00,0x00,0xF8,0x04,0x04,0x04,0xF8,0x00,0x00,0x00,0x03,0x04,0x04,0x04,0x03,0x00,
  39. };


  40. #define ASC_HZ_WIDTH 16
  41. typedef struct typFNT_GB16  
  42. {
  43.          charIndex[2];
  44.          charMsk[32];
  45. };

  46. uchar code Hanzi[]={
  47. /*-- 调入了一幅图像:C:\Documents and Settings\Administrator\桌面\12864.bmp  --*/
  48. /*-- 宽度x高度=128x64  用取模软件取模,取模方式为:纵向取模,字节倒序--*/
  49. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  50. 0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0xC0,0xC0,0xE0,0xE0,0xE0,0xF0,0xF0,
  51. 0xF8,0xF8,0xF8,0xFC,0xFC,0xFE,0xFE,0xFE,0xFC,0xF8,0xE0,0x80,0x00,0x00,0x00,0x00,
  52. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  53. 0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x03,0x06,0x0C,0x18,0x30,0x60,0xC0,0x80,0x00,
  54. 0x00,0x00,0x03,0x1E,0xF8,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  55. 0x07,0xFE,0xE0,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  56. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  57. 0x00,0x00,0x00,0x80,0x80,0x80,0xC0,0xC0,0xE0,0xE0,0xF0,0xF0,0x78,0xF8,0xF8,0xFC,
  58. 0xFC,0xFC,0xFE,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  59. 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xF8,0xE0,0x80,
  60. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  61. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0x61,0x23,
  62. 0x3E,0x1C,0x10,0x00,0x00,0x07,0x06,0x06,0x06,0x02,0x02,0x03,0x03,0x03,0x03,0x01,
  63. 0x01,0x01,0x01,0x00,0x00,0x00,0x01,0x01,0x01,0x03,0x03,0x03,0x02,0x06,0x06,0x0E,
  64. 0x0C,0x1C,0x18,0x18,0x30,0x60,0xE0,0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  65. 0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x3F,0x00,0x00,0x01,0x03,
  66. 0x03,0x07,0x0F,0x0F,0x1F,0x1F,0x3F,0x3F,0x3F,0x3F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,
  67. 0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x3F,0x3F,0x3F,
  68. 0x3E,0xF8,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  69. 0x00,0x00,0x00,0x00,0x00,0x80,0xE0,0x38,0x1C,0x0E,0x07,0x83,0x01,0x00,0x00,0x00,
  70. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x40,0xF0,0xC0,0x00,0x00,0x00,0x00,0x00,
  71. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  72. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x07,0x0F,0x3C,0xF0,0xC0,0x00,0x00,0x00,
  73. 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x3F,0x0F,0x03,0x00,0x00,0x00,0x00,0x00,
  74. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,
  75. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x70,0x30,0x38,0x38,0x18,0x1C,0x1C,
  76. 0x1C,0x0E,0x0F,0x3E,0xFE,0x86,0x06,0x07,0x07,0x03,0x02,0x70,0x00,0x00,0x00,0x00,
  77. 0x00,0x00,0x00,0xFC,0x3F,0x03,0xC0,0x00,0xE0,0x78,0x8E,0xDF,0x6E,0x68,0x6C,0x6C,
  78. 0xFC,0x8C,0x84,0x4C,0x24,0x04,0x04,0x07,0x04,0x07,0x07,0x04,0x64,0xC4,0xCC,0x74,
  79. 0x34,0x34,0x34,0x34,0x7C,0xE4,0xC4,0x47,0x67,0x0C,0xFC,0xFC,0x00,0x00,0x00,0xFF,
  80. 0x00,0x00,0x00,0x00,0x80,0x7E,0x00,0x00,0x00,0x00,0x00,0x87,0xFF,0x7E,0x00,0x00,
  81. 0xAF,0xFF,0xFF,0x0F,0x07,0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0xC0,
  82. 0xC0,0xE0,0x70,0x70,0x70,0x38,0x3C,0x1C,0x1C,0x0E,0x0E,0x07,0x07,0x07,0x03,0x03,
  83. 0x03,0x0C,0x20,0x00,0x00,0x00,0x00,0x00,0x01,0x1E,0xC0,0x00,0x00,0x00,0x00,0xC0,
  84. 0x60,0x20,0x00,0x00,0x07,0xFF,0xE0,0x00,0x00,0x00,0x00,0x00,0x7E,0x00,0x00,0x00,
  85. 0x00,0x00,0x00,0x3F,0xF8,0x8E,0x78,0x8F,0xFF,0xA0,0x73,0xF0,0x00,0x00,0x00,0x00,
  86. 0x00,0x03,0x07,0x00,0x00,0x00,0x00,0x04,0xC4,0x02,0x00,0x00,0x00,0x03,0x00,0x00,
  87. 0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xAE,0x10,0x00,0xFF,0xFF,0x00,0x00,0xE0,0x3F,
  88. 0x00,0x80,0xE0,0x3C,0x07,0x00,0x00,0x80,0x40,0x20,0x18,0x07,0x03,0x00,0x00,0x00,
  89. 0xFF,0xFF,0xFF,0xFF,0x78,0xF8,0x38,0x1C,0x1C,0x0E,0x0E,0x07,0x07,0x03,0x03,0x01,
  90. 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x00,0x00,0x00,0x00,
  91. 0x00,0x00,0x00,0x87,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0xA6,0x08,0x30,0x40,0x47,
  92. 0x80,0x80,0x00,0x80,0xF0,0x3F,0x03,0x00,0x40,0x20,0x18,0x07,0x00,0x00,0x00,0x00,
  93. 0x00,0x00,0x00,0x00,0x00,0x03,0x0E,0x1B,0x1C,0x73,0xEC,0xF8,0xF0,0x30,0x60,0x60,
  94. 0x40,0xC0,0xC0,0x80,0x80,0x80,0x80,0x88,0x93,0x80,0x90,0x80,0x88,0x84,0x84,0x80,
  95. 0x80,0x80,0xC0,0xC0,0x40,0x40,0x60,0x20,0x30,0x30,0x3F,0xF7,0xF0,0xFE,0x5B,0x2C,
  96. 0x36,0x11,0x18,0x08,0x04,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  97. 0x13,0x1F,0x18,0x31,0x26,0x38,0x23,0x2C,0x30,0x60,0xC0,0x80,0x80,0x00,0x00,0x00,
  98. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x07,0x00,0x00,0x03,0x0C,0x00,0x80,
  99. 0x40,0x30,0x0C,0xC3,0xC0,0xC0,0xC0,0xE0,0x20,0x00,0x00,0x80,0xC0,0xC0,0x60,0x30,
  100. 0x18,0x1C,0x0F,0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  101. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  102. 0x00,0x00,0x00,0x00,0x81,0xF1,0x39,0x1D,0xE5,0x7F,0x7F,0xFF,0xBC,0x58,0x7D,0xD7,
  103. 0xFC,0x9C,0xF8,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,
  104. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  105. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x03,0x86,0x86,
  106. 0x84,0x84,0xFC,0xB8,0xF8,0x78,0xF8,0xD8,0x78,0x38,0xFC,0x54,0xCA,0x7A,0xF9,0xF8,
  107. 0xF8,0xF8,0xFC,0xFC,0xFD,0x7D,0xFD,0xFE,0xFA,0xDF,0xFF,0xE1,0x00,0x00,0x00,0x00,
  108. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  109. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  110. 0x00,0x00,0x00,0x7E,0x7F,0x01,0x40,0x4F,0x67,0x33,0x11,0x31,0x38,0x1C,0x34,0x22,
  111. 0x65,0x47,0x00,0x1F,0x7E,0x7C,0x40,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  112. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  113. };

  114. void Display(unsigned char sda,unsignedchar sda1)
  115. {
  116.   unsigned char  i,j,k=0;
  117.   for(i=0;i<8;i++)   
  118.     {
  119.     Comwrite(0xb0+k);         
  120.          Comwrite(0x10);
  121.           Comwrite(0x01);  //设置起始例,0x00=SEG0,0x01=SEG1      
  122.       for(j=0;j<64;j++)
  123.           { Datwrite(sda);
  124.            Datwrite(sda1);
  125.          }
  126.    k++;
  127.     }
  128. }

  129. void Hanzi_Disp(void)
  130. {
  131.   unsigned char  i,j,k=0;
  132.   for(i=0;i<8;i++)   
  133.     {
  134.     Comwrite(0xb0+k);         
  135.          Comwrite(0x10);
  136.           Comwrite(0x01);   //0x00=seg0,0x01=seg1  
  137.       for(j=0;j<128;j++)
  138.          {Datwrite(Hanzi[i*128+j]);
  139.          }         
  140.    k++;
  141.     }
  142. }   

  143. void main()
  144. {        
  145.   P1M1=0x00;
  146.   P1M0=0xff;
  147.   P3M1=0x00;
  148.   P3M0=0xff;
  149.   CLK_DIV=0x02;
  150.   LcdInit();
  151.   while(1)
  152.          {
  153.            Clear();
  154.      Display(0xff,0xff);
  155.            Delayms(5000);
  156.      Display(0x55,0xaa);
  157.            Delayms(5000);
  158.      Display(0x00,0xff);
  159.            Delayms(5000);
  160.      Display(0xaa,0xaa);
  161.            Delayms(5000);
  162.      Display(0x55,0x55);
  163.            Delayms(5000);     
  164.           Hanzi_Disp();
  165.           Delayms(5000);
  166.           Delayms(5000);
  167.          }        
  168. }

  169. void Delayms(uint ms)
  170. {        
  171.          ucharj;
  172.          while(ms--)
  173.            for(j=0;j<=20;j++);                       
  174. }                 

  175. void Comwrite(uchar cmd)
  176. {
  177.    uchar data i,j;
  178.              CS1=0;
  179.              R_S=0;
  180.        SCK=1;
  181.          for(i=0;i<8;i++)
  182.              {
  183.                     j=cmd;
  184.                     SCK=0;
  185.                     SDA=cmd&0x80;
  186.         SCK=1;        
  187.                     cmd=j<<1;
  188.                    }
  189.              CS1=1;
  190.                    R_S=1;
  191. }

  192. void Datwrite(uchar dat)         
  193. {                                                               
  194.    uchar data i,j;
  195.              CS1=0;
  196.              R_S=1;
  197.        SCK=1;
  198.          for(i=0;i<8;i++)
  199.              {
  200.                     j=dat;
  201.                     SCK=0;
  202.                     SDA=dat&0x80;
  203.         SCK=1;        
  204.                     dat=j<<1;
  205.                    }
  206.              CS1=1;
  207.                    R_S=0;
  208. }

  209. void Clear()
  210. {
  211.   unsigned char  i,j,m=0;
  212.   for(i=0;i<8;i++)   
  213.     {
  214.     Setadd(0,i);            
  215.     for(j=0;j<128;j++)
  216.          Datwrite(0x00);
  217.     }
  218. }

  219. void Setadd(uchar xl,uchar yl)
  220. {   uchar i;
  221.     i=(xl+4)&0x0f;   //i=(xl+0)&0x0f;(SEG0~SEG127)  // i=(xl+4)&0x0f;(SEG4~SEG131)
  222.     xl=(xl>>4)+0x10;

  223.     Comwrite(0xb0+yl);        
  224.           Comwrite(xl);
  225.          Comwrite(i);  
  226. }

  227. void LcdInit()
  228. {
  229.     RES=1;
  230.     Delayms(50);
  231.     RES=0;
  232.     Delayms(50);
  233.     RES=1;
  234.      Delayms(50);

  235.    Comwrite(0xE2);         //Software Reset
  236.     Delayms(50);
  237.     Comwrite(0xA2);          //SetBias     0xA3 1/7bias,  0xA2 1/9 bias
  238.     Comwrite(0xA0);          //SegmentDirection Select       bit0=0,normal,=1,reverse
  239.     Comwrite(0xC8);          //CommonDirection Select        bit3=0,normal,=1,revese
  240.     Comwrite(0xA8);
  241.     Comwrite(0xA6);
  242.     Comwrite(0xA4);
  243.     Comwrite(0x25);          //调电压 对比度  Set internal rb/ra   0x24
  244.     Comwrite(0x81);          //SetContrast     
  245.      Comwrite(0x1a);          //调电压 对比度 1a>1f
  246.     Comwrite(0x2F);          //PowerControl Set
  247.     Delayms(5000);                    //delay 40mS

  248.     Comwrite(0x60);          //SetDisplay Start Line   
  249.     Comwrite(0xAF);          //DisplayON

  250. }        

  251. void disp_ch(unsigned char c,uCol,uPage)
  252. {
  253.          unsignedchar k,j,ch_w;
  254.          unsignedchar width;
  255.          unsignedchar len;

  256.          len=sizeof(ASC_16)/sizeof(ASC_16[0]);
  257.          for(k=0;k<len;k++)
  258.          {
  259.                    if(c== ASC_16[k].Index[0] ) break;
  260.          }
  261.          if(k<len)
  262.          {

  263.                    if(c=='-'||c==':')
  264.                             width=ASC_CHR_WIDTH-2;
  265.                    elseif(c=='|')
  266.                             width=ASC_HZ_WIDTH-ASC_CHR_WIDTH;
  267.                    else
  268.                             width=ASC_CHR_WIDTH;

  269.                       Setadd(uCol,uPage);
  270.                             for(j=0;j<width;j++)
  271.                             {
  272.                                      ch_w=ASC_16[k].Msk[j];                             
  273.                                      Datwrite(ch_w);
  274.                             }

  275.                             Setadd(uCol,uPage+1);
  276.                             for(j=0;j<width;j++)
  277.                             {
  278.                                      ch_w=ASC_16[k].Msk[ASC_CHR_WIDTH+j];
  279.                                      Datwrite(ch_w);
  280.                             }                 
  281.          }
  282. }

  283. void disp_str(unsigned char *p,unsignedchar uCol,uPage)
  284. {
  285.          unsignedchar i=0;
  286.          while(p[ i]>0)
  287.          {
  288.                    if(p[ i]< 128)
  289.                    {        
  290.                             disp_ch(p[ i],uCol,uPage);
  291.            uCol+=8;
  292.                    }
  293.                    if(Flage1==1)Delayms(200);
  294.                    i++;
  295.          }
  296. }
复制代码

//如有不明可联

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏4 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表