亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4020|回復(fù): 7
打印 上一主題 下一主題
收起左側(cè)

不懂就問:這個是一個lcd1602的重新請問這個dx和dx是什么東西?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:404630 發(fā)表于 2019-9-26 14:42 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
#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ù)器清零,光標(biāo)復(fù)位,顯示緩沖區(qū)DDRAM的內(nèi)容全部寫入空格
        LCD_Write_Com(0x0c);//顯示開啟,不顯示光標(biāo),光標(biāo)不閃爍
        LCD_Write_Com(0x06);//讀寫一個字符過后,地址指針加1,光標(biāo)加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í)行會間斷的顯示
        }
}


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:586438 發(fā)表于 2019-9-26 16:56 | 只看該作者
段選口還是位選口  和數(shù)碼管差不多  你看一下
回復(fù)

使用道具 舉報

板凳
ID:275826 發(fā)表于 2019-9-26 17:47 | 只看該作者
問題都沒說清楚呀,哪有dx?不濕dxLE和wxLE嗎?
回復(fù)

使用道具 舉報

地板
ID:235200 發(fā)表于 2019-9-26 18:07 | 只看該作者
wxLE和dxLE是液晶屏的左右半屏選通信號
回復(fù)

使用道具 舉報

5#
ID:97554 發(fā)表于 2019-9-26 18:13 | 只看該作者
這一定是某個開發(fā)板的例程,DX  WX是他們寫的段選和位選的首拼。此程序點(diǎn)亮LCD1602這兩個玩意兒毫無用處,不參與LCD1602的運(yùn)行,

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);
                }*/
回復(fù)

使用道具 舉報

6#
ID:155507 發(fā)表于 2019-9-26 18:52 | 只看該作者
這種引腳定義,不是固定的標(biāo)準(zhǔn),每個人寫程序都可以隨便定義引腳名的,你隨便拿兩個變量名來問,沒有一點(diǎn)意義,那個人就這么定義的,表示什么腳,他自己明白就行。來這問別人沒有用。這本來就是隨便定義的,沒有什么明文規(guī)定的。不過,是可以根據(jù)程序的前后語句分析出來的。

根據(jù)程序的前后語句分析出來,是六位共陰數(shù)碼管, 由P0連接兩個鎖存器 wxLE控制位選和dxLE控制段選。
回復(fù)

使用道具 舉報

7#
ID:213173 發(fā)表于 2019-9-26 19:29 | 只看該作者
由于學(xué)習(xí)板上的MCU端口都是重復(fù)使用的,在使用LCD1602時因與數(shù)碼管共用P0,所以在程序初始化時把數(shù)碼管位碼wxLE和段碼dxLE鎖存器全部清0后鎖存,以免P0給LCD1602傳輸信號時數(shù)碼管亂閃。

評分

參與人數(shù) 1黑幣 +8 收起 理由
楊雪飛 + 8 贊一個!所以開發(fā)板誤人

查看全部評分

回復(fù)

使用道具 舉報

8#
ID:97554 發(fā)表于 2019-9-26 19:36 | 只看該作者
1602的驅(qū)動:

第一步、定義驅(qū)動引腳:   RW   EN   RS三個引腳,分別定義到單片的IO口(引腳)上,P0   P1  P2  P3自己定,定好了自己在下邊的程序里記得保持一致。

第二步、定義初始化函數(shù),你的原來程序中把這部寫到主函數(shù)里了,一般正經(jīng)程序不會把這段寫進(jìn)主函數(shù)。
  void lcdinit()
{
  LCD_Write_Com(0x38);//顯示模式設(shè)置
  LCD_Write_Com(0x01);//清屏,地址計數(shù)器清零,光標(biāo)復(fù)位,顯示緩沖區(qū)DDRAM的內(nèi)容全部寫入空格
  LCD_Write_Com(0x0c);//顯示開啟,不顯示光標(biāo),光標(biāo)不閃爍
  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;這個就是把單片機(jī)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)在的單片機(jī)速度夠快,不寫一般也不會出問題。
        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èi)很多不必要的時間和精力,不想詆毀任何錄教程的買開發(fā)板的,反正跟他們學(xué)的一塌糊涂,最后自己從基礎(chǔ)的東西開始看才找到門,跟著教程學(xué)了八年,越學(xué)越糊涂。
回復(fù)

使用道具 舉報

9#
無效樓層,該帖已經(jīng)被刪除
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表