91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

zynq使用的OLED(芯片SSD1306)驅(qū)動程序,包括oled.c oled.h及font.h

資源截圖

代碼片段和文件信息

/*
?*?oled.c
?*
?*??Created?on:?2012-12-16
?*??????Author:?Administrator
?*/

#include?“oled.h“
#include?“stdlib.h“
#include?“font.h“

//SSD1306?OLED?驅(qū)動IC驅(qū)動代碼
//4線串口
//版本:V1.1
//cuter
//2012-12-16

//OLED的顯存
//存放格式如下.
//[0]0?1?2?3?...?127
//[1]0?1?2?3?...?127
//[2]0?1?2?3?...?127
//[3]0?1?2?3?...?127
//[4]0?1?2?3?...?127
//[5]0?1?2?3?...?127
//[6]0?1?2?3?...?127
//[7]0?1?2?3?...?127
u8?OLED_GRAM[128][8];

//更新顯存到LCD
void?OLED_Refresh_Gram(void)
{
u8?in;
for(i=0;i<8;i++)
{
write_cmd?(0xb0+i);????//設(shè)置頁地址(0~7)
write_cmd?(0x02);??????//設(shè)置顯示位置—列低地址偏移了2列
write_cmd?(0x10);??????//設(shè)置顯示位置—列高地址
for(n=0;n<128;n++)write_data(OLED_GRAM[n][i]);
}
}



//向SSD1306寫入一個字節(jié)的命令。
void?write_cmd(u8?data)
{
u8?i;
Clr_OLED_DC;

for(i=0;i<8;i++)
{
Clr_OLED_SCLK;

if(data&0x80)
Set_OLED_SDIN;
else
Clr_OLED_SDIN;
Set_OLED_SCLK;
data<<=1;
}

}

//向SSD1306寫入一個字節(jié)的數(shù)據(jù)。
void?write_data(u8?data)
{
u8?i;
Set_OLED_DC;

for(i=0;i<8;i++)
{
Clr_OLED_SCLK;

if(data&0x80)
Set_OLED_SDIN;
else
Clr_OLED_SDIN;
Set_OLED_SCLK;
data<<=1;
}

}

//開啟OLED顯示
void?OLED_Display_On(void)
{
write_cmd(0X8D);??//SET?DCDC命令
write_cmd(0X14);??//DCDC?ON
write_cmd(0XAF);??//DISPLAY?ON
}
//關(guān)閉OLED顯示
void?OLED_Display_Off(void)
{
write_cmd(0X8D);??//SET?DCDC命令
write_cmd(0X10);??//DCDC?OFF
write_cmd(0XAE);??//DISPLAY?OFF
Set_OLED_VDD;
Set_OLED_VBAT;
}
//清屏函數(shù)清完屏整個屏幕是黑色的!和沒點(diǎn)亮一樣!!!
void?OLED_Clear(void)
{
u8?in;
for(i=0;i<8;i++)
for(n=0;n<128;n++)
OLED_GRAM[n][i]=0X00;
OLED_Refresh_Gram();//更新顯示
}

//畫點(diǎn)
//x:0~127
//y:0~63
//t:1?填充?0清空
void?OLED_DrawPoint(u8?xu8?yu8?t)
{
u8?posbxtemp=0;

if(x>127||y>63)
return;//超出范圍了.
pos=7-y/8;
bx=y%8;
temp=1<<(7-bx);

if(t)
OLED_GRAM[x][pos]|=temp;
else
OLED_GRAM[x][pos]&=~temp;
}

//x1y1x2y2?填充區(qū)域的對角坐標(biāo)
//確保x1<=x2;y1<=y2?0<=x1<=127?0<=y1<=63
//dot:0清空;1填充
void?OLED_Fill(u8?x1u8?y1u8?x2u8?y2u8?dot)
{
u8?xy;
for(x=x1;x<=x2;x++)
{
for(y=y1;y<=y2;y++)
OLED_DrawPoint(xydot);
}
OLED_Refresh_Gram();//更新顯示
}

//在指定位置顯示一個字符包括部分字符
//x:0~127
//y:0~63
//mode:0反白顯示;1正常顯示
//size:選擇字體?16/12
void?OLED_ShowChar(u8?xu8?yu8?chru8?sizeu8?mode)
{
u8?temptt1;
u8?y0=y;
chr=chr-‘?‘;//得到偏移后的值
for(t=0;t {
if(size==12)temp=asc2_1206[chr][t];??//調(diào)用1206字體
else?temp=asc2_1608[chr][t]; ?//調(diào)用1608字體
for(t1=0;t1<8;t1++)
{
if(temp&0x80)OLED_DrawPoint(xymode);
else?OLED_DrawPoint(xy!mode);
temp<<=1;
y++;
if((y-y0)==size)
{
y=y0;
x++;
break;
}
}
}
}

//m^n函數(shù)
u32?mypow(u8?mu8?n)
{
u32?result=1;
while(n--)result*=m;
return?result;
}

//顯示2個數(shù)字
//xy?:起點(diǎn)坐標(biāo)
//len?:數(shù)字的位數(shù)
//size:字體大小
//mode:模式 0填充模式;1疊加模式
//num:數(shù)值(0~4294967295);
void?OLED_ShowNum(u8?xu8?yu32?numu8?lenu8?size)
{
u8?ttemp;
u8?enshow=0;
for(t=0;t {
temp=(num/m

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件???????5548??2014-02-06?13:44??oled.c

?????文件???????2083??2014-02-06?13:37??oled.h

?????文件??????16244??2014-02-06?13:39??font.h

-----------?---------??----------?-----??----

????????????????23875????????????????????3


評論

共有 條評論