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

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

?? lcd.c

?? lcd320x240驅動程序
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*--------------------------------------------------*/
/*             AVR-ARM開發網論壇                    */
/*           http://www.avrarm.com                  */
/*            AVR生成代碼測試程序                   */
/*--------------------------------------------------*/
/*     程序由AVR輔助開發工具V2.0.0自動生成          */
/*     AVR系統的處理器為:   ATMega128               */
/*     AVR系統的晶振頻率:   7.3728 Mhz             */
/*--------------------------------------------------*/

#include <iom128v.h>
#include <macros.h>
#include "lcd.h"
#include "delay.h"

/**********************************************************
Name:          void LCDWriteCmd(unsigned char byte)
Description:   write a Cmd byte to the LCD
Input:         Command (Byte)
Output:        none
Misc:       
**********************************************************/
void LCDWriteCmd(unsigned char byte)
{
   DATAOUT = byte;
   A0_H;       // A0 -> 1
   WR_L;       // WR -> 0
   WDR();
   WR_H;       // WR -> 1
}

/**********************************************************
Name:          void LCDWriteData(unsigned char byte)
Description:   write a data byte to the LCD
Input:         unsigned char byte -> data to write on the LCD
Output:        none
Misc:       
**********************************************************/
void LCDWriteData(unsigned char byte)
{
   DATAOUT = byte;
   A0_L;             // A0 -> 0
   WR_L;             // WR -> 0
   WDR();
   WR_H;             // WR -> 1
}

/**********************************************************
Name:       unsigned char LCDReadData(void)
Description:   read a data byte to the LCD
Input:         none
Output:        unsigned char byte -> Data read from the LCD
Misc:       
**********************************************************/
unsigned char LCDReadData(void)
{
   unsigned char byte;
   int i;

   WDR();
   DATABUS = 0x00;           // Data Port as input
   A0_H;                     // A0 -> 1
   delay_us();
   RD_L;                     // RD -> 0
   byte = DATAIN;            // read byte
   byte = DATAIN;            // read byte
   byte = DATAIN;            // read byte
   byte = DATAIN;            // read byte
   RD_H;                     // RD -> 1
   DATABUS = 0xff;           // Data Port as output
   return byte;
}

/**********************************************************
Name:  void LCD_Init(void)
Description:   Initialize a graphic of  X & Y
Input:         #define  GUI_LCM_XMAX  ...
               #define  GUI_LCM_YMAX  ...
Output:        none
Misc:       

**********************************************************/
void LCD_Init(void)
{
   int i,j;

//LCD Data Bus
   DATAOUT = 0x00;
   DATABUS = 0xff;             // PB0-7 as output
   LCD_CS_DDR |= LCD_CS_BIT;
   CS_L;

//LCD control Bus
   //DDRC |=((1<<RES)+(1<<RD)+(1<<WR));
   LCD_RES_DDR |= LCD_RES_BIT;
   LCD_RD_DDR |= LCD_RD_BIT;
   LCD_WR_DDR |= LCD_WR_BIT;

   WR_H;                // WR -> 1
   RD_H;                // RD -> 1
   //DDRC |= (1<<A0);
   LCD_A0_DDR |= LCD_A0_BIT;
   RES_H;
   delay_nms(2);
   RES_L;               // Reset LCD
   delay_nms(2);
   delay_nms(2);
   delay_nms(2);
   delay_nms(2);
   delay_nms(2);
   delay_nms(2);
   RES_H;
   for (i=0;i<10;i++)
   {
      delay_nms(2);
   }

//SYSTEM SET COMMAND
   LCDWriteCmd(SYSTEM_SET);         // SYSTEM SET COMMAND
   LCDWriteData(0x30);        // P1   -> PRT=0, IV=1, W/S=0, M0-M2=0
   LCDWriteData(0x87);        // FX   -> WF=1, FX=7
   LCDWriteData(0x07);        // FY   -> FY=7
   LCDWriteData((GUI_LCM_XMAX/8)-1);    // C/R  -> Char per line - 1
   LCDWriteData((XTAL / 70 / GUI_LCM_YMAX) / 9);    // TC/R -> ( f_osc / f_frame / [L/F] - 1 ) / 9
   //LCDWriteData(0x2f);      // TC/R -> ( f_osc / f_frame / [L/F] - 1 ) / 9
   LCDWriteData(GUI_LCM_YMAX - 1);      // L/F  -> Line per graphic screen - 1 (127)
   LCDWriteData(GUI_LCM_XMAX/8);        // APL  -> Virtual screen low byte ( char per line)
   LCDWriteData(0x00);        // APH  -> Virtual screen low byte

//SCROLL COMMAND
   LCDWriteCmd(SCROLL);         // SCROLL COMMAND
   LCDWriteData(0x00);        // First Layer Low Byte  (0x0000)
   LCDWriteData(0x00);        // First Layer Hign Byte
   LCDWriteData(GUI_LCM_YMAX);       // 128 Line of scroll

   LCDWriteData(0x00);        // Second Layer Low Byte (0x1000)
   LCDWriteData(0x10);        // Second Layer Hign Byte
   LCDWriteData(GUI_LCM_YMAX);// 128 Line of scroll

//HORIZONTAL SCROLL POSITION
   LCDWriteCmd(HDOT_SCR);         // HORIZONTAL SCROLL POSITION
   LCDWriteData(0x00);        // no scrool offset

//OVERLAY COMMAND
   LCDWriteCmd(OVLAY);         // OVERLAY COMMAND
   LCDWriteData(0x03);        // 2 layer (1-Text 2-Graphic)
//LCDWriteData(0x01);         // 2 layer (1-Text 2-Graphic)

//DISPLAY ON/OFF COMMAND
   LCDWriteCmd(DISP_OFF);         // DISPLAY OFF COMMAND
   LCDWriteData(0x14);        // Layer 1 & 2 ON

   ClrSCR();
   GClrSCR();

//CURSOR FORMAT COMMAND
   LCDWriteCmd(CSRFORM);         // CURSOR FORMAT COMMAND
   //LCDWriteData(0x07);      // Cursor width (7)
   //LCDWriteData(0x87);      // Cursor Height(7) & Block type
   LCDWriteData(0x04);        // Cursor width (7)
   LCDWriteData(0x86);        // Cursor Height(7) & Block type

//DISPLAY ON/OFF COMMAND
   LCDWriteCmd(DISP_ON);         // DISPLAY ON COMMAND
   LCDWriteData(0x14);        // Layer 1 & 2 ON

//CURSOR DIRECTION COMMAND
   LCDWriteCmd(CSRDIR1);         // CURSOR DIRECTION COMMAND (SHIFT RIGHT)

//CURSOR WRITE COMMAND
   LCDWriteCmd(CSRW);         // CURSOR WRITE COMMAND
   LCDWriteData(0x00);        // Cursor position low byte
   LCDWriteData(0x00);        // Cursor position high byte
 
}

/**********************************************************
Name:  void ClrSCR(void)
Description:   Clear Text Screen layer 1
Input:         none
Output:        none
Misc:       
**********************************************************/
void ClrSCR(void)
{
   int i,j;

   LCDWriteCmd(CSRW);         // CURSOR WRITE COMMAND
   LCDWriteData(0x00);        // Cursor position low byte
   LCDWriteData(0x00);        // Cursor position high byte

   LCDWriteCmd(MWRITE);         // LCD WRITE MEMORY
   DATAOUT = 0x00;
   A0_L;                      // A0 -> 0
   j = ((GUI_LCM_XMAX/8)*(GUI_LCM_YMAX/8));
   for (i=0;i<j;i++)
   {
      WR_L;                   // WR -> 0
      WDR();
      WR_H;
   }

   LCDWriteCmd(CSRW);         // CURSOR WRITE COMMAND
   LCDWriteData(0x00);        // Cursor position low byte
   LCDWriteData(0x00);        // Cursor position high byte
}

/**********************************************************
Name:  void GotoXY(unsigned char x, unsigned char y)
Description:   Goto X Y coor
Input:         X,Y
Output:        none
Misc:       
**********************************************************/
void GotoXY(unsigned char x, unsigned char y)
{
   int Address;
   unsigned char low;
   unsigned char high;

   x--;
   y--;
   Address = (y * (GUI_LCM_XMAX/8)) + x;

   low = (unsigned char) (Address & 0x00ff);
   //high = (unsigned char) ((Address & 0xff00) >> 8);
   high = (unsigned char) ((Address & 0xff00) >> 8)+0x10;

   LCDWriteCmd(CSRW);       // CURSOR WRITE COMMAND
   LCDWriteData(low);       // Cursor position low byte
   LCDWriteData(high);      // Cursor position high byte
}

/**********************************************************
Name:  void LCDWriteString(unsigned char addr_l,unsigned char addr_h,char *prt)
Description:   Write a string to the LCD
Input:         Address
               String
Output:        none
Misc:          String must be ended by \0
**********************************************************/
void LCDWriteString(unsigned char addr_l,unsigned char addr_h,char *ptr)
{
   int i;
   LCDWriteCmd(CSRW);       // CURSOR WRITE COMMAND
   LCDWriteData(addr_l);    // Cursor position low byte
   LCDWriteData(addr_h);
   
   LCDWriteCmd(MWRITE);       // LCD WRITE MEMORY
   while(*ptr != 0x00)
      LCDWriteData(*ptr++);
}

void LCDDisplay_bmp(int x,unsigned char y,unsigned char length,const unsigned char *dat)
 {
 	int startAddr=0x0000;
	unsigned char LSBa, MSBa,len,wid;
	startAddr+=40*y+x/8;
		
        for(wid=0;wid<16;wid++)
	{        	  
 	  LSBa=startAddr&0x00FF;
	  MSBa=(startAddr>>8)+0x10;   
	  LCDWriteCmd(CSRW);
	  LCDWriteData(LSBa);           
	  LCDWriteData(MSBa);
	  LCDWriteCmd(CSRDIR1);
	  LCDWriteCmd(MWRITE);
	  for(len=0;len<length/8;len++)
	  {
             LCDWriteData(*(dat++));	
	  }
	  startAddr+=40;
    }    
 }

void LCDWriteConstString(unsigned char x,unsigned char y,const char *ptr)
{

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人黄色777网| 成人福利视频网站| 尤物在线观看一区| 亚洲三级小视频| 中文字幕亚洲电影| 中文字幕精品—区二区四季| 欧美极品aⅴ影院| 亚洲成av人片| 亚洲成a人片综合在线| 亚洲国产欧美在线人成| 午夜成人在线视频| 日本va欧美va精品| 精品一区二区三区在线观看| 精品一区二区三区不卡| 国产伦理精品不卡| 不卡视频一二三四| 色综合天天视频在线观看| 91久久一区二区| 欧美日韩专区在线| 日韩一区二区免费电影| 亚洲精品一区在线观看| 国产欧美一区二区精品婷婷| 亚洲欧洲成人精品av97| 亚洲精品乱码久久久久久久久| 亚洲国产欧美在线人成| 狠狠色综合播放一区二区| 国产精品亚洲第一| 色综合久久久久久久久| 欧美精品色综合| 精品成人佐山爱一区二区| 国产精品久久久久影院色老大| 亚洲影院理伦片| 久久99精品国产麻豆婷婷| 不卡的电视剧免费网站有什么| 色婷婷综合久久久久中文一区二区 | 一区二区三区色| 日韩国产高清在线| 丰满少妇久久久久久久| 欧美视频在线播放| 久久精品视频在线免费观看| 亚洲美女在线国产| 精品一区二区三区免费视频| 欧美一二三四区在线| 国产精品高潮久久久久无| 日韩中文字幕亚洲一区二区va在线 | 99久久精品免费看国产| 在线成人午夜影院| 亚洲视频图片小说| 国产综合色产在线精品| 欧美三级日本三级少妇99| 国产亚洲综合av| 亚洲电影中文字幕在线观看| 国产福利一区二区| 日韩欧美综合在线| 亚洲午夜成aⅴ人片| 国产不卡视频在线观看| 日韩美女一区二区三区| 亚洲一卡二卡三卡四卡无卡久久| 国产成人鲁色资源国产91色综| 91精品国产乱| 亚洲国产精品欧美一二99| 成人久久久精品乱码一区二区三区| 91精品国产欧美一区二区成人| 综合久久综合久久| 成人午夜短视频| 亚洲综合999| 97超碰欧美中文字幕| 日韩精品一区二区三区蜜臀| 亚洲风情在线资源站| 91亚洲精华国产精华精华液| 久久精品欧美一区二区三区不卡 | 91精品国产一区二区三区蜜臀| 亚洲视频免费看| 91最新地址在线播放| 国产精品污污网站在线观看| 国产精品性做久久久久久| 欧美成人福利视频| 麻豆国产精品777777在线| 欧美日韩国产区一| 日韩av一级电影| 6080午夜不卡| 日韩电影在线一区| 欧美一区二区三区在线| 日本不卡一二三| 这里只有精品电影| 久久精品国产免费看久久精品| 欧美一区二区日韩一区二区| 日本亚洲一区二区| 精品卡一卡二卡三卡四在线| 精品亚洲免费视频| 国产无遮挡一区二区三区毛片日本| 久久成人久久爱| 国产无一区二区| 91蜜桃网址入口| 午夜成人在线视频| 亚洲精品一区在线观看| 成人免费av资源| 亚洲精品菠萝久久久久久久| 欧美精品xxxxbbbb| 韩国女主播成人在线| 国产视频亚洲色图| 一本久道中文字幕精品亚洲嫩| 一二三区精品视频| 欧美一区二区在线不卡| 国产福利一区二区三区视频在线| 1区2区3区国产精品| 欧美色涩在线第一页| 美腿丝袜亚洲色图| 中文字幕不卡一区| 欧美日韩激情在线| 国产一区二区导航在线播放| 亚洲人成电影网站色mp4| 国产精品每日更新| 欧美中文字幕一区二区三区亚洲| 日韩精品一区第一页| 久久免费的精品国产v∧| 色香蕉成人二区免费| 蜜桃久久av一区| 亚洲视频狠狠干| 欧美一区永久视频免费观看| 成人av电影在线| 免费成人av在线| 一区精品在线播放| 欧美sm极限捆绑bd| 欧美日韩在线播放一区| 风间由美性色一区二区三区| 天天综合网天天综合色| 欧美国产日本韩| 精品少妇一区二区三区视频免付费 | 日韩va欧美va亚洲va久久| 国产精品私房写真福利视频| 欧美一区日韩一区| 色女孩综合影院| 国产成人免费高清| 精品一二线国产| 青青草成人在线观看| 一区二区三区在线免费视频| 日本一区二区三区四区| 日韩色视频在线观看| 在线观看91视频| 94色蜜桃网一区二区三区| 高清久久久久久| 国产mv日韩mv欧美| 国产麻豆成人传媒免费观看| 麻豆精品视频在线| 午夜精品爽啪视频| 亚洲午夜在线观看视频在线| 综合电影一区二区三区 | 一区二区三区在线免费播放| 欧美激情一区二区三区不卡| 久久欧美一区二区| 精品久久人人做人人爰| 91麻豆精品国产综合久久久久久| 欧美伊人精品成人久久综合97| 91视频91自| 91美女精品福利| 色综合激情五月| 91蝌蚪porny九色| 91丨porny丨户外露出| av欧美精品.com| 99热精品国产| 91搞黄在线观看| 在线精品视频一区二区三四| 欧美制服丝袜第一页| 在线这里只有精品| 欧美高清www午色夜在线视频| 欧美日韩国产免费| 欧美一级免费大片| 精品国产伦理网| 国产精品色呦呦| 亚洲免费在线观看视频| 亚洲精品亚洲人成人网在线播放| 国产精品伦一区| 亚洲美女淫视频| 免费观看91视频大全| 国产精品一级在线| 91丨九色丨蝌蚪丨老版| 欧美熟乱第一页| 精品久久久久久无| 国产精品人成在线观看免费| 亚洲综合999| 韩国一区二区三区| 91一区二区三区在线观看| 在线影院国内精品| www一区二区| 一区二区三区鲁丝不卡| 日韩不卡一区二区| 国产成人精品一区二| 欧美性视频一区二区三区| 日韩一级大片在线| 中文字幕亚洲成人| 蜜桃91丨九色丨蝌蚪91桃色| 不卡免费追剧大全电视剧网站| 欧美日韩一区二区三区不卡| 精品日韩av一区二区| 亚洲卡通动漫在线| 精品一区二区av| 欧美日韩国产精品成人| 国产精品色呦呦| 久久精品国产亚洲高清剧情介绍|