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

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

?? lcd.c

?? 18f4550 usb c# ccs projects
?? C
字號:
//----------------------------------------------------------------------------//
// Define for LCD
#include <string.h>
#define  STRDSPLMAX     16       //Display 16 charactor / Line
static   u08 buffer_display[STRDSPLMAX+1];


///////////////////////////////////////////////////////////////////////////
////                             LCDD.C                                ////
////                 Driver for common LCD modules                     ////
////                                                                   ////
////  lcd_init()   Must be called before any other function.           ////
////                                                                   ////
////  lcd_putc(c)  Will display c on the next position of the LCD.     ////
////                     The following have special meaning:           ////
////                      \f  Clear display                            ////
////                      \n  Go to start of second line               ////
////                      \b  Move back one position                   ////
////                                                                   ////
////  lcd_gotoxy(x,y) Set write position on LCD (upper left is 1,1)    ////
////                                                                   ////
////  lcd_getc(x,y)   Returns character at position x,y on LCD         ////
////                                                                   ////
///////////////////////////////////////////////////////////////////////////
////        (C) Copyright 1996,2003 Custom Computer Services           ////
//// This source code may only be used by licensed users of the CCS C  ////
//// compiler.  This source code may only be distributed to other      ////
//// licensed users of the CCS C compiler.  No other use, reproduction ////
//// or distribution is permitted without written permission.          ////
//// Derivative programs created using this software in object code    ////
//// form are not restricted in any way.                               ////
///////////////////////////////////////////////////////////////////////////

// As defined in the following structure the pin connection is as follows:
//     D0  enable
//     D1  rs
//     D2  rw
//     D3  unused
//     D4  D4
//     D5  D5
//     D6  D6
//     D7  D7
//
//   LCD pins D0-D3 are not used and PIC D3 is not used.

// Un-comment the following define to use port B
// #define use_portb_lcd TRUE



struct lcd_pin_map {                 // This structure is overlayed
           BOOLEAN enable;           // on to an I/O port to gain
           BOOLEAN rs;               // access to the LCD pins.
           BOOLEAN rw;               // The bits are allocated from
           BOOLEAN unused;           // low order up.  ENABLE will
           int    data : 4;          // be pin D0.
        } lcd;

#byte lcd = 0xF83                    // This puts the entire structure

#define set_tris_lcd(x) set_tris_d(x)

#define lcd_type 2               // 0=5x7, 1=5x10, 2=2 lines
#define lcd_line_two    0x40     // LCD RAM address for the second line

#define  LINE1          1
#define  LINE2          2

#define  DSPL_LEFT      0
#define  DSPL_RIGHT     1
#define  DSPL_CENTER    2



BYTE const LCD_INIT_STRING[4] = {0x20 | (lcd_type << 2), 0xc, 1, 6};
                             // These bytes need to be sent to the LCD
                             // to start it up.


                             // The following are used for setting
                             // the I/O port direction register.

struct lcd_pin_map const LCD_WRITE = {0,0,0,0,0}; // For write mode all pins are out
struct lcd_pin_map const LCD_READ = {0,0,0,0,15}; // For read mode data pins are in



BYTE lcd_read_byte() {
      BYTE low,high;
      set_tris_lcd(LCD_READ);
      lcd.rw = 1;
      delay_cycles(1);
      lcd.enable = 1;
      delay_cycles(1);
      high = lcd.data;
      lcd.enable = 0;
      delay_cycles(1);
      lcd.enable = 1;
      delay_us(1);
      low = lcd.data;
      lcd.enable = 0;
      set_tris_lcd(LCD_WRITE);
      return( (high<<4) | low);
}
void lcd_send_nibble( BYTE n ) {
      lcd.data = n;
      delay_cycles(1);
      lcd.enable = 1;
      delay_us(2);
      lcd.enable = 0;
}
void lcd_send_byte( BYTE address, BYTE n ) {

      lcd.rs = 0;
      while (bit_test(lcd_read_byte(),7) ) ;
      lcd.rs = address;
      delay_cycles(1);
      lcd.rw = 0;
      delay_cycles(1);
      lcd.enable = 0;
      lcd_send_nibble(n >> 4);
      lcd_send_nibble(n & 0xf);
}

void lcd_init() {
    BYTE i;
    set_tris_lcd(LCD_WRITE);
    lcd.rs = 0;
    lcd.rw = 0;
    lcd.enable = 0;
    delay_ms(15);
    for(i=1;i<=3;++i) {
       lcd_send_nibble(3);
       delay_ms(5);
    }
    lcd_send_nibble(2);
    for(i=0;i<=3;++i)
       lcd_send_byte(0,LCD_INIT_STRING[i]);
}
void lcd_gotoxy( BYTE x, BYTE y)
{

   BYTE address = 0;

   if (y == LINE2)
     address= lcd_line_two;

   address += x-1;
   lcd_send_byte(0, 0x80|address);
}

void lcd_putc( char c) {

   switch (c)
   {
     case '\f'   : lcd_send_byte(0,1);
                   delay_ms(2);
                                           break;
     case '\n'   : lcd_gotoxy(1,2);        break;
     case '\b'   : lcd_send_byte(0,0x10);  break;
     default     : lcd_send_byte(1,c);     break;
   }
}

char lcd_getc( BYTE x, BYTE y)
{
   char value;

    lcd_gotoxy(x,y);
    while ( bit_test(lcd_read_byte(),7) ); // wait until busy flag is low
    lcd.rs=1;
    value = lcd_read_byte();
    lcd.rs=0;
    return(value);
}
//----------------------------------------------------------------------------//
void lcd_string (int Line, char *string,int delay)
{
   int i;
      lcd_gotoxy (0,Line);

      //while (*string != 0)
      for (i = 0; i < STRDSPLMAX; i++)
      {
            lcd_putc (*string++);
         delay_ms (delay);
      }
}
//----------------------------------------------------------------------------//
void dspl_line (u08 *cStr, u08 nAlign, u08 nLine)
{

     u08    cLine[STRDSPLMAX+1];

     u08    len; //x
     len   =  strlen (cStr);

     if (len > STRDSPLMAX)
            len  = 16;

      memset (cLine, 0x20, STRDSPLMAX);

      switch (nAlign)
     {
            //OK
           case  DSPL_LEFT :    memcpy (cLine, cStr, len);
                                break;
           // OK
           case  DSPL_CENTER:   memcpy (cLine+((STRDSPLMAX - len)/2), cStr, len);
                                break;
           // OK
           case  DSPL_RIGHT:    memcpy (cLine+ (STRDSPLMAX - len), cStr, len);
                                break;

                     default :
                                break;

     }
     lcd_string (nLine, cLine, 5);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
三级久久三级久久久| 99久久99久久久精品齐齐| 国产成人av一区二区| 在线观看视频91| 欧美高清在线精品一区| 三级亚洲高清视频| 97久久精品人人做人人爽| 精品剧情v国产在线观看在线| 综合av第一页| 国产白丝精品91爽爽久久 | 精品理论电影在线观看| 亚洲精选一二三| 99久久免费国产| 国产精品久久久久精k8| 国产精品一区二区视频| 91精品国产入口| 五月激情六月综合| 欧美日韩免费在线视频| 亚洲精品中文在线影院| 不卡av电影在线播放| 国产欧美视频一区二区| 国产一区二区三区美女| 日韩欧美一区二区久久婷婷| 丝袜亚洲精品中文字幕一区| 欧美影院一区二区三区| 一区二区三区小说| 99久久精品国产麻豆演员表| 欧美激情综合在线| 国产美女av一区二区三区| 精品女同一区二区| 国产精品一区二区你懂的| 精品精品国产高清a毛片牛牛| 日本中文字幕一区| 日韩午夜av电影| 麻豆极品一区二区三区| 日韩欧美www| 国产又粗又猛又爽又黄91精品| 亚洲精品一线二线三线| 精品一区二区三区不卡| 久久综合中文字幕| 国产不卡免费视频| 亚洲欧美日韩国产一区二区三区| 99精品国产视频| 一区二区三区在线播放| 欧美人牲a欧美精品| 日本美女一区二区| 久久综合久久久久88| 国产在线精品不卡| 一色桃子久久精品亚洲| 91成人在线免费观看| 午夜精品久久久久影视| 久久综合色鬼综合色| 粉嫩蜜臀av国产精品网站| 亚洲欧洲性图库| 欧美日韩精品一区二区| 国内成人自拍视频| 国产精品天干天干在线综合| 91在线无精精品入口| 亚洲综合成人网| 91精品在线免费观看| 国产经典欧美精品| 亚洲午夜久久久久久久久久久| 宅男噜噜噜66一区二区66| 久久99国产精品久久99| 国产精品久久久久久久久动漫 | 国产视频一区不卡| 91网址在线看| 久久国产三级精品| 国产精品麻豆久久久| 欧美日韩免费观看一区三区| 久久99久久精品| 亚洲男人的天堂一区二区| 制服丝袜亚洲精品中文字幕| 国产99久久久国产精品免费看| 亚洲黄色av一区| 精品播放一区二区| 在线一区二区三区四区五区| 免费成人性网站| 亚洲精品老司机| 久久综合五月天婷婷伊人| 欧美三级日韩在线| 成人三级伦理片| 麻豆免费精品视频| 亚洲精品第1页| 国产精品美女一区二区三区| 91超碰这里只有精品国产| av网站免费线看精品| 日本aⅴ免费视频一区二区三区| 亚洲婷婷在线视频| 久久久五月婷婷| 欧美成va人片在线观看| 欧美日韩一区二区三区在线看| 丁香啪啪综合成人亚洲小说| 日韩不卡一区二区| 亚洲在线视频一区| 国产精品乱人伦一区二区| 精品国产乱码久久久久久闺蜜| 欧美天天综合网| 91麻豆精品在线观看| 国产成人av在线影院| 极品尤物av久久免费看| 秋霞国产午夜精品免费视频| 综合久久久久久久| 国产精品不卡在线| 国产精品午夜在线| 久久精品夜夜夜夜久久| 欧美成人精品二区三区99精品| 欧美日韩精品一二三区| 欧美无人高清视频在线观看| 色哟哟精品一区| 色欲综合视频天天天| 972aa.com艺术欧美| 成人国产精品免费网站| gogogo免费视频观看亚洲一| 成人一级黄色片| 成人av网站在线| 9久草视频在线视频精品| 成人国产视频在线观看| av中文字幕不卡| 色欧美日韩亚洲| 欧美亚洲高清一区二区三区不卡| 色婷婷综合久久久久中文一区二区| av资源网一区| 在线观看亚洲精品视频| 欧美日韩精品一二三区| 日韩一级黄色大片| 精品三级在线观看| 久久久99精品久久| 日本一区二区三区在线不卡| 国产女人18水真多18精品一级做| 国产人久久人人人人爽| 国产精品免费久久| 亚洲另类一区二区| 亚洲国产你懂的| 精品一区二区免费在线观看| 豆国产96在线|亚洲| 91小视频免费观看| 91超碰这里只有精品国产| 久久色在线视频| 中文字幕一区二区视频| 亚洲午夜久久久久久久久久久| 五月激情六月综合| 国产高清无密码一区二区三区| 99re66热这里只有精品3直播| 欧美午夜精品久久久久久超碰| 精品日韩一区二区| 1000精品久久久久久久久| 亚洲影视在线播放| 国内成人免费视频| 欧美在线观看你懂的| 欧美成人三级电影在线| 亚洲人午夜精品天堂一二香蕉| 爽好多水快深点欧美视频| 国产白丝精品91爽爽久久| 欧美日韩国产乱码电影| 久久精品一区二区三区不卡| 夜夜嗨av一区二区三区四季av | 亚洲大片在线观看| 国产福利91精品| 在线播放中文字幕一区| 国产精品日韩精品欧美在线| 天堂成人免费av电影一区| 成人性视频网站| 欧美一区二区视频在线观看| 国产精品国产三级国产普通话三级| 视频一区视频二区在线观看| 成人永久aaa| 久久综合一区二区| 日韩成人精品在线观看| 波多野结衣在线一区| 精品国产不卡一区二区三区| 亚洲成年人影院| 9色porny自拍视频一区二区| 久久综合丝袜日本网| 日韩国产欧美在线观看| 99热99精品| 日本一区二区三区国色天香 | 国产精品久久久久久久久久免费看 | 国产精品福利一区| 精品一区二区成人精品| 欧美色图在线观看| 一区二区三区在线观看欧美| 成人h精品动漫一区二区三区| 精品久久久久一区| 男男成人高潮片免费网站| 欧美亚洲高清一区二区三区不卡| 成人欧美一区二区三区| 高清成人在线观看| 久久久亚洲精品石原莉奈| 久久99久久精品| 精品乱码亚洲一区二区不卡| 免费在线视频一区| 日韩精品最新网址| 蜜臀av性久久久久av蜜臀妖精| 欧美日韩黄色影视| 午夜精品免费在线| 欧美一级一级性生活免费录像| 亚洲国产综合色| 欧美最猛性xxxxx直播| 亚洲精品国产高清久久伦理二区|