亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码
標題:
LCD1602顯示黑色小方塊毫無反應無任何顯示,測試了好多的程序
[打印本頁]
作者:
9e2vh8y
時間:
2018-11-20 19:23
標題:
LCD1602顯示黑色小方塊毫無反應無任何顯示,測試了好多的程序
用的是普中科技的51單片機,從網上找了一些lcd的代碼把程序燒入單片機后lcd毫無反應,就只是背景板亮再就是lcd的第一行有好多黑色的小方塊。下面是其中的一個代碼。
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
//這三個引腳參考資料
sbit E=P2^7; //1602使能引腳
sbit RW=P2^6; //1602讀寫引腳
sbit RS=P2^5; //1602數據/命令選擇引腳
uchar tab1[]="512"; //要顯示什么就在這兒改
uchar tab2[]="LCD1602 test ok!"; //[size=15.5555562973022px]要顯示什么就在這兒改
void delay(uint del) //延時1ms
{
uint i,j;
for(i=0;i<del;i++)
for(j=0;j<=168;j++);
}
void writecmd(uchar com) //寫指令
{
E=0;
RS=0;
RW=0;
P0=com;
delay(2);
E=1;
delay(2);
E=0;
}
void writedata(uchar dat)//寫數據
{
E=0;
RS=1;
RW=0;
P0=dat;
delay(2);
E=1;
delay(2);
E=0;
}
void init(void) //初始化
{
delay(15);
writecmd(0x38);
delay(5);
writecmd(0x38);
delay(5);
writecmd(0x38);
writecmd(0x38);
writecmd(0x08);
writecmd(0x01);
writecmd(0x06);
writecmd(0x0c);
}
void main()
{
uchar j;
init();
writecmd(0x80); //告訴液晶在哪個地方顯示 (設置地址指針)//80H+00
for(j=0;j<16;j++) //有16個字符,要循環16次
{
writedata(tab1[j]);
delay(2);
}
writecmd(0x80+0x40); //再設置第二行的起始位置80H+40H
for(j=0;j<16;j++) //有16個字符,要循環16次
{
writedata(tab2[j]);
delay(2);
}
while(1); //讓液晶顯示就一直停在這里。
}
復制代碼
作者:
admin
時間:
2018-11-21 01:22
這是51黑論壇里面別人相似問題的解決過程:
http://www.denmoz.com/bbs/dpj-39388-1.html
作者:
duxiaodx
時間:
2018-11-21 08:12
試試這個
void lcd_initial(void)
{
RS=0;
delay(300);
RW=0;
ENABLE=1;
delay(300);
P0=0x38;
delay(300);
ENABLE=0;
P0=0x06;
ENABLE=1;
delay(300);
ENABLE=0;
P0=0x0c; //////
ENABLE=1;
delay(300);
ENABLE=0;
P0=0x0c;
ENABLE=1;
delay(300);
ENABLE=0;
P0=0x01;
ENABLE=1;
delay(300);
ENABLE=0;
P0=0x80;
ENABLE=1;
delay(300);
ENABLE=0;
}
/////
void writecharxy(unsigned char x,unsigned char y,unsigned char c)
{
switch(x)
{
case 0x01:
{
RS=0;
delay(300);
RW=0;
delay(300);
ENABLE=1;
delay(300);
P0=0x80|y;
delay(300);
ENABLE=0;
RS=1;
delay(300);
RW=0;
delay(300);
ENABLE=1;
delay(300);
P0=c;
delay(300);
ENABLE=0;
}
break;
case 0x02:
{
RS=0;
delay(300);
RW=0;
delay(300);
ENABLE=1;
delay(300);
P0=0xc0|y;
delay(300);
ENABLE=0;
RS=1;
delay(300);
RW=0;
delay(300);
ENABLE=1;
delay(300);
P0=c;
delay(300);
ENABLE=0;
}
break;
default:break;
}
}
//////
void delay(unsigned int t)
{
for(;t>0;t--);
}
作者:
hibis_cn
時間:
2018-11-24 10:45
1、寫指令、寫數據子程序里開始沒有讀忙,不知道是不是這個問題,可以在一開始加入幾個ms的延時替代讀忙試一下。
2、也有可能是對比度沒有調對,可以適當的增加以下LCD電壓試一下。
歡迎光臨 (http://www.denmoz.com/bbs/)
Powered by Discuz! X3.1