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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1409|回復: 0
收起左側

12864顯示程序

[復制鏈接]
ID:321297 發表于 2018-5-3 15:38 | 顯示全部樓層 |閱讀模式
#include<reg52.h>
#define uchar unsigned  char
#define uint  unsigned  int
sbit RS=P1^7;
sbit RW=P1^6;
sbit E=P1^5;                        
sbit PSB=P0^7;   //硬件上的串口,并口選擇位,此開發板用的是并口,此位置1為并口
uchar code table_7[]={"("};
uchar code table_8[]={")"};
uchar code table_9[]={"                "};
uchar code table_b[]={"請刷卡"};
uchar code table_c[]={"密碼錯!"};
uchar code table_d[]={"請接射頻卡模塊!"};
/////延時函數//////////////////////////////////
void delay1(unsigned int z)
{
        unsigned int x,y;
        for(x=z;x>0;x--)
        for(y=110;y>0;y--);       
}
///////////////////////////////////////////////
//////寫命令////////////////////////////////////
void WriteCommand(uchar a)
{
         E=0;  //1讀取信息;1-0下降沿執行指令
         RS=0;  //0=寫指令;1=寫數據
         RW=0;  //0=寫指令或數據;1=讀LCD信息
         E=1;  //讀信息
         P2=a;  //寫指令
         delay1(5);           //延時
         E=0;    //執行指令
         delay1(5);           //延時
}
//////////////////////////////////////////////////


//////寫數據//////////////////////////////////////
void WriteData(uchar b)  
{

     E=0;   //執行指令
         RS=1;   //寫數據
         RW=0;   //寫數據
         E=1;   //讀取信息
         P2=b;   //寫數據
         delay1(5);      //延時
         E=0;     //執行指令
         delay1(5);      //延時
}
void initial_LCD()      
{   

            PSB=1;      //選擇為并口
         WriteCommand(0x01);  //清屏
         WriteCommand(0x30);  //功能設置。8字節界面,基本指令集。(0011 x0xx)
         WriteCommand(0x0c);  //顯示設置。整體顯示,光標不顯示,光標不反向。(0000 1110)
         WriteCommand(0x06);   //輸入方式設置。光標右移,地址位加1;整體右移。(0000 0110)
        // WriteCommand(0x14);   //光標右移。
}

void LCD_Data(uchar LCDbyte )
{
         unsigned char count;
         count=(LCDbyte&0xf0)>>4;
         if (count>0x9) WriteData(count%9+0x40);
         else WriteData(count+0x30);
         count=LCDbyte&0x0f;
         if (count>9) WriteData(count%9+0x40);
         else WriteData(count+0x30);
}


/**********舉例:LCD_PutString(1,1,"設置濕度上限");***********/
void LCD_PutString(unsigned char x,unsigned char y,uchar *s)
{
switch(y)
     {
          case 1: WriteCommand(0x80+x);break;
          case 2: WriteCommand(0x90+x);break;
          case 3: WriteCommand(0x88+x);break;
          case 4: WriteCommand(0x98+x);break;
      default:break;
         }
while(*s>0)
   {
      WriteData(*s);
      s++;
      delay1(10);
   }
}

void dis_Request1()
{
                uchar i;
                 WriteCommand(0x9b);
                 for (i=1;i<=1;i++)               
                 WriteData(table_7[i-1])  ;

                 WriteCommand(0x9c);
                 for (i=1;i<=1;i++)               
                 WriteData(table_8[i-1])  ;
}

void dis_Request2()
{
                uchar i;
                 WriteCommand(0x9a);
                 for (i=1;i<=1;i++)               
                 WriteData(table_7[i-1])  ;

                 WriteCommand(0x9d);
                 for (i=1;i<=1;i++)               
                 WriteData(table_8[i-1])  ;
}

void dis_Request3()
{
                uchar i;
                 WriteCommand(0x99);
                 for (i=1;i<=1;i++)               
                 WriteData(table_7[i-1])  ;

                 WriteCommand(0x9e);
                 for (i=1;i<=1;i++)               
                 WriteData(table_8[i-1])  ;
}
void DispalyLcd1()
{
         unsigned char i;
         WriteCommand(0x98);         
         for (i=1;i<=16;i++)               
         WriteData(table_9[i-1])  ;
}


void DispalyLcd_home() //工作模式
{
     LCD_PutString(1,1,"門禁卡系統");
         LCD_PutString(2,2,"工作模式");
         LCD_PutString(2,3,"請刷卡");
}

void DispalyLcd_home1() //注冊模式
{
     LCD_PutString(1,1,"門禁卡系統");  
         LCD_PutString(2,2,"注冊模式");
         LCD_PutString(2,3,"請刷卡");
}
void DispalyLcd_home2() //清除模式
{
     LCD_PutString(1,1,"門禁卡系統");  
         LCD_PutString(2,2,"注銷模式");
         LCD_PutString(2,3,"請刷卡");
}

void dis_passerror()
{
         unsigned char i;

         WriteCommand(0x88);         
         for (i=1;i<=16;i++)               
         WriteData(table_9[i-1])  ;
         DispalyLcd1();

         WriteCommand(0x9a);                 
         for (i=1;i<=7;i++)               
         WriteData(table_c[i-1])  ;        
}


回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表