垃圾猪 发表于 2017-10-9 21:59:52

转个自己的贴-一块160*80不带控制器的液晶屏

一块160*80不带控制器的液晶屏

我的效果,直接用ram创建一个160*80的显存区,1k一下ram就别玩了,没有控制器,只有驱动器,
5块钱还要什么飞机呢!
程序:
#include "STC15F2K60S2.H"
#include "intrins.h"
typedef unsigned char uchar;
typedef unsigned int uint;

//显示刷新帧速25ms,40帧,微闪烁,过快导致对比度下降
#define LCD_DATA P2
sbitLCD_RST = P4^4;                // 重启    L
sbitLCD_XCS = P3^2;                //命令选择L
sbitLCD_SID = P3^3;                //命令串行数据
sbitLCD_XCLK = P3^4;                //命令时钟
sbitLCD_DISP = P3^5;                //L关闭显示
sbitLCD_CP = P4^2;                  //数据移位时钟
sbitLCD_LP = P4^1;                  //数据锁存,com数据移位
sbitLCD_M = P3^7;                            //LCD输出交流信号
sbitLCD_FLM = P3^6;                  //帧起始
sbit    LCD_D1    = P2^0;                        //数据输入
sbit    LCD_D2    = P2^1;
sbit    LCD_D3    = P2^2;
sbit    LCD_D4    = P2^3;


/***********************阴码,顺向(高位在前)逐行式************************************/
uchar xdata LCD_RAM={
{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,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},
{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,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},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x70,0x3E,0x07,0xC0,0x3C,0x3F,0x81,0xFB,0xFF,0x1F,0x83,0xE0,0x1C,0x0F,0xE0,0x3F,0x1F,0xE0,0x00},
{0x00,0xF0,0x67,0x8C,0xE0,0x3C,0x30,0x07,0x00,0x07,0x39,0xC7,0x30,0x3C,0x0E,0x70,0x71,0x9C,0x70,0x00},
{0x01,0xF0,0x03,0x80,0x70,0x7C,0x30,0x06,0x00,0x06,0x30,0xCE,0x38,0x3E,0x0E,0x38,0xE0,0x1C,0x38,0x00},
{0x03,0x30,0x03,0x80,0x70,0x7C,0x30,0x0E,0x00,0x0E,0x30,0xCE,0x18,0x3E,0x0E,0x39,0xC0,0x1C,0x1C,0x00},
{0x00,0x30,0x03,0x80,0x70,0xFC,0x30,0x0C,0x00,0x0C,0x39,0xCE,0x18,0x76,0x0E,0x39,0xC0,0x1C,0x1C,0x00},
{0x00,0x30,0x03,0x80,0xE1,0xDC,0x3F,0x0F,0xF0,0x1C,0x1F,0x8E,0x1C,0x77,0x0E,0x71,0xC0,0x1C,0x1C,0x00},
{0x00,0x30,0x07,0x07,0xC1,0x9C,0x03,0x8E,0x38,0x1C,0x0F,0x0E,0x3C,0xE7,0x0F,0xF1,0xC0,0x1C,0x1C,0x00},
{0x00,0x30,0x0E,0x00,0xF3,0x9C,0x01,0xCC,0x38,0x38,0x3B,0xC3,0xF8,0xE3,0x8E,0x39,0xC0,0x1C,0x1C,0x00},
{0x00,0x30,0x0E,0x00,0x73,0x1C,0x01,0xCC,0x18,0x38,0x70,0xE0,0x18,0xE3,0x8E,0x19,0xC0,0x1C,0x1C,0x00},
{0x00,0x30,0x1C,0x00,0x37,0xFF,0x01,0xCE,0x18,0x70,0x70,0xE0,0x39,0xFF,0x8E,0x1D,0xC0,0x1C,0x18,0x00},
{0x00,0x30,0x38,0x00,0x70,0x1C,0x01,0xCE,0x38,0x70,0x70,0xE0,0x39,0xC1,0xCE,0x18,0xE0,0x1C,0x38,0x00},
{0x00,0x30,0x70,0x18,0x70,0x1C,0x63,0x86,0x30,0x60,0x31,0xC0,0x71,0x81,0xCE,0x38,0xF1,0x9C,0x70,0x00},
{0x03,0xFE,0xFF,0xCF,0xC0,0x1C,0x7F,0x03,0xE0,0xE0,0x1F,0x8F,0xC3,0x80,0xCF,0xF0,0x3F,0x1F,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,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,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,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,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,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,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,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,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},
{0x03,0xFC,0x7F,0x87,0xF0,0xC0,0xC7,0x0E,0x70,0xEE,0x07,0x80,0x78,0xE0,0xC0,0xFC,0x1F,0xE0,0x7E,0x00},
{0x03,0x80,0x60,0x0E,0x18,0xC0,0xC7,0x0E,0x71,0xCE,0x07,0xC0,0xF8,0xF0,0xC3,0x87,0x1C,0x71,0xE3,0x80},
{0x03,0x80,0x60,0x1C,0x00,0xC0,0xC7,0x0E,0x73,0x8E,0x07,0xC0,0xF8,0xF0,0xC3,0x03,0x1C,0x31,0x81,0xC0},
{0x03,0x80,0x60,0x38,0x00,0xC0,0xC7,0x0E,0x77,0x0E,0x07,0xE0,0xF8,0xF8,0xC7,0x03,0x9C,0x33,0x81,0xC0},
{0x03,0x80,0x60,0x30,0x00,0xC0,0xC7,0x0E,0x7E,0x0E,0x07,0xE1,0xF8,0xD8,0xC6,0x03,0x9C,0x33,0x80,0xC0},
{0x03,0x80,0x60,0x30,0x00,0xC0,0xC7,0x0E,0x7C,0x0E,0x07,0x61,0xB8,0xDC,0xC6,0x01,0x9C,0x73,0x00,0xC0},
{0x03,0xFC,0x7F,0x31,0xF8,0xFF,0xC7,0x0E,0x7C,0x0E,0x07,0x73,0xB8,0xCE,0xC6,0x01,0x9C,0x73,0x00,0xC0},
{0x03,0x80,0x60,0x30,0x38,0xC0,0xC7,0x0E,0x7E,0x0E,0x07,0x73,0x38,0xCE,0xC6,0x01,0x9F,0xC3,0x00,0xC0},
{0x03,0x80,0x60,0x30,0x38,0xC0,0xC7,0x0E,0x77,0x0E,0x07,0x3F,0x38,0xC7,0xC6,0x03,0x9C,0x03,0x80,0xC0},
{0x03,0x80,0x60,0x38,0x38,0xC0,0xC7,0x0E,0x73,0x8E,0x07,0x3F,0x38,0xC7,0xC7,0x03,0x9C,0x03,0x81,0xC0},
{0x03,0x80,0x60,0x18,0x38,0xC0,0xC7,0x0C,0x73,0x8E,0x07,0x1E,0x38,0xC3,0xC7,0x03,0x1C,0x01,0x81,0x80},
{0x03,0x80,0x60,0x1E,0x38,0xC0,0xC7,0x4C,0x71,0xCE,0x07,0x1E,0x38,0xC1,0xC3,0x87,0x1C,0x01,0xC3,0x80},
{0x03,0xFE,0x60,0x07,0xF0,0xC0,0xC7,0x78,0x70,0xEF,0xF7,0x1C,0x38,0xC1,0xC0,0xFC,0x1C,0x00,0x7F,0xE0},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30},
{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,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},
{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,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},
{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,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},
{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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x03,0xFC,0x1F,0x3F,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x03,0x8E,0x71,0x83,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x03,0x8E,0x70,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x03,0x86,0x70,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x03,0x8E,0x70,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x03,0x8E,0x3C,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x03,0xF8,0x1F,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x03,0x9C,0x07,0x83,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x03,0x8C,0x01,0x83,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x03,0x8E,0x01,0xC3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x03,0x8E,0x01,0x83,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x03,0x87,0x63,0x83,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x03,0x87,0x3F,0x03,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,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,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,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,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,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}
};

void LCD_Init(void)                            //为了保证屏幕亮度,必须刷新较慢暂定50hz
{
uint i=0,x=0,y=0;
   
    //LCD_CP=1;
    LCD_LP=1;
    LCD_FLM=1;
   
    LCD_LP=0;
    LCD_FLM=0;
    for (x=80;x>0;x--)
      {
      LCD_LP=1;
      LCD_LP=0;
      for (i=0;i<20;i++)
            {
               
            y=LCD_RAM;
               
            
            LCD_CP=1;
            LCD_DATA=y>>4;
            
            LCD_CP=0;
                LCD_CP=1;
            LCD_DATA=y;
            
            LCD_CP=0;
            }
   
      }LCD_M=~LCD_M;
}
delay_us()
{_nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
}
void LCD_CMD (uchar command)                  //发送命令时,必须延时足够(先设定2us)才能正确配置命令
{    uchar i=0;
    LCD_XCS=0;
    delay_us();
    LCD_XCLK=1;
    delay_us();
    for (i=0;i<8;i++)
      {
      command<<=1;
      LCD_SID=CY;
            delay_us();
      LCD_XCLK=0;
            delay_us();
      LCD_XCLK=1;   
            delay_us();                        //上升沿读取数据
            
      }
//    LCD_XCLK=0;
//    LCD_SID=1;
    LCD_XCS=1;
      delay_us();                              //关闭命令控制
}

void main()
{ unsigned char i, j;

   
    LCD_RST=0;
    i = 59;
    j = 90;
    do
    {
      while (--j);
    } while (--i);
    LCD_RST=1;   
    LCD_CMD(0x08);                        //00000000bD3 select frame direction.0:normal,1:reverse,bias 1/9
    LCD_CMD(0x27);                  //00101111bSelect internal power supply operating mode
               
    LCD_CMD(0x46);                            //01000111bSelect internal resistor ratio(Rb/Ra) mode
    LCD_CMD(0x67);                                    //01100111bSet the LCD booster frequency
    LCD_CMD(0xf0);                              //11011010bSet the V0 output voltageelectronic volume register
    LCD_XCS=0;                                    //这三条必须有,不然升压不工作!或许是A,B两个版本的区别   
    LCD_SID=1;
    LCD_XCLK=0;      
   
   
//    LCD_DISP=0;
//    LCD_DISP=1;
//    LCD_XCS=0;
//    LCD_SID=0;
//    LCD_XCLK=0;
   
    while (1)
      { LCD_Init();}
}


         

垃圾猪 发表于 2017-10-9 22:00:18

自己的帖子转过来,

43545 发表于 2017-10-10 18:28:00

垃圾猪 发表于 2017-10-9 22:00
自己的帖子转过来,

转过来,就好好转嘛,单片机C代码,论坛发贴时有专门的代码按钮的。

勇闯沙滩 发表于 2017-12-6 08:19:32

普通人用不上,看着就蒙。

光速飞行 发表于 2017-12-6 09:45:15

本帖最后由 光速飞行 于 2017-12-6 09:46 编辑

勇闯沙滩 发表于 2017-12-6 08:19
普通人用不上,看着就蒙。
你身边到处都是,这些是简单的了,怎么用不上呢?

勇闯沙滩 发表于 2017-12-6 13:39:16

光速飞行 发表于 2017-12-6 09:45
你身边到处都是,这些是简单的了,怎么用不上呢?

看那一大堆程序有点蒙,

光速飞行 发表于 2017-12-6 15:59:10

勇闯沙滩 发表于 2017-12-6 13:39
看那一大堆程序有点蒙,

这是C语言,C语言很多地方都上。

xo304 发表于 2017-12-19 02:20:04

这个屏点亮了:)

喜欢就好 发表于 2020-10-2 22:28:02

虽然俺看不懂,屏亮了就是高手。
页: [1]
查看完整版本: 转个自己的贴-一块160*80不带控制器的液晶屏