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

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

?? tg_4bitlcd.c

?? 嵌入式LCD驅動程序的實現top01_pac01
?? C
?? 第 1 頁 / 共 3 頁
字號:
/*                                      HIDE   -> Cursor invisible  */
/*------------------------------------------------------------------*/
/* Returnvalue : none                                               */
/*------------------------------------------------------------------*/
/* History     : 06/99    V1.0 Basic routine                        */
/*               09/99    V1.1 Calculation of control modified      */
/*                             (because of compiler otim. bug)      */
/*                                                                  */
/********************************************************************/
void control_LCD(unsigned char dsp,unsigned char blink,unsigned char cursor)
{
unsigned char control;  // variable to generate instruction byte

control = (0x08 + blink + cursor + dsp); // Cursor control

EA = 0;                 // Disable all interrupts
LCD_RS = CTRL_REG;      // Switch to instruction register
// Set LCD_DATA to high nibble of Display On/Off Control
LCD_DATA = (LCD_DATA&0x0F)|0x00;
LCD_E = 1; LCD_E = 0;   // Write data to display
// Set LCD_DATA to lower nibble of Display On/Off Control
LCD_DATA = (LCD_DATA&0x0F)|((control<<4)&0xF0);
LCD_E = 1; LCD_E = 0;   // Write data to display
EA = 1;                 // Enable all interrupts

delay(4);               // Wait 400祍

return;
}


/********************************************************************/
/* Function    : gotoxy(x,y)                                    SUB */
/*------------------------------------------------------------------*/
/* Description : Sets the write position of the LCD display         */
/*                                                                  */
/*                 (1,1)         (16,1)                             */
/*                   |              |                               */
/*                   ################   -> line 1                   */
/*                   ################   -> line 2                   */
/*                   |              |                               */
/*                 (1,2)         (16,2)                             */
/*------------------------------------------------------------------*/
/* Author      : Thorsten Godau  NT8                                */
/*------------------------------------------------------------------*/
/* Input       : unsigned char x    -> x position (horizontal)      */
/*               unsigned char y    -> y position (vertical)        */
/*------------------------------------------------------------------*/
/* Returnvalue : none                                               */
/*------------------------------------------------------------------*/
/* History     : 06/99    V1.0 Basic routine                        */
/*                                                                  */
/********************************************************************/
void gotoxy(unsigned char x,unsigned char y)
{

EA = 0;                         // Disable all interrupts
LCD_RS = CTRL_REG;              // Switch to instruction register
// Set LCD_DATA to high nibble of position table value
LCD_DATA = (LCD_DATA&0x0F)|((LOCATION[y-1][x-1])&0xF0);
LCD_E = 1; LCD_E = 0;           // Write data to display
// Set LCD_DATA to lower nibble of position table value
LCD_DATA = (LCD_DATA&0x0F)|(((LOCATION[y-1][x-1])<<4)&0xF0);
LCD_E = 1; LCD_E = 0;           // Write data to display
EA = 1;                         // Enable all interrupts

delay(4);                       // Wait 400祍

return;
}


/********************************************************************/
/* Function    : clrscr()                                       SUB */
/*------------------------------------------------------------------*/
/* Description : Clears LCD display, and sets position to (1,1)     */
/*------------------------------------------------------------------*/
/* Author      : Thorsten Godau  NT8                                */
/*------------------------------------------------------------------*/
/* Input       : none                                               */
/*------------------------------------------------------------------*/
/* Returnvalue : none                                               */
/*------------------------------------------------------------------*/
/* History     : 06/99    V1.0 Basic routine                        */
/*               09/99    V1.1 Timing correction                    */
/*                                                                  */
/********************************************************************/
void clrscr(void)
{
 
EA = 0;                         // Disable all interrupts
LCD_RS = CTRL_REG;              // Switch to instruction register
// Set LCD_DATA to high nibble of Clear Screen
LCD_DATA = (LCD_DATA&0x0F)|0x00;
LCD_E = 1; LCD_E = 0;           // Write data to display
// Set LCD_DATA to lower nibble of Clear Screen
LCD_DATA = (LCD_DATA&0x0F)|0x10;
LCD_E = 1; LCD_E = 0;           // Write data to display
EA = 1;                         // Enable all interrupts

delay(41);                      // Wait 4.1ms

return;
}


/********************************************************************/
/* Function    : LCD_putchar(value)                             SUB */
/*------------------------------------------------------------------*/
/* Description : Writes the character value to the display          */
/*------------------------------------------------------------------*/
/* Author      : Thorsten Godau  NT8                                */
/*------------------------------------------------------------------*/
/* Input       : unsigned char value    -> character to be written  */
/*------------------------------------------------------------------*/
/* Returnvalue : none                                               */
/*------------------------------------------------------------------*/
/* History     : 06/99    V1.0 Basic routine                        */
/*                                                                  */
/********************************************************************/
void LCD_putchar(unsigned char value)
{

EA = 0;                         // Disable all interrupts
LCD_RS = DATA_REG;              // Switch to data register
// Set LCD_DATA to high nibble of value
LCD_DATA = (LCD_DATA&0x0F)|(value&0xF0);
LCD_E = 1; LCD_E = 0;           // Write data to display
// Set LCD_DATA to lower nibble of value
LCD_DATA = (LCD_DATA&0x0F)|((value<<4)&0xF0);
LCD_E = 1; LCD_E = 0;           // Write data to display
EA = 1;                         // Enable all interrupts

delay(4);                       // Wait 400祍

return;
}


/********************************************************************/
/* Function    : LCD_printxy(x,y,*text)                         SUB */
/*------------------------------------------------------------------*/
/* Description : Prints text to position x/y of the display         */
/*------------------------------------------------------------------*/
/* Author      : Thorsten Godau  NT8                                */
/*------------------------------------------------------------------*/
/* Input       : unsigned char x     -> x position of the display   */
/*               unsigned char y     -> y position of the display   */
/*               unsigned char *text -> pointer to text             */
/*------------------------------------------------------------------*/
/* Returnvalue : none                                               */
/*------------------------------------------------------------------*/
/* History     : 06/99    V1.0 Basic routine                        */
/*                                                                  */
/********************************************************************/
void LCD_printxy(unsigned char x,unsigned char y, unsigned char *text)
{

gotoxy(x,y);            // Set cursor position

while( *text )          // while not end of text
  {
  LCD_putchar(*text++); // Write character and increment position
  } 

return;
}


/********************************************************************/
/* Function    : delay(delaytime)                               SUB */
/*------------------------------------------------------------------*/
/* Description : Routine waits (dependening on Timer 0) for about   */
/*               delaytime * 100祍. Best for delaytime > 10         */
/*------------------------------------------------------------------*/
/* Author      : Thorsten Godau  NT8                                */
/*------------------------------------------------------------------*/
/* Input       : unsigned int time_100祍                            */
/*------------------------------------------------------------------*/
/* Returnvalue : none                                               */
/*------------------------------------------------------------------*/
/* History     : 06/99    V1.0 Basic routine                        */
/*               09/99    V1.1 nop inserted in delay-loop           */
/*                                                                  */
/********************************************************************/
void delay(unsigned int time_100us)
{

if ( time_100us == 0 ) return;   // Return if no delaytime is assigned

DELAY = time_100us;              // Set global delaytime
   
while ( DELAY > 0 )
  {
  _asm
    nop
  _endasm;
  }             // Wait delaytime

return;
}


// MAIN =============================================================
void main( void )
{
init_MCU();                                            // Initialize MCU
init_LCD();                                            // Initialize the LCD display
                
LCD_printxy(1,1,"Test of the LCD!");                   // Message to LCD
LCD_printxy(1,2,"---4bit mode----");                   // Message to LCD
control_LCD(ON,NOBLINK,HIDE);                          // Display on, cursor hidden and non-blinking

while(1) // Main loop
  {
  // Do nothing
  _asm
    nop
  _endasm;
  }
}
// END MAIN =========================================================

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲最快最全在线视频| 色88888久久久久久影院野外| 国产日韩综合av| 一本色道久久综合亚洲精品按摩| 国产麻豆午夜三级精品| 亚洲18色成人| 国产精品免费视频网站| 日本一区二区免费在线观看视频| 精品久久久久久久久久久院品网| 欧美偷拍一区二区| 欧美日韩精品三区| 精品日产卡一卡二卡麻豆| 91精品欧美久久久久久动漫| 91麻豆精品国产91久久久使用方法 | 精品欧美一区二区三区精品久久| 欧美亚洲国产一区二区三区va| 久久婷婷久久一区二区三区| 欧美影片第一页| 国产精品灌醉下药二区| 国产精品无遮挡| 亚洲不卡在线观看| 韩国欧美国产1区| 成人精品国产一区二区4080| 欧美日韩久久久| 精品成a人在线观看| 成人免费在线视频观看| 日韩精品亚洲一区二区三区免费| 久久国产精品99久久久久久老狼 | 久久综合色综合88| 亚洲免费av高清| 国产美女视频一区| 欧美亚洲日本国产| 国产欧美1区2区3区| 日韩va亚洲va欧美va久久| 91亚洲国产成人精品一区二区三| 在线播放欧美女士性生活| 亚洲欧洲成人精品av97| 久久国产精品免费| 欧美高清www午色夜在线视频| 国产精品毛片大码女人| 国产成人在线色| 精品国产制服丝袜高跟| 日韩电影免费在线| 欧美在线小视频| 一区av在线播放| 一本久久精品一区二区| 亚洲欧美一区二区三区国产精品| 日韩精品一级中文字幕精品视频免费观看| 91亚洲精品乱码久久久久久蜜桃| 91黄色免费网站| 极品销魂美女一区二区三区| 欧美性xxxxxxxx| 亚洲精品免费电影| 午夜国产精品一区| 免费看欧美女人艹b| 亚洲二区视频在线| 久久99精品久久久久久国产越南| 亚洲第一会所有码转帖| 国产一区美女在线| 欧洲av一区二区嗯嗯嗯啊| 欧美一区二区三区白人| 国产精品久久久久久久久快鸭 | 成人性生交大片免费看中文| 国产成人三级在线观看| 色婷婷综合久久久久中文一区二区| 欧美综合一区二区| 日本一区二区三区久久久久久久久不 | 欧美成人精品1314www| 久久久精品黄色| 免费在线看一区| 777色狠狠一区二区三区| 亚洲激情av在线| 中文字幕日韩欧美一区二区三区| 国产精品久久久久久久久图文区| 日韩免费看的电影| 久久综合狠狠综合久久综合88| 亚洲高清中文字幕| 欧美在线免费观看亚洲| 国产乱国产乱300精品| 美国十次综合导航| 日韩中文字幕区一区有砖一区| 国产自产v一区二区三区c| 91美女视频网站| 久久精品欧美日韩| 日韩精品成人一区二区三区| 99久久综合精品| 国产偷国产偷亚洲高清人白洁| 日韩精品国产精品| 国产精品123| 精品福利一区二区三区| 另类中文字幕网| 欧美高清性hdvideosex| 日本aⅴ亚洲精品中文乱码| 91视频国产资源| 久久久久国产一区二区三区四区| 天堂一区二区在线| 日韩一级完整毛片| 亚洲人成人一区二区在线观看| 精品影视av免费| 国产欧美一区二区精品仙草咪| 另类小说图片综合网| 国产女人18毛片水真多成人如厕 | 欧美色视频在线观看| 亚洲成人免费电影| 欧美夫妻性生活| 不卡的看片网站| 一区二区三区四区在线| 91精品1区2区| 日韩综合小视频| 欧美高清视频一二三区 | 免费欧美高清视频| 欧美亚洲综合另类| 亚洲国产精品传媒在线观看| av动漫一区二区| 调教+趴+乳夹+国产+精品| 国产精品进线69影院| 亚洲美女精品一区| 亚洲免费高清视频在线| 亚洲一区二区视频在线| 色婷婷激情综合| 亚洲黄色小视频| 日本大香伊一区二区三区| 亚洲精品日日夜夜| 91久久精品日日躁夜夜躁欧美| 亚洲欧美日韩电影| 欧美日韩专区在线| 日韩国产欧美在线视频| 日韩一区二区免费视频| 久久成人免费日本黄色| 久久久久久久综合日本| 91福利国产精品| 韩国理伦片一区二区三区在线播放| 777午夜精品免费视频| 麻豆高清免费国产一区| 中文字幕精品一区二区三区精品| 97久久超碰精品国产| 亚洲日本乱码在线观看| 91精品婷婷国产综合久久竹菊| 日韩电影在线免费观看| 2017欧美狠狠色| 99精品久久久久久| 五月天网站亚洲| 精品日产卡一卡二卡麻豆| av资源站一区| 午夜精品视频一区| 精品国产91洋老外米糕| 成人免费看黄yyy456| 一区二区三区国产豹纹内裤在线| 欧美一级xxx| 国产69精品久久99不卡| 亚洲天堂中文字幕| 欧美色图免费看| 国产一区二区三区日韩| 一区二区三区精品| www国产精品av| 日本精品一级二级| 国产在线国偷精品产拍免费yy| 亚洲三级久久久| 精品国产髙清在线看国产毛片| 色偷偷88欧美精品久久久| 精品一区二区三区久久久| 亚洲蜜臀av乱码久久精品蜜桃| 日韩视频国产视频| 色欧美88888久久久久久影院| 免费高清在线视频一区·| 亚洲视频电影在线| 久久久久久久久久美女| 欧美日韩精品三区| 大胆亚洲人体视频| 另类的小说在线视频另类成人小视频在线 | 国产欧美1区2区3区| 欧美日韩亚洲综合一区二区三区| 国产福利精品导航| 日韩成人av影视| av资源站一区| 国产成人鲁色资源国产91色综| 欧美激情自拍偷拍| 日韩精品一区二区三区在线播放| 99久久精品国产一区二区三区| 久久草av在线| 婷婷国产在线综合| 亚洲精品久久久久久国产精华液| 精品国产在天天线2019| 777久久久精品| 在线观看av一区二区| 99久久婷婷国产| 国产精品自产自拍| 极品少妇xxxx偷拍精品少妇| 偷拍亚洲欧洲综合| 亚洲国产精品久久久男人的天堂 | 福利电影一区二区三区| 国产在线视频精品一区| 日本欧美一区二区三区乱码 | 国产精品1区2区3区在线观看| 日韩电影在线看| 久久久久久久久97黄色工厂| 不卡的电影网站| 成人午夜视频免费看| 激情欧美一区二区| 久久99热国产|