久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
51單片機OLCD12864顯示文字的程序
[打印本頁]
作者:
一電一充
時間:
2022-4-25 21:28
標題:
51單片機OLCD12864顯示文字的程序
)7HG1`PAQ]U13JZ3ETZUJ1C.png
(83.07 KB, 下載次數: 54)
下載附件
2022-4-25 21:28 上傳
#include "oled.h"
#include "oledfont.h"
// OLED的I2C接口定義
sbit OLED_SCL = P2^1; //時鐘SCL
sbit OLED_SDIN = P2^0; //數據SDA
/**********************************************
//IIC Start
**********************************************/
void IIC_Start()
{
OLED_SCLK_Set();
OLED_SDIN_Set();
OLED_SDIN_Clr();
OLED_SCLK_Clr();
}
/**********************************************
//IIC Stop
**********************************************/
void IIC_Stop()
{
OLED_SCLK_Set();
// OLED_SCLK_Clr();
OLED_SDIN_Clr();
OLED_SDIN_Set();
}
void IIC_Wait_Ack()
{
//GPIOB->CRH &= 0XFFF0FFFF; //設置PB12為上拉輸入模式
//GPIOB->CRH |= 0x00080000;
// OLED_SDA = 1;
// delay_us(1);
//OLED_SCL = 1;
//delay_us(50000);
/* while(1)
{
if(!OLED_SDA) //判斷是否接收到OLED 應答信號
{
//GPIOB->CRH &= 0XFFF0FFFF; //設置PB12為通用推免輸出模式
//GPIOB->CRH |= 0x00030000;
return;
}
}
*/
OLED_SCLK_Set() ;
OLED_SCLK_Clr();
}
/**********************************************
// IIC Write byte
**********************************************/
void Write_IIC_Byte(unsigned char IIC_Byte)
{
unsigned char i;
unsigned char m,da;
da=IIC_Byte;
OLED_SCLK_Clr();
for(i=0;i<8;i++)
{
m=da;
// OLED_SCLK_Clr();
m=m&0x80;
if(m==0x80)
{OLED_SDIN_Set();}
else OLED_SDIN_Clr();
da=da<<1;
OLED_SCLK_Set();
OLED_SCLK_Clr();
}
}
/**********************************************
// IIC Write Command
**********************************************/
void Write_IIC_Command(unsigned char IIC_Command)
{
IIC_Start();
Write_IIC_Byte(0x78); //Slave address,SA0=0
IIC_Wait_Ack();
Write_IIC_Byte(0x00); //write command
IIC_Wait_Ack();
Write_IIC_Byte(IIC_Command);
IIC_Wait_Ack();
IIC_Stop();
}
/**********************************************
// IIC Write Data
**********************************************/
void Write_IIC_Data(unsigned char IIC_Data)
{
IIC_Start();
Write_IIC_Byte(0x78); //D/C#=0; R/W#=0
IIC_Wait_Ack();
Write_IIC_Byte(0x40); //write data
IIC_Wait_Ack();
Write_IIC_Byte(IIC_Data);
IIC_Wait_Ack();
IIC_Stop();
}
void OLED_WR_Byte(unsigned dat,unsigned cmd)
{
if(cmd)
{
Write_IIC_Data(dat);
}
else {
Write_IIC_Command(dat);
}
}
//坐標設置
void OLED_Set_Pos(unsigned char x, unsigned char y)
{
OLED_WR_Byte(0xb0+y, OLED_CMD);
OLED_WR_Byte(((x&0xf0)>>4)|0x10, OLED_CMD);
OLED_WR_Byte((x&0x0f), OLED_CMD);
}
//開啟OLED顯示
void OLED_Display_On(void)
{
OLED_WR_Byte(0X8D,OLED_CMD); //SET DCDC命令
OLED_WR_Byte(0X14,OLED_CMD); //DCDC ON
OLED_WR_Byte(0XAF,OLED_CMD); //DISPLAY ON
}
//關閉OLED顯示
void OLED_Display_Off(void)
{
OLED_WR_Byte(0X8D,OLED_CMD); //SET DCDC命令
OLED_WR_Byte(0X10,OLED_CMD); //DCDC OFF
OLED_WR_Byte(0XAE,OLED_CMD); //DISPLAY OFF
}
//清屏函數,清完屏,整個屏幕是黑色的!和沒點亮一樣!!!
void OLED_Clear(void)
{
u8 i,n;
for(i=0;i<8;i++)
{
OLED_WR_Byte (0xb0+i,OLED_CMD); //設置頁地址(0~7)
OLED_WR_Byte (0x00,OLED_CMD); //設置顯示位置—列低地址
OLED_WR_Byte (0x10,OLED_CMD); //設置顯示位置—列高地址
for(n=0;n<128;n++)
OLED_WR_Byte(0,OLED_DATA);
} //更新顯示
}
void OLED_On(void)
{
u8 i,n;
for(i=0;i<8;i++)
{
OLED_WR_Byte (0xb0+i,OLED_CMD); //設置頁地址(0~7)
OLED_WR_Byte (0x00,OLED_CMD); //設置顯示位置—列低地址
OLED_WR_Byte (0x10,OLED_CMD); //設置顯示位置—列高地址
for(n=0;n<128;n++)
OLED_WR_Byte(0x00, OLED_DATA);
} //更新顯示
}
//在指定位置顯示一個字符,包括部分字符
//x:0~127
//y:0~63
//mode:0,反白顯示;1,正常顯示
//size:選擇字體 16/12
void OLED_ShowChar(u8 x,u8 y,u8 chr,u8 Char_Size)
{
unsigned char c = 0, i = 0;
c = chr - ' '; //得到偏移后的值
if (x > Max_Column-1)
{
x = 0;
y = y + 2;
}
if (Char_Size == 16)
{
OLED_Set_Pos(x, y);
for(i=0; i<8; i++)
OLED_WR_Byte(F8X16[c*16+i], OLED_DATA);
OLED_Set_Pos(x, y + 1);
for(i=0; i<8; i++)
OLED_WR_Byte(F8X16[c*16+i+8], OLED_DATA);
}
else
{
OLED_Set_Pos(x, y);
for(i=0; i<6; i++)
OLED_WR_Byte(F6x8[c][i], OLED_DATA);
}
}
//顯示一個字符號串
void OLED_ShowString(u8 x,u8 y,u8 *chr,u8 Char_Size)
{
unsigned char j=0;
while (chr[j]!='\0')
{ OLED_ShowChar(x,y,chr[j],Char_Size);
x+=8;
if(x>120){x=0;y+=2;}
j++;
}
}
//顯示漢字
void OLED_ShowCHinese(u8 x, u8 y, u8 no)
{
u8 t, adder = 0;
OLED_Set_Pos(x, y);
for(t=0;t<16;t++)
{
OLED_WR_Byte(Hzk[no][t], OLED_DATA);
adder += 1;
}
OLED_Set_Pos(x, y+1);
for(t=0; t<16; t++)
{
OLED_WR_Byte(Hzk[no][t+16], OLED_DATA);
adder += 1;
}
}
/***********功能描述:顯示顯示BMP圖片128×64起始點坐標(x,y),x的范圍0~127,y為頁的范圍0~7*****************/
void OLED_DrawBMP(u8 x0, u8 y0, u8 x1, u8 y1, u8 BMP[])
{
unsigned int j = 0;
unsigned char x, y;
for (y=y0; y<y1; y++)
{
OLED_Set_Pos(x0, y);
for (x=x0; x<x1; x++)
{
OLED_WR_Byte(BMP[j++], OLED_DATA);
}
}
}
//初始化SSD1306
void OLED_Init(void)
{
OLED_WR_Byte(0xAE,OLED_CMD);//--display off
OLED_WR_Byte(0x00,OLED_CMD);//---set low column address
OLED_WR_Byte(0x10,OLED_CMD);//---set high column address
OLED_WR_Byte(0x40,OLED_CMD);//--set start line address
OLED_WR_Byte(0xB0,OLED_CMD);//--set page address
OLED_WR_Byte(0x81,OLED_CMD); // contract control
OLED_WR_Byte(0xFF,OLED_CMD);//--128
OLED_WR_Byte(0xA1,OLED_CMD);//set segment remap
OLED_WR_Byte(0xA6,OLED_CMD);//--normal / reverse
OLED_WR_Byte(0xA8,OLED_CMD);//--set multiplex ratio(1 to 64)
OLED_WR_Byte(0x3F,OLED_CMD);//--1/32 duty
OLED_WR_Byte(0xC8,OLED_CMD);//Com scan direction
OLED_WR_Byte(0xD3,OLED_CMD);//-set display offset
OLED_WR_Byte(0x00,OLED_CMD);//
OLED_WR_Byte(0xD5,OLED_CMD);//set osc division
OLED_WR_Byte(0x80,OLED_CMD);//
OLED_WR_Byte(0xD8,OLED_CMD);//set area color mode off
OLED_WR_Byte(0x05,OLED_CMD);//
OLED_WR_Byte(0xD9,OLED_CMD);//Set Pre-Charge Period
OLED_WR_Byte(0xF1,OLED_CMD);//
OLED_WR_Byte(0xDA,OLED_CMD);//set com pin configuartion
OLED_WR_Byte(0x12,OLED_CMD);//
OLED_WR_Byte(0xDB,OLED_CMD);//set Vcomh
OLED_WR_Byte(0x30,OLED_CMD);//
OLED_WR_Byte(0x8D,OLED_CMD);//set charge pump enable
OLED_WR_Byte(0x14,OLED_CMD);//
OLED_WR_Byte(0xAF,OLED_CMD);//--turn on oled panel
}
復制代碼
Keil代碼下載:
51單片機OLCD12864顯示文字.rar
(45.17 KB, 下載次數: 27)
2022-4-25 21:28 上傳
點擊文件名下載附件
51單片機OLCD12864顯示文字
下載積分: 黑幣 -5
作者:
bhjyqjs
時間:
2022-4-26 09:10
羊頭不是羊頭,狗肉不是狗肉,咋又冒出一個LCD1602?
作者:
sy10141
時間:
2022-4-27 15:06
51論壇是個好網站,可以下載好多東西,學到了好多
作者:
gongnn
時間:
2022-4-27 17:32
標題是128*64,原理圖是1602,程序是IIC的OLED的。搞什么!
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
99久久99
|
91精品久久久久久久久中文字幕
|
99久久精品视频免费
|
日韩精品一区二区三区免费观看
|
国产精品片aa在线观看
|
欧美另类视频在线
|
欧美日韩综合视频
|
国产精品毛片无码
|
6996成人影院网在线播放
|
欧美一区免费
|
黄色毛片一级
|
日韩欧美精品
|
日韩一区二区三区在线视频
|
亚洲成人综合网站
|
亚洲高清成人
|
99精品亚洲国产精品久久不卡
|
亚洲一区二区三区免费观看
|
久久久免费毛片
|
美女国内精品自产拍在线播放
|
a级在线免费
|
新疆少妇videos高潮
|
玖玖综合网
|
成人在线一区二区三区
|
91视频88av
|
中文字幕二区三区
|
www.婷婷
|
成人午夜免费在线视频
|
一级做a爰片性色毛片视频停止
|
亚洲欧洲在线视频
|
91精品国模一区二区三区
|
在线观看黄色电影
|
久久久激情视频
|
国产成人精品午夜
|
国产综合第一页
|
干干干操操操
|
狠狠躁天天躁夜夜躁婷婷老牛影视
|
亚洲网站在线观看
|
国产免费看
|
国产高清免费
|
久久av网站
|
亚洲手机视频在线
|