1024手机基地看电影,午夜福利视频导航,国产精品福利在线一区,亚洲欧美日韩另类成人,在线观看午夜日本理论片,成年超爽免费网站,国产精品成人免费,精品动作一级毛片,成人免费观看网站,97精品伊人久久大香蕉

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

QQ登錄

只需一步,快速開(kāi)始

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

單片機(jī)lcd1602顯示字母

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:407492 發(fā)表于 2018-10-10 13:16 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
#include <reg52.h>
#include<intrins.h>


/**
* P2 上接的是 D1 ~ D7
*/
sbit RS = P3 ^ 0;//數(shù)據(jù) H 命令 L
sbit RW = P3 ^ 1;//讀 H 寫(xiě) L
sbit E  = P3 ^ 2;//高電平 H 使能
#define DATA P2


/**
* 經(jīng)過(guò)邏輯分析儀測(cè)量時(shí)間
* 單指令是 5us
* nop 0.4ms
* 經(jīng)過(guò)試驗(yàn)發(fā)現(xiàn), 只需要一個(gè)單指令執(zhí)行時(shí)間 5us 休眼就可以
* E = 1 后需要等一小段時(shí)間, 在手冊(cè)中并沒(méi)有說(shuō)明 -
*/


void delayms(char ms);
char is_busy();
void write_cmd(unsigned char cmd);
void write_data(unsigned char dat);
void pos (unsigned char pos);


void main()
{
    //初始化 復(fù)位 lcd1602
    write_cmd(0x38);//設(shè)置顯示模式 指令碼 00111000 => 0x38
    delayms(1);
    write_cmd(0x0c);//開(kāi)顯示 不顯示光標(biāo) 不閃爍
    delayms(1);
    write_cmd(0x06);//光標(biāo)設(shè)置 寫(xiě)字符后指針加一
    delayms(1);
    write_cmd(0x01);//光標(biāo)清0 指針清0
    delayms(1);
   
    pos (0);
         write_data(' ');
         write_data(' ');
         write_data(' ');
         write_data(' ');
         write_data(' ');
    write_data('W');
    write_data('a');
    write_data('r');
    write_data('n');
    write_data('i');
    write_data('n');
    write_data('g');
  
   
    pos (0x40);
   
    write_data('P');
    write_data('l');
    write_data('e');
    write_data('a');
    write_data('s');
    write_data(' ');
         write_data(' ');
         write_data('g');
         write_data('i');
         write_data('v');
         write_data('e');
         write_data(' ');
         write_data(' ');
         write_data('w');
         write_data('a');
         write_data('y');




    while(1);
}


void pos (unsigned char pos)
{
    //設(shè)置指針位置 0x80 | 位置
    write_cmd(pos|0x80);
}


void write_data(unsigned char dat)
{
    while(is_busy());
    RS = 1;
    RW = 0;
    E  = 0;
    //_nop_();
    DATA = dat;
    _nop_();
    E = 1;//在E 高向低變化時(shí)傳輸
    E = 0;
}


void write_cmd(unsigned char cmd)
{
    while(is_busy());
    RS = 0;
    RW = 0;
    E  = 0;
    //_nop_();
    DATA = cmd;
    _nop_();
    E = 1;//在E 高向低變化時(shí)傳輸
    E = 0;
}


char is_busy()
{
    int a=0;
    char result;
    RS = 0;//發(fā)送的是命令
    RW = 1;//讀
    //_nop_();
    E  = 1;//使能
    _nop_();
    result = (1<<7 & DATA);//7bit 1 忙 0 不忙
    E = 0;//取消使能
    return result;
}


void delayms(char ms)        //@12.000MHz
{
    while(ms--)
    {
        unsigned char i, j;
        i = 2;
        j = 239;
        do
        {
            while (--j);
        } while (--i);
    }
}

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

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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