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

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

?? m50530.c

?? DMC_50461LCD for Optrix 20x4 LCD
?? C
字號:
/******************************************************************************

Name:		M50530 LCD DRIVER LIBRARY tested with LEXMARK OPTRA DISPLAY MODULE

Who:		GJO

Ver:		1.00

Date:		2008.02.20

Credits:	Based on BASIC STAMP example code published by Mario Kienspergher,
			OE9MKV, which is based on work by Hans Luyten and Peter Pitzeier

Hardware:	I2CLCD Board Rev6 (Existing HD44780 Interface was re-mapped)

Note: The old Microcomputer must be removed from the DMC-50461N.

============================= READ BEFORE APPLYING POWER =============================

The module as is intended to operate from 3.3V DC. If you want to operate the LCD at 5VDC
follow the instructions below:

Remove R16 and install a 100K potentiometer in the pads of (RV1) provided to allow
proper operation at 5VDC. The LCD (Vee) Voltage is approximately 6.25V at 5VDC Supply
voltage. The adjustment is quite critical.

    ========================= WARNING WARNING WARNING =========================

Do not run the LCD without proper initialization to prevent permanent damage to the
LCD liquid crystals. It is possible to leave the controller in a state with no
internal LCD drive activity. If left in this condition, the LCD will be permanently
damaged due to absent square wave operating waveforms. DC kills LCD!!!

This can be observed when the LCD pixels start to bleed and look unusually dark.
Sometimes adjacent structures show faintly. If this occurs, shut off power to the
LCD quickly.

******************************************************************************/

#include "M50530.h"

/*****************************************************************************
* load custom character graphics (CG)
*
* data contains character address and eight bitmap pixel data from top to bottom
*
* CG data format = [CGa,d0,d1,d2,d3,d4,d5,d6,d7]
*
* CGa = CG start location in CG RAM
*
*	bit  43210
*	d0 = XXXXX
*	d1 = XXXXX
*	d2 = XXXXX
*	d3 = XXXXX
*	d4 = XXXXX
*	d5 = XXXXX
*	d6 = XXXXX
*	d7 = XXXXX
*
* Access CG from 0xF4 < n < 0xFF
*
*	Note: 	This function cannot be used with data stored in FLASH ROM due to
*			CCS does not allow pointer use here.
*
******************************************************************************/
void load_custom_characters_DMC50561(char * data)
{
	int i;
	int address;

	if(*data > 11) return;

	address = *data * 8;
	address += CGRAM_OFFSET;
	data++;

	for(i=0;i<8;i++)
	{
		bus.IOC = CURSOR_ADDRESS;
		write_char_DMC50461(address + i);
		bus.IOC = RAM_ADDDRESS;
		write_char_DMC50461(*data);
		data++;
	}

}



void init_DMC50461(void)
{
   	// SF: Nibble mode, 5x7 font, 4x20 chars, 160 bytes DD RAM, 96 bytes CG RAM
    set_function_DMC50461(0xdb);
	// SD: Set Display: LCD=ON, CUR=OFF, U.L=OFF, CUR BLNK=OFF, CHR=BLNK
    set_function_DMC50461(0x30);
	// SE: Set Entry Mode
    set_function_DMC50461(0x58);
    clear_home_DMC50461();
}



void write_char_DMC50461(char data)
{
    bus.data = data >> 4;         // Write to display upper nibble
    DMC50461_EX_STROBE
    delay_cycles(5);
    bus.data = data & 0x0f;       // Write to display lower nibble
    DMC50461_EX_STROBE
    delay_us(100);                 // allow display time to accept the new data
}



// SF Instruction
void set_function_DMC50461(int cmd)
{
    bus.IOC = FUNCTION_LCD ;
    write_char_DMC50461(cmd);
}



// WS Instruction
void set_start_address_DMC50461(int cmd)
{
    bus.IOC = DISPLAY_START_ADDRESS;
    write_char_DMC50461(cmd);
}



// MH Instruction
void cursor_home_DMC50461(void)
{
    bus.IOC = FUNCTION_LCD ;
    write_char_DMC50461(0x03);
}



// WC Instruction
void cursor_XY_DMC50461(int row, int col)
{
//    int temp;
    bus.IOC = CURSOR_ADDRESS;
    _lcd_addr = addLUT[row] + col;
    write_char_DMC50461(_lcd_addr);
    _lcd_line = row;
}



// CH Instruction
void clear_home_DMC50461(void)
{
    bus.IOC = FUNCTION_LCD ;
    write_char_DMC50461 (0x01);
    delay_ms(10);
    line_set(1);
}



// WD Instruction
void put_DMC50461(char c)
{

    bus.IOC = RAM_ADDDRESS;
    write_char_DMC50461(c);
    _lcd_addr++;

    if(_lcd_addr == 20)
        line_set(2);
    if(_lcd_addr == 40)
        line_set(3);
    if(_lcd_addr == 60)
        line_set(4);
    if(_lcd_addr == 80)
        line_set(1);
}



void line_set(char which_line)
{
    int temp;
    temp = addLUT[which_line - 1];
    bus.IOC = CURSOR_ADDRESS;
    write_char_DMC50461(temp);
    _lcd_line = which_line;
}



// MH Instruction
void move_home_DMC50461()
{
    bus.IOC = FUNCTION_LCD ;
    write_char_DMC50461(0x03);
}



// MA - Move cursor left
void move_cursor_left_DMC50461()
{
    bus.IOC = FUNCTION_LCD ;
    write_char_DMC50461(0x1C);
}



// MA Move cursor right
void move_cursor_right_DMC50461()
{
    bus.IOC = FUNCTION_LCD ;
    write_char_DMC50461(0x18);
}



// SD: Turn On Underline Cursor
void Turn_on_underline_cursor_DMC50461()
{
    bus.IOC = FUNCTION_LCD ;
    write_char_DMC50461(0x3a);
}



// SD: Turn Off Underline Cursor
void Turn_off_underline_cursor_DMC50461()
{
    bus.IOC = FUNCTION_LCD ;
    write_char_DMC50461(0x30);
}



// SD: Turn On Block Cursor
void Turn_on_block_cursor_DMC50461()
{
    bus.IOC = FUNCTION_LCD ;
    write_char_DMC50461(0x33);
}



// SD: Turn Off Block Cursor
void Turn_off_block_cursor_DMC50461()
{
    bus.IOC = FUNCTION_LCD ;
    write_char_DMC50461(0x30);
}




void clear_line_DMC50461(int line)
{

	int i;
	cursor_XY_DMC50461(line, 0);
	for(i=0;i<20;i++)
	{
		put_DMC50461(32);
	}
}



void load_bargraph_symbols()
{

    char data0[8]={0,0,0,0,0,0,0,0};
    char data1[8]={1,16,16,16,16,16,16,16};
    char data2[8]={2,24,24,24,24,24,24,24};
    char data3[8]={3,28,28,28,28,28,28,28};
    char data4[8]={4,30,30,30,30,30,30,30};
    char data5[8]={5,31,31,31,31,31,31,31};
    char data6[8]={6,14,17,17,14,4,4,31};

    load_custom_characters_DMC50561(data0);
    load_custom_characters_DMC50561(data1);
    load_custom_characters_DMC50561(data2);
    load_custom_characters_DMC50561(data3);
    load_custom_characters_DMC50561(data4);
    load_custom_characters_DMC50561(data5);
    load_custom_characters_DMC50561(data6);
}



void draw_bargraph(int row, int data)
{
    int i,temp, remainder;

    if(data>100)data=100;

    temp = data / 5;
    remainder = data % 5;

    cursor_XY_DMC50461(row,0);

    for(i=1;i<=temp;i++)
        printf(put_DMC50461, "%c", 0xF4 + 5);

    if(remainder > 0)
        printf(put_DMC50461, "%c", 0xF4 + remainder);

}





?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
紧缚奴在线一区二区三区| 6080午夜不卡| 国产精品网站在线观看| 老司机精品视频导航| 日韩一区二区在线播放| 美国毛片一区二区三区| 欧美一区二区三区四区高清| 亚洲成人精品一区| 69p69国产精品| 久久99精品国产麻豆婷婷洗澡| 日韩免费电影网站| 国产精品伊人色| 亚洲欧洲一区二区在线播放| 99久久婷婷国产精品综合| 亚洲欧美另类小说视频| 在线观看国产91| 久久国产生活片100| 欧美激情自拍偷拍| 欧美视频日韩视频在线观看| 免费人成精品欧美精品| 国产精品午夜免费| 欧美日韩一区二区三区视频| 国产资源在线一区| 亚洲大片免费看| 亚洲国产精品av| 日韩欧美资源站| 欧美怡红院视频| 国产高清精品网站| 亚洲va在线va天堂| 国产精品网站一区| 欧美一级欧美三级| av激情综合网| 国产福利91精品一区二区三区| 亚洲欧美日韩电影| 中文字幕电影一区| 精品国产一区二区三区久久久蜜月| 91丨porny丨国产| 国产xxx精品视频大全| 日本午夜一区二区| 亚洲高清一区二区三区| 成人免费一区二区三区在线观看| 日韩一级二级三级| 日韩欧美综合一区| 欧美一二三区精品| 欧美草草影院在线视频| 欧美一区二区三区精品| 欧美乱妇一区二区三区不卡视频| 91毛片在线观看| 色综合久久久久久久久久久| 99久久久国产精品免费蜜臀| 成人高清av在线| 色综合久久久久| 日本高清成人免费播放| 欧美图片一区二区三区| 欧美日韩国产大片| 日韩午夜激情av| 久久综合国产精品| 亚洲国产精品传媒在线观看| 国产精品国产馆在线真实露脸 | 亚洲精品一区在线观看| 精品国产乱码91久久久久久网站| 2020日本不卡一区二区视频| 久久久高清一区二区三区| 国产精品美女www爽爽爽| 综合色中文字幕| 丝袜美腿亚洲一区| 国产精品2024| 欧美日韩精品久久久| 欧美成人a∨高清免费观看| 国产欧美精品一区aⅴ影院| 亚洲视频一区在线观看| 老司机免费视频一区二区| 成人18视频在线播放| 制服丝袜亚洲精品中文字幕| 久久久.com| 理论电影国产精品| 在线视频综合导航| 国产精品毛片久久久久久久| 午夜影院在线观看欧美| 波多野结衣欧美| 日韩精品一区二区三区视频| 亚洲制服丝袜一区| 99久久久无码国产精品| 亚洲精品一区二区三区四区高清 | 91精品国产全国免费观看| 国产蜜臀97一区二区三区| 久久99在线观看| 欧美性色欧美a在线播放| 成人免费在线视频| 成人国产在线观看| 国产精品视频麻豆| 国产精品99久久久久久有的能看| 69精品人人人人| 日韩高清国产一区在线| 欧美精品色综合| 夜夜嗨av一区二区三区网页| 99久久免费视频.com| 国产精品久久久久久久久免费丝袜| 激情综合网最新| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 日韩亚洲国产中文字幕欧美| 性欧美大战久久久久久久久| 色老头久久综合| 亚洲免费av观看| 欧美日韩国产一级片| 亚洲风情在线资源站| 日韩精品一区二区三区在线观看| 久久精品免费看| 国产欧美一区二区精品仙草咪| 国产精品伊人色| 亚洲免费高清视频在线| 欧美图片一区二区三区| 日本女人一区二区三区| 久久久一区二区三区捆绑**| 成人性生交大合| 亚洲久草在线视频| 精品播放一区二区| 美女视频黄久久| 国产精品成人午夜| 日韩三级中文字幕| 97精品电影院| 国产精品99久久不卡二区| 亚洲婷婷国产精品电影人久久| 欧美区一区二区三区| 成人激情电影免费在线观看| √…a在线天堂一区| www久久久久| 日韩一级免费观看| 欧美日韩精品久久久| 色综合天天综合| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 天堂蜜桃一区二区三区| 亚洲视频图片小说| 欧美国产精品久久| 久久综合九色综合97_久久久 | 成人性生交大片免费| 久久69国产一区二区蜜臀| 亚洲va欧美va国产va天堂影院| 欧美国产精品一区二区| 久久久国际精品| 久久综合九色综合欧美亚洲| 日韩免费在线观看| 精品国产91乱码一区二区三区| 欧美日韩一级视频| 欧美美女激情18p| 在线不卡一区二区| 精品乱人伦小说| 欧美成人精品3d动漫h| 精品国产百合女同互慰| 精品99一区二区| 国产女人水真多18毛片18精品视频 | 日韩中文字幕亚洲一区二区va在线| 亚洲黄色av一区| 日韩在线一区二区三区| 精品亚洲国产成人av制服丝袜| 精品一区二区三区久久久| 国产夫妻精品视频| 一本到不卡免费一区二区| 色综合久久综合网欧美综合网| 欧美精品vⅰdeose4hd| 日韩欧美在线1卡| 日本一二三四高清不卡| 亚洲男人天堂一区| 蜜臀久久久久久久| 成人精品国产一区二区4080| 欧美亚洲一区二区三区四区| 日韩欧美一级二级三级| 国产精品第四页| 久久se精品一区二区| 日本电影亚洲天堂一区| 国产亚洲一二三区| 亚洲gay无套男同| 99视频精品免费视频| 欧美www视频| 亚洲一区成人在线| 成人午夜视频在线| 日韩三级视频中文字幕| 亚洲国产一区二区视频| 国产乱国产乱300精品| 欧美一级欧美一级在线播放| 国产精品二三区| 国产91丝袜在线播放| 欧美成人a在线| 天天综合天天做天天综合| 91色九色蝌蚪| 国产精品久久久久久久久图文区| 精品在线免费视频| 欧美一区二区三区电影| 天天亚洲美女在线视频| 欧美日韩国产美女| 亚洲一区二区精品3399| 欧美色视频在线观看| 一区二区三区美女| 欧美视频日韩视频| 亚洲已满18点击进入久久| 在线亚洲免费视频| 亚洲国产一区二区a毛片| 欧美一区二区三区免费观看视频| 天堂成人国产精品一区| 欧美一区午夜视频在线观看|