wwwxxx国产_337p日本欧洲亚洲大胆张筱雨_免费在线看成人av_日本黄色不卡视频_国产精品成熟老女人_99视频一区_亚洲精品97久久中文字幕_免费精品视频在线_亚洲色图欧美视频_欧美一区二三区

專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

LCD1602.h和LCD1602.c文件下載(51單片機(jī)液晶驅(qū)動)

作者:huqin   來源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時間:2014年08月16日   【字體:

LCD1602.c文件的內(nèi)容(這個一個完善的用51單片機(jī)實(shí)現(xiàn)1602液晶屏驅(qū)動文件帶protues仿真文件):
完整的程序源碼和仿真文件下載: http://www.izizhuan.cn/f/TLC1543c51.rar

 /*----File Description----

-  File Name              : LCD1602.h
-  Functions              : 
-  Description            : None
                            
-  Author                 : Mason    別名:小菜
-  Create Date            : 2013/7/25 
-  Performance            : Finished
-  Global Variable        : None
-  File static Variable   : None
-  -------------------------------------------
-  Revision History
-  No.    Date        Revised by    Item    Description
-  
-------------------------------------------------------------------------*/
/*----------------------------Head---------------------------------------*/
#include "LCD1602.h"
#include "delay.h"
/*----------------------------Code---------------------------------------*/

// LCD1602上電后初使化
void LCD1602_Init(void)
{
    delayms(50);                // 上電延時50ms.
    write1602_byte(0x3c,0);     // 功能設(shè)置:雙行、8位數(shù)據(jù)接口、5*10點(diǎn)陣字符.
    while(Read1602_BF());       // 讀取1602的繁忙狀態(tài)(Busy Flag),直至空閑。
    write1602_byte(0x0c,0);     // 顯示開關(guān):開;光標(biāo)顯示:關(guān);閃爍控制:關(guān);
    while(Read1602_BF());       // 讀取1602的繁忙狀態(tài)(Busy Flag),直至空閑。
    write1602_byte(0x06,0);     // 操作后,AC自增,畫面不動。
    while(Read1602_BF());       // 讀取1602的繁忙狀態(tài)(Busy Flag),直至空閑。
    write1602_clear();
    CursorRST_1602();           // 光標(biāo)復(fù)位,但DDRAM內(nèi)容不變
}

/*----Function Description----
-  Function Name           : write1602_byte(uchar dat,bit RorS)
-  Description             : 發(fā)送一個字節(jié)數(shù)據(jù)
-  Return Code             : None
-  Parameters/Arguments    : dat 是一個字節(jié)數(shù)據(jù),RorS 指定 dat 是數(shù)據(jù)還是指令
-  Global Variable         : None
-  static Variable         : None
-------------------------------------------------------------------------*/
void write1602_byte(uchar dat,bit RorS)
{
    RW_1602 = 0;            // 寫
    EN_1602 = 0;
    delayus(10);            // 數(shù)據(jù)建立時間,需大于1us.這里延時25us.
if(RorS) RS_1602 = 1;     // dat is a data.
else RS_1602 = 0;     // dat is a command.
    EN_1602 = 1;            // 使能脈沖需大于450ns。
    DP_1602 = dat;          // 整個使能周期需大于1ms。
    delayus(10);            // 延時25us
    EN_1602 = 0;
    delayms(1);             // 指令執(zhí)行時間,需大于40us.這里延時1ms.
}

/*----Function Description----
-  Function Name           : bit Read1602_BF(void)
-  Description             : 判斷1602指令執(zhí)行狀態(tài)。
-  Return Code             : BF(busy flag),BF = 1 : busy. 
-  Parameters/Arguments    : None
-  Global Variable         : None
-  static Variable         : None
-------------------------------------------------------------------------*/
bit Read1602_BF(void)       // 讀取1602的空閑狀態(tài)(Busy Flag)
{
    RW_1602   = 1;          // 讀
    RS_1602   = 0;
    delayus(50);            // 延時100us,這里的延時需大于   
    DP_1602 <<= 1;          // 讀指令最大執(zhí)行時間40us.
    return CY;              // 將BF位移至CY位并返回.
}

void write1602_clear(void)
{
    write1602_byte(CLRLCD1602,0);   // 發(fā)送清屏指令。
    delayms(50);                    // 延時需大于15.2ms,這里延時50ms    
}

void CursorRST_1602(void)           // 光標(biāo)復(fù)位,但DDRAM內(nèi)容不變
{
    write1602_byte(CURRST1602,0);   // 發(fā)送清屏指令。
    delayms(50);                    // 延時需大于15.2ms,這里延時50ms    
}

/*----Function Description----
-  Function Name           : write1602_DDRAM_pos(uchar px,uchar py)
-  Description             : DDRAM 為顯示數(shù)據(jù)存儲器。本函數(shù)更改指向DDRAM
                             的指針AC。
-  Return Code             : None 
-  Parameters/Arguments    : py : row . 0 : First row . 1 : Second row .
                             px : 從左至右分別為 0 ~ 15 .
-  Global Variable         : None
-  static Variable         : None
-------------------------------------------------------------------------*/
void write1602_DDRAM_pos(uchar px,uchar py)
{
    if(py){
        write1602_byte( px|0x80 + 0x40 , 0 );    
    }else{
        write1602_byte( px|0x80 , 0 );    
    }    
}


/*----Function Description----
-  Function Name           : write1602_CGRAM(uchar dat[8],uchar add)
-  Description             : 將一個字符(8個字節(jié)的數(shù)組)寫入 CGRAM。
-  Return Code             : None 
-  Parameters/Arguments    : uchar dat[8]為字符數(shù)組。
                             uchar add 為自定義字符的訪問地址,取值應(yīng)在 0~7. 
-  Global Variable         : None
-  static Variable         : None
-------------------------------------------------------------------------*/
void write1602_CGRAM(uchar dat[8],uchar add)
{
    uchar temp;
    add %= 8;                               // 數(shù)據(jù)有效性處理
    for(temp=0;temp<8;temp++)
    {   
        write1602_byte( add<<3|0x40+temp , 0 );    // 寫 CGRAM 地址。
        write1602_byte( dat[temp] , 1 );    // 寫 CGRAM 字符數(shù)據(jù)。
    }   
}

void draw1602_basic(void)
{
    uchar temp;
    for(temp=0;temp<8;temp++)       // 裝載8個自定義符號
        write1602_CGRAM(dat1602[temp],temp);

    write1602_DDRAM_pos(0,0);
    write1602_byte(4,1);     // 顯示8個自定義符號
    write1602_DDRAM_pos(15,0);
    write1602_byte(5,1);     // 顯示8個自定義符號
    write1602_DDRAM_pos(0,1);
    write1602_byte(6,1);     // 顯示8個自定義符號
    write1602_DDRAM_pos(15,1);
    write1602_byte(7,1);     // 顯示8個自定義符號
    
    write1602_DDRAM_pos(5,0);
    write1602_byte('m',1);
    write1602_byte('a',1);
    write1602_byte('s',1);
    write1602_byte('o',1);
    write1602_byte('n',1);

    write1602_DDRAM_pos(2,1);
    write1602_byte('v',1);
    write1602_byte('o',1);
    write1602_byte('l',1);
    write1602_byte('t',1);
    write1602_byte(':',1);
}
 
 

 

 

 

LCD1602.h頭文件的內(nèi)容(這個一個完善的1602液晶屏驅(qū)動文件帶protues仿真文件)

/*----Head Description----

-  File Name               : LCD1602.h

-  Author                  : Mason    別名:小菜

-  Create Date             : 2013/7/25 

-  -------------------------------------------

-  Revision History

-  No.    Date        Revised by    Item    Description

-  

-------------------------------------------------------------------------*/

/*----------------------------Head---------------------------------------*/

#include <reg52.h>

#include "MICRO.h"


#ifndef _LCD1602_H_

#define _LCD1602_H_

/*----------------------------Interface----------------------------------*/

sbit RS_1602 = P0^5;         // 1:數(shù)據(jù);0:指令。

sbit RW_1602 = P0^6;         // 1:讀;  0:寫。

sbit EN_1602 = P0^7;         // 高電平使能

#define DP_1602 P2           // 數(shù)據(jù)/指令接口

/*----------------------------Micro--------------------------------------*/

// 指令設(shè)置(若不另加說明):需令RS1602 = 0;RW1602 = 0 ;


// 清屏

// DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0          

//   0   0   0   0   0   0   0   1

#define CLRLCD1602 0x01         // Clear LCD1602.       清屏


// 光標(biāo)復(fù)位

// DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0          

//   0   0   0   0   0   0   1   *

#define CURRST1602 0x02         // Cursor restoration.  光標(biāo)復(fù)位


// 輸入方式設(shè)置                 // I : Increase, D : Decrease. AC : address counter. 地址寄存器。   

// DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0          

//   0   0   0   0   0   1 I/D   S

#define MODEIN1602 0x06         // AC Increase,Not Shift. 操作后,AC自增,畫面不動。  

#define MODEDN1602 0x04         // AC Decrease,Not Shift. 操作后,AC自減,畫面不動。

#define MODEIS1602 0x07         // AC Increase,Shift. 操作后,AC自增,畫面平移。

#define MODEDS1602 0x05         // AC Decrease,Shift. 操作后,AC自減,畫面平移。


// 顯示開關(guān)控制  Display Setup

// DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

//   0   0   0   0   1   D   C   B

// D: Display Switch.  顯示開關(guān)。

// C: Cursor Switch.   光標(biāo)開關(guān)。置位時顯示光標(biāo)。

// B: Blink Switch.    閃爍控制。置位時光標(biāo)閃爍。

// 將下列相應(yīng)功能宏相或后賦值操作。

#define DISSET1602 0x08

#define SETDIS1602 0x04

#define SETCUR1602 0x02

#define SETBLI1602 0x01


// 光標(biāo)/畫面位移(不改變DDRAM內(nèi)容)

// DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

//   0   0   0   1 S/C R/L   *   *

// S/C: Screen or Cursor.

// R/L: Right or left.


// 功能設(shè)置

// DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

//   0   0   1  DL   N   F   *   *

// DL = 1,8位數(shù)據(jù)接口; DL = 0,4位數(shù)據(jù)接口。

// N  = 1,兩行顯示;    N = 0,單行顯示。

// F  = 1,5*10點(diǎn)陣字符;F = 0,5*7點(diǎn)陣字符。


// CGRAM 地址設(shè)置,character generator RAM  (0~3FH)

// DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

//   0   1  A5  A4  A3  A2  A1  A0


// DDRAM 地址設(shè)置

// DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

//   1  A6  A5  A4  A3  A2  A1  A0

// N = 0,單行顯示 A6 ~ A0 = 00H ~ 4FH

// N = 1,首行     A6 ~ A0 = 00H ~ 27H

//       次行     A6 ~ A0 = 40H ~ 67H


// 讀BF、AC值(BF:Busy Flag.)

// RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

//  0   1  BF  A6  A5  A4  A3  A2  A1  A0


// 寫數(shù)據(jù)

// RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

//  0   1  BF  A6  A5  A4  A3  A2  A1  A0 


/*------------------------------Code Variable----------------------------*/

extern uchar code dat1602[][8];     // 自定義字符


/*----------------------------Function Declaration-----------------------*/

bit  Read1602_BF(void);                     // 讀取1602的空閑狀態(tài)(Busy Flag)

void LCD1602_Init(void);                    // LCD1602上電初使化

void CursorRST_1602(void);                  // 光標(biāo)復(fù)位,但DDRAM內(nèi)容不變

void write1602_clear(void);                 // 清屏

void write1602_byte(uchar dat,bit RorS);    // 寫一字節(jié)數(shù)據(jù)/指令.

void write1602_DDRAM_pos(uchar px,uchar py);// 寫指向DDRAM的地址指針

void write1602_CGRAM(uchar dat[8],uchar add);// 將一個5*8自定義字符寫入CGRAM中


void draw1602_basic(void);


#endif

 

 

關(guān)閉窗口
色视频免费在线观看| 黄色亚洲在线| 男人天堂av电影| 亚洲福利av在线| 欧美黑人狂野猛交老妇| 欧美亚洲丝袜传媒另类| 久久精品视频免费| 亚洲激情视频| 精品五月天堂| www.youjizz.com在线| 免费一级大片| 精品网站www| 中文字幕二区三区| 永久免费看av| 中文字幕日韩免费视频| 高潮白浆女日韩av免费看| 精品一区二区三区香蕉蜜桃| 欧美xxav| 波多野结衣欧美| 性孕妇free特大另类| 黄色av网站在线免费观看| 免费自拍视频| 久久综合第一页| 一级黄色大片免费| 四虎1515hh.com| 在线播放 亚洲| 国产v亚洲v天堂无码| 97国产成人精品视频| 亚洲欧洲黄色网| 久久奇米777| 蜜臀久久99精品久久一区二区| 国产高清视频色在线www| 中文在线天堂网| 日日摸日日搞日日| 国产一区二区三区视频免费观看| 一区二区三区免费高清视频 | 97se亚洲| 日韩欧美看国产| 超碰在线caoporn| 青青青免费视频在线2| 国产小黄视频| 特一级黄色片| 国产又白又嫩又紧又爽18p| 亚洲高清视频网站| 欧美精品色婷婷五月综合| 欧美日韩高清在线一区| 999视频在线观看| 国产精品国产三级国产专播精品人 | 国产成人拍精品视频午夜网站| 偷窥少妇高潮呻吟av久久免费| 日韩激情在线观看| 一区二区蜜桃| 91成人影院| 欧美在线免费看视频| 国产一级成人av| 欧美黄色成人| jizz亚洲女人高潮大叫| 福利在线免费视频| 7777kkk亚洲综合欧美网站| av在线看片| 国产又粗又猛又黄| av黄色在线看| 久久久久久久久久影院| 五月天婷婷网站| 日韩女优在线视频| 在线观看视频在线观看| 永久av免费在线观看| 熟妇无码乱子成人精品| 精品国产免费久久久久久婷婷| 日本网站在线看| 无码人妻一区二区三区在线| 亚洲精品在线视频免费观看| 国产ts丝袜人妖系列视频| 久久久久久久久久久国产精品| 亚洲av成人精品一区二区三区| 午夜性福利视频| 黄色国产在线观看| 国产一级久久久久毛片精品| 女人十八毛片嫩草av| 成人信息集中地| 青青草原国产视频| 美女又爽又黄免费视频| 日本一二三不卡视频| 国产美女永久免费无遮挡| 91美女精品| 人妻少妇精品无码专区| av免费观看久久| 精品一区二区在线免费观看| 欧美日韩国产在线一区| 国产精品麻豆| 无码国模国产在线观看| 成a人片在线观看| 菠萝蜜视频国产在线播放| 七七久久电影网| 精品极品在线| 欧美日韩va| 欧美大奶一区二区| 91一区二区三区四区| 欧美日韩一视频区二区| 日韩不卡手机在线v区| 国精产品一区一区三区mba桃花| 不卡影院免费观看| 国产精品美女www爽爽爽| 亚洲一区二区在线播放相泽| 欧美视频国产精品| 日韩欧美精品三级| 久久精品青青大伊人av| 欧美在线一级va免费观看| 91久久国产精品91久久性色| 蜜桃传媒一区二区| 天天干天天色天天爽| 116极品美女午夜一级| 在线免费黄色网| 欧美日韩电影一区二区| 无码毛片aaa在线| 亚洲最大成人在线观看| 亚洲 欧美 日韩 国产综合 在线| 日韩中文字幕组| 成人精品在线观看视频| 国产91av视频| 午夜久久久久久久久久| 亲爱的老师6电影韩剧| 青青草社区在线| 星空无限传媒在线| 色视频免费在线观看| 国产精品专区免费| 欧美美女一区| 久久99精品国产.久久久久| 国产精品乱子久久久久| 777午夜精品视频在线播放| 一区二区欧美在线| 国产成人综合久久| 一区国产精品| www.国产在线播放| 欧美黄色片免费观看| 5566成人精品视频免费| 久中文字幕一区| 精品久久久久久久无码| 欧美xxxx精品| 欧美日韩大片在线观看| 国产欧美综合视频| 少妇喷水在线观看| www.青青青| 国产一二三区在线观看| 99这里只有精品视频| 亚洲精选国产| 国产精品毛片a∨一区二区三区 | 国产精品永久在线| 国产麻豆电影在线观看| 免费黄色a级片| wwwwww国产| 另类专区欧美| 欧美私人网站| 大陆精大陆国产国语精品| 久久精品午夜| 一区二区三区精密机械公司| 一区二区三区四区视频| 国产乱码精品一区二区三区卡 | 久久久欧美一区二区| 蜜桃传媒视频麻豆第一区免费观看| 亚洲第一中文av| 中文字幕第28页| 国产一区二区三区不卡免费观看 | 国产精品视频播放| 欧美精品一区二区久久久| 国产精品igao视频| av免费看网址| 美女的奶胸大爽爽大片| 国产中文字幕网| 老司机在线视频二区| 九九热线有精品视频99| 97se亚洲国产综合自在线| 91精品国产欧美一区二区| 国产精品久久久久久久久| 久久国产成人精品国产成人亚洲| 91精品一区二区三区蜜桃| 亚洲精品乱码电影在线观看| 免费观看久久久久| 亚洲国产精品久久久久蝴蝶传媒| 国产欧美一区二区三区在线老狼| 日韩精品在线播放| 久久综合福利| 日本免费www| 久久免费精品一区二区| 日韩精品亚洲人成在线观看| 欧美激情视频一区二区三区在线播放| 夜久久久久久| 伊人婷婷欧美激情| 午夜精品蜜臀一区二区三区免费 | 中文字幕一精品亚洲无线一区| 国产在线欧美日韩| 精品中文字幕在线播放| 极品美女一区二区三区视频| 久久久久久国产精品免费无遮挡| 91视频久久| 亚洲日本在线看| 国内伊人久久久久久网站视频 | 欧美黄色aaaa| 亚洲国产精品人人做人人爽| 欧洲亚洲妇女av| 中文字幕av不卡在线| 一区二区三区播放| 国产毛片在线| 精品久久在线| 国产精品996| 日韩黄色高清视频| 欧美午夜精品久久久久免费视| 蜜桃av免费看| 深夜福利网站| 成人51免费| 2020国产精品自拍| 久久天天躁狠狠躁夜夜av| 久久精品日韩| 久久久久久亚洲中文字幕无码| 又长又粗又大又爽| 成人免费网站www网站高清| 国产在线一区二区综合免费视频| 日韩精品一区二| 亚洲成人精品电影在线观看| 久久免费播放视频| 原千岁中文字幕| 粉嫩av国产一区二区三区| 99视频一区二区| 色狠狠色狠狠综合| 91手机视频在线观看| 成人黄色免费网址| 奇米网人体黄视频| 亚欧洲精品视频在线观看| 国产精品一区久久久久| 亚洲欧美在线第一页| 超碰成人免费在线| www.国产黄色| 午夜影院一区| 久久综合久久99| 午夜精品一区二区三区视频免费看 | 成人欧美一区二区三区的电影| 老色鬼精品视频在线观看播放| 亚洲第一二三四五区| 日本香蕉视频在线观看| av资源免费看| 亚洲精品88| 国产日产亚洲精品系列| 国产精品av在线| 99在线视频免费| 国产香蕉视频在线观看| 亚洲精品乱码| 亚洲桃花岛网站| 中文字幕在线综合| www91在线观看| 亚洲最大在线| 欧美老人xxxx18| www.男人天堂网| 少妇无码一区二区三区| 国产欧美88| 欧美性猛交xxxx偷拍洗澡| 日韩欧美视频一区二区| 国产三级视频在线播放| 在线日本欧美| 亚洲午夜羞羞片| 日本午夜精品一区二区| 国产精品天天操| 精品自拍视频| 午夜视频久久久久久| 视频一区在线免费观看| 精品人妻无码一区二区色欲产成人| 成人涩涩视频| 午夜精品在线视频一区| 一区二区三区视频在线播放| 日本三级中文字幕| 国产三级在线播放| 久久久久久久网| 亚洲综合自拍一区| 波多野结衣高清视频| 两个人看的在线视频www| 国产精品日韩精品欧美在线| 国产精品免费一区二区三区在线观看| 成人av网站在线播放| 黄色成人免费网| 亚洲大片精品永久免费| 中文精品视频一区二区在线观看| 色一情一乱一乱一区91av| 中文字幕日韩高清在线| 欧美日高清视频| 国产一级做a爰片久久| 麻豆入口视频在线观看| 久久国产精品久久久久久电车| 欧美激情小视频| 丝袜 亚洲 另类 欧美 重口| 97在线观看| 日本一不卡视频| 国产成人av在线| 欧美亚洲精品天堂| 日产精品一区| 91久久久免费一区二区| aa在线免费观看| 天天看天天色| 久久精品国产77777蜜臀| 国产精品情侣自拍| 亚洲综合视频在线播放| 91精品日本| 亚洲国产精品久久久| 精品无码国产一区二区三区51安| 久久手机免费观看| 久久精品夜夜夜夜久久| 神马影院午夜我不卡| 欧美猛交xxxxx| 日韩av中文字幕一区| 亚洲成人性视频| 美女又爽又黄视频毛茸茸| 午夜激情在线观看| 伊人性伊人情综合网| 草草久久久无码国产专区| 先锋影音av资源网| 国产乱子轮精品视频| 99久re热视频这里只有精品6| 国产后入清纯学生妹| 成人精品电影| 欧美精品在线极品| av黄色在线播放| 都市激情久久| 在线日韩中文字幕| 久草视频精品在线| 精品国产一区二区三区2021| 亚洲激情视频在线播放| 中国1级黄色片| 蜜桃视频在线观看播放| 欧美亚洲愉拍一区二区| 男人添女人荫蒂国产| 秋霞a级毛片在线看| 婷婷一区二区三区| 手机版av在线| 色大18成网站www在线观看| 亚洲国产视频直播| 热久久久久久久久| 97视频在线观看网站| 舔着乳尖日韩一区| 欧美xxxx黑人| 黄网站在线观| 在线观看91精品国产麻豆| av在线网站观看| 大胆人体一区二区| 亚洲国产高清高潮精品美女| 国产稀缺精品盗摄盗拍| 免费看一区二区三区| 三级精品视频久久久久| 久久国产视频一区| 成人3d精品动漫精品一二三| 91高清视频免费观看| 欧美一级视频免费| 久久一区视频| 国产成人在线一区二区| 天天摸夜夜添狠狠添婷婷| 狠狠88综合久久久久综合网| 成人免费在线视频网址| 国产麻豆永久视频| 国产另类ts人妖一区二区| 一本一生久久a久久精品综合蜜| 成人毛片高清视频观看| 国产麻豆一精品一av一免费 | 亚洲一区av在线播放| 成年人午夜视频| 日韩精品免费一区二区在线观看| 亚洲人在线视频| 日韩免费视频一区二区视频在线观看| 人体久久天天| 日本韩国欧美精品大片卡二| 午夜小视频免费| 老鸭窝一区二区久久精品| 日本免费在线视频观看| 中文字幕第5页| 欧美日韩国产区| www.久久av| 视频一区中文字幕精品| 7m第一福利500精品视频| 久艹在线播放| 成人国产精品免费观看动漫| 可以在线看的av网站| 免费观看久久久久| 亚洲精品电影网站| 中文资源在线播放| 久久永久免费| 欧美精品在欧美一区二区| 麻豆网站在线观看| 亚洲精品国产成人| 国产成人精品一区二区色戒| 亚洲午夜黄色| 亚洲精品高清视频| 国产色a在线| 亚洲第一页中文字幕| 在线免费观看av片| 欧美aⅴ一区二区三区视频| 日韩极品视频在线观看| 18网站在线观看| 欧美日韩免费观看一区二区三区| 欧美偷拍第一页| 一本一道久久a久久精品蜜桃| 精品国产一区二区三| 欧美高潮视频| 欧美一级高清大全免费观看| 69av视频在线观看|