亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? lcd.c

?? T6963C液晶240*128點陣單片機程序
?? C
?? 第 1 頁 / 共 2 頁
字號:
//                        240128液晶顯示模塊
//***************************************************************************
//*  Create by :LAUKING   2007/11/06       KeilC V7.0                       *
//***************************************************************************
//連線表:  CPU=89s52                                                        *
//C/D=P1.3          /CE=P2.7 2.6         /WR=/WR   /RD=/R                   *
//FOSC=22.1184MHz                         D0-D7=P0.0-P0.7                   *
//***************************************************************************

#include <reg52.h>
#include <intrins.h>
#include <absacc.h>
#include <KEY.h>
#include <IAP.h>

#define uint  unsigned int
#define uchar unsigned char
#define Graphic        1
#define TXT            0
#define LcmLengthDots     240
#define LcmWidthDots      128

#define para     1 //parameter參數
#define coor     0 //coordinate坐標

char xdata LcmPort _at_ 0x8000;
sbit CD=  P1^3;          //High is code, low is data

uchar code hz[];
uchar code hz_t[];
////////////////////////////////////////////////////////////////////////////////////
//函數聲明
extern void CheckRWCD(void);
extern void CheckAutoWrite(void);
extern void CheckScreen(void);
extern void LcmWriteData(uchar uData);
extern uchar LcmReadData( void );
extern void LcmWriteCommand(uchar Command);
extern void LcmWriteCommandWith1Par(uchar Parameter,uchar Command);
extern void LcmWriteCommandWith2Par(uchar Parameter1,uchar Parameter2,uchar Command);
extern void LcmInit( bit Mode_Choose );            //文本法初始化函數
//extern void LcmInit_t( void );          //圖形法初始化函數 
extern void LcmClear( uchar FillByte );
extern void LocateXY(uchar x,uchar y,uchar mode);
extern void PutChar(uchar x,uchar y,uchar CharByte);
extern void write_hz(unsigned char x_hz,unsigned char y_hz,unsigned char code_hz);
extern void CGRAM (unsigned char q);
extern void write_cghz(unsigned char x_cghz,unsigned char y_cghz,unsigned char num_cghz);
extern void write_cgzf(unsigned char x_cgzf,unsigned char y_cgzf,unsigned char num_cgzf);
extern void cghz_char(unsigned char x_char,unsigned char y_char,unsigned char hz_char);
extern void cgzf_char(unsigned char x_char,unsigned char y_char,unsigned char zf_char);

extern void Init_Display(void);
extern void Chief_Display(void);

extern void Delay(uint MS);
/////////////////////////////////////////////////

//指令&數據讀寫狀態
void CheckRWCD(void)
{
    CD=1;  //code
	while((LcmPort & 0x03) != 0x03);   //低電平忙
	
}
//數據自動寫狀態
void CheckAutoWrite(void)
{
    CD=1;  //code
	while((LcmPort & 0x08) == 0);      //低電平忙
}
//屏讀/屏考貝出錯狀態
void CheckScreen(void)
{      
    CD=1;  //code
	while(LcmPort & 0x40);              //1出錯,0正確
}
//一個數據子寫入函數
void LcmWriteData(uchar uData)                        
{
    CD=0; //data 
	LcmPort = uData;
}
//一個數據讀出函數
uchar LcmReadData( void )
{
     uchar uData;
	 CD=0; //data
     uData = LcmPort;
     return uData;
}
//無參數指令寫入函數
void LcmWriteCommand(uchar Command)                  
{
     CheckRWCD();                        //檢測指令讀寫狀態
	 LcmPort = Command;
}
//單參數指令寫入函數
void LcmWriteCommandWith1Par(uchar Parameter,uchar Command)
{
     CheckRWCD();                        //檢測指令讀寫狀態
     CD=0; //data
	 LcmPort = Parameter;
     CheckRWCD();
	 LcmPort = Command;
}
//雙參數指令寫入函數
void LcmWriteCommandWith2Par(uchar Parameter1,uchar Parameter2,uchar Command)
{
     CheckRWCD();                        //檢測指令讀寫狀態
     CD=0;
	 LcmPort = Parameter1;
     CheckRWCD();
	 CD=0;
     LcmPort = Parameter2;
     CheckRWCD();
	 LcmPort = Command;
}
//LCM顯示初始化函數
void LcmInit( bit Mode_Choose )
{
    LcmWriteCommandWith2Par(0x00,0x00,0x40);            //設置文本顯示區首地址
    LcmWriteCommandWith2Par(LcmLengthDots/8,0x00,0x41); //設置文本顯示區寬度
	LcmWriteCommandWith2Par(0x00,0x10,0x42);            //設置圖形顯示區首地址0x1000
    LcmWriteCommandWith2Par(LcmLengthDots/8,0x00,0x43); //設置圖形顯示區寬度
    LcmWriteCommand(0xA7);                              //設置光標形狀 8x8方塊
    LcmWriteCommand(0x81);                              //顯示方式設置 文本xor圖形(異或)
    LcmWriteCommand(0x9D);                              //顯示開關設置 文本開,圖形開,光標閃爍開
    if(Mode_Choose==0) //如果是文本方式
	{
		LcmWriteCommand(0x84); //顯示方式:文本特征
		LcmWriteCommandWith2Par(0x03,0x00,0x22);            //設置CGRAM偏址
	}
}

//延時函數
void Delay(uint MS)
{
     uchar us,usn;
     while(MS!=0)                        //22.1184M Crystal
     { 
           usn = 4;
           while(usn!=0)
           {
                 us=0xf2;
                 while (us!=0){us--;};
                 usn--;
           }
           MS--;
     }
}

//清顯示存儲器函數
void LcmClear( uchar FillByte )
{
     uint i = 8192;    //此處僅清8K RAM,如果您32K RAM都使用,請修改i=32768(后面也要改)
	 if(FillByte)      //注意如果填充ff時,如果RAM僅使用了8K,那么8192次會寫入到文本區
     {                 //會形成亂碼.(24064出廠時候默認將R7斷開,即默認使用8KRAM)
           i -= 2*1024;//所以如果填入ff時候要扣除2K的文本區
             LcmWriteCommandWith2Par(0x00,0x08,0x24);      //填充0xff時候要在圖形區
     }
     else
           LcmWriteCommandWith2Par(0x00,0x00,0x24);
     LcmWriteCommand(0xB0);                  //進入自動寫
     while(i--)
     {
           CheckAutoWrite();
           LcmWriteData( FillByte );
     }
     LcmWriteCommand(0xB2);                  //退出自動寫
}
//設定顯示地址函數
void LocateXY(uchar x,uchar y,uchar mode)
{
     uint  temp;
     temp= LcmLengthDots/8*y + x;
     if(mode)                        //mode=1為Graphic
     {                              //如果圖形模式要加上圖形區首地址0x0800
           temp+=0x1000;
     }
     LcmWriteCommandWith2Par(temp&0xff,temp/256,0x24);
}

//顯示一個ASCII碼函數
//  0 1 2 3 4 5 6 7 8 9 a b c d e f
//0   ! " # $ % & ' ( ) * + , - . /
//1 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
//2   A B C D E F G H I J K L M N O
//3 P Q R S T U V W X Y Z [ \ ] ^ _
//4 ' a b c d e f g h i j k l m n o
//5 p q r s t u v w x y z { | } ~ 
void PutChar(uchar x,uchar y,uchar CharByte)
{
     LocateXY(x,y,TXT);
     LcmWriteCommandWith1Par(CharByte,0xC4);// 0xc4 數據一次寫,地址不變
}


//漢字寫入函數
//x_hz:0~29;  y_hz:0~127
//address為顯示緩沖區的地址,在圖形顯示方式下直接對應點陣狀態
//addr_hz即為在單片機FLASH中所建的字模的地址
void write_hz(unsigned char x_hz,unsigned char y_hz,unsigned char code_hz)
{
  unsigned char i_hz;
  unsigned int addr_hz;
  //address=y_hz*30u+x_hz+0x1000;         //計算顯示存儲器地址
  addr_hz=code_hz*32u;                    //計算漢字字模地址(cctab的下標)
  for(i_hz=0;i_hz<16;i_hz++)              //計數值16
  {
    LocateXY(x_hz,y_hz,1);  //設置顯示存儲器地址
    LcmWriteCommandWith1Par(hz_t[addr_hz],0xC0);  //寫入漢字字模左部
    LcmWriteCommandWith1Par((hz_t[addr_hz+1]),0xC0);  //寫入漢字字模右部
    addr_hz+=2;
    //address+=30;  //修改顯示存儲器地址,顯示下一列(共16列)
	y_hz+=1;
  }
}


//CGRAM字模寫入函數
//注意,只是用了CGRAM的后1K,前1K留給映射CGROM了
//在連續的32個存儲單元里是一個漢字的字模,排列順序是前16個單元是漢字的左半部(左上、左下),后
//16個存儲單元是漢字的右半部
//根據所要寫入漢字的個數,只要修改q的取值即可
   void CGRAM (unsigned char q)
    {
        unsigned char m,n,p;
         LcmWriteCommandWith2Par(0x00,0x1C,0x24); //設置CGRAM的高1K地址
         for(p=0;p<q;p++)
          { for(m=0;m<16;m++)
            {
             LcmWriteCommandWith1Par(hz[m*2u+p*32u], 0xC0 );
            }
            for(n=0;n<16;n++)
            {
             LcmWriteCommandWith1Par(hz[(n*2u+1)+p*32u], 0xC0 );
            }
          }
    }

//CGRAM漢字顯示函數
//x_cghz為0~29,y_cghz為0~15
void write_cghz(unsigned char x_cghz,unsigned char y_cghz,unsigned char num_cghz)
{
  unsigned int address; //int為16位
  unsigned char code_cghz;
  code_cghz=4*num_cghz+0x80;

  //寫入左上部
  address=y_cghz*30u+x_cghz; //顯示緩沖區存儲單元地址
  LcmWriteCommandWith2Par( (unsigned char)(address),(unsigned char)(address>>8),0x24);  //設置顯示存儲器地址
  LcmWriteCommandWith1Par( code_cghz, 0xC4 );  //裝入字符代碼,寫入數據,地址不變
  //寫入右上部
  LcmWriteCommandWith2Par( (unsigned char)(address+1),(unsigned char)((address+1)>>8),0x24);
  LcmWriteCommandWith1Par( code_cghz+2, 0xC4 ); 
  //寫入左下部
  LcmWriteCommandWith2Par( (unsigned char)(address+30u),(unsigned char)((address+30u)>>8),0x24);
  LcmWriteCommandWith1Par( code_cghz+1, 0xC4 );  
  //寫入右下部
  LcmWriteCommandWith2Par( (unsigned char)(address+31u),(unsigned char)((address+31u)>>8),0x24); 
  LcmWriteCommandWith1Par( code_cghz+3, 0xC4 ); 
}


//CGRAM字符寫入函數
//x_cgzf為0~29,y_cgzf為0~15
void write_cgzf(unsigned char x_cgzf,unsigned char y_cgzf,unsigned char num_cgzf)
{
  unsigned int address; //int為16位
  unsigned char code_cgzf;
  code_cgzf=4*num_cgzf+0x80;

  //寫入
  address=y_cgzf*30u+x_cgzf; //顯示緩沖區存儲單元地址
  LcmWriteCommandWith2Par( (unsigned char)(address),(unsigned char)(address>>8),0x24);  //設置顯示存儲器地址

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
午夜视频一区二区| 欧美精品日韩精品| 成人一道本在线| 国产一区欧美一区| 国产尤物一区二区| 国产精品中文欧美| 国产91精品免费| av资源站一区| 在线观看欧美精品| 欧美高清性hdvideosex| 在线不卡的av| 精品粉嫩超白一线天av| 久久综合色婷婷| 国产精品丝袜久久久久久app| 国产精品女人毛片| 亚洲激情图片小说视频| 亚洲高清免费观看| 免费成人在线观看视频| 国产一区二区精品在线观看| 国产成人精品一区二区三区四区| 成人一道本在线| 欧美午夜片在线观看| 日韩午夜激情电影| 欧美韩国一区二区| 洋洋av久久久久久久一区| 午夜精品成人在线视频| 韩国精品久久久| 成人福利视频在线| 欧美天堂一区二区三区| 欧美va在线播放| 国产精品久久久久久久久免费樱桃 | 久久久精品免费网站| 国产精品麻豆99久久久久久| 一区二区三区在线观看欧美| 免费观看在线色综合| 国产乱码精品一区二区三区忘忧草| jlzzjlzz亚洲女人18| 欧美美女喷水视频| 国产亚洲污的网站| 亚洲午夜精品一区二区三区他趣| 精品亚洲成a人| 一本色道久久加勒比精品 | 欧美电影免费观看高清完整版在线| 欧美精品一区二区三| 亚洲日本va午夜在线电影| 五月婷婷综合激情| 国产精品99久久久久久久vr| 在线视频一区二区三| 久久综合狠狠综合久久激情| 亚洲美女少妇撒尿| 久久99热99| 欧美伊人久久久久久久久影院| 精品av综合导航| 亚洲国产一区二区视频| 国产成人综合视频| 欧美男人的天堂一二区| 欧美激情一区二区三区全黄| 日本欧美在线观看| 不卡的电视剧免费网站有什么| 欧美丰满嫩嫩电影| ...中文天堂在线一区| 看片的网站亚洲| 在线观看欧美日本| 国产精品成人免费在线| 久久精品国产99国产精品| 欧美性生活大片视频| 国产欧美日韩亚州综合| 免费在线观看精品| 欧美日韩在线一区二区| 亚洲视频在线一区| 成人小视频免费观看| 欧美大片在线观看| 午夜久久电影网| 日本电影欧美片| 中文字幕在线观看一区二区| 国模冰冰炮一区二区| 欧美一区二区三区小说| 一区二区三区成人| 91原创在线视频| 欧美激情综合五月色丁香小说| 六月婷婷色综合| 91精品国产综合久久精品麻豆| 一区二区三区四区不卡在线| 不卡的av中国片| 国产精品毛片高清在线完整版| 国产精品中文欧美| 久久午夜免费电影| 国产综合成人久久大片91| 日韩欧美成人午夜| 蜜臀av一区二区| 日韩一卡二卡三卡| 秋霞av亚洲一区二区三| 欧美日韩mp4| 午夜精品久久一牛影视| 欧美日韩精品免费观看视频| 亚洲制服丝袜av| 欧美亚洲另类激情小说| 亚洲一区二区三区不卡国产欧美| 91亚洲永久精品| 亚洲美女偷拍久久| 在线视频一区二区三| 亚洲午夜久久久久久久久电影院 | 欧亚一区二区三区| 亚洲五月六月丁香激情| 欧美日韩一区二区三区在线看| 一区二区三区四区在线免费观看| 99精品欧美一区二区蜜桃免费 | 国产成人午夜高潮毛片| 国产色91在线| 成人app在线观看| 亚洲美女屁股眼交3| 欧美日韩在线亚洲一区蜜芽| 日韩综合小视频| 日韩欧美国产系列| 国产一区二区福利视频| 欧美国产日韩a欧美在线观看| 丁香六月综合激情| 亚洲视频一二区| 欧美在线免费观看亚洲| 日韩av成人高清| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 一区av在线播放| 在线不卡免费欧美| 国产一区二区三区精品欧美日韩一区二区三区| 日韩视频123| 成人免费毛片高清视频| 亚洲日本在线a| 在线综合视频播放| 国产乱人伦偷精品视频免下载| 国产精品第五页| 欧美日韩一区视频| 激情欧美日韩一区二区| 中文字幕av一区二区三区免费看 | 北条麻妃国产九九精品视频| 亚洲欧美国产三级| 日韩欧美在线1卡| 成人黄色av网站在线| 亚洲va欧美va人人爽| 久久久国产精华| 91久久精品一区二区三| 麻豆一区二区三| 中文字幕中文字幕在线一区| 欧美日韩国产区一| 国产一区免费电影| 亚洲高清免费观看高清完整版在线观看| 日韩午夜激情av| 色一情一乱一乱一91av| 久久精品国产精品青草| 亚洲免费观看高清| 欧美www视频| 欧美视频一区在线| 国产精品影视网| 午夜av区久久| 亚洲欧美在线观看| 91麻豆精品国产91久久久使用方法| 国产成人精品aa毛片| 日韩在线卡一卡二| 亚洲欧美一区二区三区国产精品| 欧美电影免费观看完整版| 色美美综合视频| 国产99精品在线观看| 日本欧美韩国一区三区| ●精品国产综合乱码久久久久 | 无吗不卡中文字幕| 国产精品每日更新| 欧美不卡激情三级在线观看| 欧美亚洲国产bt| av一区二区三区| 国产在线精品一区二区| 亚洲成人av在线电影| ㊣最新国产の精品bt伙计久久| 欧美www视频| 制服视频三区第一页精品| 91久久精品一区二区| 成人午夜在线播放| 国产精品自产自拍| 精品一区二区在线免费观看| 午夜影院在线观看欧美| 一区二区理论电影在线观看| 中文字幕av在线一区二区三区| 精品国产自在久精品国产| 欧美日本韩国一区| 欧美性极品少妇| 色婷婷综合激情| 色综合色综合色综合| www.66久久| 成人污视频在线观看| 国产剧情一区在线| 国产麻豆一精品一av一免费| 久久99精品国产| 日韩电影在线一区二区三区| 亚洲第一精品在线| 亚洲午夜影视影院在线观看| 亚洲少妇最新在线视频| 成人欧美一区二区三区| 国产精品久久久久久久久久久免费看| 久久精品综合网| 国产人久久人人人人爽| 国产视频一区在线播放| 久久久午夜精品|