久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

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

單片機(jī)控制LCD1602字符在第二行進(jìn)行滾動(dòng)顯示的設(shè)置

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:610877 發(fā)表于 2019-9-27 08:44 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
//主函數(shù)main.c
#include<reg51.h>
#include"lcd.h"

u8 Disp[]="i want you yes  do  a  b c";


void Delay10ms(unsigned int c) ;

void main(void)
{
       u8 i;
       LcdInit();               
                //--寫第二行
        LcdWriteCom(0xC0); //設(shè)置坐標(biāo)在第二行  想要在第二行顯示數(shù)據(jù),必須再次定位指針的位置,即使在lcd.c中進(jìn)行了指針定位
        for(i=0; i<26; i++)
        {
                LcdWriteData(Disp[ i]);
        }

        LcdWriteCom(0x07); //設(shè)置每寫一次整屏右移
        while(1)
        {                        
                LcdWriteCom(0xC0); //設(shè)置坐標(biāo)在第二行  
                for(i=0; i<26; i++)
                {
                        LcdWriteData(Disp[ i]);
                        Delay10ms(100);
                }
               
        }                                
}  
void Delay10ms(unsigned int c)   //誤差 0us
{
    unsigned char a, b;

        //--c已經(jīng)在傳遞過來的時(shí)候已經(jīng)賦值了,所以在for語句第一句就不用賦值了--//
    for (;c>0;c--)
        {
                for (b=38;b>0;b--)
                {
                        for (a=130;a>0;a--);
                }         
        }      
}


//lcd.c

#include"lcd.h"

void Lcd1602_Delay1ms(u16 c)
{
    u8 a, b;
    for(; c > 0; c--)
        {
            for(b = 199; b > 0; b--)
                for(a = 1; a > 0; a--);
        }
}
#ifndef LCD1602_4PINS
void LcdInit()
{
          LcdWriteCom(0x38);               //開顯示,顯示一行
    LcdWriteCom(0x0c);              //開顯示不顯示指針
    LcdWriteCom(0x06);             //寫一個(gè)指針加1
    LcdWriteCom(0x01);            //清屏
    LcdWriteCom(0x80);           //設(shè)置數(shù)據(jù)指針起點(diǎn)
         // LcdWriteCom(0x80+0x40);                 //將指針放在第二行首位
}
#else
void LcdInit()
{
    LcdWriteCom(0x32);              //將8位總線轉(zhuǎn)為4位總線
    LcdWriteCom(0x2c);             //在4位線下的初始化,兩行
    LcdWriteCom(0x0C);            //開顯示不顯示指針
    LcdWriteCom(0x06);           //寫一個(gè)指針加1
    LcdWriteCom(0x01);          //清屏
    LcdWriteCom(0x80);               //設(shè)置數(shù)據(jù)指針起點(diǎn)
        // LcdWriteCom(0x80+0x40);                 //將指針放在第二行首位
}
#endif


#ifndef LCD1602_4PINS
void LcdWriteCom(u8 dat)
{
    LCD1602_E = 0;              //使能
    LCD1602_RS = 0;            //選擇發(fā)送命令
    LCD1602_RW = 0;           //選擇寫入
    LCD1602_DATAPINS = dat;  //放入命令
    Lcd1602_Delay1ms(1);    //等待數(shù)據(jù)穩(wěn)定
    LCD1602_E = 1;         //寫入時(shí)序
    Lcd1602_Delay1ms(5);  //保持時(shí)間
    LCD1602_E = 0;
}
#else
void LcdWriteCom(u8 dat)
{
    LCD1602_E = 0;              //使能清零
    LCD1602_RS = 0;            //選擇寫入命令
    LCD1602_RW = 0;           //選擇寫入

    LCD1602_DATAPINS = dat;  //傳送高四位
    Lcd1602_Delay1ms(1);    //等待數(shù)據(jù)穩(wěn)定

    LCD1602_E = 1;         //寫入時(shí)序
    Lcd1602_Delay1ms(5);  //保持時(shí)間
    LCD1602_E = 0;

    LCD1602_DATAPINS = dat << 4; //傳送低四位
    Lcd1602_Delay1ms(1);

    LCD1602_E = 1;         //寫入時(shí)序
    Lcd1602_Delay1ms(5);  //保持時(shí)間
    LCD1602_E = 0;
}

#endif // LCD1602_4PINS


#ifndef LCD1602_4PINS
void LcdWriteData(u8 dat)
{
    LCD1602_E = 0;              //使能
    LCD1602_RS = 1;            //選擇輸入數(shù)據(jù)
    LCD1602_RW = 0;           //選擇寫入

    LCD1602_DATAPINS = dat;  //寫入數(shù)據(jù)
    Lcd1602_Delay1ms(1);    //等待數(shù)據(jù)穩(wěn)定

    LCD1602_E = 1;         //寫入時(shí)序
    Lcd1602_Delay1ms(5);  //保持時(shí)間
    LCD1602_E = 0;
}
#else
void LcdWriteData(u8 dat)
{
    LCD1602_E = 0;              //使能清零
    LCD1602_RS = 1;            //選擇寫入數(shù)據(jù)
    LCD1602_RW = 0;           //選擇寫入

    LCD1602_DATAPINS = dat;  //傳送高四位
    Lcd1602_Delay1ms(1);    //等待數(shù)據(jù)穩(wěn)定

    LCD1602_E = 1;         //寫入時(shí)序
    Lcd1602_Delay1ms(5);  //保持時(shí)間
    LCD1602_E = 0;

    LCD1602_DATAPINS = dat << 4; //傳送低四位
    Lcd1602_Delay1ms(1);

    LCD1602_E = 1;         //寫入時(shí)序
    Lcd1602_Delay1ms(5);  //保持時(shí)間
    LCD1602_E = 0;
}

#endif // LCD1602_4PINS



//lcd.h

#ifndef _lcd_H
#define _lcd_H

#include<reg51.h>
#define u8 unsigned char
#define u16 unsigned int

//#define LCD1602_4PINS
#define LCD1602_DATAPINS  P0

sbit LCD1602_E =P2^7;
sbit LCD1602_RS=P2^6;
sbit LCD1602_RW=P2^5;

void LcdWriteData(u8 dat);
void LcdWriteCom(u8 dat);
void LcdInit();


#endif

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

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

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国内精品久久久久久 | 91欧美精品成人综合在线观看 | 久久视频免费看 | 国产精品区二区三区日本 | 毛片软件 | 国产精品久久久久久久久久久久冷 | 精品视频在线观看 | 久久久久国产一区二区三区 | 国产免费观看一区 | 日本一本视频 | 国产精久久久久久 | 欧美一区二区三区视频 | 精品福利一区二区三区 | 国产9999精品 | 自拍偷拍中文字幕 | 狠狠婷婷综合久久久久久妖精 | 一区二区日本 | 欧美激情国产日韩精品一区18 | 成人欧美一区二区三区在线观看 | 亚洲视频在线免费观看 | 亚洲免费一区二区 | 亚洲va欧美va天堂v国产综合 | 久久久精品一区二区 | 成年人在线观看视频 | 美女福利视频 | 天天操网| 久久久.com | 国产精品极品美女在线观看免费 | 国产 日韩 欧美 中文 在线播放 | 久久国产成人午夜av影院武则天 | 超碰在线人 | 91天堂网 | 国产精品一区一区 | 四虎永久免费影院 | www天天操 | xxx.在线观看 | 欧美日韩在线观看视频网站 | 亚洲夜射 | 天天综合网天天综合色 | 日本不卡高清视频 | 亚洲日韩中文字幕一区 |