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

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

?? lcd.c

?? LPC2368 SD卡控制程序
?? C
字號:
/*----------------------------------------------------------------------------
 *      R T L   K e r n e l   E x a m p l e
 *----------------------------------------------------------------------------
 *      Name:    LCD.C
 *      Purpose: LCD module 2x16 driver for ST7066 controller
 *      Rev.:    V3.12
 *----------------------------------------------------------------------------
 *      This code is part of the RealView Run-Time Library.
 *      Copyright (c) 2004-2007 KEIL - An ARM Company. All rights reserved.
 *---------------------------------------------------------------------------*/

#include <RTL.h>
#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 U32 lcd_ptr;

/* 8 user defined characters to be loaded into CGRAM (used for bargraph) */
static const U8 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 (U32 cnt);
static void lcd_write (U32 c);
static void lcd_write_4bit (U32 c);
static U32  lcd_rd_stat (void);
static void lcd_wr_cmd (U32 c);
static void lcd_wr_data (U32 d);
static void lcd_wait_busy (void);

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


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

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

   while (cnt--);
}


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

static void lcd_write_4bit (U32 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 (U32 c) {
   /* Write data/command to LCD controller. */

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


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

static U32 lcd_rd_stat (void) {
   /* Read status of LCD controller (ST7066) */
   U32 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. */
   U32 stat;

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


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

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

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


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

static void lcd_wr_data (U32 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 ((U8 *)&UserFont, sizeof (UserFont));
   LCD_cls ();
}


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

void LCD_load (U8 *fp, U32 cnt) {
   /* Load user-specific characters into CGRAM */
   U32 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 (U32 x, U32 y) {
   /* Set cursor position on LCD display. Left corner: 1,1, right: 16,2 */
   U32 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 (U8 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 (U8 *sp) {
   /* Print a string to LCD display. */

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


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

void LCD_bargraph (U32 val, U32 size) {
   /* Print a bargraph to LCD display.  */
   /* - val:  value 0..100 %            */
   /* - size: size of bargraph 1..16    */
   U32 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一区二区三区免费野_久草精品视频
欧美日韩一级黄| 日韩和欧美的一区| 亚洲国产欧美在线| 国内偷窥港台综合视频在线播放| av亚洲精华国产精华| 欧美一区二区视频在线观看| 亚洲女人****多毛耸耸8| 久久超碰97人人做人人爱| 色欧美88888久久久久久影院| 久久精品一区蜜桃臀影院| 日韩成人精品在线| 色婷婷狠狠综合| 欧美极品美女视频| 黑人精品欧美一区二区蜜桃| 欧美天天综合网| 樱花草国产18久久久久| 成人久久久精品乱码一区二区三区| 欧美欧美欧美欧美首页| 一区二区欧美精品| av在线不卡电影| 国产精品乱码久久久久久| 国精产品一区一区三区mba桃花 | 中文字幕亚洲综合久久菠萝蜜| 久久精品噜噜噜成人av农村| 欧美高清你懂得| 午夜欧美大尺度福利影院在线看| 91麻豆国产香蕉久久精品| 日本一区二区高清| 成人免费的视频| 国产视频一区在线播放| 国产精品一区二区在线观看网站| 26uuu色噜噜精品一区二区| 久草精品在线观看| 久久久精品国产免费观看同学| 国产一区二区三区国产| 国产日韩精品一区二区浪潮av| 理论电影国产精品| 久久这里只有精品6| 久久国产夜色精品鲁鲁99| 91精品一区二区三区在线观看| 日韩成人一区二区| 精品国产精品网麻豆系列| 国产一区二区在线免费观看| 国产亚洲婷婷免费| 99久久精品免费| 亚洲激情综合网| 精品视频1区2区3区| 日韩高清不卡一区二区三区| 这里只有精品视频在线观看| 麻豆91在线播放免费| 久久九九99视频| 日本高清免费不卡视频| 亚洲第一狼人社区| 欧美成人r级一区二区三区| 国内外成人在线| 最新国产成人在线观看| 欧美精品一卡二卡| 国产精品一区专区| 一区二区久久久| 欧美一级免费大片| 国产精品1024| 亚洲高清免费观看高清完整版在线观看| 精品视频色一区| 国产精品456露脸| 亚洲国产cao| 国产日韩精品视频一区| 欧美视频在线观看一区二区| 另类的小说在线视频另类成人小视频在线| 国产日韩一级二级三级| 欧美精品成人一区二区三区四区| 久久99精品久久久久久动态图| 中文字幕精品一区二区精品绿巨人| 91高清视频免费看| 国产一区视频导航| 香蕉加勒比综合久久| 国产欧美日韩综合精品一区二区 | 欧美在线视频不卡| 琪琪一区二区三区| 亚洲欧美日韩在线不卡| 久久日韩粉嫩一区二区三区| 欧美吞精做爰啪啪高潮| av中文字幕在线不卡| 经典三级视频一区| 亚洲国产婷婷综合在线精品| 国产免费观看久久| 欧美电影免费观看完整版| 色狠狠一区二区| 丰满少妇久久久久久久| 男女视频一区二区| 亚洲国产日韩在线一区模特| 亚洲国产精华液网站w| 精品国产污网站| 欧美日韩专区在线| 欧美在线小视频| 97久久精品人人澡人人爽| 国产乱码精品1区2区3区| 麻豆国产欧美一区二区三区| 亚洲国产精品人人做人人爽| 国产精品理伦片| 国产欧美日韩另类一区| 精品久久久久久久人人人人传媒| 精品视频资源站| 欧美视频一区二区三区四区| 在线看不卡av| 91在线看国产| 色诱视频网站一区| 99免费精品视频| 成人国产精品免费观看动漫| 国产成人av一区二区三区在线观看| 捆绑紧缚一区二区三区视频| 免费在线观看视频一区| 日韩制服丝袜先锋影音| 午夜精彩视频在线观看不卡| 亚洲大片精品永久免费| 亚洲小说春色综合另类电影| 亚洲国产一二三| 日本欧美在线看| 麻豆成人久久精品二区三区红| 日本欧美一区二区三区乱码| 另类小说综合欧美亚洲| 国内不卡的二区三区中文字幕 | 欧美视频精品在线观看| 91国偷自产一区二区三区观看| 色8久久人人97超碰香蕉987| 在线免费av一区| 欧美军同video69gay| 日韩一区和二区| 久久久www成人免费毛片麻豆| 国产精品久久久久久久久动漫| 中文字幕一区三区| 一区二区免费在线| 日本伊人精品一区二区三区观看方式| 日本在线不卡视频| 国产精品一区二区不卡| 91丨九色丨黑人外教| 在线观看日韩高清av| 51精品秘密在线观看| 精品国产一区二区亚洲人成毛片 | 亚洲精品高清在线| 视频一区视频二区在线观看| 久久国产婷婷国产香蕉| 成人手机电影网| 欧美日产国产精品| 国产亚洲一区二区三区四区| 亚洲靠逼com| 久久精品国产一区二区三| 国产不卡在线播放| 欧美在线小视频| 久久精品这里都是精品| 椎名由奈av一区二区三区| 亚洲成年人影院| 国产美女精品人人做人人爽| 99re热这里只有精品免费视频| 欧美女孩性生活视频| 国产三级欧美三级| 五月婷婷激情综合网| 成人黄色电影在线| 91麻豆精品国产| 中文字幕亚洲视频| 精品一区二区三区在线观看| 一本色道亚洲精品aⅴ| 日韩欧美高清dvd碟片| 最新高清无码专区| 韩国成人精品a∨在线观看| 在线观看一区二区精品视频| 久久精品亚洲精品国产欧美kt∨ | 日韩久久一区二区| 国内不卡的二区三区中文字幕 | 一区二区三区高清不卡| 国精产品一区一区三区mba桃花 | 国产午夜精品美女毛片视频| 日韩中文字幕亚洲一区二区va在线| 高清在线观看日韩| 精品国产91乱码一区二区三区 | 国产99久久久精品| 日韩欧美色电影| 一区二区三区av电影| av在线综合网| 国产三级欧美三级| 精品在线免费视频| 欧美一区二区在线播放| 亚洲福利国产精品| 欧美亚洲国产一区二区三区va| 国产精品久久久久影院色老大| 狠狠久久亚洲欧美| 日韩免费电影网站| 亚洲a一区二区| 欧美日韩一区二区三区视频 | 91麻豆免费观看| 国产精品卡一卡二| 成人免费看片app下载| 久久久国际精品| 国产精品香蕉一区二区三区| 欧美一区二区播放| 奇米影视7777精品一区二区| 欧美人xxxx| 裸体歌舞表演一区二区| 日韩欧美123| 国产乱码一区二区三区| 久久久久九九视频|