<tfoot id="m7gql"><source id="m7gql"></source></tfoot>
      1. 久久久久亚洲精品无码网站,欧美午夜成人片在线观看,亚洲男女羞羞无遮挡久久丫,日产乱码一区二区国产内射,亚洲一区二区三区高清在线看,午夜福利理论片高清在线观看,国产免费午夜福利蜜芽无码,亚洲AV永久精品三区在线
        文章詳情

        清達光電1602SPI串口液晶屏樣例程序

        日期:2025-12-16 07:25
        瀏覽次數:1877
        摘要:清達光電1602SPI串口液晶屏供電電壓有5V和3.3V,顯示屏有黃綠模式和藍模式。

            清達光電1602SPI串口液晶屏為16*2字符型,接口為SPI接口,供電電壓有5V/3.3V,顯示模式有藍模式/黃綠模式,下面為這款1602SPI串口液晶屏樣例程序(基于普通的51單片機,IO口模擬時序的):


        #include<reg51.h>

        #include<string.h>

        #include<stdio.h>

        #include <intrins.h>

        #define uchar unsigned char

        #define uint unsigned int

        sbit SID=P3^4;

        sbit SCK=P3^3;

        sbit CS=P3^1;

        sbit RS=P3^0;

        #define clear 0x01 /* Clear Display */

        #define home 0x02 /* Return Home */

        #define enmode 0x06 /* Enter Mode Set */

        #define off 0x08 /* Display on/off Set */

        #define on 0x0e /* Display on/off Set */

        #define shift 0x14 /*Cursor or Display Shift*/

        #define reset 0x30 /* reset */

        #define function 0x38 /* Function Set */

        #define cgram 0x40 /* Set CGRAM

        Address */

        #define ddram1 0x80 /* Set DDRAM Line1

        Address */

        #define ddram2 0xC0 /* Set DDRAM Line2

        Address */

        #define time 1000 /* 1000 延時

        1.03895500 s */

        uchar code string1[]={"Jia Xian Ke Ji"};

        uchar code string2[]={"www.tsingtek.com"};

        uchar code string3[]={"0123456789"};

        uchar code

        string4[]={"abcdefghijklmnopqrstuvwxyz"};

        uchar code string5[]={"Thank You !"};

        uchar code

        string6[]={'2','0','1','2',0x06,'1','0',0x07,'\0'};

        /********* 自定義字符庫 *********/

        uchar code CGF[8][8]={

        0x1f,0x00,0x1f,0x00,0x1f,0x00,0x1f,0x00,

        /* 隔行 00H */

        0x00,0x1f,0x00,0x1f,0x00,0x1f,0x00,0x1f,

        /* 01H */

        0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,

        /* 隔列 02H */

        0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,

        /* 03H */

        0x15,0x0a,0x15,0x0a,0x15,0x0a,0x15,0x0a,

        /* 隔點 04H */

        0x0a,0x15,0x0a,0x15,0x0a,0x15,0x0a,0x15,

        /* 05H */

        0x08,0x0f,0x12,0x0f,0x0a,0x1f,0x02,0x02,

        /* "年" 06H */

        0x0f,0x09,0x0f,0x09,0x0f,0x09,0x11,0x00,

        /* "月" 07H */

        };

        /********* 時間延時函數 *********/

        void delay(uint t) /* 1.02500 ms */

        { uint i,j;

        for(i=t;i>0;i--)

        for(j=125;j>0;j--);

        }

        void write_com(uchar Command_byte)

        {

        uint i;

        RS=0;//write command

        CS=0;

        SCK=1;

        for(i=0;i<8;i++)

        {

        if((Command_byte&0x80)==0x80)

        SDI=1;

        else

        SDI=0;

        SCK=0;

        if(i==0)

        {

        delay(1);

        }

        Command_byte<<=1;

        SCK=1;

        }

        CS=1;

        delay(1);

        }

        /////////////////////////////////////////

        void write_data(uchar Data8_byte)

        {

        uint i;

        RS=1;//write data

        CS=0;

        SCK=1;

        for(i=0;i<8;i++)

        {

        if((Data8_byte&0x80)==0x80)

        SDI=1;

        else

        SDI=0;

        SCK=0;

        if(i==0)

        {

        delay(1);

        }

        Data8_byte<<=

        SCK=1;

        }

        CS=1;

        RS=0;

        delay(1);

        }

        /********* 建立自定義字符函數

        *********/

        void CGFUNTION(uchar array[8][8])

        { uchar i,j;

        write_com(cgram); /* 寫“ 指令”

        CGRAM 地址 */

        for(i=0;i<8;i++)

        for(j=0;j<8;j++)

        write_data(array[i][j]); /* 寫“數據”

        */

        }

        /********* 字符全屏顯示函數 *********/

        void char_fill_disp(uchar dat)

        { uchar i,j,temp=0;

        for(i=0;i<2;i++)

        for(j=0;j<16;j++)

        { if(i==1)

        temp=j|ddram2;

        /* DDRAM **行地址 */

        else

        temp=j|ddram1;

        /* DDRAM **行地址 */

        write_com(temp);

        /* 寫“指令” */

        write_data(dat); /* 寫“數據”*/

        }

        delay(time); /* 延時 */

        }

        /********* 字符串顯示函數 *********/

        /*********** 可選行顯示 **********/

        void string_disp(uchar x, uchar y, uchar *str)

        { uchar i,j,temp=0;

        for(i=x;i<2;i++)

        for(j=y;j<16;j++)

        if(*str!='\0') /*字符串結束標志 */

        { if(i)

        temp=j|ddram2; /* DDRAM

        **行地址 */

        else

        temp=j|ddram1; /* DDRAM

        **行地址 */

        write_com(temp); /* 寫“指

        令” */

        write_data(*str++); /* 寫“數據”

        */

        }

        else

        { if(i)

        temp=j|ddram2;

        /* DDRAM **行地址 */

        else

        temp=j|ddram1;

        /* DDRAM **行地址 */

        write_com(temp);

        /* 寫“指令” */

        write_data(0xfe);

        /* 寫“數據” */

        }

        delay(time); /* 延時 */

        }

        /********* 設置參數函數 *********/

        void set(void)

        { delay(15); /* 延時 15.20800 ms */

        write_com(0x38); //Function set

        N=1(2line),F=0(5*8 dot)

        delay(5);

        write_com(0x0C); //display on

        delay(5);

        write_com(0x01); //clear display

        delay(10);

        write_com(0x06); //entry set

        delay(5);

        }

        /********* 主函數 *********/

        void main() /* 子程序里

        有延時1s */

        { set(); /* 設置參數 */

        write_com(clear); /* 清屏 */

        { char_fill_disp(0xff); /* 全屏 */

        write_com(clear); /* 清屏 */

        string_disp(0,1,string1);

        /* **行顯示字符串string1 */

        string_disp(1,0,string2);

        /* **行顯示字符串string2 */

        write_com(clear); /* 清屏 */

        char_fill_disp(0x31); /* 顯示“1”*/

        CGFUNTION(CGF);

        /* 建立自定義字符 */

        write_com(clear); /* 清屏 */

        char_fill_disp(0x00);

        /* 顯示“隔行” */

        char_fill_disp(0x02);

        /* 顯示“隔列” */

        char_fill_disp(0x04);

        /* 顯示“隔點” */

        char_fill_disp(0xff); /* 全屏 */

        write_com(clear); /* 清屏 */

        string_disp(0,3,string3);

        /* **行顯示字符串string3 */

        string_disp(1,0,string4);

        /* **行顯示字符串string4 */

        write_com(clear); /* 清屏 */

        string_disp(0,2,string5);

        /* **行顯示字符串string5:*/

        string_disp(1,8,string6); /* **行顯

        示字符串string6: 2012 年10 月*/

        delay(time);

        }

        }


        主站蜘蛛池模板: 亚洲欧美中文日韩v日本| 亚洲综合另类小说色区大陆| 精品亚洲国产成人av在线小说| 2020久久国产综合精品swag| 亚洲一道一本快点视频| 人妻无码一区二区三区tv| 精品一区二区三区波多野结衣| 玩两个丰满老熟女久久网| 一日本道a高清免费播放| 久久成人国产精品免费软件| 国产一级a爱做片一女多男| 欧洲亚洲色一区二区色99| 成人又黄又爽又色的视频| 亚洲日韩精品无码一区二区三区| 国产成人精品区一区二区| 四虎国产精品永久地址49| 亚洲综合色区无码专区| 国产一区二区午夜福利久久| www.高潮原创av| 欧美人与动人物牲交免费观看| 亚洲天堂成人黄色在线播放| aa精品视频在线在线观看免费| 五月婷婷影视| 精品国产免费一区二区三区| 亚洲精品TV久久久久久久久| 在线观看国产黄色| 丰满少妇呻吟高潮经历| 国模肉肉视频一区二区三区| 日本特黄特色aaa大片免费欧| 资源在线观看视频一区二区 | 亚洲春色在线视频| 亚洲AV电影不卡在线观看| 欧美成人免费全部| 日日摸夜夜添夜夜添亚洲女人| 乱人伦人妻中文字幕无码久久网| 四虎永久精品在线视频| 人妻精品丝袜一区二区无码AV| 精品视频国产香蕉尹人视频| 奇米影视第4色| 最新国产精品亚洲二区| 色偷偷男人的天堂亚洲av|