亚洲欧美第一页_禁久久精品乱码_粉嫩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精品久久久久久久91蜜桃| 亚洲一区二区精品3399| 精品久久久久久久久久久久久久久久久| 国产精品99久久久久久久vr| 亚洲最大成人网4388xx| 久久久精品影视| 欧美日韩精品欧美日韩精品一| 国产麻豆日韩欧美久久| 亚洲一区二区三区三| 欧美激情在线免费观看| 欧美一级视频精品观看| 91国产成人在线| 国产成人亚洲精品狼色在线| 日本在线播放一区二区三区| 国产精品久久久久久久久动漫 | 久久综合久久综合久久综合| 91福利国产精品| 成人国产精品视频| 激情六月婷婷久久| 日韩va亚洲va欧美va久久| 亚洲伦理在线精品| 日本一区二区成人| 精品久久久久久久久久久久久久久| 欧美日韩一区二区在线视频| 9久草视频在线视频精品| 国产九九视频一区二区三区| 美国欧美日韩国产在线播放| 亚洲成人动漫av| 亚洲综合激情另类小说区| 国产精品传媒入口麻豆| 国产欧美视频在线观看| 久久久www成人免费毛片麻豆| 欧美久久一二三四区| 欧美日韩免费一区二区三区视频| 一本大道久久精品懂色aⅴ| 99久久久免费精品国产一区二区| 国产91清纯白嫩初高中在线观看| 韩国精品主播一区二区在线观看| 久久精品久久久精品美女| 日韩精品欧美成人高清一区二区| 亚洲在线视频网站| 一区二区欧美国产| 亚洲一区二区三区四区中文字幕| 亚洲日穴在线视频| 亚洲日本电影在线| 樱花影视一区二区| 亚洲成人资源网| 视频一区二区中文字幕| 免费观看在线综合| 激情亚洲综合在线| 国产91精品一区二区| 99视频一区二区| 日本韩国一区二区| 欧美丰满少妇xxxxx高潮对白| 欧美日韩一级视频| 日韩视频一区二区三区| 日韩亚洲欧美中文三级| 久久伊人中文字幕| 国产精品美女久久久久久| 亚洲激情男女视频| 婷婷中文字幕综合| 黑人巨大精品欧美黑白配亚洲| 国产**成人网毛片九色 | 天天影视网天天综合色在线播放 | 午夜精彩视频在线观看不卡| 日韩av一级片| 国产精品99久久不卡二区| va亚洲va日韩不卡在线观看| 欧美系列亚洲系列| 欧美精品视频www在线观看| 91精品国产色综合久久不卡蜜臀| 亚洲精品一区二区在线观看| 亚洲国产岛国毛片在线| 一区二区三区国产精华| 蜜桃视频在线观看一区二区| 国产精品亚洲一区二区三区在线 | 亚洲欧洲精品一区二区三区不卡| 亚洲另类一区二区| 蜜桃精品视频在线| 不卡在线视频中文字幕| 欧美色精品天天在线观看视频| 欧美精品一区二区三区蜜臀| 国产精品久久久久影院亚瑟| 亚洲成人综合网站| 国产剧情av麻豆香蕉精品| 欧美中文字幕久久| 久久老女人爱爱| 亚洲一区二区三区四区在线观看| 久久精品国产亚洲a| 色婷婷久久综合| 久久综合色综合88| 亚洲一区二区av在线| 国产一区二区福利| 欧美日韩和欧美的一区二区| 国产日韩综合av| 日韩成人伦理电影在线观看| 91视频一区二区三区| 精品日韩欧美在线| 亚洲一区二区三区四区五区中文 | 亚洲精品国产成人久久av盗摄| 精品在线免费观看| 欧美优质美女网站| 国产精品久久久久久久久快鸭| 另类中文字幕网| 欧美二区在线观看| 亚洲免费电影在线| 丰满放荡岳乱妇91ww| 精品国产乱码久久久久久蜜臀| 亚洲女厕所小便bbb| 国产精品一区二区视频| 正在播放一区二区| 亚洲激情在线播放| 99视频超级精品| 久久久99精品免费观看| 精油按摩中文字幕久久| 欧美一级在线视频| 丝袜诱惑制服诱惑色一区在线观看| av亚洲精华国产精华| 久久九九全国免费| 国产麻豆视频一区| 精品久久一区二区| 奇米888四色在线精品| 欧美三级日本三级少妇99| 亚洲蜜臀av乱码久久精品| 粉嫩蜜臀av国产精品网站| 久久久不卡网国产精品一区| 激情六月婷婷综合| 欧美精品一区二区三区高清aⅴ | 2024国产精品| 极品少妇xxxx精品少妇偷拍| 日韩欧美视频在线| 奇米精品一区二区三区四区| 欧美久久一二三四区| 婷婷成人激情在线网| 欧美色视频在线观看| 婷婷久久综合九色综合绿巨人| 色婷婷久久综合| 亚洲综合在线观看视频| 在线视频你懂得一区二区三区| 中文字幕在线观看一区二区| 成人99免费视频| 中文字幕色av一区二区三区| 99久久精品一区| 亚洲天堂久久久久久久| 一本色道久久综合精品竹菊| 亚洲色图在线视频| 色婷婷久久久久swag精品| 亚洲色图清纯唯美| 在线视频中文字幕一区二区| 亚洲国产精品一区二区www| 欧美日韩一级大片网址| 日韩一区精品视频| 日韩欧美一级二级三级| 国产剧情一区二区| 中文字幕一区二区三区在线观看| 972aa.com艺术欧美| 亚洲成av人片一区二区三区| 日韩一级在线观看| 国产精品99久久久久久宅男| 中文字幕日韩一区| 欧美色综合天天久久综合精品| 日韩黄色免费网站| 亚洲精品一区二区三区四区高清| 国产成人精品免费一区二区| 亚洲香蕉伊在人在线观| 欧美撒尿777hd撒尿| 日韩激情av在线| 中文字幕欧美激情| 在线免费观看日本欧美| 麻豆成人久久精品二区三区小说| 久久久久久99精品| 一本大道久久a久久综合婷婷| 三级欧美在线一区| 国产亚洲成aⅴ人片在线观看 | 在线不卡a资源高清| 激情av综合网| 1区2区3区精品视频| 91精品一区二区三区久久久久久 | 一个色在线综合| 日韩免费视频一区| 99精品国产视频| 日韩成人av影视| 亚洲欧洲成人精品av97| 91精品国产乱| av电影在线不卡| 久久国产福利国产秒拍| 亚洲视频一区二区在线| 日韩欧美一级精品久久| 91啪亚洲精品| 国产一区二区在线电影| 亚洲午夜精品网| 欧美国产丝袜视频| 欧美一区二区三区性视频| 成人av电影在线观看| 人禽交欧美网站| 亚洲精品日韩综合观看成人91| 日韩欧美一级在线播放| 日本精品裸体写真集在线观看| 狠狠狠色丁香婷婷综合久久五月|