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

標題: 單片機lcd1602顯示字母 [打印本頁]

作者: 庫里666    時間: 2018-10-10 13:16
標題: 單片機lcd1602顯示字母
#include <reg52.h>
#include<intrins.h>


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


/**
* 經過邏輯分析儀測量時間
* 單指令是 5us
* nop 0.4ms
* 經過試驗發現, 只需要一個單指令執行時間 5us 休眼就可以
* E = 1 后需要等一小段時間, 在手冊中并沒有說明 -
*/


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()
{
    //初始化 復位 lcd1602
    write_cmd(0x38);//設置顯示模式 指令碼 00111000 => 0x38
    delayms(1);
    write_cmd(0x0c);//開顯示 不顯示光標 不閃爍
    delayms(1);
    write_cmd(0x06);//光標設置 寫字符后指針加一
    delayms(1);
    write_cmd(0x01);//光標清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)
{
    //設置指針位置 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 高向低變化時傳輸
    E = 0;
}


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


char is_busy()
{
    int a=0;
    char result;
    RS = 0;//發送的是命令
    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);
    }
}






歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 九九视频在线观看视频6 | 午夜国产一级 | 日韩欧美三区 | 日韩精品网站 | 一级特黄a大片 | 岛国av免费在线观看 | 少妇一区二区三区 | 一级毛片在线看 | 久久天天综合 | 在线观看中文字幕 | 91精品在线观看入口 | 亚洲国产精品一区二区久久 | 波多野结衣先锋影音 | 国产精品免费在线 | 亚洲国产情侣自拍 | 懂色av色香蕉一区二区蜜桃 | 免费黄色大片 | 91久久精品国产 | 嫩呦国产一区二区三区av | 一区二区日本 | 国产精品久久久久无码av | 国产精品亚洲精品 | 欧美日韩国产精品一区 | 欧美一级久久 | 91精品国产日韩91久久久久久 | 999国产精品视频 | 欧美大片久久久 | www.国产一区 | 中文字幕一区在线观看视频 | 国产精品一卡二卡三卡 | 欧美午夜精品 | 久久综合久久综合久久 | 99re在线播放| 中文字幕国产视频 | 久久久91精品国产一区二区三区 | 日韩欧美国产成人一区二区 | 97人人草| 久久a久久 | 久久国产高清 | 亚洲乱码一区二区三区在线观看 | 国产中文字幕亚洲 |