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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? lcd.c

?? lpc2368 usb cdc的測試程序
?? C
字號:
/*----------------------------------------------------------------------------
 *      Name:    LCD.C
 *      Purpose: LCD module 2x16 driver for ST7066 controller
 *      Rev.:    V1.00 / 24-may-2007
 *----------------------------------------------------------------------------
 *      This file is part of the uVision/ARM development tools.
 *      This software may only be used under the terms of a valid, current,
 *      end user licence from KEIL for a compatible version of KEIL software
 *      development tools. Nothing else gives you the right to use it.
 *
 *      Copyright (c) 2005-2007 Keil Software.
 *---------------------------------------------------------------------------*/

#include <LPC23xx.H>                    /* LPC23xx definitions               */
#include "LCD.h"

#define MCB2300_V1                      /* First version of MCB2300          */

#define IO1DIR    IODIR1
#define IO1SET    IOSET1
#define IO1CLR    IOCLR1
#define IO1PIN    IOPIN1

/* LCD IO definitions */
#ifdef MCB2300_V1
 #define LCD_E     0xC0000000           /* Enable control pin                */
 #define LCD_RW    0x20000000           /* Read/Write control pin            */
 #define LCD_RS    0x10000000           /* Data/Instruction control          */
 #define LCD_CTRL  0xF0000000           /* Control lines mask                */
 #define LCD_DATA  0x0F000000           /* Data lines mask                   */
#else
 #define LCD_E     0x80000000           /* Enable control pin                */
 #define LCD_RW    0x20000000           /* Read/Write control pin            */
 #define LCD_RS    0x10000000           /* Data/Instruction control          */
 #define LCD_CTRL  0xB0000000           /* Control lines mask                */
 #define LCD_DATA  0x0F000000           /* Data lines mask                   */
#endif

/* Local variables */
static unsigned int lcd_ptr;

/* 8 user defined characters to be loaded into CGRAM (used for bargraph) */
static const unsigned char UserFont[8][8] = {
  { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 },
  { 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10 },
  { 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18 },
  { 0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C },
  { 0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E },
  { 0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F },
  { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 },
  { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }
};

/* Local Function Prototypes */
static void delay (unsigned int cnt);
static void lcd_write (unsigned int c);
static void lcd_write_4bit (unsigned int c);
static unsigned int  lcd_rd_stat (void);
static void lcd_wr_cmd (unsigned int c);
static void lcd_wr_data (unsigned int d);
static void lcd_wait_busy (void);

/*----------------------------------------------------------------------------
 * LCD Driver Interface Functions
 *---------------------------------------------------------------------------*/


/*--------------------------- delay -----------------------------------------*/

static void delay (unsigned int cnt) {
   /* Delay in while loop cycles. */

   while (cnt--);
}


/*--------------------------- lcd_write_4bit --------------------------------*/

static void lcd_write_4bit (unsigned int c) {
   /* Write a 4-bit command to LCD controller. */

   IO1DIR |= LCD_DATA | LCD_CTRL;
   IO1CLR  = LCD_RW   | LCD_DATA;
   IO1SET  = (c & 0xF) << 24;
   IO1SET  = LCD_E;
   delay (10);
   IO1CLR  = LCD_E;
   delay (10);
}


/*--------------------------- lcd_write -------------------------------------*/

static void lcd_write (unsigned int c) {
   /* Write data/command to LCD controller. */

   lcd_write_4bit (c >> 4);
   lcd_write_4bit (c);
}


/*--------------------------- lcd_rd_stat -----------------------------------*/

static unsigned int lcd_rd_stat (void) {
   /* Read status of LCD controller (ST7066) */
   unsigned int stat;

   IO1DIR &= ~LCD_DATA;
   IO1CLR  = LCD_RS;
   IO1SET  = LCD_RW;
   delay (10);
   IO1SET  = LCD_E;
   delay (10);
   stat    = (IO1PIN >> 20) & 0xF0;
   IO1CLR  = LCD_E;
   delay (10);
   IO1SET  = LCD_E;
   delay (10);
   stat   |= (IO1PIN >> 24) & 0xF;
   IO1CLR  = LCD_E;
   return (stat);
}


/*--------------------------- lcd_wait_busy ---------------------------------*/

static void lcd_wait_busy (void) {
   /* Wait until LCD controller (ST7066) is busy. */
   unsigned int stat;

   do {
      stat = lcd_rd_stat ();
   } while (stat & 0x80);               /* Wait for busy flag                */
}


/*--------------------------- lcd_wr_cmd ------------------------------------*/

static void lcd_wr_cmd (unsigned int c) {
   /* Write command to LCD controller. */

   lcd_wait_busy ();
   IO1CLR = LCD_RS;
   lcd_write (c);
}


/*--------------------------- lcd_wr_data -----------------------------------*/

static void lcd_wr_data (unsigned int d) {
   /* Write data to LCD controller. */

   lcd_wait_busy ();
   IO1SET = LCD_RS;
   lcd_write (d);
}


/*--------------------------- LCD_init --------------------------------------*/

void LCD_init (void) {
   /* Initialize the ST7066 LCD controller to 4-bit mode. */ 

   IO1DIR |= LCD_CTRL | LCD_DATA;
   IO1CLR  = LCD_RW   | LCD_RS   | LCD_DATA;

   lcd_write_4bit (0x3);                /* Select 4-bit interface            */
   delay (100000);
   lcd_write_4bit (0x3);
   delay (10000);
   lcd_write_4bit (0x3);
   lcd_write_4bit (0x2);

   lcd_wr_cmd (0x28);                   /* 2 lines, 5x8 character matrix     */
   lcd_wr_cmd (0x0e);                   /* Display ctrl:Disp/Curs/Blnk=ON    */
   lcd_wr_cmd (0x06);                   /* Entry mode: Move right, no shift  */

   LCD_load ((unsigned char *)&UserFont, sizeof (UserFont));
   LCD_cls ();
}


/*--------------------------- LCD_load --------------------------------------*/

void LCD_load (unsigned char *fp, unsigned int cnt) {
   /* Load user-specific characters into CGRAM */
   unsigned int i;

   lcd_wr_cmd (0x40);                   /* Set CGRAM address counter to 0    */
   for (i = 0; i < cnt; i++, fp++)  {
      lcd_wr_data (*fp);
   }
}

/*--------------------------- LCD_gotoxy ------------------------------------*/

void LCD_gotoxy (unsigned int x, unsigned int y) {
   /* Set cursor position on LCD display. Left corner: 1,1, right: 16,2 */
   unsigned int c;

   c = --x;
   if (--y) {
      c |= 0x40;
   }
   lcd_wr_cmd (c | 0x80);
   lcd_ptr = y*16 + x;
}


/*--------------------------- LCD_cls ---------------------------------------*/

void LCD_cls (void) {
   /* Clear LCD display, move cursor to home position. */

   lcd_wr_cmd (0x01);
   LCD_gotoxy (1,1);
}


/*--------------------------- LCD_cur_off------------------------------------*/

void LCD_cur_off (void) {
   /* Switch off LCD cursor. */

   lcd_wr_cmd (0x0c);
}


/*--------------------------- LCD_on ------ ---------------------------------*/

void LCD_on (void) {
   /* Switch on LCD and enable cursor. */

   lcd_wr_cmd (0x0e);
}


/*--------------------------- LCD_putc --------------------------------------*/

void LCD_putc (unsigned char c) { 
   /* Print a character to LCD at current cursor position. */

   if (lcd_ptr == 16) {
      lcd_wr_cmd (0xc0);
   }
   lcd_wr_data (c);
   lcd_ptr++;
}


/*--------------------------- LCD_puts --------------------------------------*/

void LCD_puts (unsigned char *sp) {
   /* Print a string to LCD display. */

   while (*sp) {
      LCD_putc (*sp++);
   }
}


/*--------------------------- LCD_bargraph ----------------------------------*/

void LCD_bargraph (unsigned int val, unsigned int size) {
   /* Print a bargraph to LCD display.  */
   /* - val:  value 0..100 %            */
   /* - size: size of bargraph 1..16    */
   unsigned int i;

   val = val * size / 20;               /* Display matrix 5 x 8 pixels       */
   for (i = 0; i < size; i++) {
      if (val > 5) {
         LCD_putc (5);
         val -= 5;
      }
      else {
         LCD_putc (val);
         break;
      }
   }
}

/*----------------------------------------------------------------------------
 * end of file
 *---------------------------------------------------------------------------*/

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品久久三| 欧美日韩国产乱码电影| 国产无一区二区| 国产美女视频91| 欧美韩国日本综合| 波多野洁衣一区| 一二三区精品视频| 4438x成人网最大色成网站| 美女性感视频久久| 久久久.com| 日本韩国欧美在线| 日韩精品电影在线| 国产清纯美女被跳蛋高潮一区二区久久w | 麻豆精品在线看| 精品电影一区二区三区| 成人18视频在线播放| 亚洲午夜精品久久久久久久久| 7777精品伊人久久久大香线蕉完整版| 欧美aaaaaa午夜精品| 国产精品五月天| 欧美日韩国产影片| 高清成人免费视频| 亚洲一区二区在线播放相泽| 精品毛片乱码1区2区3区| 国产91富婆露脸刺激对白| 亚洲一区免费观看| 久久久久久99精品| 在线视频亚洲一区| 国产麻豆精品在线| 图片区日韩欧美亚洲| 国产欧美日本一区二区三区| 欧美日韩亚洲综合一区二区三区| 国内精品久久久久影院色| 亚洲免费毛片网站| 久久伊人蜜桃av一区二区| 在线精品视频一区二区三四| 国产老女人精品毛片久久| 亚洲一区免费视频| 日本一区二区久久| 欧美一区在线视频| 91福利资源站| www.日韩精品| 国内久久婷婷综合| 亚洲chinese男男1069| 国产精品女主播av| 精品欧美乱码久久久久久1区2区| 日本精品一区二区三区四区的功能| 久久er精品视频| 亚洲国产wwwccc36天堂| 亚洲丝袜制服诱惑| 久久久久久久久久美女| 91精品国产综合久久小美女| 色综合咪咪久久| 成人精品高清在线| 国产在线精品一区二区三区不卡 | 国产成人精品三级| 欧美aaaaa成人免费观看视频| 一区二区三区四区中文字幕| 国产精品色婷婷久久58| 精品国产乱码久久| 欧美一区二区三区不卡| 欧美美女bb生活片| 欧美中文字幕一区二区三区亚洲| www.日韩av| a4yy欧美一区二区三区| 成人高清伦理免费影院在线观看| 国产精品一区专区| 国产精品夜夜嗨| 国产suv精品一区二区883| 国内精品第一页| 国产精品综合一区二区| 国内精品久久久久影院色| 国产一区二区三区电影在线观看| 麻豆91在线看| 精品亚洲aⅴ乱码一区二区三区| 日日摸夜夜添夜夜添亚洲女人| 亚洲1区2区3区视频| 亚洲1区2区3区4区| 男男gaygay亚洲| 久久爱另类一区二区小说| 国产一区二区精品在线观看| 国产精品白丝jk黑袜喷水| 国产99精品在线观看| 盗摄精品av一区二区三区| eeuss鲁片一区二区三区在线观看| 大美女一区二区三区| 99国产精品久久久| 欧美在线播放高清精品| 欧美久久一二三四区| 欧美一级久久久| 欧美精品一区二| 国产精品美女久久久久aⅴ国产馆| 中文字幕制服丝袜成人av| 亚洲伊人伊色伊影伊综合网| 五月天一区二区| 激情综合亚洲精品| 国产91对白在线观看九色| 一本久久综合亚洲鲁鲁五月天| 欧美在线视频全部完| 欧美一级欧美一级在线播放| 精品成人一区二区三区四区| 中文字幕一区二区三区四区不卡| 亚洲一区二区欧美日韩| 美女视频黄频大全不卡视频在线播放 | 日韩精品一区二区三区视频播放 | 久久精品国产一区二区三区免费看| 国产综合色在线| 一本久久a久久精品亚洲| 91精品国产综合久久小美女| 国产人妖乱国产精品人妖| 亚洲日本成人在线观看| 日产精品久久久久久久性色| 风间由美一区二区av101| 色婷婷国产精品综合在线观看| 欧美手机在线视频| 精品国产99国产精品| 亚洲特级片在线| 麻豆高清免费国产一区| 91一区在线观看| 欧美成人综合网站| 一区二区三区精密机械公司| 国精产品一区一区三区mba视频| 色综合天天综合色综合av| 日韩午夜av一区| 亚洲免费在线电影| 国内精品伊人久久久久av一坑| 91福利区一区二区三区| 久久久久久99精品| 三级影片在线观看欧美日韩一区二区| 国产不卡在线播放| 日韩一区二区中文字幕| 亚洲日本乱码在线观看| 国产在线国偷精品免费看| 91国产丝袜在线播放| 国产亚洲一区二区在线观看| 视频一区二区国产| 色婷婷一区二区| 中文字幕国产一区| 国产精品自在欧美一区| 欧美日本一道本| 亚洲精品国产高清久久伦理二区 | 国产东北露脸精品视频| 欧美美女视频在线观看| 亚洲夂夂婷婷色拍ww47 | 精品一区二区三区视频| 欧美性猛交xxxxxx富婆| 亚洲欧洲av另类| 国产福利一区在线观看| 精品国产区一区| 蜜桃传媒麻豆第一区在线观看| 色综合天天狠狠| 国产精品久久久久久久午夜片| 精品一区二区在线视频| 日韩三级高清在线| 麻豆国产一区二区| 337p亚洲精品色噜噜狠狠| 亚洲国产一区二区视频| 97精品视频在线观看自产线路二| 中文一区二区在线观看| 国产精选一区二区三区| 久久麻豆一区二区| 韩国v欧美v日本v亚洲v| 欧美成人伊人久久综合网| 蜜桃av一区二区三区| 欧美一区在线视频| 男人的天堂亚洲一区| 欧美大白屁股肥臀xxxxxx| 日韩国产欧美一区二区三区| 69久久夜色精品国产69蝌蚪网| 香蕉乱码成人久久天堂爱免费| 欧美日韩在线电影| 视频一区视频二区在线观看| 欧美男人的天堂一二区| 日韩在线观看一区二区| 91精品久久久久久蜜臀| 激情国产一区二区| 久久久久久亚洲综合影院红桃| 懂色av中文一区二区三区| 亚洲欧美在线视频| 91成人在线观看喷潮| 亚洲大片免费看| 欧美一区二区三区四区在线观看| 麻豆91免费看| 国产精品久久久久久久第一福利 | 在线免费亚洲电影| 天堂影院一区二区| 精品欧美一区二区在线观看| 国产精品香蕉一区二区三区| 亚洲免费三区一区二区| 欧美日韩在线播放| 久久不见久久见中文字幕免费| 久久精品人人做| 99国产精品一区| 日本美女一区二区三区| 国产色产综合色产在线视频| 色综合婷婷久久| 久久精品国产亚洲a| 国产精品国产自产拍在线| 欧美在线观看一区| 麻豆高清免费国产一区|