欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3015|回復: 6
打印 上一主題 下一主題
收起左側

求助,單片機+LCD1602輸入方向的問題

[復制鏈接]
跳轉到指定樓層
樓主
30黑幣
程序第一個星號注釋的地方   發送0x06,往右輸入   發送0x04,為什么還是往右輸入,不應該往左嗎輸入嗎

程序第二個星號注釋的地方不可以用WriteCmd(0x10);發送0x10使光標向左移嗎    求解答   先感謝大佬

#include<reg52.h>
#include<intrins.h>

#define  uint  unsigned int
#define  uchar  unsigned char
sbit  RW=P2^5;
sbit  RS=P2^6;
sbit  EN=P2^7;

////     延時us   起始延時7.6us   n增加1,延時增加2.2us
//void Delay_us(unsigned char n)
//{
//    while(--n);
//}

//    延時起始為1ms   T加1  增加0.98ms
void   Delay_ms(unsigned int  T)
{
        unsigned  int  x;
        for(;T>0;T--)
        {
                for(x=112;x>0;x--);        
        }
}
//判斷LCD是否處于忙狀態
bit  Text_Busy()
{
        P0=0xff;
        RS=0;
        RW=1;
        EN=0;
        _nop_();
        EN=1;
        return (P0&0x80);
}

void  WriteCmd(uchar Cmd)
{
        while(Text_Busy());
        RS=0;
        RW=0;
        EN=1;
        P0=Cmd;
        _nop_();
        EN=0;

}

void  WriteData(uchar Data)
{
        while(Text_Busy());
        RS=1;
        RW=0;
        EN=1;
        P0=Data;
        _nop_();
        EN=0;
}

//清屏函數
void  ClearShow()
{
        WriteCmd(0x01);
        Delay_ms(5);
}

void WriteAddress(uchar  address)
{
        WriteCmd(address|0x80);
}

void LCD_Init()
{
        WriteCmd(0x38);  //功能設置指令       111000
        Delay_ms(3);
        WriteCmd(0x0c);         //顯示開關控制指令   1100
        Delay_ms(3);
/*************************/
//        WriteCmd(0x06);         //輸入模式設置指令   110
        WriteCmd(0x04);         //輸入模式設置指令   100
/*************************/
        Delay_ms(3);
        ClearShow();
}

int main()
{
        uchar i;
        uchar Date;
        
        LCD_Init();
        while(1)
        {
                WriteAddress(0x09);
                Date=56;
                for(i=0;i<8;i++)
                {
                        WriteData(Date);
                        Date--;
/**************************/
//                        WriteCmd(0x10);
/**************************/
                }
        }
        
        return 0;
}

最佳答案

查看完整內容

進入模式設定命令 該命令設置光標移動方向并顯示開/關。 有4個可能的功能設置命令; 04、05、06和07。此命令通過將地址計數器設置為遞增或遞減來更改光標的移動方向。 此命令非常重要。 如果您不理解它,您可能在液晶顯示屏上看不到任何東西或您真正想要看到的東西。 這里創建了4個GIF動畫,以演示功能設置命令的全部含義。 進入模式設定指令04h 進入模式設定指令04h 遞減地址計數器 顯示移位:關 字串:D ...
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:155507 發表于 2020-3-12 16:44 | 只看該作者

進入模式設定命令

該命令設置光標移動方向并顯示開/關。
有4個可能的功能設置命令; 04、05、06和07。此命令通過將地址計數器設置為遞增或遞減來更改光標的移動方向。
此命令非常重要。 如果您不理解它,您可能在液晶顯示屏上看不到任何東西或您真正想要看到的東西。
這里創建了4個GIF動畫,以演示功能設置命令的全部含義。


進入模式設定指令04h


進入模式設定指令04h
遞減地址計數器
顯示移位:關
字串:Dereli

進入模式設定命令05h


進入模式設定命令05h
顯示移位:開
遞減地址計數器
字串:Hakan

進入模式設定指令06h


進入模式設定指令06h
顯示移位:關
增量地址計數器
字串:Dereli


進入模式設定指令07h


進入模式設定指令07h
顯示移位:開
增量地址計數器
字串:Hakan




回復

使用道具 舉報

板凳
ID:213173 發表于 2020-3-12 17:24 | 只看該作者

回復

使用道具 舉報

地板
ID:685842 發表于 2020-3-13 10:19 | 只看該作者
angmall 發表于 2020-3-12 19:10
進入模式設定命令

該命令設置光標移動方向并顯示開/關。

我測試了一下  發現是清屏指令的問題   LCD初始化函數中的ClearShow();放在輸入模式設置命令之前就可以執行向左輸入   放在輸入模式設置命令之后就向右輸入    請問一下大佬這個是什么原因            下面是可以執行向左執行的初始化函數
void LCD_Init()
{
        WriteCmd(0x38);  //功能設置指令       111000
        Delay_ms(3);
        WriteCmd(0x0c);         //顯示開關控制指令   1100
        Delay_ms(3);
        ClearShow();
/*************************/
//        WriteCmd(0x06);         //輸入模式設置指令   110
        WriteCmd(0x04);         //輸入模式設置指令   100
/*************************/
        Delay_ms(3);
//        ClearShow();
}
回復

使用道具 舉報

5#
ID:451718 發表于 2020-3-13 12:52 | 只看該作者
哈哈,51黑有你更精彩
回復

使用道具 舉報

6#
ID:685842 發表于 2020-3-13 16:46 | 只看該作者

我測試了一下  發現是清屏指令的問題   LCD初始化函數中的ClearShow();放在輸入模式設置命令之前就可以執行向左輸入   放在輸入模式設置命令之后就向右輸入    請問一下大佬這個是什么原因            下面是可以執行向左執行的初始化函數
void LCD_Init()
{
        WriteCmd(0x38);  //功能設置指令       111000
        Delay_ms(3);
        WriteCmd(0x0c);         //顯示開關控制指令   1100
        Delay_ms(3);
        ClearShow();
/*************************/
//        WriteCmd(0x06);         //輸入模式設置指令   110
        WriteCmd(0x04);         //輸入模式設置指令   100
/*************************/
        Delay_ms(3);
//        ClearShow();
}
回復

使用道具 舉報

7#
ID:685842 發表于 2020-3-13 16:48 | 只看該作者
robinsonlin 發表于 2020-3-13 12:52
哈哈,51黑有你更精彩

哈哈     感覺很榮幸  
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表