娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

初始學習單片機,LCD1602的滾動只能實現2行同時移動,就改了哈,寫了個滾動的程序。在測試的時候發現了一個問題,在學習板上能正常運行的代碼放到Proteus上問題出錯,不能正常顯示,最后在網上搜索原因時發現可能是Proteus仿真時對端口有要求,最后將商品修改到PORTB和PORTD就正常了。


這是顯示效果https://v.youku.com/v_show/id_XNDI5MDEwOTg4NA==.html?spm=a2h3j.8428770.3416059.1

原理圖

LCD1602.c


//---------------------------------------------------------------

//LCD1602液晶控制與顯示程序

//---------------------------------------------------------------

 

#include

#include

#include

#include "LCD1602.h"

 

//---------------------------------------------------------------

//LCD忙等待

//---------------------------------------------------------------

void LCD_BUSY_WAIT()

{

    INT8U status;

    TRIS_LCD_DAT=0xFF;                       //將端口設為輸入

    RS=0;RW=1;                               //讀寄存器狀態

    do

    {

        E=1;NOP();status=PORT_LCD_DAT;E=0;   //讀取忙信號

    }while(status & 0x80);                   //如果為0x80就是忙,繼續進入循環

}

 

//----------------------------------------------------------------

//寫LCD命令

//----------------------------------------------------------------

void Write_LCD_Command(INT8U cmd)

{

    TRIS_LCD_DAT=0x00;                       //LCD數據端口設為輸出

    PORT_LCD_DAT=cmd;                        //發送命令

    PORT_LCD_CTL=TRIS_LCD_CTL=0x00;          //控制端口設為輸出,初值為0x00

    RS=0;RW=0;E=1;NOP();E=0;                 //寫命令

    LCD_BUSY_WAIT();                         //LCD忙等待

}

 

//----------------------------------------------------------------

//寫LCD數據寄存器

//----------------------------------------------------------------

void Write_LCD_Data(INT8U dat)

{

    TRIS_LCD_DAT=0x00;                       //LCD數據端口設為輸出

    PORT_LCD_DAT=dat;                        //發送數據

    RS=1;RW=0;E=1;NOP();E=0;                 //寫數據

    LCD_BUSY_WAIT();                         //LCD忙等待

}

 

//----------------------------------------------------------------

//LCD初始化

//----------------------------------------------------------------

void LCD_Initialize()

{

    Write_LCD_Command(0x38);__delay_ms(2);    //置功能,8位,雙行,5*7

    Write_LCD_Command(0x01);__delay_ms(2);    //清屏

    Write_LCD_Command(0x06);__delay_ms(2);    //字符進入模式:屏幕不動,字符后移

    Write_LCD_Command(0x0c);__delay_ms(2);    //顯示開,關光標

}

//----------------------------------------------------------------

//在r行(0-1) C列(0-15)顯示字符串

//----------------------------------------------------------------

void LCD_ShowString(INT8U r,INT8U c,char *str)

{

    INT8U i=0;

    //設置字符地址,第一行首地址為0x80,第二行首地址為0xc0

    if(r==0) Write_LCD_Command(0x80 | c);else

        if(r==1) Write_LCD_Command(0xc0 | c);

    

    //從字符串的第一個字符車起,如果大于16個字符或者碰到'

主站蜘蛛池模板: 五家渠市| 淳安县| 沙雅县| 马龙县| 垫江县| 桓台县| 区。| 上栗县| 台南市| 定陶县| 富蕴县| 瑞昌市| 象州县| 四会市| 永靖县| 通化县| 湘乡市| 墨竹工卡县| 盘锦市| 宜阳县| 建水县| 乳源| 新沂市| 沐川县| 酒泉市| 阿克| 瑞金市| 磐安县| 彭州市| 方城县| 梁平县| 新野县| 金华市| 浙江省| 洪湖市| 隆回县| 团风县| 宜兴市| 焉耆| 凌云县| 泸州市|