User Tools

Site Tools


tutorials:arduino:lcd_display

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

tutorials:arduino:lcd_display [2014/02/27 21:28]
aaron
tutorials:arduino:lcd_display [2014/02/28 10:19] (current)
sam
Line 9: Line 9:
  
 ===== Abstract ===== ===== Abstract =====
 +How to do this,please refer to [[http://​docs.cubieboard.org/​tutorials/​arduino/​controlling_led |light led]] and [[http://​docs.cubieboard.org/​tutorials/​arduino/​connecting|how to connect cubieboard and arduino]]
 +
 {{:​tutorials:​arduino:​照片_4_.jpg|400}} {{:​tutorials:​arduino:​照片_4_.jpg|400}}
  
Line 21: Line 23:
 int DI = 12; int DI = 12;
 int RW = 11; int RW = 11;
-int DB[] = {3, 4, 5, 6, 7, 8, 9, 10};//​使用数组来定义总线需要的管脚+int DB[] = {3, 4, 5, 6, 7, 8, 9, 10}; 
 int Enable = 2; int Enable = 2;
  
 void LcdCommandWrite(int value) { void LcdCommandWrite(int value) {
-// 定义所有引脚+
 int i = 0; int i = 0;
-for (i=DB[0]; i <= DI; i++) //​总线赋值 +for (i=DB[0]; i <= DI; i++){ 
-+   digitalWrite(i,​value & 01);
-   digitalWrite(i,​value & 01);//​因为1602液晶信号识别是D7-D0(不是D0-D7),这里是用来反转信号。+
    value >>= 1;    value >>= 1;
 } }
Line 35: Line 37:
 delayMicroseconds(1);​ delayMicroseconds(1);​
 digitalWrite(Enable,​HIGH);​ digitalWrite(Enable,​HIGH);​
-delayMicroseconds(1);​  // 延时1ms+delayMicroseconds(1);​  
 digitalWrite(Enable,​LOW);​ digitalWrite(Enable,​LOW);​
-delayMicroseconds(1);​  // 延时1ms+delayMicroseconds(1);​  
 } }
  
 void LcdDataWrite(int value) { void LcdDataWrite(int value) {
-// 定义所有引脚 
 int i = 0; int i = 0;
 digitalWrite(DI,​ HIGH); digitalWrite(DI,​ HIGH);
Line 54: Line 55:
 delayMicroseconds(1);​ delayMicroseconds(1);​
 digitalWrite(Enable,​LOW);​ digitalWrite(Enable,​LOW);​
-delayMicroseconds(1);​  // 延时1ms+delayMicroseconds(1);​  
 } }
  
Line 63: Line 64:
 } }
 delay(100); delay(100);
-// 短暂的停顿后初始化LCD + 
-// 用于LCD控制需要 +LcdCommandWrite(0x38);​                     
-LcdCommandWrite(0x38);​  // 设置为8-bit接口,2行显示,5x7文字大小                     +
 delay(64);​                       delay(64);​                      
-LcdCommandWrite(0x38);​  // 设置为8-bit接口,2行显示,5x7文字大小                        +LcdCommandWrite(0x38);​                      
 delay(50);​                       delay(50);​                      
-LcdCommandWrite(0x38);​  // 设置为8-bit接口,2行显示,5x7文字大小                        +LcdCommandWrite(0x38);​                 
 delay(20);​                       delay(20);​                      
-LcdCommandWrite(0x06);​  // 输入方式设定 +LcdCommandWrite(0x06);​   
-                         // 自动增量,没有显示移位+                        
 delay(20);​                       delay(20);​                      
-LcdCommandWrite(0x0E);​  // 显示设置 +LcdCommandWrite(0x0E);​  
-                         // 开启显示屏,光标显示,无闪烁+                         
 delay(20);​                       delay(20);​                      
-LcdCommandWrite(0x01);​  // 屏幕清空,光标位置归零  +LcdCommandWrite(0x01);​  
 delay(100);​                       delay(100);​                      
-LcdCommandWrite(0x80);​  // 显示设置 +LcdCommandWrite(0x80);​  
-                         // 开启显示屏,光标显示,无闪烁+                         
 delay(20);​                       delay(20);​                      
 } }
  
 void loop (void) { void loop (void) {
-  LcdCommandWrite(0x01);​  // 屏幕清空,光标位置归零  +  LcdCommandWrite(0x01);​  
   delay(10); ​   delay(10); ​
   LcdCommandWrite(0x80+3); ​   LcdCommandWrite(0x80+3); ​
   delay(10);​                        delay(10);​                     
-  // 写入欢迎信息 ​+ 
   LcdDataWrite('​W'​);​   LcdDataWrite('​W'​);​
   LcdDataWrite('​e'​);​   LcdDataWrite('​e'​);​
Line 101: Line 101:
   LcdDataWrite('​o'​);​   LcdDataWrite('​o'​);​
   delay(10);​   delay(10);​
-  LcdCommandWrite(0xc0+1);​  // 定义光标位置为第二行第二个位置  +  LcdCommandWrite(0xc0+1);​    
   delay(10); ​   delay(10); ​
   LcdDataWrite('​g'​);​   LcdDataWrite('​g'​);​
Line 117: Line 117:
   LcdDataWrite('​p'​);​   LcdDataWrite('​p'​);​
   delay(5000);​   delay(5000);​
-  LcdCommandWrite(0x01);​  // 屏幕清空,光标位置归零  +  LcdCommandWrite(0x01);​ 
   delay(10);​   delay(10);​
   LcdDataWrite('​I'​);​   LcdDataWrite('​I'​);​
Line 131: Line 131:
   LcdDataWrite('​i'​);​   LcdDataWrite('​i'​);​
   delay(3000);​   delay(3000);​
-  LcdCommandWrite(0x02); ​//​设置模式为新文字替换老文字,无新文字的地方显示不变。+  LcdCommandWrite(0x02); ​
   delay(10);​   delay(10);​
-  LcdCommandWrite(0x80+5); ​//​定义光标位置为第一行第六个位置+  LcdCommandWrite(0x80+5); ​
   delay(10);​     delay(10);​  
   LcdDataWrite('​t'​);​   LcdDataWrite('​t'​);​
tutorials/arduino/lcd_display.1393507729.txt.gz · Last modified: 2014/02/27 21:28 by aaron