文档章节

数码管

素人派
 素人派
发布于 2016/12/31 20:46
字数 361
阅读 0
收藏 0
[codesyntax lang="cpp" lines="normal"]
int LCD1602_RS=12;   
int LCD1602_RW=11;   
int LCD1602_EN=10;   
int DB[] = { 6, 7, 8, 9};

char str1[]="Welcome to";
char str2[]="geek-workshop by SuRen develop";
char str3[]="where is my address";
char str4[]="http://suren:6080/pageframe/main/mainpage.action?isLoadLanguage=true#";
 
void LCD_Command_Write(int command)
{
  int i,temp;
  digitalWrite( LCD1602_RS,LOW);
  digitalWrite( LCD1602_RW,LOW);
  digitalWrite( LCD1602_EN,LOW);
 
  temp=command & 0xf0;
  for (i=DB[0]; i <= 9; i++)
  {
     digitalWrite(i,temp & 0x80);
     temp <<= 1;
  }
   
  digitalWrite( LCD1602_EN,HIGH);
  delayMicroseconds(1);
  digitalWrite( LCD1602_EN,LOW);
   
  temp=(command & 0x0f)<<4;
  for (i=DB[0]; i <= 9; i++)
  {
     digitalWrite(i,temp & 0x80);
     temp <<= 1;
  }
   
  digitalWrite( LCD1602_EN,HIGH);
  delayMicroseconds(1);
  digitalWrite( LCD1602_EN,LOW);
}

void cleanScreen(int delayTime = 50)
{
   LCD_Command_Write(0x01);
      
   delay(delayTime);
}
 
void LCD_Data_Write(int dat)
{
  int i=0,temp;
  digitalWrite( LCD1602_RS,HIGH);
  digitalWrite( LCD1602_RW,LOW);
  digitalWrite( LCD1602_EN,LOW);
   
  temp=dat & 0xf0;
  for (i=DB[0]; i <= 9; i++)
  {
     digitalWrite(i,temp & 0x80);
     temp <<= 1;
  }
   
  digitalWrite( LCD1602_EN,HIGH);
  delayMicroseconds(1);
  digitalWrite( LCD1602_EN,LOW);
   
  temp=(dat & 0x0f)<<4;
  for (i=DB[0]; i <= 9; i++)
  {
     digitalWrite(i,temp & 0x80);
     temp <<= 1;
  }
   
  digitalWrite( LCD1602_EN,HIGH);
  delayMicroseconds(1);
  digitalWrite( LCD1602_EN,LOW);
}
 
void LCD_SET_XY( int x, int y )
{
  int address;
  if (y ==0)    address = 0x80 + x;
  else          address = 0xC0 + x;
  LCD_Command_Write(address);
}
 
void LCD_Write_Char( int x,int y,int dat)
{
  LCD_SET_XY( x, y );
  LCD_Data_Write(dat);
}
 
void LCD_Write_String(int x,int y,char *s, int delayTime = 50)
{
  LCD_SET_XY(x, y);    //设置地址
  
  int i = 0;
  while(*s && ++i <= 16)             //写字符串
  {
    LCD_Data_Write(*s);   
    s++;
  }
  
  delay(delayTime);
  
  if(*s)
  {
    cleanScreen();
    LCD_Write_String(x, y, s, delayTime);
  }
}
 
void setup (void)
{
  int i = 0;
  for(i = 6; i <= 12; i++)
  {
    pinMode(i,OUTPUT);
  }
  
  delay(100);
  LCD_Command_Write(0x28);//4线 2行 5x7
  delay(50);
  LCD_Command_Write(0x06);
  delay(50);
  LCD_Command_Write(0x0c);
  delay(50);
  LCD_Command_Write(0x80);
  delay(50);
  LCD_Command_Write(0x01);
  delay(50);
}
 
void loop (void)
{
  cleanScreen();
  LCD_Write_String(3,0,str1);//第1行,第4个地址起
  LCD_Write_String(0,1,str2, 3000);//第2行,第2个地址起
  
  cleanScreen();
  LCD_Write_String(0,0,str3);
  LCD_Write_String(0,1,str4, 3000);
}
[/codesyntax]

本文转载自:http://surenpi.com/2014/11/29/%e6%95%b0%e7%a0%81%e7%ae%a1/

上一篇: Python发送邮件
下一篇: Java枚举
素人派
粉丝 26
博文 1907
码字总数 10223
作品 6
东城
程序员
私信 提问

暂无文章

nginx学习笔记

中间件位于客户机/ 服务器的操作系统之上,管理计算机资源和网络通讯。 是连接两个独立应用程序或独立系统的软件。 web请求通过中间件可以直接调用操作系统,也可以经过中间件把请求分发到多...

码农实战
今天
5
0
Spring Security 实战干货:玩转自定义登录

1. 前言 前面的关于 Spring Security 相关的文章只是一个预热。为了接下来更好的实战,如果你错过了请从 Spring Security 实战系列 开始。安全访问的第一步就是认证(Authentication),认证...

码农小胖哥
今天
9
0
JAVA 实现雪花算法生成唯一订单号工具类

import lombok.SneakyThrows;import lombok.extern.slf4j.Slf4j;import java.util.Calendar;/** * Default distributed primary key generator. * * <p> * Use snowflake......

huangkejie
昨天
12
0
PhotoShop 色调:RGB/CMYK 颜色模式

一·、 RGB : 三原色:红绿蓝 1.通道:通道中的红绿蓝通道分别对应的是红绿蓝三种原色(RGB)的显示范围 1.差值模式能模拟三种原色叠加之后的效果 2.添加-颜色曲线:调整图像RGB颜色----R色增强...

东方墨天
昨天
11
1
将博客搬至CSDN

将博客搬至CSDN

算法与编程之美
昨天
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部