久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
不懂就問:這個是一個lcd1602的重新請問這個dx和dx是什么東西?
[打印本頁]
作者:
延仔kiwi
時間:
2019-9-26 14:42
標題:
不懂就問:這個是一個lcd1602的重新請問這個dx和dx是什么東西?
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit wxLE=P2^6;
sbit dxLE=P2^7;
sbit RS=P1^3;
sbit RW=P1^4;
sbit EN=P1^5;
uint i;
uchar code table[]="I LOVE YOU !";
uchar code table1[]="1314520 ! ^_^";
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=114;y>0;y--);
}
bit LCD_Check_Busy()
{
P0=0xff;
RS=0;
RW=1;
EN=0;
_nop_();
EN=1;
return (bit)(P0&0x80);
}
void LCD_Write_Com(uchar com)
{
while(LCD_Check_Busy());
RS=0;
RW=0;
EN=1;
P0=com;
_nop_();
EN=0;
}
void LCD_Write_Data(uchar Data)
{
while(LCD_Check_Busy());
RS=1;
RW=0;
EN=1;
P0=Data;
_nop_();
EN=0;
}
void main()
{
wxLE=1;
P0=0;
wxLE=0;
dxLE=1;
P0=0;
dxLE=0;
LCD_Write_Com(0x38);//顯示模式設(shè)置
LCD_Write_Com(0x01);//清屏,地址計數(shù)器清零,光標復(fù)位,顯示緩沖區(qū)DDRAM的內(nèi)容全部寫入空格
LCD_Write_Com(0x0c);//顯示開啟,不顯示光標,光標不閃爍
LCD_Write_Com(0x06);//讀寫一個字符過后,地址指針加1,光標加1
while(1)
{
LCD_Write_Com(0x80);
delay(10);
for(i=0;i<12;i++)
{
LCD_Write_Data(table[i]);
delay(10);
}
LCD_Write_Com(0xc0);
delay(10);
for(i=0;i<13;i++)
{
LCD_Write_Data(table1[i]);
delay(10);
}
/*for(i=0;i<16;i++) //循環(huán)左移顯示,此時不需要加下面的while(1)語句
{
LCD_Write_Com(0x18);
delay(300);
}*/
while(1);//保持顯示穩(wěn)定,不要改語句后,程序從頭開始執(zhí)行會間斷的顯示
}
}
作者:
如癡百感生
時間:
2019-9-26 16:56
段選口還是位選口 和數(shù)碼管差不多 你看一下
作者:
tyrl800
時間:
2019-9-26 17:47
問題都沒說清楚呀,哪有dx?不濕dxLE和wxLE嗎?
作者:
csmyldl
時間:
2019-9-26 18:07
wxLE和dxLE是液晶屏的左右半屏選通信號
作者:
楊雪飛
時間:
2019-9-26 18:13
這一定是某個開發(fā)板的例程,DX WX是他們寫的段選和位選的首拼。此程序點亮LCD1602這兩個玩意兒毫無用處,不參與LCD1602的運行,
while(1)
{
LCD_Write_Com(0x80); 這行指定位置第一行第一位
delay(10);
for(i=0;i<12;i++)
{
LCD_Write_Data(table[i]);
delay(10);
} 上邊這幾行是依次在第一位第二位直到第十二位的顯示" I LOVE YOU !"
LCD_Write_Com(0xc0); 第二行第一位0XC0,你可以嘗試改成0XC1 0XC2你就知道這是干啥的了
delay(10);
for(i=0;i<13;i++)
{
LCD_Write_Data(table1[i]);
delay(10);
}
/*for(i=0;i<16;i++) //循環(huán)左移顯示,此時不需要加下面的while(1)語句
{
LCD_Write_Com(0x18);
delay(300);
}*/
作者:
angmall
時間:
2019-9-26 18:52
這種引腳定義,不是固定的標準,每個人寫程序都可以隨便定義引腳名的,你隨便拿兩個變量名來問,沒有一點意義,那個人就這么定義的,表示什么腳,他自己明白就行。來這問別人沒有用。這本來就是隨便定義的,沒有什么明文規(guī)定的。不過,是可以根據(jù)程序的前后語句分析出來的。
根據(jù)程序的前后語句分析出來,是六位共陰數(shù)碼管, 由P0連接兩個鎖存器 wxLE控制位選和dxLE控制段選。
作者:
wulin
時間:
2019-9-26 19:29
由于學(xué)習(xí)板上的MCU端口都是重復(fù)使用的,在使用LCD1602時因與數(shù)碼管共用P0,所以在程序初始化時把數(shù)碼管位碼wxLE和段碼dxLE鎖存器全部清0后鎖存,以免P0給LCD1602傳輸信號時數(shù)碼管亂閃。
作者:
楊雪飛
時間:
2019-9-26 19:36
1602的驅(qū)動:
第一步、定義驅(qū)動引腳: RW EN RS三個引腳,分別定義到單片的IO口(引腳)上,P0 P1 P2 P3自己定,定好了自己在下邊的程序里記得保持一致。
第二步、定義初始化函數(shù),你的原來程序中把這部寫到主函數(shù)里了,一般正經(jīng)程序不會把這段寫進主函數(shù)。
void lcdinit()
{
LCD_Write_Com(0x38);//顯示模式設(shè)置
LCD_Write_Com(0x01);//清屏,地址計數(shù)器清零,光標復(fù)位,顯示緩沖區(qū)DDRAM的內(nèi)容全部寫入空格
LCD_Write_Com(0x0c);//顯示開啟,不顯示光標,光標不閃爍
LCD_Write_Com(0x06);//讀
}
第三步、定義寫命令函數(shù)
void LCD_Write_Com(uchar com)
{
while(LCD_Check_Busy());
RS=0;
RW=0;
EN=1;
P0=com; 看這里的P0 = com;這個就是把單片機P0 IO口的八個腳接在LD1602的八個數(shù)據(jù)口D0--D7,P0^0 ----P0^7。
_nop_();
EN=0;
}
第四步、定義寫數(shù)據(jù)函數(shù)
void LCD_Write_Data(uchar Data)
{
while(LCD_Check_Busy()); 判斷忙不忙1602很少需要判斷,甚至下邊那個NOP延時都不需要寫,現(xiàn)在的單片機速度夠快,不寫一般也不會出問題。
RS=1;
RW=0;
EN=1;
P0=Data;
_nop_();
EN=0;
}
第五步、主函數(shù)
void main()
{
先初始化LCD
lcdinit();
然后寫命令(位置)
然后寫數(shù)據(jù)(顯示的內(nèi)容)先寫一個下邊這樣的主函數(shù)試一下,第一行第一位顯示“A”
{
LCD_Write_Com(0x80);
LCD_Write_Data(“A”);
}
建議扔掉你的開發(fā)板,用最小系統(tǒng)加模塊自己連線找合適的教程學(xué),跟著開發(fā)板的教程將讓你花費很多不必要的時間和精力,不想詆毀任何錄教程的買開發(fā)板的,反正跟他們學(xué)的一塌糊涂,最后自己從基礎(chǔ)的東西開始看才找到門,跟著教程學(xué)了八年,越學(xué)越糊涂。
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
日韩性生活网
|
在线播放中文字幕
|
狠狠操电影
|
亚洲人在线播放
|
国产精品免费福利
|
国产欧美精品一区二区三区
|
国产成人亚洲精品自产在线
|
日韩一二区
|
草草草网站
|
国产精品不卡
|
羞羞的视频免费看
|
国产在线观看一区二区三区
|
亚洲精品av在线
|
欧美在线视频一区二区
|
亚洲精品一区二区网址
|
欧美一级特黄aaa大片在线观看
|
狠狠干天天干
|
久色
|
国产日韩一区二区三区
|
婷婷久久五月天
|
99精品电影
|
自拍偷拍欧美
|
中文字幕国产
|
亚洲精久久久
|
亚洲精品一区二区三区四区高清
|
久久久久久久一区
|
色狠狠一区
|
精品久久一区二区
|
欧美极品在线视频
|
搞av.com
|
日本精品一区二区三区在线观看
|
亚洲激情综合网
|
国产精品2
|
国产精品99久
|
欧美性猛片aaaaaaa做受
|
欧美中文一区
|
中文字幕亚洲欧美日韩在线不卡
|
国产精品国产三级国产aⅴ无密码
|
日韩精品无码一区二区三区
|
在线a视频网站
|
中文字幕第49页
|