清達(dá)光電北京銷售處:
聯(lián)系人:劉小姐,李小姐,王小姐
Tel:010-62000662,62051209
Fax:010-82036512
Mobile:13701081790
Email:bjqingda@126.com
Web:www.tsingtek.com

聯(lián)系人:劉小姐,李小姐,王小姐
Tel:010-62000662,62051209
Fax:010-82036512
Mobile:13701081790
Email:bjqingda@126.com
Web:www.tsingtek.com
QQ:453189731
微信:13701081790
地址:北京市海淀區(qū)花園東路32號花園公寓A402室
新聞詳情
OLED模塊HCS2022的應(yīng)用2
日期:2025-04-21 09:33
瀏覽次數(shù):1549
摘要:
OLED模塊HCS2022的應(yīng)用2
接上一篇文章
四:OLED模塊HCS2022控制器介紹:
HCS2022采用US2066控制器 ,自帶西文字符集,指令碼有: 清屏,模式選擇,開關(guān)顯示,光標(biāo)顯示和移動,功能設(shè)定等等.......使用上類似普通字符液晶模塊。更多信息請來電13701081790 010-62000662 或者QQ咨詢 453189731。
五。OLED模塊HCS2022與8051單片機(jī)示例:

六,示例程序:
/******************************************* 延時子程序
*******************************************/
void delay(uint z) //z=1 延時1ms
{
uint x,y;
for(x=z;x>0;x--)
for(y=124;y>0;y--);
}
void delay_100us(uchar z)
{
z=z*16;
while(z--);
}
/*******************************************
寫入指令和數(shù)據(jù)
*******************************************/
void wait(void) // 忙等待;
{
RD1=0; _nop_();
CD=0; _nop_();
WR1=1; _nop_();
DATA=0xff; _nop_();
RD1=1; _nop_();
while(DATA&0x80); _nop_();
RD1=0; _nop_();_nop_();
}
void wr_data(uchar b) //寫數(shù)據(jù) ;
{
wait(); _nop_();
CD=1; _nop_();
WR1=0; _nop_();
DATA=b; _nop_();
RD1=1; _nop_();
RD1=0; _nop_();_nop_();
}
void wr_com(uchar com) //寫命令;
{
wait(); _nop_();
CD=0; _nop_();
WR1=0; _nop_();
DATA=com; _nop_();
RD1=1; _nop_(); RD1=0; _nop_();_nop_();
}
uchar rd_data(void) //讀數(shù)據(jù);
{
uchar temp;
wait(); _nop_();
CD=1; _nop_();
WR1=1; _nop_();
DATA=0xff; _nop_();
RD1=1; _nop_();
temp=DATA; _nop_();
RD1=0; _nop_();_nop_();
return temp;
}
/*******************************************
定位地址(一個地址對應(yīng)5*8字符和)
x--> 水平方向地址數(shù)(0~39) ;y--> 垂直方向字符數(shù)(0~1);
*******************************************/
void dot(uchar x,uchar y)
{
if(y) x|=0x40;
x|=0x80;
wr_com(x);
}
/*******************************************
全屏;
*******************************************/
void fill(uchar z)
{
uchar x,y ;
for(y=0;y<2;y++)
for(x=0;x<20;x++)
{
dot(x,y);
wr_data(z);
}
}
/*******************************************
清屏;
*******************************************/
void clear(void)
{
wr_com(0x01);delay(5);
}
/******************************************* 字符的輸入(5*8)
x--> 水平方向地址數(shù)(0~39) ;y--> 垂直方向字符數(shù)(0~1);s-->字符代碼首地址;
*******************************************/
void en_c_r(uchar x,uchar y,uchar code * s)
{
dot(x,y);
while(*s>0&&x<20)
{
wr_data(*s);
s++;
x++;
}
}
/*******************************************
初始化設(shè)置;
*******************************************/
void init(void)
{
delay(50);
// 設(shè)置電源模式;
wr_com(0x2a);
wr_com(0x71);
wr_data(0x00);
wr_com(0x28);
// 顯示開關(guān);
wr_com(0x08); /* 關(guān)顯示 */
// 設(shè)置Fosc和CDLK;
wr_com(0x2a);
wr_com(0x79);
wr_com(0xd5);
wr_com(0x70); /* Fosc=7 CDLK=1 */
wr_com(0x78);
wr_com(0x28);
// 設(shè)置顯示模式;
wr_com(0x2a);
wr_com(0x08); /* 字寬=5 1/2行顯示 */
wr_com(0x28);
// 設(shè)置地圖模式;
wr_com(0x2a);
wr_com(0x06);
/* BCD=1(C0-->C31) BDS=0(S99-->S0) (已規(guī)定,客戶不可自行修改) */
wr_com(0x28);
// 選擇內(nèi)部ROM和CGRAM;
wr_com(0x2a);
wr_com(0x72);
wr_data(0x00); /* ROM=A CGRAM=8 */
wr_com(0x28);
// 設(shè)置OLED特性;
wr_com(0x2a);
wr_com(0x79); /* 進(jìn)入OLED設(shè)置 */
wr_com(0xda);
wr_com(0x10);
/* SEG硬件結(jié)構(gòu) (已規(guī)定,客戶不可自行修改) */
wr_com(0xCD);
wr_com(0x00); /* 內(nèi)部VSL GPIO輸出無效 */
wr_com(0x81);
wr_com(0x7f);/* 共256級對比度,選一半 */
wr_com(0xd9);
wr_com(0xf1);/*P2=15CDLK P1=4CDLK */
wr_com(0xdb);
wr_com(0x30); /* Vcom=0.83Vcc */
wr_com(0x78);
wr_com(0x28); /* 退出OLED設(shè)置 */
//準(zhǔn)備開顯示;
wr_com(0x01); /* 清屏 */
wr_com(0x80); /* 設(shè)置DDRAM地址 */
wr_com(0x0c); /* 開顯示 */
}
接上一篇文章
四:OLED模塊HCS2022控制器介紹:
HCS2022采用US2066控制器 ,自帶西文字符集,指令碼有: 清屏,模式選擇,開關(guān)顯示,光標(biāo)顯示和移動,功能設(shè)定等等.......使用上類似普通字符液晶模塊。更多信息請來電13701081790 010-62000662 或者QQ咨詢 453189731。
五。OLED模塊HCS2022與8051單片機(jī)示例:

六,示例程序:
/******************************************* 延時子程序
*******************************************/
void delay(uint z) //z=1 延時1ms
{
uint x,y;
for(x=z;x>0;x--)
for(y=124;y>0;y--);
}
void delay_100us(uchar z)
{
z=z*16;
while(z--);
}
/*******************************************
寫入指令和數(shù)據(jù)
*******************************************/
void wait(void) // 忙等待;
{
RD1=0; _nop_();
CD=0; _nop_();
WR1=1; _nop_();
DATA=0xff; _nop_();
RD1=1; _nop_();
while(DATA&0x80); _nop_();
RD1=0; _nop_();_nop_();
}
void wr_data(uchar b) //寫數(shù)據(jù) ;
{
wait(); _nop_();
CD=1; _nop_();
WR1=0; _nop_();
DATA=b; _nop_();
RD1=1; _nop_();
RD1=0; _nop_();_nop_();
}
void wr_com(uchar com) //寫命令;
{
wait(); _nop_();
CD=0; _nop_();
WR1=0; _nop_();
DATA=com; _nop_();
RD1=1; _nop_(); RD1=0; _nop_();_nop_();
}
uchar rd_data(void) //讀數(shù)據(jù);
{
uchar temp;
wait(); _nop_();
CD=1; _nop_();
WR1=1; _nop_();
DATA=0xff; _nop_();
RD1=1; _nop_();
temp=DATA; _nop_();
RD1=0; _nop_();_nop_();
return temp;
}
/*******************************************
定位地址(一個地址對應(yīng)5*8字符和)
x--> 水平方向地址數(shù)(0~39) ;y--> 垂直方向字符數(shù)(0~1);
*******************************************/
void dot(uchar x,uchar y)
{
if(y) x|=0x40;
x|=0x80;
wr_com(x);
}
/*******************************************
全屏;
*******************************************/
void fill(uchar z)
{
uchar x,y ;
for(y=0;y<2;y++)
for(x=0;x<20;x++)
{
dot(x,y);
wr_data(z);
}
}
/*******************************************
清屏;
*******************************************/
void clear(void)
{
wr_com(0x01);delay(5);
}
/******************************************* 字符的輸入(5*8)
x--> 水平方向地址數(shù)(0~39) ;y--> 垂直方向字符數(shù)(0~1);s-->字符代碼首地址;
*******************************************/
void en_c_r(uchar x,uchar y,uchar code * s)
{
dot(x,y);
while(*s>0&&x<20)
{
wr_data(*s);
s++;
x++;
}
}
/*******************************************
初始化設(shè)置;
*******************************************/
void init(void)
{
delay(50);
// 設(shè)置電源模式;
wr_com(0x2a);
wr_com(0x71);
wr_data(0x00);
wr_com(0x28);
// 顯示開關(guān);
wr_com(0x08); /* 關(guān)顯示 */
// 設(shè)置Fosc和CDLK;
wr_com(0x2a);
wr_com(0x79);
wr_com(0xd5);
wr_com(0x70); /* Fosc=7 CDLK=1 */
wr_com(0x78);
wr_com(0x28);
// 設(shè)置顯示模式;
wr_com(0x2a);
wr_com(0x08); /* 字寬=5 1/2行顯示 */
wr_com(0x28);
// 設(shè)置地圖模式;
wr_com(0x2a);
wr_com(0x06);
/* BCD=1(C0-->C31) BDS=0(S99-->S0) (已規(guī)定,客戶不可自行修改) */
wr_com(0x28);
// 選擇內(nèi)部ROM和CGRAM;
wr_com(0x2a);
wr_com(0x72);
wr_data(0x00); /* ROM=A CGRAM=8 */
wr_com(0x28);
// 設(shè)置OLED特性;
wr_com(0x2a);
wr_com(0x79); /* 進(jìn)入OLED設(shè)置 */
wr_com(0xda);
wr_com(0x10);
/* SEG硬件結(jié)構(gòu) (已規(guī)定,客戶不可自行修改) */
wr_com(0xCD);
wr_com(0x00); /* 內(nèi)部VSL GPIO輸出無效 */
wr_com(0x81);
wr_com(0x7f);/* 共256級對比度,選一半 */
wr_com(0xd9);
wr_com(0xf1);/*P2=15CDLK P1=4CDLK */
wr_com(0xdb);
wr_com(0x30); /* Vcom=0.83Vcc */
wr_com(0x78);
wr_com(0x28); /* 退出OLED設(shè)置 */
//準(zhǔn)備開顯示;
wr_com(0x01); /* 清屏 */
wr_com(0x80); /* 設(shè)置DDRAM地址 */
wr_com(0x0c); /* 開顯示 */
}