欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 基于51單片機的12864液晶顯示 [打印本頁]

作者: 咿咿呀呀喲    時間: 2019-5-3 08:34
標題: 基于51單片機的12864液晶顯示
#include<reg52.h>
#include"yejin.h"
#define uchar unsigned char
#define uint   unsigned int

sbit CS=P0^0;
sbit SID=P0^1;
sbit SCLK=P0^2;
sbit PSB=P0^3;
                                
uchar code disp1[]={"液晶顯示"};
uchar code disp2[]={"好的天氣"};
uchar code disp3[]={"開心過好每一天"};
uchar code disp4[]={"天氣挺好"};


void delay_1ms(uint x)   //延時
{
        uint i,j;
        for(j=0;j<x;j++)                                   
                for(i=0;i<110;i++);
}

void send_command(uchar command_data)
{
        uchar i;
        uchar i_data;
        i_data=0xf8;//寫指令                        
        CS=1;
        SCLK=0;
        for(i=0;i<8;i++)
        {
                SID=(bit)(i_data&0x80);//取字節最高位,(1)高到低依次送給SID,從而發給液晶
                SCLK=0;
                SCLK=1;
                i_data=i_data<<1;//(1)
        }
        i_data=command_data;
        i_data&=0xf0; //
        for(i=0;i<8;i++)
        {
                SID=(bit)(i_data&0x80);
                SCLK=0;
                SCLK=1;
                i_data=i_data<<1;
        }
        i_data=command_data;//高4位取出,低4位補0
        i_data<<=4;                        //+上;低4位移到高4位,原來的低4位自動補0
        for(i=0;i<8;i++)
        {
                SID=(bit)(i_data&0x80);
                SCLK=0;
                SCLK=1;
                i_data=i_data<<1;
        }
        CS=0;
        delay_1ms(10);
}

void send_data(uchar command_data)
{
        uchar i;
        uchar i_data;
        i_data=0xfa;
        CS=1;
    for(i=0;i<8;i++)
        {
                SID=(bit)(i_data&0x80);
                SCLK=0;
                SCLK=1;
                i_data=i_data<<1;
        }
        i_data=command_data;
        i_data&=0xf0;
        for(i=0;i<8;i++)
        {
                SID=(bit)(i_data&0x80);
                SCLK=0;
                SCLK=1;
                i_data=i_data<<1;
        }
        i_data=command_data;
        i_data<<=4;
        for(i=0;i<8;i++)
        {
                SID=(bit)(i_data&0x80);
                SCLK=0;
                SCLK=1;
                i_data=i_data<<1;
        }
        CS=0;
        delay_1ms(10);        
}

void lcd_init()  //初始化
{
     PSB=0;
        delay_1ms(100);
        send_command(0x30);
        send_command(0x02);
        send_command(0x06);
        send_command(0x0c);
        send_command(0x01);
        send_command(0x80);
}

void display_1()
{
        uchar a;
        send_command(0x80);        //第一行                                 
        for(a=0;a<12;a++)
        {
                send_data(disp1[a]);
        }
}
void display_2()
{
        uchar a;
        send_command(0x90);        //第二行
        for(a=0;a<12;a++)
        {
                send_data(disp2[a]);
        }
}
void display_3()
{
        uchar a;
        send_command(0x88);         //第三行
        for(a=0;a<12;a++)
        {
                send_data(disp3[a]);
        }
}
void display_4()
{

        uchar a;
          send_command(0x98);         //第四行
        for(a=0;a<12;a++)
        {
                send_data(disp4[a]);
        }
}
再寫一個 yejin.h 就可以了。               






歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1