两个吃奶一个添下面视频_人妻第一页香蕉网_欧美xxxx少妇_妺妺窝人体色www婷婷

同樣我們創(chuàng)建好“l(fā)cd.c”和“l(fā)cd.h”,然后添加進(jìn)工程文件中?!發(fā)cd.c”的代碼集合了所有宋老師為我們寫(xiě)好的各種常用函數(shù)。

1.lcd.c的代碼

#include <reg52.h>
#include <lcd.h>

/* 等待液晶準(zhǔn)備好 */
void LcdWaitReady()
{
    unsigned char sta;
  
    LCD1602_DB = 0xFF;
    LCD1602_RS = 0;
    LCD1602_RW = 1;
    do {
          LCD1602_E = 1;
          sta = LCD1602_DB;//讀取狀態(tài)字
          LCD1602_E = 0;
    } while (sta & 0x80);  //bit7等于1表示液晶正忙,重復(fù)檢測(cè)直到其等于0為止
}

/* 向LCD1602液晶寫(xiě)入一字節(jié)命令,cmd-待寫(xiě)入命令值 */
void LcdWriteCmd(unsigned char cmd)
{
    LcdWaitReady();
    LCD1602_RS = 0;
    LCD1602_RW = 0;
    LCD1602_DB = cmd;
    LCD1602_E  = 1;
    LCD1602_E  = 0;
}

/* 向LCD1602液晶寫(xiě)入一字節(jié)數(shù)據(jù),dat-待寫(xiě)入數(shù)據(jù)值 */
void LcdWriteDat(unsigned char dat)
{
    LcdWaitReady();
    LCD1602_RS = 1;
    LCD1602_RW = 0;
    LCD1602_DB = dat;
    LCD1602_E  = 1;
    LCD1602_E  = 0;
}

/* 設(shè)置顯示RAM起始地址,亦即光標(biāo)位置,(x,y)-對(duì)應(yīng)屏幕上的字符坐標(biāo) */
void LcdSetCursor(unsigned char x, unsigned char y)
{
    unsigned char addr;
    
    if (y == 0)              //由輸入的屏幕坐標(biāo)計(jì)算顯示RAM的地址
        addr = 0x00 + x;     //第一行字符地址從0x00起始
    else
        addr = 0x40 + x;     //第二行字符地址從0x40起始
    LcdWriteCmd(addr | 0x80);//設(shè)置RAM地址
}

/* 在液晶上顯示字符串,(x,y)-對(duì)應(yīng)屏幕上的起始坐標(biāo),str-字符串指針 */
void LcdShowStr(unsigned char x, unsigned char y, unsigned char *str)
{
    LcdSetCursor(x, y);     //設(shè)置起始地址
    while (*str != '\0')    //連續(xù)寫(xiě)入字符串?dāng)?shù)據(jù),直到檢測(cè)到結(jié)束符
    {
        LcdWriteDat(*str++);//先取str指向的數(shù)據(jù),然后str自加1
    }
}

/* 在液晶上顯示字符串,(x,y)-對(duì)應(yīng)屏幕上的起始坐標(biāo),str-字符串指針,len-需顯示的字符長(zhǎng)度 */
void LcdShowStr_len(unsigned char x, unsigned char y, unsigned char *str, unsigned char len)
{
    LcdSetCursor(x, y);     //設(shè)置起始地址
    while (len--)           //連續(xù)寫(xiě)入len個(gè)字符數(shù)據(jù)
    {
        LcdWriteDat(*str++);//先取str指向的數(shù)據(jù),然后str自加1
    }
}

/* 區(qū)域清除,清除從(x,y)坐標(biāo)起始的len個(gè)字符位 */
void LcdAreaClear(unsigned char x, unsigned char y, unsigned char len)
{
    LcdSetCursor(x, y);   //設(shè)置起始地址
    while (len--)         //連續(xù)寫(xiě)入空格
    {
        LcdWriteDat(' ');
    }
}

/* 整屏清除 */
void LcdFullClear()
{
    LcdWriteCmd(0x01);
}    

/* 初始化1602液晶 */
void InitLcd1602()
{
    LcdWriteCmd(0x38);  //16*2顯示,5*7點(diǎn)陣,8位數(shù)據(jù)接口
    LcdWriteCmd(0x0C);  //顯示器開(kāi),光標(biāo)關(guān)閉
    LcdWriteCmd(0x06);  //文字不動(dòng),地址自動(dòng)+1
    LcdWriteCmd(0x01);  //清屏
}


2.lcd.h的代碼

#ifndef __LCD_H__
#define __LCD_H__
 
#define LCD1602_DB  P0
sbit LCD1602_RS = P1^0;
sbit LCD1602_RW = P1^1;
sbit LCD1602_E  = P1^5;
void LcdWaitReady();//等待液晶準(zhǔn)備好
void LcdWriteCmd(unsigned char cmd);//向LCD1602液晶寫(xiě)入一字節(jié)命令,cmd-待寫(xiě)入命令值
void LcdWriteDat(unsigned char dat);//向LCD1602液晶寫(xiě)入一字節(jié)數(shù)據(jù),dat-待寫(xiě)入數(shù)據(jù)值
void LcdSetCursor(unsigned char x, unsigned char y);//設(shè)置顯示RAM起始地址,亦即光標(biāo)位置,(x,y)-對(duì)應(yīng)屏幕上的字符坐標(biāo)
void LcdShowStr(unsigned char x, unsigned char y, unsigned char *str);//在液晶上顯示字符串,(x,y)-對(duì)應(yīng)屏幕上的起始坐標(biāo),str-字符串指針
void LcdShowStr_len(unsigned char x, unsigned char y, unsigned char *str, unsigned char len);//在液晶上顯示字符串,(x,y)-對(duì)應(yīng)屏幕上的起始坐標(biāo),str-字符串指針,len-需顯示的字符長(zhǎng)度
void LcdAreaClear(unsigned char x, unsigned char y, unsigned char len);//區(qū)域清除,清除從(x,y)坐標(biāo)起始的len個(gè)字符位
void LcdFullClear();//整屏清除
void InitLcd1602(); //初始化1602液晶
 
#endif


3.main.c的代碼

#include <reg52.h> 
#include <function.h>//詳見(jiàn)第六章第8講
#include <lcd.h>

void main()
{  
    unsigned char str[] = "Kingst Studio";
  
    InitLcd1602();//初始化液晶屏
    LcdShowStr(2, 0, str);//在第一行第3格開(kāi)始顯示數(shù)組里的字符串
    LcdShowStr(0, 1, "Welcome to KST51");//在第二行第1格顯示"Welcome to KST51"這段字符串
    while (1);
}

再次提醒要添加進(jìn)工程文件,不添加的話編譯不會(huì)報(bào)錯(cuò),但是下載進(jìn)去無(wú)法執(zhí)行相應(yīng)的代碼,也就不能正常顯示內(nèi)容。

液晶屏4

點(diǎn)贊(0)

C語(yǔ)言網(wǎng)提供由在職研發(fā)工程師或ACM藍(lán)橋杯競(jìng)賽優(yōu)秀選手錄制的視頻教程,并配有習(xí)題和答疑,點(diǎn)擊了解:

一點(diǎn)編程也不會(huì)寫(xiě)的:零基礎(chǔ)C語(yǔ)言學(xué)練課程

解決困擾你多年的C語(yǔ)言疑難雜癥特性的C語(yǔ)言進(jìn)階課程

從零到寫(xiě)出一個(gè)爬蟲(chóng)的Python編程課程

只會(huì)語(yǔ)法寫(xiě)不出代碼?手把手帶你寫(xiě)100個(gè)編程真題的編程百練課程

信息學(xué)奧賽或C++選手的 必學(xué)C++課程

藍(lán)橋杯ACM、信息學(xué)奧賽的必學(xué)課程:算法競(jìng)賽課入門(mén)課程

手把手講解近五年真題的藍(lán)橋杯輔導(dǎo)課程

Dotcpp在線編譯      (登錄可減少運(yùn)行等待時(shí)間)