|
關(guān)于SSD1306基礎(chǔ)example 以及調(diào)色設(shè)置。
望采納~
0.png (41.36 KB, 下載次數(shù): 42)
下載附件
2017-10-21 23:14 上傳
所有資料51hei提供下載:
0.96-IIC參考.rar
(2.33 MB, 下載次數(shù): 99)
2017-10-21 15:36 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
單片機(jī)源程序如下:
- //=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- #include <at89x51.h>
- //#include <reg52.h>
- #include <intrins.h>
- #define Uchar unsigned char
- #define Uint unsigned int
- #define Ulong unsigned long
- #define uchar unsigned char
- #define uint unsigned int
- //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- // Pin Definition
- //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- //0.66bule
- #define RES3 P3_0 // Reset
- #define SCL3 P3_1 // Serial Clock Input
- #define SDA3 P3_2 // Serial Data Input
- code color13[]={
- /*------------------------------------------------------------------------------
- ; 源文件 / 文字 : C:\Documents and Settings\Administrator\桌面\新建文件夾 (2)\logo.bmp字模
- ; 寬×高(像素): 128×64
- ------------------------------------------------------------------------------*/
- //0x80,0x40,0x10,//寬的像素?cái)?shù),高的像素?cái)?shù),寬的字節(jié)數(shù),參數(shù)設(shè)置可選
- 0xFF,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
- …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
- 0x00,0x3F,0x10,0x20,0x20,0x20,0x10,0x0F,0x00,0x00,0x0F,0x10,0x20,0x20,0x20,0x11,
- 0x08,0x00,0x00,0x20,0x38,0x27,0x02,0x02,0x02,0x27,0x38,0x20,0x00,0x00,0x20,0x3F,
- 0x20,0x20,0x20,0x20,0x10,0x0F,0x00,0x00,0x07,0x18,0x20,0x20,0x20,0x20,0x10,0x0C,
- };
- //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- void delay_ms(Uint t)
- {
- Uchar i,j;
- while(--t)
- {
- i=50;
- j=100;
- while(--j)
- while(--i);
- }
- }
- void uDelay(Uchar l)
- {
- while(l--);
- }
- void Delay(Uchar n)
- {
- Uchar i,j,k;
- for(k=0;k<n;k++)
- {
- for(i=0;i<131;i++)
- {
- for(j=0;j<15;j++)
- {
- uDelay(203);
- }
- }
- }
- }
- //****************************************************************************
- //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- // Read/Write Sequence
- //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- void I2C_3(Uchar mcmd)
- {
- Uchar length = 8; // Send Command
- while(length--)
- {
- if(mcmd & 0x80)
- {
- SDA3=1;
- }
- else
- {
- SDA3=0;
- }
- // uDelay(3);
- SCL3=1;
- // uDelay(3);
- SCL3=0;
- // uDelay(3);
- mcmd = mcmd << 1;
- }
- }
- void I2C_Ack3()
- {
- SDA3=1;
- // uDelay(3);
- SCL3=1;
- // uDelay(3);
- SCL3=0;
- // uDelay(3);
- }
- void I2C_NAck3()
- {
- SDA3=0;
- // uDelay(3);
- SCL3=1;
- // uDelay(3);
- SCL3=0;
- // uDelay(3);
- }
- void I2C_Start3()
- {
- SDA3=0;
- // uDelay(3);
- SCL3=1;
- // uDelay(3);
- SCL3=0;
- // uDelay(3);
- I2C_3(0x78);
- I2C_Ack3();
- }
- void I2C_Stop3()
- {
- SCL3=1;
- // uDelay(5);
- SDA3=0;
- // uDelay(5);
- SDA3=1;
- // uDelay(5);
- }
- void Write_Command3(Uchar Data)
- {
- I2C_Start3();
- I2C_3(0x00);
- I2C_Ack3();
- I2C_3(Data);
- I2C_Ack3();
- I2C_Stop3();
- }
- void Write_Data3(Uchar Data)
- {
- I2C_Start3();
- I2C_3(0x40);
- I2C_Ack3();
- I2C_3(Data);
- I2C_Ack3();
- I2C_Stop3();
- }
- //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- void LCD_Init3(void)
- {
- RES3=0;
- //uDelay(2);
- RES3=1;
- //internal setting
- Write_Command3(0xae); //--turn off oled panel
- Write_Command3(0x00); //--set low column address
- Write_Command3(0x10); //--set high column address
- Write_Command3(0x40); //--set start line address
- Write_Command3(0xb0); //--set page address
- Write_Command3(0x81); //--set contrast control register
- Write_Command3(0xff);
- Write_Command3(0xa1); //--set segment re-map 127 to 0 a0:0 to seg127
- Write_Command3(0xa6); //--set normal display
- Write_Command3(0xc9); //--set com(N-1)to com0 c0:com0 to com(N-1)
- Write_Command3(0xa8); //--set multiples ratio(1to64)
- Write_Command3(0x3f); //--1/64 duty
- Write_Command3(0xd3); //--set display offset
- Write_Command3(0x00); //--not offset
- Write_Command3(0xd5); //--set display clock divide ratio/oscillator frequency
- Write_Command3(0x80); //--set divide ratio
- Write_Command3(0xd9); //--set pre-charge period
- Write_Command3(0xf1);
- Write_Command3(0xda); //--set com pins hardware configuration
- Write_Command3(0x12);
- Write_Command3(0xdb); //--set vcomh
- Write_Command3(0x40);
- Write_Command3(0x8d); //--set chare pump enable/disable
- Write_Command3(0x14); //--set(0x10) disable
- //Write_Command3(0x10); //--set(0x10) disable
- Write_Command3(0xaf); //--turn on oled panel
- //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=void LCD_Init(void)
- }
- //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- void pic13(void)
- {
- Uchar i,j;
- Uint k;
- k=0;
- for(j=0;j<8;j++)
- {
- Write_Command3(0x22);//--set page1
- Write_Command3(j);//--set start page
- Write_Command3(0x07);//--set end page
- for(i=0;i<128;i++) //顯示單色數(shù)據(jù)到LCD
- {
- Write_Data3(color13[k]);
- k=k+1;
-
- }
- }
- }
- void pic14(void)
- {
- Uchar i,j;
- Uint k;
- k=0;
- for(j=0;j<8;j++)
- {
- Write_Command3(0x22);//--set page1
- Write_Command3(j);//--set start page
- Write_Command3(0x07);//--set end page
- for(i=0;i<128;i++) //顯示單色數(shù)據(jù)到LCD
- {
- Write_Data3(color14[k]);
- k=k+1;
-
- }
- }
- }
-
- //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- void main()
- {
- LCD_Init3();
- while(1)
- {
- pic13();
- delay_ms(10);
- pic14();
- delay_ms(10);
- }
- }
復(fù)制代碼
|
|