<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);

        }

        }


        主站蜘蛛池模板: 夜夜躁狠狠躁日日躁| 丁香婷婷无码不卡在线| 日产精品一区二区免费| 调教我的妺妺h肉yin荡视频| 国产三级精品在线免费| 午夜视频在线观看区二区| 色八戒一区二区三区四区| 一区二区偷拍美女撒尿视频| 99热线精品大全在线观看| 久久久无码精品国产一区| 国产激情视频在线观看的| 亚洲中文字幕成人无码| 色欲香天天天综合网站小说| 欧美xxxx做受欧美| 成人一区专区在线观看| 久久频这里精品99香蕉久网址| 别揉我奶头~嗯~啊~的视频| 韩日午夜在线资源一区二区| 婷婷丁香五月六月综合激情啪 | 人妻中文乱码在线网站| 国产大学生粉嫩无套流白浆| 国产精品青草久久久久福利99| 青青草原亚洲在线视频| 99无码熟妇丰满人妻啪啪| 伊人久在线观看视频| 48久久国产精品性色aⅴ人妻| 国产欧美日韩综合在线第一| 青青草原国产AV福利网站| 亚洲另类丝袜综合网| 国产精品久久久久久爽爽爽床戏| 国产偷窥厕所一区二区| 无码中文字幕在线播放2| 亚洲最大成人美女色av| 日本中文字幕不卡在线一区二区| 亚洲偷自拍国综合| 欧美激情第一欧美在线| 三上悠亚ssⅰn939无码播放| 成全在线观看免费完整版| 末发育女av片一区二区| 亚洲中文字幕在线第六区| 精品国产乱码久久久久久红粉|