![](/style/images/good.png)
3
![](/style/images/bad.png)
树莓派连接lcd1602液晶屏幕(c语言版)
source link: https://houye.xyz/2018-09/pi1602/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
树莓派连接lcd1602液晶屏幕(c语言版)
树莓派连接lcd1602液晶屏幕(c语言版)
Table of Contents
树莓派吃灰了将近一年,一直没配屏幕,最近入了一块1602液晶屏幕,用于显示一些简单的信息。网上有很多教程,大多是python的,这篇文章用C语言重新实现了一个最简单的“hello world”。
#include <wiringPi.h> #include <stdio.h> #include <stdlib.h> const int pin_rs = 15; const int pin_e = 16; //8位数据传输模式 //const int pin_data[8] = {0, 1, 2, 3, 4, 5, 6, 7}; //4位数据传输模式 const int pin_data[4] = {0, 1, 2, 3};//d4=17,d5=18,d6=27,d7=22 //写数据函数 void writebits(int bits,int rs_mode); void pluseEnable(void); void lcdprint(char *ch); int main(void){ wiringPiSetup(); printf("INPUT %d OUTPUT %d",INPUT,OUTPUT); //设定引脚为输出模式 pinMode(pin_e, OUTPUT); pinMode(pin_rs, OUTPUT); for(int i=0; i<8; i++){ pinMode(pin_data[i], OUTPUT); } writebits(0x33, 0); //先以8位传输 writebits(0x32, 0); writebits(0x28, 0); //4位数据传输模式 //writebits(0x38, 0); //8位数据传输模式 writebits(0x0c, 0); //不显示光标 writebits(0x06, 0); //显示位置递增 writebits(0x01, 0); //清空屏幕 //delay(50); //writebits(0x80, 0); delayMicroseconds(1000); lcdprint("hello everyone"); return 0; } void pluseEnable(void){ //digitalWrite(pin_e, 0); //delayMicroseconds(1); digitalWrite(pin_e, 1); delayMicroseconds(1); digitalWrite(pin_e, 0); } void writebits(int bits, int rs_mode){ delayMicroseconds(1000); digitalWrite(pin_rs, rs_mode); int arr[8]; int i; for(i = 0; i < 8; i++) arr[i]=(bits>>i)&1; //清零 for(i = 0; i < 4; i++) digitalWrite(pin_data[i], LOW); //先写高四位 for(i = 7; i >= 4; i--) if (arr[i] == 1) digitalWrite(pin_data[i-4], HIGH); //使能 pluseEnable(); for(i = 0; i < 4; i++) digitalWrite(pin_data[i], LOW); //写低四位 for(i = 3; i >= 0; i--) if (arr[i] == 1) digitalWrite(pin_data[i], HIGH); pluseEnable(); } void lcdprint(char *ch){ for (int i = 0; ch[i]!='\0'; i++) writebits(ch[i], 1); }
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK