我有8080的例子,谁会改 - /**********************************************************************************************
- Project Code : LM096-128064
- Dot Matrix : 128X64
- Driver IC : SSD1306Z
- Interface : 8080
- MCU : AT89C52
- Revision : A
- Date : 2011/9/18
- Editor : Frank chen
- Copyright (c) : Li Yuan Electronics Co.,Ltd.
- Contact us : Tel: +86 755 26523608 Email: [email protected]
- **********************************************************************************************/
- #include "reg52.h"
- #define high 1
- #define low 0
- #define DBL P0
- /*************Pin Define***************/
- sbit R_D=P1^2;
- sbit W_R=P1^3;
- sbit DC=P1^4;
- sbit CS=P1^5;
- sbit RES=P1^6;
- /****************************************************/
- void Initial_LY096BG30();
- void Delay_50ms(unsigned int Del_50ms);
- void Delay_1ms(unsigned int Del_1ms);
- void Write_Command(unsigned char IIC_Command);
- void Write_Data(unsigned char IIC_Data);
- void fill_picture(unsigned char fill_Data);
- void Picture_1();
- /***********************Initial code*********************/
- void Initial_LY096BG30()
- {
- Write_Command(0xAE); //display off
- Write_Command(0x20); //Set Memory Addressing Mode
- Write_Command(0x10); //00,Horizontal Addressing Mode;01,Vertical Addressing Mode;10,Page Addressing Mode (RESET);11,Invalid
- Write_Command(0xb0); //Set Page Start Address for Page Addressing Mode,0-7
- Write_Command(0xc8); //Set COM Output Scan Direction
- Write_Command(0x00);//---set low column address
- Write_Command(0x10);//---set high column address
- Write_Command(0x40);//--set start line address
- Write_Command(0x81);//--set contrast control register
- Write_Command(0x7f);
- Write_Command(0xa1);//--set segment re-map 0 to 127
- Write_Command(0xa6);//--set normal display
- Write_Command(0xa8);//--set multiplex ratio(1 to 64)
- Write_Command(0x3F);//
- Write_Command(0xa4);//0xa4,Output follows RAM content;0xa5,Output ignores RAM content
- Write_Command(0xd3);//-set display offset
- Write_Command(0x00);//-not offset
- Write_Command(0xd5);//--set display clock divide ratio/oscillator frequency
- Write_Command(0xf0);//--set divide ratio
- Write_Command(0xd9);//--set pre-charge period
- Write_Command(0x22); //
- Write_Command(0xda);//--set com pins hardware configuration
- Write_Command(0x12);
- Write_Command(0xdb);//--set vcomh
- Write_Command(0x20);//0x20,0.77xVcc
- Write_Command(0x8d);//--set DC-DC enable
- Write_Command(0x14);//
- Write_Command(0xaf);//--turn on oled panel
- }
- /***********************Picture Code**************************/
- unsigned char code show1[]=
- {
- 0x00,0x00,0x00,0x00,0x00,0x01,0x01,0xFF,0x01,0x01,0x00,0x00,0x00,0x00,0x20,0xF1,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x07,0x19,0xE0,0x10,0x0D,0x03,0x01,0x01,
- 0x10,0xF0,0x00,0x00,0x10,0xF0,0x00,0x00,0x20,0x90,0x90,0x50,0xE0,0x00,0x20,0xF0,
- 0x20,0x10,0x10,0xE0,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0xFF,0x21,0x21,0x21,0x71,
- 0x03,0x00,0x02,0xFF,0x00,0x00,0xE0,0x50,0x50,0x50,0x60,0x00,0x00,0xE0,0x10,0x10,
- 0x10,0x20,0x00,0x10,0xFC,0x10,0x10,0x20,0xF0,0x20,0x10,0x10,0x00,0xC0,0x20,0x10,
- 0x10,0x20,0xC0,0x00,0x20,0xF0,0x20,0x10,0x10,0xE0,0x00,0x20,0xF1,0x00,0x00,0xE0,
- 0x10,0x10,0x10,0x20,0x00,0x00,0x60,0x90,0x90,0x30,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x04,0x04,0x07,0x04,0x04,0x04,0x04,0x06,0x01,0x04,0x07,
- 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x04,0x07,0x04,0x04,0x00,0x00,0x00,
- 0x00,0x03,0x04,0x04,0x02,0x07,0x02,0x00,0x07,0x04,0x04,0x02,0x07,0x04,0x04,0x07,
- 0x04,0x00,0x04,0x07,0x04,0x00,0x00,0x00,0x00,0x04,0x04,0x07,0x04,0x04,0x04,0x04,
- 0x06,0x01,0x04,0x07,0x04,0x00,0x03,0x04,0x04,0x04,0x02,0x00,0x00,0x03,0x04,0x04,
- 0x04,0x02,0x00,0x00,0x07,0x04,0x02,0x04,0x07,0x04,0x00,0x00,0x00,0x01,0x02,0x04,
- 0x04,0x02,0x01,0x00,0x04,0x07,0x04,0x00,0x04,0x07,0x04,0x04,0x07,0x04,0x00,0x03,
- 0x04,0x04,0x04,0x02,0x00,0x00,0x06,0x04,0x04,0x03,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,
- 0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x80,0x80,0x80,0x00,0x00,
- 0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x7F,0x80,0x80,0x80,0x7F,0x00,0x00,0x80,0x00,0x8F,0x90,0x50,0x30,
- 0x1F,0x00,0x7C,0x8A,0x85,0x84,0x78,0x00,0x88,0xFC,0x80,0x88,0xFC,0x88,0x04,0x84,
- 0xF8,0x80,0x00,0x78,0x84,0x84,0x4C,0x00,0x81,0xFF,0x88,0x04,0x84,0xF8,0x80,0x00,
- 0x00,0x00,0x3E,0x41,0x80,0x80,0x80,0x80,0x41,0x3E,0x00,0x80,0xFF,0x80,0x80,0x80,
- 0x80,0x40,0x80,0xFF,0x88,0x88,0x9C,0x81,0x40,0x80,0xFF,0x80,0x80,0x80,0x80,0x41,
- 0x3E,0x00,0x00,0x00,0x00,0x80,0xFF,0x81,0x0E,0x70,0x80,0x70,0x0E,0x81,0xFF,0x80,
- 0x00,0x00,0x78,0x84,0x84,0x84,0x78,0x00,0x00,0x78,0x84,0x84,0x49,0xFF,0x40,0x04,
- 0x7C,0x80,0x80,0x44,0xFC,0x40,0x81,0xFF,0x80,0x00,0x78,0x94,0x94,0x58,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x40,0x40,0x40,0x80,0xC0,0x00,
- 0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x80,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0xC0,0x40,
- 0x40,0x40,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x80,0x40,0x40,0x40,0x80,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x71,0x22,0x42,0x44,0x44,0x39,0x00,
- 0x44,0x7E,0x40,0x44,0x7E,0x44,0x02,0x42,0x7C,0x40,0x00,0xEC,0x52,0x52,0x52,0x4E,
- 0x82,0x40,0x7F,0x40,0x00,0x3C,0x4A,0x4A,0x2C,0x00,0x00,0x00,0x00,0x40,0x7F,0x44,
- 0x04,0x04,0x03,0x00,0x00,0x3C,0x42,0x42,0x42,0x3C,0x00,0x02,0x1E,0x60,0x12,0x1E,
- 0x62,0x18,0x06,0x02,0x00,0x3C,0x4A,0x4A,0x2C,0x00,0x44,0x7E,0x44,0x02,0x00,0x00,
- 0x00,0x71,0x22,0x42,0x44,0x44,0x39,0x00,0x02,0x3E,0x40,0x40,0x22,0x7E,0x20,0x04,
- 0xFE,0x24,0x42,0x42,0x3C,0x00,0x04,0xFE,0x24,0x42,0x42,0x3C,0x00,0x40,0x7F,0x40,
- 0x02,0x0E,0x32,0xC0,0x3A,0x06,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x80,0x40,0x40,0x40,0x80,0x00,0x80,0x40,0x40,0x40,0x80,0x00,0x80,0x40,
- 0x40,0x40,0x80,0x00,0x80,0x40,0x40,0x40,0x80,0x00,0x00,0x01,0x02,0xC2,0x22,0x02,
- 0x81,0x40,0x40,0xC0,0x00,0x00,0x80,0x40,0x40,0x40,0x80,0x00,0x80,0x40,0x40,0x40,
- 0x80,0x00,0x80,0x40,0x40,0x40,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x40,
- 0xC0,0x40,0x40,0x00,0x80,0x40,0x40,0x40,0x80,0x00,0x80,0x40,0x40,0x40,0xC0,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x40,0x40,0x40,0x80,0x00,0x00,0x00,0x00,0xC2,
- 0x23,0x02,0x00,0x00,0x80,0xC0,0x02,0x03,0x02,0x00,0x00,0x00,0x00,0x00,0x80,0x40,
- 0x42,0x42,0xC3,0x00,0x40,0xC0,0x40,0x40,0x80,0x00,0x40,0x40,0xC0,0x40,0x40,0x00,
- 0x00,0x00,0x1D,0x22,0x22,0x22,0x1D,0x00,0x1F,0x20,0x20,0x20,0x1F,0x00,0x1D,0x22,
- 0x22,0x22,0x1D,0x00,0x1F,0x20,0x20,0x20,0x1F,0x00,0x40,0x38,0x06,0x01,0x00,0x00,
- 0x1F,0x22,0x22,0x22,0x1C,0x00,0x1D,0x22,0x22,0x22,0x1D,0x00,0x1F,0x20,0x20,0x20,
- 0x1F,0x00,0x1F,0x20,0x20,0x20,0x1F,0x00,0x80,0x60,0x00,0x00,0x00,0x00,0x20,0x20,
- 0x3F,0x20,0x20,0x00,0x31,0x28,0x24,0x22,0x21,0x00,0x1F,0x20,0x20,0x20,0x10,0x00,
- 0x80,0x60,0x00,0x00,0x00,0x00,0x10,0x20,0x22,0x22,0x1D,0x00,0x40,0x38,0x06,0x01,
- 0x00,0x00,0x04,0x0B,0x08,0x3F,0x28,0x00,0x02,0x02,0x02,0x02,0x02,0x00,0x31,0x22,
- 0x22,0x24,0x18,0x00,0x20,0x3F,0x22,0x02,0x01,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,
- };
- /**********************************************
- // Write Command
- **********************************************/
- void Write_Command(unsigned char RegisterName)
- {
- R_D=1;
- CS=0;
- DC=0;
- DBL=RegisterName;
- W_R=0;
- W_R=1;
- CS=1;
- R_D=0;
- }
- /**********************************************
- // Write Data
- **********************************************/
- void Write_Data(unsigned char RegisterValue)
- {
- R_D=1;
- CS=0;
- DC=1;
- DBL=RegisterValue;
- W_R=0;
- W_R=1;
- CS=1;
- R_D=0;
- }
- /********************************************
- // fill_Picture
- ********************************************/
- void fill_picture(unsigned char fill_Data)
- {
- unsigned char m,n;
- for(m=0;m<8;m++)
- {
- Write_Command(0xb0+m); //page0-page1
- Write_Command(0x00); //low column start address
- Write_Command(0x10); //high column start address
- for(n=0;n<128;n++)
- {
- Write_Data(fill_Data);
- }
- }
- }
- /******************************************
- // picture
- ******************************************/
- void picture_1()
- {
- unsigned char x,y;
- unsigned int i=0;
- for(y=0;y<8;y++)
- {
- Write_Command(0xb0+y);
- Write_Command(0x00);
- Write_Command(0x10);
- for(x=0;x<128;x++)
- {
- Write_Data(show1[i++]);
- }
- }
- }
- /***********************Delay****************************************/
- void Delay_50ms(unsigned int Del_50ms) //delay50ms
- {
- unsigned int m;
- for(;Del_50ms>0;Del_50ms--)
- for(m=6245;m>0;m--);
- }
- void Delay_1ms(unsigned int Del_1ms) //delay1ms
- {
- unsigned char j;
- while(Del_1ms--)
- {
- for(j=0;j<123;j++);
- }
- }
- /*******************************Main*******************************/
- void main(void)
- {
- RES=0;
- Delay_1ms(10);
- RES=1;
- Delay_1ms(10);
- Initial_LY096BG30();
- Delay_1ms(5);
- R_D=1;
- while(1)
- {
- fill_picture(0xff); Delay_50ms(40);
- fill_picture(0xf0); Delay_50ms(40);
- Picture_1(); Delay_50ms(100);
- }
- }
复制代码 |