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

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

?? tg_4bitlcd.c

?? 嵌入式LCD驅動程序的實現top01_pac01
?? C
?? 第 1 頁 / 共 3 頁
字號:
_endasm;

ET1 = 1; 

return;
}
 

/********************************************************************/
/* Function    : Serial_ISR()                                   ISR */
/*------------------------------------------------------------------*/
/* Description : Interrupt-Service-Routine on vector #4 for         */
/*               handling serial interrupts. Register set #1 is     */
/*               used to store important registers.                 */
/*------------------------------------------------------------------*/
/* Author      : Thorsten Godau  NT8                                */
/*------------------------------------------------------------------*/
/* Input       : none                                               */
/*------------------------------------------------------------------*/
/* Returnvalue : none                                               */
/*------------------------------------------------------------------*/
/* History     : 06/99    V1.0 Basic routine                        */
/*                                                                  */
/********************************************************************/
void Serial_ISR(void) interrupt 4 using 1
{
// Safety-routine
_asm
  nop
_endasm;
  

return;
}


/********************************************************************/
/* Function    : Timer2_ISR()                                   ISR */
/*------------------------------------------------------------------*/
/* Description : Interrupt-Service-Routine on vector #5 for         */
/*               handling Timer2 interrupts.                        */
/*               Routine is not used, because Timer2 generates      */
/*               the baudrate for the serial communication.         */
/*------------------------------------------------------------------*/
/* Author      : Thorsten Godau  NT8                                */
/*------------------------------------------------------------------*/
/* Input       : none                                               */
/*------------------------------------------------------------------*/
/* Returnvalue : none                                               */
/*------------------------------------------------------------------*/
/* History     : 06/99    V1.0 Basic routine                        */
/*                                                                  */
/********************************************************************/
void Timer2_ISR(void) interrupt 5
{
// Safety-routine
_asm
  nop
_endasm;

return;
}


/********************************************************************/
/* Function    : init_MCU()                                     SUB */
/*------------------------------------------------------------------*/
/* Description : Routine initializes the used MCU registers,        */
/*               the timers and the global variables.               */
/*               Baudrate calculation :                             */
/*               RCAP2 = 65536 - ( Quarz / 32 * Baud )              */
/*               Timer 0/1 autoreload-register THx calculation :    */
/*               THx = Timebase * Quarz / 12                        */
/*------------------------------------------------------------------*/
/* Author      : Thorsten Godau  NT8                                */
/*------------------------------------------------------------------*/
/* Input       : none                                               */
/*------------------------------------------------------------------*/
/* Returnvalue : none                                               */
/*------------------------------------------------------------------*/
/* History     : 06/99    V1.0 Basic routine                        */
/*                                                                  */
/********************************************************************/
void init_MCU(void)
{
EA   = 0;     // Disable all interrupts
ET0  = 0;     // Disable Timer 0 interrupt
ET1  = 0;     // Disable Timer 1 interrupt
ES   = 0;     // Disable Serial interrupt
TR0  = 0;     // Stop Timer 0
TR1  = 0;     // Stop Timer 1
TR2  = 0;     // Stop Baudrate-Generator Timer 2

// Set all pins to input-mode
P0   = 0xFF; 
P1   = 0xFF;
P2   = 0xFF;
P3   = 0xFF;

// Timer 0 & 1
TL0  = 0x00;    // MUST be initialized for the firt time with 0
TH0  = 0xA4;    // Tick every 100祍 
TL1  = 0x00;    // MUST be initialized for the firt time with 0
TH1  = 0x48;    // Tick every 200祍
TMOD = 0x22;    // Autoreload for both Timer 0 & 1

// Timer 2 (used for baudrate-generation)
C_T2 = 0;       // Timer-Mode
RCLK = 1;
TCLK = 1;       // Set mode to Baudrate-Generator

SM1  = 1;     
SM0  = 0;       // Set UART to 8N1
REN  = 1;       // Enable UART reception
RCAP2H = 0xFF;
RCAP2L = 0xEE;  // Set Baudrate to 19200Bd at fq = 11.0592MHz (9k6 -> RCAP2 = 0xFFDC)
RI  = 0;        // Clear Receive-Interrupt-Flag
TI  = 0;        // Clear Transmit-Interrupt-Flag

// Initialize globals
DELAY = 0;

TR0  = 1;       // Start Timer 0
TR1  = 1;       // Start Timer 1
TR2  = 1;       // Start Baudrate-Generator Timer 2

ET0  = 1;       // Enable Timer 0 interrupt
ET1  = 1;       // Enable Timer 1 interrupt
ES   = 1;       // Enable Serial interrupt

EA   = 1;       // Enable all interrupts

return;
}


/********************************************************************/
/* Function    : init_LCD()                                     SUB */
/*------------------------------------------------------------------*/
/* Description : Routine initializes the LCD display recommended    */
/*               in the datasheet (4 Bit initialization)            */
/*------------------------------------------------------------------*/
/* Author      : Thorsten Godau  NT8                                */
/*------------------------------------------------------------------*/
/* Input       : none                                               */
/*------------------------------------------------------------------*/
/* Returnvalue : none                                               */
/*------------------------------------------------------------------*/
/* History     : 06/99    V1.0 Basic routine                        */
/*               09/99    V1.1 Timing correction of init            */
/*                                                                  */
/********************************************************************/
void init_LCD(void)
{

delay(200);             // Wait 20ms
LCD_E  = 0;
LCD_RS = CTRL_REG;      // Switch to inruction register

//Set LCD_DATA to high nibble of Software Reset
LCD_DATA = (LCD_DATA&0x0F)|0x30;
LCD_E = 1; LCD_E = 0;   // Write data to display
delay(50);              // Wait 5ms

LCD_E = 1; LCD_E = 0;   // Write data to display again (SW Reset)
delay(50);              // Wait 5ms

LCD_E = 1; LCD_E = 0;   // Write data to display again (SW Reset)
delay(50);              // Wait 5ms

// Set LCD_DATA to high nibble of Function Set (4Bit)
LCD_DATA = (LCD_DATA&0x0F)|0x20;
LCD_E = 1; LCD_E = 0;   // Write data to display
delay(4);

// Set LCD_DATA to high nibble of Function Set : 4 bit, 2 lines, 5*7 font
LCD_DATA = (LCD_DATA&0x0F)|0x20;
LCD_E = 1; LCD_E = 0;   // Write data to display
// Set LCD_DATA to lower nibble of Function Set : 4 bit, 2 lines, 5*7 font
LCD_DATA = (LCD_DATA&0x0F)|0x80;
LCD_E = 1; LCD_E = 0;   // Write data to display
delay(4);               // Wait 400祍

// Set LCD_DATA to high nibble of Display On/Off Control : display off, cursor off, don磘 blink
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 : display off, cursor off, don磘 blink
LCD_DATA = (LCD_DATA&0x0F)|0x80;
LCD_E = 1; LCD_E = 0;   // Write data to display
delay(4);               // Wait 400祍

// Set LCD_DATA to high nibble of Clear Display
LCD_DATA = (LCD_DATA&0x0F)|0x00;
LCD_E = 1; LCD_E = 0;   // Write data to display
// Set LCD_DATA to lower nibble of Clear Display
LCD_DATA = (LCD_DATA&0x0F)|0x10;
LCD_E = 1; LCD_E = 0;   // Write data to display
delay(50);              // Wait 5ms

// Set LCD_DATA to high nibble of Entry Mode Set : increment DD-RAM address, move cursor
LCD_DATA = (LCD_DATA&0x0F)|0x00;
LCD_E = 1; LCD_E = 0;   // Write data to display
// Set LCD_DATA to lower nibble of Entry Mode Set : increment DD-RAM address, move cursor
LCD_DATA = (LCD_DATA&0x0F)|0x60;
LCD_E = 1; LCD_E = 0;   // Write data to display
delay(4);               // Wait 400祍

return;
}


/********************************************************************/
/* Function    : control_LCD(dsp,blink,cursor)                  SUB */
/*------------------------------------------------------------------*/
/* Description : Routine controls the screen                        */
/*------------------------------------------------------------------*/
/* Author      : Thorsten Godau  NT8                                */
/*------------------------------------------------------------------*/
/* Input       : unsigned char dsp    = ON     -> Display on        */
/*                                      OFF    -> Display off       */
/*               unsigned char blink  = BLINK  -> Cursor blinks     */
/*                                      NOBLINK-> Cursor not blinks */
/*               unsigned char cursor = SHOW   -> Cursor visible    */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区在线播| 国产一区二区调教| 在线成人av网站| 午夜免费欧美电影| 日韩欧美在线影院| 国产剧情av麻豆香蕉精品| 久久久久久久久99精品| 成人av在线资源| 亚洲精选视频免费看| 在线免费视频一区二区| 午夜欧美大尺度福利影院在线看| 日韩午夜在线影院| 国产毛片精品国产一区二区三区| 欧美激情一区二区三区全黄| 色狠狠综合天天综合综合| 亚洲第一激情av| 欧美成人免费网站| 岛国精品在线播放| 一区二区三区 在线观看视频| 欧美日韩国产片| 337p粉嫩大胆色噜噜噜噜亚洲| 不卡一二三区首页| 亚洲va韩国va欧美va| 久久影院午夜片一区| 91香蕉视频在线| 免费高清在线一区| 国产精品成人免费| 欧美日韩中文字幕一区| 精品一区二区久久久| 国产精品久久久久一区| 欧美日韩国产综合一区二区三区| 激情综合亚洲精品| 亚洲欧洲另类国产综合| 欧美电影影音先锋| 成人久久久精品乱码一区二区三区| 一区二区三区不卡在线观看 | 日韩精品欧美精品| 国产亚洲精品精华液| 欧美视频日韩视频在线观看| 久久99久久久欧美国产| 亚洲免费在线视频| 欧美α欧美αv大片| 亚洲在线一区二区三区| 日韩欧美中文字幕公布| 91浏览器在线视频| 久久狠狠亚洲综合| 一区二区三区四区精品在线视频| 日韩欧美一区二区不卡| 99精品在线观看视频| 蜜臀91精品一区二区三区| 国产精品电影一区二区| 日韩三级中文字幕| 色婷婷综合久久久中文字幕| 激情国产一区二区| 亚洲高清免费观看| 国产精品久久久久7777按摩| 日韩欧美一级二级三级| 91精品福利视频| 国产成人午夜精品5599| 日韩高清在线观看| 亚洲欧美电影一区二区| 久久久综合网站| 91.xcao| 99精品在线免费| 国产美女精品人人做人人爽| 亚洲成人av在线电影| 国产精品成人在线观看| 26uuu国产日韩综合| 91精品国产一区二区人妖| 91首页免费视频| 国产精品久线观看视频| 精品国产乱码久久久久久1区2区| 欧美三级资源在线| 99久久国产综合色|国产精品| 久久激情综合网| 日本在线不卡视频| 亚洲一区二区精品视频| 亚洲美女免费视频| 欧美极品xxx| 久久精品在这里| 欧美成人国产一区二区| 欧美久久久一区| 欧美自拍偷拍午夜视频| 99国产精品久久| 成人av免费网站| 国产高清在线观看免费不卡| 九色porny丨国产精品| 日本va欧美va精品| 性欧美疯狂xxxxbbbb| 日本一区二区动态图| 综合婷婷亚洲小说| 91免费在线视频观看| 成人一区在线看| 国产高清不卡二三区| 国产一区二区三区在线观看免费视频 | 青青青爽久久午夜综合久久午夜| 亚洲一级二级在线| 亚洲综合另类小说| 亚洲精品水蜜桃| 亚洲欧美激情在线| 亚洲男人的天堂网| 亚洲精品视频在线| 一区二区三区在线观看欧美| 亚洲人成在线观看一区二区| 亚洲私人影院在线观看| 成人欧美一区二区三区| 中文字幕一区二区视频| 国产精品国产三级国产普通话99| 国产精品久久久久aaaa| 1区2区3区欧美| 亚洲美女少妇撒尿| 一个色在线综合| 亚洲国产美女搞黄色| 亚洲一区二区中文在线| 偷拍一区二区三区| 奇米影视7777精品一区二区| 美女高潮久久久| 经典三级在线一区| 国产一区二区久久| 成人中文字幕合集| 99久久久国产精品| 色妹子一区二区| 欧美三级视频在线| 91精品国产麻豆| 精品精品国产高清a毛片牛牛| 2024国产精品视频| 97精品电影院| 一道本成人在线| 欧美久久久久久蜜桃| 日韩一区二区在线观看| 精品国产91乱码一区二区三区| 久久九九久久九九| 亚洲人快播电影网| 首页国产欧美久久| 国模一区二区三区白浆| jizz一区二区| 欧美亚洲国产bt| 欧美电影免费观看高清完整版在 | 一本大道久久a久久综合婷婷| 欧美性色黄大片手机版| 日韩女优毛片在线| 国产片一区二区| 亚洲精品大片www| 日韩国产欧美在线播放| 国产综合一区二区| 99精品视频中文字幕| 欧美熟乱第一页| 精品免费国产二区三区| 国产精品私人影院| 亚洲一区二区在线免费观看视频 | 日韩**一区毛片| 国产成人综合亚洲网站| 91久久线看在观草草青青| 日韩视频免费观看高清完整版在线观看 | 久久久精品蜜桃| 成人欧美一区二区三区| 日本不卡不码高清免费观看 | 国产精品888| 色呦呦日韩精品| 欧美白人最猛性xxxxx69交| 中文字幕一区二区三区不卡在线| 亚洲成人综合在线| 国产精品一区2区| 在线观看日韩电影| 精品剧情在线观看| 亚洲免费伊人电影| 精品一区二区三区不卡| 色综合欧美在线视频区| 精品国产一区二区在线观看| 亚洲欧美色一区| 精品一区二区三区的国产在线播放| 91免费看视频| 精品国产免费视频| 亚洲国产精品久久久久婷婷884 | 成人免费的视频| 欧美一级搡bbbb搡bbbb| 中文字幕日韩一区| 久久精品国产网站| 日本丶国产丶欧美色综合| 精品1区2区在线观看| 亚洲午夜在线电影| 成人免费观看av| 日韩欧美成人一区| 一区二区成人在线| 国产精品亚洲一区二区三区在线 | 性做久久久久久| eeuss鲁片一区二区三区| 欧美r级在线观看| 亚洲自拍另类综合| 成人午夜电影网站| 欧美成人一级视频| 亚洲成人在线观看视频| 97精品国产97久久久久久久久久久久| 亚洲精品一区二区三区福利| 亚洲成人资源在线| 色域天天综合网| 国产精品区一区二区三| 久久99在线观看| 91精品免费观看| 亚洲主播在线观看|