久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
學習LCD1602不帶轉接板和帶轉接板遇到的那些事。大神指點多多指點
[打印本頁]
作者:
bai850107
時間:
2017-10-15 14:46
標題:
學習LCD1602不帶轉接板和帶轉接板遇到的那些事。大神指點多多指點
我的LCD1602是帶轉接板的,DATA 8PIN 同時 也存在 4PIN接口。開始時只寫8PIN狀態下的程序,液晶顯示是錯誤的,研究好久才發現要把4PIN的存在
同時寫進去,用或不用就用#ifndef #else #endif 來解決。
P0口對應數據總線
一下是我寫的
#include<reg52.h>
//#ifndef __LCD_H_
//#define __LCD_H_
/**********************************
當使用的是4位數據傳輸的時候定義,
使用8位取消這個定義
**********************************/
#define LCD1602_4PINS
//---重定義關鍵詞---//
//#ifndef uchar
#define uchar unsigned char
//#endif
//#ifndef uint
#define uint unsigned int
//#endif
uchar code table[]="I LOVE MCU!";
uchar code table1[]="WWW.XTLCU.COM";
sbit lcde=P2^7;
sbit lcdrs=P2^6;
sbit lcdwr=P2^5;
void delay(uint z);
/*******************************************************************************
* 函 數 名 : Write_Com
* 函數功能 : 向LCD寫入一個字節的命令
* 輸 入 : com
* 輸 出 : 無
*******************************************************************************/
#ifndef LCD1602_4PINS //當沒有定義這個LCD1602_4PINS時
void write_com(uchar com)
{
lcde=0;
lcdrs=0; //選擇發送命令
lcdwr=0;
P0=com; //放入命令
delay(5);
lcde=1; //寫入時序
delay(5); //保持時間
lcde=0;
}
#else
void write_com(uchar com)
{
lcde=0;
lcdrs=0; //選擇發送命令
lcdwr=0;
P0=com; //放入命令
delay(5);
lcde=1; //寫入時序
delay(5); //保持時間
lcde=0;
P0=com << 4; //發送低四位
delay(5);
lcde=1; //寫入時序
delay(5);
lcde=0;
}
#endif
/*******************************************************************************
* 函 數 名 : Write_Data
* 函數功能 : 向LCD寫入一個字節的數據
* 輸 入 : dat
* 輸 出 : 無
*******************************************************************************/
#ifndef LCD1602_4PINS
void write_data(uchar date)
{ lcde=0;
lcdrs=1; //選擇輸入數據
lcdwr=0;
P0=date; //寫入數據
delay(5);
lcde=1; //寫入時序
delay(5); //保持時間
lcde=0;
}
#else
void write_data(uchar date)
{ lcde=0;
lcdrs=1; //選擇輸入數據
lcdwr=0;
P0=date; //寫入數據
delay(5);
lcde=1; //寫入時序
delay(5); //保持時間
lcde=0;
P0=date<<4; //寫入低四位
delay(5);
lcde=1; //寫入時序
delay(5); //保持時間
lcde=0;
}
#endif
/*******************************************************************************
* 函 數 名 : LcdInit()
* 函數功能 : 初始化LCD屏
* 輸 入 : 無
* 輸 出 : 無
*******************************************************************************/
#ifndef LCD1602_4PINS
void init()
{
lcde=0;
write_com(0x38);//設置16x2顯示,5x7點陣,8位數據接口
write_com(0X0c);//開顯示,顯示光標,光標閃爍
write_com(0X06);//寫一個字符后地址針加一,光標加一
write_com(0X01);//數據指針清零,所有顯示清零
write_com(0X80);
}
#else
void init()
{
lcde=0;
write_com(0x32);//將8位總線轉為4位總線
write_com(0X28); //在四位線下的初始化
write_com(0X0c);
write_com(0X06);
write_com(0X1);
write_com(0X80);
}
#endif
void main()
{ uchar num;
init();
//write_com(0x80);//設置數據地址指針 液晶顯示RAM 有 80個字節 00H~27H 40H~67H,第一行第一個字處
for(num=0;num<11;num++)
{
write_data(table[num]);
delay(5);
}
write_com(0x80+0x40);//第二行第一個字處
for(num=0;num<13;num++)
{
write_data(table1[num]);
delay(5);
}
delay(5);
while(1);
}
void delay(uint z)
{
uint i,j;
for(i=z;i>0;i--)
for(j=110;j>0;j--);
}
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
91久久久久久久久久久久久
|
9色网站
|
一级黄a视频
|
www九色
|
亚洲精品久久
|
日韩av在线一区二区三区
|
av在线免费观看网站
|
久久精品中文
|
一区二区三区免费看
|
综合国产
|
一区视频
|
中文字幕成人av
|
91.xxx.高清在线
|
日韩成人免费视频
|
99re国产视频
|
日韩国产欧美一区
|
在线观看国产三级
|
蜜桃久久
|
91亚洲国产成人精品一区二三
|
国产视频亚洲视频
|
欧美精选一区二区
|
国产农村一级片
|
精品1区2区
|
一区二区三区回区在观看免费视频
|
国产色
|
国产乱码精品一区二三赶尸艳谈
|
国产欧美日韩一区二区三区在线观看
|
xx性欧美肥妇精品久久久久久
|
韩日一区二区
|
国产一区二区三区精品久久久
|
精品亚洲一区二区
|
精品成人一区二区
|
亚洲成人综合在线
|
欧美aaa级
|
91国产视频在线观看
|
精品欧美一区二区在线观看欧美熟
|
久久国产精品免费一区二区三区
|
色欧美片视频在线观看
|
国产又爽又黄的视频
|
日本91av视频
|
91精品国产91久久久久久吃药
|