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

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

?? oled_function.c

?? 用msp430控制的OLED顯示程序
?? C
字號:

#include "OLED_function.h"
#include "hardware_defs.h"
#include "type_defs.h"
#include "font.h"

#define IO_IN   0
#define IO_OUT  1
INT8U ContrastValue = 90;
/*******************************************************************************
OLED初始化
********************************************************************************/
void Init_OLED(void)
{
	OLEDPortInit();
       	OLED_RST_HIGH;
	OLED_CS_HIGH;
	OLED_DC_HIGH;
	OLED_DATA_HIGH;
	OLED_CLK_HIGH;
        OLED_PWR_LOW;

	ResetOLED();
/*	OLEDWriteCom(0xAE);
	OLEDWriteCom(0xAD);	//dc-dc off
	OLEDWriteCom(0x8a);
        halWait(100);
	OLEDWriteCom(0x00);
	OLEDWriteCom(0x10);
	OLEDWriteCom(0x40);
	OLEDWriteCom(0x81);
        OLEDWriteCom(ContrastValue);
	OLEDWriteCom(0xA0);
	OLEDWriteCom(0xA4);
	OLEDWriteCom(0xA6);
	OLEDWriteCom(0xA8);
	OLEDWriteCom(0x3f);
	OLEDWriteCom(0xD3);
	OLEDWriteCom(0x00);
	OLEDWriteCom(0xD5);
	OLEDWriteCom(0x20);
	OLEDWriteCom(0xD8);
	OLEDWriteCom(0x00);
	OLEDWriteCom(0xDA);
	OLEDWriteCom(0x12);
	OLEDWriteCom(0xDB);
	OLEDWriteCom(0x00);
	OLEDWriteCom(0xD9);
	OLEDWriteCom(0x22);
	OLEDWriteCom(0xc8);
	OLEDWriteCom(0xAF);*/
        OLEDWriteCom(0xae);//(display on)
        OLEDWriteCom(0x00);//set low column address
        OLEDWriteCom(0x10);//set high column address
        OLEDWriteCom(0x40);//(display start set)
        OLEDWriteCom(0x2e);//(stop horzontal scroll)
        OLEDWriteCom(0xb0);//(page address)
        OLEDWriteCom(0x81);//(set contrast control register)
        OLEDWriteCom(ContrastValue);
        OLEDWriteCom(0xa1);//(set segment re-map)
        OLEDWriteCom(0xa4);//(normal display mode)
        OLEDWriteCom(0xa6);//(set normal/inverse display)
        OLEDWriteCom(0xa8);//(set multiplex ratio)
        OLEDWriteCom(0x3f);
        OLEDWriteCom(0xd3);//(set display offset)
        OLEDWriteCom(0x00);
        OLEDWriteCom(0xad);//(set dc-dc on/off)
        OLEDWriteCom(0x8e);//
        OLEDWriteCom(0xc8);//(set com output scan direction)
        OLEDWriteCom(0xd5);//(set display clock divide ratio/oscillator/frequency)
        OLEDWriteCom(0xf0);//
        OLEDWriteCom(0xd8);//(set area color mode on/off & low power display mode )
        OLEDWriteCom(0x05);//
        OLEDWriteCom(0xd9);//(set pre-charge period)
        OLEDWriteCom(0xc2);
        OLEDWriteCom(0xda);//(set com pins hardware configuration)
        OLEDWriteCom(0x12);
        OLEDWriteCom(0xdb);//(set vcom deselect level)
        OLEDWriteCom(0x08);
        OLEDWriteCom(0xaf);//(display on)
	ClearScreen();
}

/*********************************************************************
//LCD 端口社初始化
*********************************************************************/
void OLEDPortInit(void)
{
    IO_DIR_PORT_PIN(1, 0, IO_OUT);			//RES控制端為輸出
    IO_DIR_PORT_PIN(1, 1, IO_OUT);			//CS控制端為輸出
    IO_DIR_PORT_PIN(1, 2, IO_OUT);			//DC控制端為輸出
    IO_DIR_PORT_PIN(1, 3, IO_OUT);			//PWR控制端為輸出
    IO_DIR_PORT_PIN(2, 0, IO_OUT);                      //DATA數據端為輸出
    IO_DIR_PORT_PIN(2, 1, IO_OUT);                      //CLK控制端為輸出
}

/***********************************************************************
//OLED重啟
***********************************************************************/
void ResetOLED(void)
{
  OLED_RST_LOW;
  OLED_Delay_ms(10);
  OLED_RST_HIGH;  
}

/************************************************************************
//OLED延時
************************************************************************/

void OLED_Delay_ms(UINT16 num_ms)
{
  UINT16 i;
  for(i=0;i<num_ms;i++)
  OLED_Delay_us(1000);
}

void OLED_Delay_us(UINT16 num_us)
{
  UINT16 i;
  for(i=0;i<num_us;i++);
  {
      asm("nop");
      asm("nop");
      asm("nop");
      asm("nop");
      asm("nop");
      asm("nop");
  }
}
/**************************************************************************
//OLED寫指令
**************************************************************************/

void OLEDWriteCom(UINT8 command)
{
  	INT8U i, temp;
        OLED_CLK_LOW;
        OLED_CS_LOW;
        OLED_DC_LOW;
	temp = command;

	for(i=0; i<8; i++)
	{
		if(temp & 0x80)
		{
			OLED_DATA_HIGH;
		}
		else OLED_DATA_LOW;
		temp <<= 1;
		OLED_CLK_HIGH;
		asm("nop");
		asm("nop");
		OLED_CLK_LOW;
	}
	OLED_CS_HIGH;
}
/**********************************************************************
//OLED寫數據
**********************************************************************/
void OLEDWriteData(UINT8 data)
{
  	INT8U i, temp;
        OLED_CLK_LOW;
        OLED_CS_LOW;
        OLED_DC_HIGH;
	temp = data;

	for(i=0; i<8; i++)
	{
		if(temp & 0x80)
		{
			OLED_DATA_HIGH;
		}
		else OLED_DATA_LOW;
		temp <<= 1;
		OLED_CLK_HIGH;
		asm("nop");
		asm("nop");
		OLED_CLK_LOW;
	}
	OLED_CS_HIGH;  
}
/**********************************************************************
//OLED清屏
**********************************************************************/
void ClearScreen(void)
{
	INT8U i , j;
	for (i = 0 ; i < 8 ; i++)
	{
		SetRamAddr(i,0);
		for (j=0;j<132; j++) OLEDWriteData(0x00);
	}  
  
}


/*******************************************************************************
//OLED RAM位置選擇
********************************************************************************/
void SetRamAddr (INT8U Page, INT8U Col)
{
	OLEDWriteCom(0xB0 + Page);
	OLEDWriteCom(Col & 0x0f); //Set lower column address
	OLEDWriteCom(0x10 | ((Col & 0xf0) >> 4)); //Set higher column address
}

/*******************************************************************************
//OLED字符漢字顯示判斷
********************************************************************************/
void Print(INT8U y, INT8U x, INT8U ch[], INT16U yn)
{
	INT8U ch2[3];
	INT8U ii;
        ii = 0;
	while(ch[ii] != '\0')
	{
		if(ch[ii] > 127)
		{
			ch2[0] = ch[ii];
	 		ch2[1] = ch[ii + 1];
			ch2[2] = '\0';			//漢字為兩個字節
			Print16(y , x , ch2 , yn);	//顯示漢字
			x += 16;
			ii += 2;
		}
		else
		{
			ch2[0] = ch[ii];	
			ch2[1] = '\0';			//字母占一個字節
			Print8(y , x , ch2 , yn);	//顯示字母
			x += 8;
			ii += 1;
		}
	}
}

/*******************************************************************************
//OLED字符顯示
********************************************************************************/
void Print8(INT16U y,INT16U x, INT8U ch[],INT16U yn)
{
	INT8U wm ,ii = 0;
	INT16U adder;

	while(ch[ii] != '\0')
	{
		adder = (ch[ii] - 0x20) * 16;

		SetRamAddr(y , x);
		for(wm = 0;wm < 8;wm++)
		{
			if(yn == 0)
			{
				OLEDWriteData(~Font8X8[adder]);
			}
			else
			{
				OLEDWriteData(Font8X8[adder]);
			}
			adder += 1;
		}
		SetRamAddr(y + 1 , x);
		for(wm = 0;wm < 8;wm++)
		{
			if(yn == 0)
			{
				OLEDWriteData(~Font8X8[adder]);	
			}
			else
			{
				OLEDWriteData(Font8X8[adder]);	
			}
			adder += 1;
		}
		ii += 1;
		x += 8;
	}

}
/*******************************************************************************
//函數名:void Print16(INT16U y,INT16U x,INT8U ch[],INT16U yn)
//功能:在屏幕上顯示漢字
//輸入:x ,y 坐標,ch[]待顯示的漢字,yn是否反黑
//輸出:無
********************************************************************************/
void Print16(INT16U y,INT16U x, INT8U ch[], INT16U yn)
{
	INT8U wm ,ii = 0;
	INT16U adder;

	wm = 0;
	adder = 1;
	while(FontNew8X16_Index[wm] > 0x7f)
	{
		if(FontNew8X16_Index[wm] == ch[ii])
		{
			if(FontNew8X16_Index[wm + 1] == ch[ii + 1])
			{
				adder = wm * 16;
				break;
			}
		}
		wm += 2;				//找到漢字在索引中的位置
	}
	SetRamAddr(y , x);

	if(adder != 1)					//找到漢字,顯示出來	
	{
		SetRamAddr(y , x);
		for(wm = 0;wm < 16;wm++)
		{
			if(yn == 0)
			{
				OLEDWriteData(~FontNew16X16[adder]);
			}
			else
			{
				OLEDWriteData(FontNew16X16[adder]);
			}
			adder += 1;
		}
		SetRamAddr(y + 1 , x);

		for(wm = 0;wm < 16;wm++)
		{
			if(yn == 0)
			{
				OLEDWriteData(~FontNew16X16[adder]);
			}
			else
			{
				OLEDWriteData(FontNew16X16[adder]);
			}
			adder += 1;
		}
	}
	else						//找不到字顯示空格			
	{
		ii += 1;
                SetRamAddr(y , x);
		for(wm = 0;wm < 16;wm++)
		{
			if(yn == 0)
			{
				OLEDWriteData(0xff);
			}
			else
			{
				OLEDWriteData(0x00);
			}
		}
		SetRamAddr(y + 1 , x);
		for(wm = 0;wm < 16;wm++)
		{
			if(yn == 0)
			{
				OLEDWriteData(0xff);
			}
			else
			{
				OLEDWriteData(0x00);
			}
		}
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
韩国欧美国产1区| 五月综合激情网| 欧美大度的电影原声| 欧美精品乱人伦久久久久久| 一本色道久久综合亚洲aⅴ蜜桃 | 欧美日韩高清一区二区三区| 91首页免费视频| 色噜噜狠狠色综合欧洲selulu| caoporn国产精品| 色噜噜夜夜夜综合网| 色婷婷狠狠综合| 欧美精品tushy高清| 欧美一级理论片| 久久综合五月天婷婷伊人| 精品久久久久久亚洲综合网 | 色噜噜狠狠成人网p站| 欧美综合久久久| 91精品国模一区二区三区| 精品国产伦一区二区三区免费| 久久久综合网站| 国产精品色婷婷久久58| 亚洲一区在线观看网站| 日韩av高清在线观看| 国产suv一区二区三区88区| 日本韩国一区二区| 日韩欧美一级二级三级久久久| 久久精品水蜜桃av综合天堂| 一区二区三区91| 久久av资源网| 97久久精品人人做人人爽50路| 欧美午夜寂寞影院| 久久精品人人做人人综合| 伊人夜夜躁av伊人久久| 久久99精品久久久久久| 色综合久久88色综合天天| 欧美zozozo| 亚洲亚洲人成综合网络| 国产毛片精品视频| 欧美顶级少妇做爰| 亚洲同性gay激情无套| 久久99热99| 国产呦精品一区二区三区网站| 91麻豆精品91久久久久久清纯| 欧美性淫爽ww久久久久无| 国产精品色哟哟| 日韩一区二区精品在线观看| 久久99精品久久久久久动态图| 91一区在线观看| 亚洲高清视频在线| 这里只有精品电影| 国模大尺度一区二区三区| 欧美激情一区二区三区全黄| 99久久久精品| 日韩国产高清影视| 久久综合色8888| 99久久久久久99| 丝袜诱惑制服诱惑色一区在线观看| 91麻豆精品国产91久久久使用方法 | 国产aⅴ精品一区二区三区色成熟| 国产精品无遮挡| 欧美色手机在线观看| 韩国欧美一区二区| 一区二区视频在线| 欧美一区欧美二区| 成人晚上爱看视频| 婷婷夜色潮精品综合在线| 国产欧美一区二区精品忘忧草| 91久久精品日日躁夜夜躁欧美| 青青草精品视频| 综合电影一区二区三区 | 亚洲欧洲性图库| 日韩欧美国产综合在线一区二区三区| 国产98色在线|日韩| 亚洲地区一二三色| 亚洲国产成人一区二区三区| 91.成人天堂一区| 97久久精品人人澡人人爽| 欧美a级理论片| 亚洲猫色日本管| 国产亚洲一二三区| 91精品国产91热久久久做人人| 99国产精品久久久久久久久久 | 99这里都是精品| 日韩和欧美一区二区三区| 国产精品久久久久婷婷二区次| 欧美一区二区三区性视频| 99麻豆久久久国产精品免费| 久久99精品视频| 日韩av高清在线观看| 亚洲人妖av一区二区| 久久久久久久久久久黄色| 欧美巨大另类极品videosbest| av成人免费在线| 国产一区二区成人久久免费影院| 亚洲大片精品永久免费| 日韩理论片在线| 中文一区一区三区高中清不卡| 精品粉嫩超白一线天av| 欧美精品色综合| 欧美日本韩国一区二区三区视频| 日本韩国视频一区二区| 99精品在线观看视频| 成人性生交大片免费看中文网站| 蜜臀久久久99精品久久久久久| 性欧美疯狂xxxxbbbb| 亚洲综合色在线| 中文字幕一区视频| 国产精品久久久久影院老司| 中文字幕成人网| 国产精品不卡视频| 亚洲免费在线看| 中文字幕一区二区三区蜜月| 国产精品美女久久久久aⅴ国产馆| 国产亚洲成aⅴ人片在线观看| 国产亚洲一区字幕| 欧美极品xxx| 亚洲欧洲www| 亚洲欧美成人一区二区三区| 一区二区三区蜜桃| 亚洲一区二区不卡免费| 亚瑟在线精品视频| 日本vs亚洲vs韩国一区三区二区 | 日韩成人免费电影| 蜜桃久久久久久| 国产一区二区三区最好精华液| 国产精品中文字幕日韩精品| 成人国产精品免费网站| 色av综合在线| 日韩午夜小视频| 久久精品免费在线观看| 国产精品乱码一区二三区小蝌蚪| 亚洲欧美日韩人成在线播放| 一区二区三区色| 日韩福利电影在线观看| 精品亚洲免费视频| www.综合网.com| 欧美精品一二三区| www激情久久| **欧美大码日韩| 日韩中文字幕区一区有砖一区| 九九视频精品免费| 不卡视频在线观看| 欧美理论在线播放| 欧美精品一区二区三区四区| 亚洲欧洲www| 乱中年女人伦av一区二区| 国产黄色精品网站| 欧美中文字幕一区二区三区亚洲 | 这里是久久伊人| 日本一区二区三区四区| 夜夜嗨av一区二区三区中文字幕| 日韩精品成人一区二区在线| av电影在线观看不卡| 日韩一区二区三区高清免费看看| 欧美国产日韩亚洲一区| 日韩一区欧美二区| 99久久99精品久久久久久| 欧美一级一区二区| 国产精品国产自产拍高清av| 麻豆91精品视频| 91精彩视频在线观看| 精品国产免费一区二区三区香蕉 | 欧美激情一区在线| 丝袜美腿高跟呻吟高潮一区| 国产99久久久久久免费看农村| 欧美日韩国产免费一区二区| 一色桃子久久精品亚洲| 韩国中文字幕2020精品| 欧美伊人精品成人久久综合97 | 色婷婷香蕉在线一区二区| 日韩欧美国产一区二区在线播放| 中文字幕字幕中文在线中不卡视频| 精品亚洲成a人在线观看| 欧美三级中文字幕| 亚洲视频1区2区| 成人丝袜18视频在线观看| 欧美成人a∨高清免费观看| 玉米视频成人免费看| 不卡av免费在线观看| 久久精品在线免费观看| 韩国一区二区三区| 日韩欧美电影一二三| 视频一区二区不卡| 欧美日韩视频一区二区| 亚洲一区免费在线观看| 91福利在线播放| 亚洲欧美一区二区三区极速播放| 国产91精品久久久久久久网曝门| 26uuu精品一区二区三区四区在线| 天使萌一区二区三区免费观看| 欧美日韩精品一区二区三区四区 | 91精品啪在线观看国产60岁| 亚洲自拍偷拍综合| 欧美亚洲愉拍一区二区| 一区av在线播放| 欧美精品vⅰdeose4hd| 日韩成人av影视| 日韩精品中文字幕在线不卡尤物| 久久丁香综合五月国产三级网站| 日韩美女主播在线视频一区二区三区|