📄 d12-colour 128160.c
字号:
#include <reg53.h> //#include <INTRINS.h> //#include "p1.h"#define uchar unsigned char#define uint unsigned int//--------------------------------------------------------------------//128160 OLED CONTROL PINS DEFINEsbit CS1 = P1^0;sbit GPO = P1^3;sbit DC = P1^2; sbit RES = P1^1;sbit F_led =P3^4;//End//-----------------------------------------------------------------------void delay(uint Len);void write_command(uchar command);void write_data(uchar datal,uchar datah);void write_data1(uchar datal);void read_data(uchar datal,uchar datah);void init_oled();void PORT_Init();void oled_test();void oled_test1();void led_test();void oled_display_pic();//End//-----------------------------------------------------------------------static char xdata point _at_ 0x9400;//End//-------------------------------------------------------------------------main(){ AUXR=0x01; AUXR1=0x00; PORT_Init();GPO=0;// delay(3000); for(;;) { init_oled();// F_led=0;// delay(1000); oled_display_pic(); led_test(); oled_test(); //for oled test //all screen// oled_test1(); //for oled test //1/3 screen// F_led=1; F_led=!F_led;// delay(1000); } while (1) { };}//---------------------------------------------------------------------------//functionvoid PORT_Init(){ P0=0xff; P1=0xff; P2=0xff; P3=0xff;}void delay(uint Len) //{ unsigned char i; while(Len--) { for(i=0;i<150;i++) { _nop_(); //查源 } }}void write_command(uchar command){ DC=0; point=command;// DC=1;}void write_data(uchar datal,uchar datah){ DC=1; point=datal; _nop_(); point=datah;}void write_data1(uchar datal){ DC=1; point=datal;}void read_data(uchar datal,uchar datah){ DC=1; datal=point; datah=point; }void init_oled(){ CS1 = 0; RES=0; //reset LGDT4216 _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); RES=1; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();// delay(5000); write_command(0x61); //scan driver control,comand explan at page 34 write_data1(0x00); write_command(0x60); //scan voltage setting,comand explan at page 34 write_data1(0x00);// write_command(0x00); //this command must be again at last ,command explain at page 11// write_data1(0x01); //dispaly off,set direction of data is nomall direction,RGB,RESET=1// write_command(0x01); //command explain at page 12 write_data1(0x03); //address increment direction(x:0->159,y:0->128,x direction increment at first then y direction) //8bit interface with 2 transmissions 65k colour write_command(0x06); //command explain at page 17 write_data1(0x00); //X address write_command(0x07); //command explain at page 17 write_data1(0x00); //Y address write_command(0x02); //command explain at page 13 write_data1(0x03); //display size:160*128 , display frame :90Hz write_command(0x43); //command is not explain at page write_data1(0x00); //enable gamma write_command(0x04); //command explain at page 14 write_data1(0x00); //no display rotate 160x128 write_command(0x03); //command explain at page 13 write_data1(0x01); //scan direction:0->159,scan seq direction:S0 S1 S2.....S127 write_command(0x27); //command explain at page 28 write_data1(0x01); //128 scan line time write_command(0x20); //command explain at page 27 write_data1(0x05); //set RED disprecharge time of scan line write_command(0x21); //command explain at page 27 write_data1(0x02); //set GREEN disprecharge time of scan line write_command(0x22); //command explain at page 27 write_data1(0x04); //set BLUE disprecharge time of scan line write_command(0x23); //command explain at page 28 write_data1(0x02); //set RED peak time of scan line write_command(0x24); //command explain at page 28 write_data1(0x06); //set GREEN peak time of scan line write_command(0x25); //command explain at page 28 write_data1(0x04); //set BLUE peak time of scan line// write_command(0x05); //command explain at page 15// write_data1(0x); //dummy register write_command(0x50); //red dot current set, command explan at page30 write_data1(0x26); write_command(0x51); //green dot current set, command explan at page30 write_data1(0x10); write_command(0x52); //blue dot current set, command explan at page31 write_data1(0x16); write_command(0x53); //red peak current set,command explan at page 31 write_data1(0x03); write_command(0x54); //green peak current set,command explan at page 32 write_data1(0x03); write_command(0x55); //blue peak current set,command explan at page 32 write_data1(0x03); write_command(0x26); //command explain at page 28 write_data1(0x06); //period in scan to scan 0~63 write_command(0x5a); //data gray level control set,comand explan at page 33 write_data1(0x01); write_command(0xa0); //power save set,comand explan at page 35 write_data1(0x00); //0 go 1 stop// delay(500); write_command(0x00); //this command must be again at last ,command explain at page 11 write_data1(0x80); //dispaly off,set direction of data is nomall direction,RGB,RESET=1//*************************************** write_command(0x40); //command explain at page 29// write_command(0x05); //command explain at page 15 write_data1(0x00); //Red Lookup Set. write_data1(0x00); write_data1(0x00); write_data1(0x01); write_data1(0x02); //5 write_data1(0x03); write_data1(0x04); write_data1(0x05); write_data1(0x06); write_data1(0x07); //10 write_data1(0x08); write_data1(0x09); write_data1(0x0a); write_data1(0x0b); write_data1(0x0c); //15 write_data1(0x0d); write_data1(0x0e); write_data1(0x0f); write_data1(0x10); write_data1(0x12); //20 write_data1(0x13); write_data1(0x14); write_data1(0x16); write_data1(0x17); write_data1(0x19); //25 write_data1(0x1b); write_data1(0x1c); write_data1(0x1e); write_data1(0x20); write_data1(0x22); //30 write_data1(0x24); write_data1(0x26); write_data1(0x28); write_data1(0x2a); write_data1(0x2c); //35 write_data1(0x2f); write_data1(0x31); write_data1(0x33); write_data1(0x36); write_data1(0x38); //40 write_data1(0x3b); write_data1(0x3d); write_data1(0x40); write_data1(0x43); write_data1(0x45); //45 write_data1(0x48); write_data1(0x4b); write_data1(0x4e); write_data1(0x51); write_data1(0x53); //50 write_data1(0x56); write_data1(0x59); write_data1(0x5c); write_data1(0x60); write_data1(0x63); //55 write_data1(0x66); write_data1(0x69); write_data1(0x6c); write_data1(0x70); write_data1(0x73); //60 write_data1(0x76); write_data1(0x79); write_data1(0x7c); write_data1(0x7f); //64//************************************* write_command(0x41); //command explain at page 30// write_command(0x05); //command explain at page 15 write_data1(0x00); //Green Lookup Set. write_data1(0x00); write_data1(0x00); write_data1(0x01); write_data1(0x02); //5 write_data1(0x03); write_data1(0x04); write_data1(0x05); write_data1(0x06); write_data1(0x07); //10 write_data1(0x08); write_data1(0x09); write_data1(0x0a); write_data1(0x0b); write_data1(0x0c); //15 write_data1(0x0d); write_data1(0x0e); write_data1(0x0f); write_data1(0x10); write_data1(0x12); //20 write_data1(0x13); write_data1(0x14); write_data1(0x16); write_data1(0x17); write_data1(0x19); //25 write_data1(0x1b); write_data1(0x1c); write_data1(0x1e); write_data1(0x20); write_data1(0x22); //30 write_data1(0x24); write_data1(0x26); write_data1(0x28); write_data1(0x2a); write_data1(0x2c); //35 write_data1(0x2f); write_data1(0x31); write_data1(0x33); write_data1(0x36); write_data1(0x38); //40 write_data1(0x3b); write_data1(0x3d); write_data1(0x40); write_data1(0x43); write_data1(0x45); //45 write_data1(0x48); write_data1(0x4b); write_data1(0x4e); write_data1(0x51); write_data1(0x53); //50 write_data1(0x56); write_data1(0x59); write_data1(0x5c); write_data1(0x60); write_data1(0x63); //55 write_data1(0x66); write_data1(0x69); write_data1(0x6c); write_data1(0x70); write_data1(0x73); //60 write_data1(0x76); write_data1(0x79); write_data1(0x7c); write_data1(0x7f); //64//************************************************* write_command(0x42); //command explain at page 30// write_command(0x05); //command explain at page 15 write_data1(0x00); //Blue Lookup Set. write_data1(0x00); write_data1(0x00); write_data1(0x01); write_data1(0x02); //5 write_data1(0x03); write_data1(0x04); write_data1(0x05); write_data1(0x06); write_data1(0x07); //10 write_data1(0x08); write_data1(0x09); write_data1(0x0a); write_data1(0x0b); write_data1(0x0c); //15 write_data1(0x0d); write_data1(0x0e); write_data1(0x0f); write_data1(0x10); write_data1(0x12); //20 write_data1(0x13); write_data1(0x14); write_data1(0x16); write_data1(0x17); write_data1(0x19); //25 write_data1(0x1b); write_data1(0x1c); write_data1(0x1e); write_data1(0x20); write_data1(0x22); //30 write_data1(0x24); write_data1(0x26); write_data1(0x28); write_data1(0x2a); write_data1(0x2c); //35 write_data1(0x2f); write_data1(0x31); write_data1(0x33); write_data1(0x36); write_data1(0x38); //40
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -