TFT LCD ਡਿਸਪਲੇਅ ਦਾ ਸ਼ੁਰੂਆਤੀ ਕੋਡ ਮੁੱਖ ਤੌਰ 'ਤੇ ਡਿਸਪਲੇਅ ਦੇ ਕੰਮ ਕਰਨ ਵਾਲੇ ਮਾਪਦੰਡਾਂ ਅਤੇ ਸਥਿਤੀ ਨੂੰ ਸੈੱਟ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ ਤਾਂ ਜੋ ਇਹ ਯਕੀਨੀ ਬਣਾਇਆ ਜਾ ਸਕੇ ਕਿ ਡਿਸਪਲੇਅ ਚਿੱਤਰਾਂ ਅਤੇ ਟੈਕਸਟ ਨੂੰ ਸਹੀ ਢੰਗ ਨਾਲ ਪ੍ਰਦਰਸ਼ਿਤ ਕਰ ਸਕਦਾ ਹੈ। ਸ਼ੁਰੂਆਤੀ ਕੋਡ ਦੀ ਭੂਮਿਕਾ ਅਤੇ ਸਿਧਾਂਤ ਵਿੱਚ ਮੁੱਖ ਤੌਰ 'ਤੇ ਹੇਠ ਲਿਖੇ ਪਹਿਲੂ ਸ਼ਾਮਲ ਹਨ:
ਹਾਰਡਵੇਅਰ ਰੀਸੈਟ
ਸ਼ੁਰੂਆਤੀਕਰਨ ਦੀ ਸ਼ੁਰੂਆਤ ਵਿੱਚ, ਇੱਕ ਹਾਰਡਵੇਅਰ ਰੀਸੈਟ ਓਪਰੇਸ਼ਨ ਆਮ ਤੌਰ 'ਤੇ ਕੀਤਾ ਜਾਂਦਾ ਹੈ (ਰੀਸੈਟ ਪਿੰਨ ਨੂੰ ਨੀਵਾਂ ਅਤੇ ਉੱਚਾ ਖਿੱਚ ਕੇ), ਜੋ ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ LCD ਇੱਕ ਜਾਣੀ-ਪਛਾਣੀ ਸਥਿਤੀ ਤੋਂ ਕੰਮ ਕਰਨਾ ਸ਼ੁਰੂ ਕਰਦਾ ਹੈ।
ਇੰਟਰਫੇਸ ਸੰਰਚਨਾ
ਸ਼ੁਰੂਆਤੀ ਕੋਡ ਆਮ ਤੌਰ 'ਤੇ LCD ਅਤੇ ਮਾਈਕ੍ਰੋਕੰਟਰੋਲਰ ਵਿਚਕਾਰ ਸੰਚਾਰ ਇੰਟਰਫੇਸ (ਜਿਵੇਂ ਕਿ SPI, I2C ਜਾਂ ਸਮਾਨਾਂਤਰ ਇੰਟਰਫੇਸ) ਨੂੰ ਸੰਰਚਿਤ ਕਰਦਾ ਹੈ। ਵੱਖ-ਵੱਖ LCD ਮੋਡੀਊਲ ਵੱਖ-ਵੱਖ ਸੰਚਾਰ ਇੰਟਰਫੇਸਾਂ ਦਾ ਸਮਰਥਨ ਕਰ ਸਕਦੇ ਹਨ, ਜਿਨ੍ਹਾਂ ਨੂੰ ਸ਼ੁਰੂਆਤੀਕਰਨ ਦੌਰਾਨ ਸਹੀ ਢੰਗ ਨਾਲ ਸੰਰਚਿਤ ਕਰਨ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ ਤਾਂ ਜੋ ਬਾਅਦ ਦੇ ਡੇਟਾ ਨੂੰ ਸੁਚਾਰੂ ਢੰਗ ਨਾਲ ਟ੍ਰਾਂਸਫਰ ਕੀਤਾ ਜਾ ਸਕੇ।
ਪਾਵਰ ਸੰਰਚਨਾ
LCD ਨੂੰ ਆਮ ਤੌਰ 'ਤੇ ਸਪਲਾਈ ਵੋਲਟੇਜ, ਬਾਈਸ ਵੋਲਟੇਜ ਅਤੇ ਚਾਰਜ ਪੰਪ ਵਰਗੇ ਪਾਵਰ ਪੈਰਾਮੀਟਰਾਂ ਨਾਲ ਕੌਂਫਿਗਰ ਕਰਨ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ। ਇਹ ਕੌਂਫਿਗਰੇਸ਼ਨ ਸਿੱਧੇ ਤੌਰ 'ਤੇ ਡਿਸਪਲੇ ਦੀ ਚਮਕ, ਕੰਟ੍ਰਾਸਟ ਅਤੇ ਸਥਿਰਤਾ ਨੂੰ ਪ੍ਰਭਾਵਿਤ ਕਰਦੇ ਹਨ।
ਡਿਸਪਲੇ ਮੋਡ ਸੈਟਿੰਗਾਂ
ਇਸ ਵਿੱਚ ਸਕ੍ਰੀਨ ਰੈਜ਼ੋਲਿਊਸ਼ਨ, ਰੰਗ ਡੂੰਘਾਈ, ਸਕੈਨਿੰਗ ਦਿਸ਼ਾ (ਲੈਂਡਸਕੇਪ ਜਾਂ ਪੋਰਟਰੇਟ), ਪਿਕਸਲ ਫਾਰਮੈਟ (RGB565, RGB666, ਆਦਿ), ਅਤੇ ਚਿੱਤਰ ਡਿਸਪਲੇ ਨਾਲ ਸਬੰਧਤ ਹੋਰ ਮਾਪਦੰਡ ਸੈੱਟ ਕਰਨਾ ਸ਼ਾਮਲ ਹੈ।
ਰਜਿਸਟਰ ਸੰਰਚਨਾ
ਸ਼ੁਰੂਆਤੀ ਪ੍ਰਕਿਰਿਆ ਦੌਰਾਨ, LCD ਦੇ ਵੱਖ-ਵੱਖ ਕੰਟਰੋਲ ਰਜਿਸਟਰਾਂ ਵਿੱਚ ਖਾਸ ਮੁੱਲ ਲਿਖਣ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ, ਜੋ ਡਿਸਪਲੇ ਦੇ ਵੱਖ-ਵੱਖ ਫੰਕਸ਼ਨਾਂ ਨੂੰ ਨਿਯੰਤਰਿਤ ਕਰਦੇ ਹਨ, ਜਿਵੇਂ ਕਿ ਕੰਟ੍ਰਾਸਟ ਐਡਜਸਟਮੈਂਟ, ਗਾਮਾ ਸੁਧਾਰ, ਚਮਕ ਐਡਜਸਟਮੈਂਟ, ਰੰਗ ਫਾਰਮੈਟ ਸੈਟਿੰਗ, ਆਦਿ।
ਸਾਫ਼ ਸਕ੍ਰੀਨ ਓਪਰੇਸ਼ਨ
ਸ਼ੁਰੂਆਤ ਦੇ ਅੰਤ 'ਤੇ, ਆਮ ਤੌਰ 'ਤੇ ਇੱਕ ਸਪਸ਼ਟ ਕਾਰਵਾਈ ਕੀਤੀ ਜਾਂਦੀ ਹੈ, ਭਾਵ, ਸਕ੍ਰੀਨ 'ਤੇ ਸਾਰੇ ਪਿਕਸਲ ਕਾਲੇ ਜਾਂ ਚਿੱਟੇ 'ਤੇ ਸੈੱਟ ਕੀਤੇ ਜਾਂਦੇ ਹਨ ਤਾਂ ਜੋ ਇਹ ਯਕੀਨੀ ਬਣਾਇਆ ਜਾ ਸਕੇ ਕਿ ਸਕ੍ਰੀਨ ਸਾਫ਼ ਹੈ ਅਤੇ ਬਾਕੀ ਡਿਸਪਲੇ ਸਮੱਗਰੀ ਤੋਂ ਮੁਕਤ ਹੈ।
ਡਿਸਪਲੇ ਨੂੰ ਚਾਲੂ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ
ਉਪਰੋਕਤ ਸੰਰਚਨਾ ਨੂੰ ਪੂਰਾ ਕਰਨ ਤੋਂ ਬਾਅਦ, ਆਖਰੀ ਕਦਮ ਆਮ ਤੌਰ 'ਤੇ ਡਿਸਪਲੇ ਫੰਕਸ਼ਨ ਨੂੰ ਚਾਲੂ ਕਰਨਾ ਹੁੰਦਾ ਹੈ ਤਾਂ ਜੋ LCD ਚਿੱਤਰ ਡੇਟਾ ਪ੍ਰਾਪਤ ਕਰਨਾ ਅਤੇ ਪ੍ਰਦਰਸ਼ਿਤ ਕਰਨਾ ਸ਼ੁਰੂ ਕਰ ਸਕੇ।
ਸੰਖੇਪ ਕਰਨ ਲਈ
ਸ਼ੁਰੂਆਤੀ ਕੋਡ LCD ਡਿਸਪਲੇਅ ਦੇ ਸਹੀ ਢੰਗ ਨਾਲ ਕੰਮ ਕਰਨ ਦੇ ਯੋਗ ਹੋਣ ਦਾ ਆਧਾਰ ਹੈ। ਸ਼ੁਰੂਆਤੀ ਕੋਡ ਨੂੰ ਲਾਗੂ ਕਰਕੇ, LCD ਦੇ ਵੱਖ-ਵੱਖ ਓਪਰੇਟਿੰਗ ਮਾਪਦੰਡ ਇਹ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ ਸੈੱਟ ਕੀਤੇ ਜਾਂਦੇ ਹਨ ਕਿ ਡਿਸਪਲੇਅ ਸਹੀ ਮੋਡ ਵਿੱਚ ਕੰਮ ਕਰਦਾ ਹੈ ਅਤੇ ਸਮੱਗਰੀ ਨੂੰ ਸਥਿਰ ਅਤੇ ਸਪਸ਼ਟ ਤੌਰ 'ਤੇ ਪ੍ਰਦਰਸ਼ਿਤ ਕਰਨ ਦੇ ਯੋਗ ਹੈ। ਜੇਕਰ ਸ਼ੁਰੂਆਤੀ ਕਦਮ ਅਧੂਰਾ ਜਾਂ ਗਲਤ ਹੈ, ਤਾਂ ਇਹ ਡਿਸਪਲੇਅ ਅਸਧਾਰਨਤਾਵਾਂ ਦਾ ਕਾਰਨ ਬਣ ਸਕਦਾ ਹੈ, ਜਿਵੇਂ ਕਿ ਚਿੱਤਰਾਂ ਨੂੰ ਪ੍ਰਦਰਸ਼ਿਤ ਕਰਨ ਵਿੱਚ ਅਸਮਰੱਥਾ, ਡਿਸਪਲੇਅ ਸਮੱਗਰੀ ਦਾ ਵਿਗਾੜ, ਜਾਂ ਗਲਤ ਰੰਗ।
ILI9341V ਕੋਡ
//************* Start Initial Sequence **********//
LCD_CTRL_ILI9341(0xCF);
LCD_DATA_ILI9341(0x00);
LCD_DATA_ILI9341(0xC1);
LCD_DATA_ILI9341(0X30);
LCD_CTRL_ILI9341(0xED);
LCD_DATA_ILI9341(0x64);
LCD_DATA_ILI9341(0x03);
LCD_DATA_ILI9341(0X12);
LCD_DATA_ILI9341(0X81);
LCD_CTRL_ILI9341(0xE8);
LCD_DATA_ILI9341(0x85);
LCD_DATA_ILI9341(0x10);
LCD_DATA_ILI9341(0x78);
LCD_CTRL_ILI9341(0xCB);
LCD_DATA_ILI9341(0x39);
LCD_DATA_ILI9341(0x2C);
LCD_DATA_ILI9341(0x00);
LCD_DATA_ILI9341(0x34);
LCD_DATA_ILI9341(0x02);
LCD_CTRL_ILI9341(0xF7);
LCD_DATA_ILI9341(0x20);
LCD_CTRL_ILI9341(0xEA);
LCD_DATA_ILI9341(0x00);
LCD_DATA_ILI9341(0x00);
LCD_CTRL_ILI9341(0xC0); //Power control
LCD_DATA_ILI9341(0x21); //VRH[5:0]
LCD_CTRL_ILI9341(0xC1); //Power control
LCD_DATA_ILI9341(0x12); //SAP[2:0];BT[3:0]
LCD_CTRL_ILI9341(0xC5); //VCM control
LCD_DATA_ILI9341(0x40); //32
LCD_DATA_ILI9341(0x3c); //3//3c
LCD_CTRL_ILI9341(0xC7); //VCM control2
LCD_DATA_ILI9341(0X94); //0xb2//0x9c
LCD_CTRL_ILI9341(0x36); // Memory Access Control
LCD_DATA_ILI9341(0x08);
LCD_CTRL_ILI9341(0x3A);
LCD_DATA_ILI9341(0x55);
LCD_CTRL_ILI9341(0xB1);
LCD_DATA_ILI9341(0x00);
LCD_DATA_ILI9341(0x17);
LCD_CTRL_ILI9341(0xB6); // Display Function Control
LCD_DATA_ILI9341(0x0A);
LCD_DATA_ILI9341(0xA2);
LCD_CTRL_ILI9341(0xF6);
LCD_DATA_ILI9341(0x01);
LCD_DATA_ILI9341(0x30);
LCD_CTRL_ILI9341(0xF2); // 3Gamma Function Disable
LCD_DATA_ILI9341(0x00);
LCD_CTRL_ILI9341(0x26); //Gamma curve selected
LCD_DATA_ILI9341(0x01);
LCD_CTRL_ILI9341(0xE0); //Set Gamma
LCD_DATA_ILI9341(0x0F);
LCD_DATA_ILI9341(0x20);
LCD_DATA_ILI9341(0x1E);
LCD_DATA_ILI9341(0x07);
LCD_DATA_ILI9341(0x0A);
LCD_DATA_ILI9341(0x03);
LCD_DATA_ILI9341(0x52);
LCD_DATA_ILI9341(0X63);
LCD_DATA_ILI9341(0x44);
LCD_DATA_ILI9341(0x08);
LCD_DATA_ILI9341(0x17);
LCD_DATA_ILI9341(0x09);
LCD_DATA_ILI9341(0x19);
LCD_DATA_ILI9341(0x13);
LCD_DATA_ILI9341(0x00);
LCD_CTRL_ILI9341(0XE1); //Set Gamma
LCD_DATA_ILI9341(0x00);
LCD_DATA_ILI9341(0x16);
LCD_DATA_ILI9341(0x19);
LCD_DATA_ILI9341(0x02);
LCD_DATA_ILI9341(0x0F);
LCD_DATA_ILI9341(0x03);
LCD_DATA_ILI9341(0x2F);
LCD_DATA_ILI9341(0x13);
LCD_DATA_ILI9341(0x40);
LCD_DATA_ILI9341(0x01);
LCD_DATA_ILI9341(0x08);
LCD_DATA_ILI9341(0x07);
LCD_DATA_ILI9341(0x2E);
LCD_DATA_ILI9341(0x3C);
LCD_DATA_ILI9341(0x0F);
LCD_CTRL_ILI9341(0x11); //Exit Sleep
LCD_Delayms(120);
LCD_CTRL_ILI9341(0x29); //Display on