⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 128128.c

📁 cstn 1.5 with ST7636的C51测试程序.
💻 C
字号:
/*-----------------------
Model:128d01c
Drive IC:st7636
Test mode:8 bit paraller interface 8080 MCU
Program by:Fuwei
Date:2005-09-06
-------------------------*/
#include <reg51.h>
#include <intrins.h>
#include <ctype.h>
#define X_add 131
#define Y_add 131
#define Data_port P1
#define  nop _nop_()
#define R 0
#define G 1
#define B 2
sbit CS=P3^2;
sbit RST=P3^1;
sbit RS=P3^4;
sbit WR_=P3^5;
sbit RD_=P3^0;
sbit KEY=P2^0;
typedef unsigned char byte;
typedef unsigned int word;
byte code djn[];
byte code gray_scal[][8][2]={
                          {{0xf8,0x00},{0xf9,0xaa},{0xfa,0xaa},{0xfb,0x6d},{0xfc,0x92},{0xfd,0xb6},{0xfe,0xdb},{0xff,0xff}},
                          {{0x07,0xe0},{0x27,0xe4},{0x4f,0xe9},{0x6f,0xed},{0x97,0xf2},{0xb7,0xf6},{0xdf,0xfb},{0xff,0xff}},
                          {{0x00,0x1f},{0x21,0x3f},{0x4a,0x5f},{0x6b,0x7f},{0x94,0x9f},{0xb5,0xbf},{0xe7,0x1f},{0xff,0xff}},
                          };
//byte code IC_initial[]={0x2d,0x2c,0x02,0x01,0x26,0x0f,0x40,0x02,0x10,0x02,0x28,0x01,0x22,0x01,0x20,0x05,0x24,0x22,0x2a,0xaa,0x2b,0x60,0x30,0x00,0x32,0x00,0x40,0x00,0x34,0x0f,0x45,0x00,0x2f,0x51};
             			 /*STB on STB off  OSC on   DC-DC on            MOD         Tem      Bias       DC-DC    */
void write_data(in_data);
void write_com(in_com);
byte read(void);
void delay(word time);
void initial();
//void clear();
void wait_key();
void display_griphic(byte griphic[]);
void test_patten(byte cl,byte ch);
void test_grayscal(byte color);
void display_char();
void address_set(byte addX1,addX2,addY1,addY2);
void main(void)
     {
     initial();
     while(1)
     {
     //address_set(0,127,0,127);
     display_griphic(djn); wait_key();
     test_patten(0xf8,0x00);wait_key();
     test_patten(0x07,0xe0);wait_key();
     test_patten(0xff,0xff);wait_key();
     test_patten(0x00,0x1f);wait_key();
     //test_patten(0x00,0x00);wait_key();
     test_grayscal(R);wait_key();
     test_grayscal(G);wait_key();
     test_grayscal(B);wait_key();
     }
    }
void delay(word time)
     {
    word i;
    while(time--)
         for(i=0;i<10;i++);
    }
void wait_key()
     {
    KEY=1;
     while(KEY);
     delay(10);
     while(!KEY);
     delay(10);
     //delay(8000);
    }
/*void clear()
     {
    address_set(0,127,0,127);
    while(1)
    write_data(0x00);
    } */
void address_set(byte addX1,addX2,addY1,addY2)
     {
    write_com(0x75);
    write_data(addX1);
    write_data(addX2);
    write_com(0x15);
    write_data(addY1);
    write_data(addY2);
    write_com(0x5c);
    }
void write_data(in_data)
     {
     RS=1;
     CS=0;
     Data_port=in_data;
     WR_=0;
     //delay(30);
     WR_=1;
     CS=1;
    }
void write_com(in_com)
    {
    	RS=0;
    	CS=0;
    	Data_port=in_com;
        WR_=0;
        nop;
        WR_=1;
        CS=1;
    }
void initial()
     {
    //word i;
    RST=0;
    delay(10);
    RST=1;
    WR_=1;RD_=1;
    write_com(0x30);
    write_com(0x04);
    write_data(0x3e);
    write_com(0x94);
    write_com(0xd1);delay(2);
    write_com(0xca);
    write_data(0x00);
    write_data(0x1f);delay(2);
    write_data(0x00);
    write_com(0xbb);//delay(5);
    write_data(0x01);
    write_com(0x31);//delay(5);
    write_com(0x32);
    write_data(0x00);
    write_data(0x01);
    write_data(0x01); //bias
    write_com(0x30);   //ext=0
    write_com(0x81);
    write_data(0x38);
    write_data(0x03); //vop
    write_com(0x20);
    write_data(0x0b); delay(5);//VB VF VR=1,1,1
    write_com(0xa7);
    write_com(0xbc);
    write_data(0x03);
    write_data(0x01);//RGB set
    write_data(0x01);
    write_com(0xaf); delay(5); //display on
    //write_com(0xaf);
    /*write_com(0x00);
    write_com(0x32);
    write_com(0x00);
    write_com(0x40);
    write_com(0x00);
    write_com(0x34);
    write_com(0x0f);
    write_com(0x2f);
    write_com(0x51); */
    }
void display_griphic(byte griphic[])
     {
    word i,j,k;
    address_set(0,127,0,127);
    for(i=0;i<128;i++)
       for(j=0;j<128;j++)
          for(k=0;k<2;k++)
           {
           write_data(*griphic);
           griphic++;
           }
    }
void test_patten(byte cl,byte ch)
    {
    word i,j;
    address_set(0,131,0,131);
    for(i=0;i<X_add;i++)
       for(j=0;j<Y_add;j++)
         {
          //for(k=0;k<2;k++)
          write_data(cl);
          write_data(ch);
         }
         }
void test_grayscal(byte color)
    {
     word i,j,k,l;
     address_set(0,127,0,127);
     for(i=0;i<X_add;i++)
        for(l=0;l<8;l++)
           for(j=0;j<16;j++)

               for(k=0;k<2;k++)
                   write_data(gray_scal[color][l][k]);
    }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -