📄 12864-s.c
字号:
/*
Projet name:TXD12864
File name:TXD12864.C
Drive IC: NT7565
Interface :
Module MCU
D7~D0 P1
RE RXD(P3.0)
WR TXD(P3.1)
A0 INT1(P3.3)
/RES T0(P3.4)
/CS1 T1(P3.5)
Author:
ver:
Date: 2007-10-24
*/
/*
Define Hard
*/
#pragma SMALL
#include <Reg51.h>
#include <stdio.h>
#include <Intrins.h>
#define Vop 0x20 //Set Reference Voltage (0~0x3F)
#define Ratio 0x23 //SET INTERNAL REGULATOR RESISTOR RATIO(100B)-POR(20~27)
#define INIT_TH0 0xFC
#define INIT_TL0 0x20
/*
Define Interface
*/
//sbit WRB= P3^1;
//sbit K=P3^2;
//sbit D_I= P3^3;
//sbit CS1= P3^5;
//sbit E =P3^0;
//sbit Rest=P3^4;
sbit SCL= P3^0;
sbit K=P3^2;
sbit D_I= P3^3;
sbit CS1= P3^5;
sbit SI =P3^1;
sbit Rest=P3^4;
unsigned int sys_clock;
/*
DisPlay Bmp Data
*/
unsigned char code Dbmp[];
/*
Define Sub
*/
void Int_Ser();
void WriteData(unsigned char Rs,unsigned char SData);
void Delay(unsigned int DelayTime);
/*
SubProgram part
*/
void Int_Ser (void) interrupt 0{
/*
Sub Name: Int_Ser
Function: Halt
Input: None
OutPut: None
*/
unsigned char i;
EX0=0;
for(i=1;i<=0xAF;i++);
if (!K)
{
while (K);
Int_SL: while(!K);
for (i=1 ;i<=0xFF;i++);
if (K) goto Int_SL;
}
while(K);
EX0=1;
}
void Int_Sys_Clock (void) interrupt 1
{
TH0=INIT_TH0;
TL0=INIT_TL0;
sys_clock++;
// Rest=!Rest; //TEST
}
void Delay(unsigned int DelayTime) //延时子程序Delay+1ms DelayTime<65535
{
EA=0; //禁能所有中断
TF0=0;
sys_clock=0;
TMOD=0X01;
TH0=INIT_TH0;
TL0=INIT_TL0;
ET0=1; //使能定时器0的中断
EA=1; //使能所有中断
TR0=1; //启动定时器0
// D_I=1;
while(sys_clock!=DelayTime);
TR0=0;
ET0=0;
}
/*
void Delay(unsigned int DelayTime){
/*
Sub Name : Delay
Function : Delay
Delay Time:(Delay+1)×27us DelayTime<65535
Input : DelayTime
OutPut : None
*/
/* for (;DelayTime>0;DelayTime--)
{
DelayTime++;
DelayTime--;
};
}
*/
void WriteData(unsigned char Rs,unsigned char SData){
/*
Sub Name : WriteData
Function : Write Data to module
Serial data input
Input : Rs (Command byte or Display data)
Sdata (Write data)
OutPut : None
*/
unsigned char i;
CS1=0;
SCL=1;
D_I=Rs;
for (i=0;i<8;i++)
{
SData<<=1;
SCL=0;
_nop_();
SI=CY;
_nop_();
SCL=1;
_nop_();
}
_nop_();
_nop_();
D_I=!Rs;
CS1=1;
}
/*
Mail program part
*/
void main()
{
unsigned char i,j;
char code *PlayData;
IE=0x81;
IP=0x01 ;
TCON=0x00;
SP=0x60;
K=1;
//Start to Initialization
Rest=1;
Rest=0; //hard Rest
Delay(50); //Delay 1S
Rest=1;
WriteData(0,0xE2); //Soft rest
WriteData(0,0xA3); //SET LCD bias(A2-1/9bias; A3-1/7bias)
WriteData(0,0xA0); //SET ADC NORMAL(OB-POR seg0-00h) A0: NORMAL A1: REVERSE
WriteData(0,0xC8); //SET COM OUTPUT SCAN DIRECTION(0XXXB-NORMAL)-POR COM63-->COM0
WriteData(0,0xA4); // SET DISPLAY NORMAL (0B-NORMAL)-POR A4:NORMAL A5:ENTIRE DISPLAY ON
WriteData(0,0xA6); //SET NORMAL DISPLAY MODE(0B-NORMAL) A6:NORMAL A7:REVERSE
WriteData(0,Ratio); //SET INTERNAL REGULATOR RESISTOR RATIO(100B)-POR
WriteData(0,0x81); //
WriteData(0,Vop); // SET CONTRAST CONTROL REGISTER(00,0000H-11,1111H)
WriteData(0,0x2F); //SET POWER CONTROL REGISTER (ALL INTERNAL)
WriteData(0,0x40); //
//end of initialzation
WriteData(0,0xAF); //DisPlay On
Delay(100);
while (1)
{
for (j=0;j<8;j++)
{
WriteData(0,0xB0+j); //Set Page Address 0xB0-0xB7 Icon Address 0xB8
WriteData(0,0x10); //Set Column Address MSB 0x10-0x1F
WriteData(0,0x00); //Set Column Address LSB 0x00-0x0F
for(i=0;i<128;i++)
WriteData(1,0xFF);
}
Delay(1000);
for (j=0;j<8;j++)
{
WriteData(0,0xB0+j); //Set Page Address 0xB0-0xB7 Icon Address 0xB8
WriteData(0,0x10); //Set Column Address MSB 0x10-0x1F
WriteData(0,0x00); //Set Column Address LSB 0x00-0x0F
for(i=0;i<128;i++)
WriteData(1,0x00); //All DisPlay Off
}
Delay(650);
for (j=0;j<8;j++)
{
WriteData(0,0xB0+j); //Set Page Address 0xB0-0xB7 Icon Address 0xB8
WriteData(0,0x10); //Set Column Address MSB 0x10-0x1F
WriteData(0,0x00); //Set Column Address LSB 0x00-0x0F
for(i=0;i<128;i+=2)
{
WriteData(1,0xFF);
WriteData(1,0x00);
}
}
Delay(650);
for (j=0;j<8;j++)
{
WriteData(0,0xB0+j); //Set Page Address 0xB0-0xB7 Icon Address 0xB8
WriteData(0,0x10); //Set Column Address MSB 0x10-0x1F
WriteData(0,0x00); //Set Column Address LSB 0x00-0x0F
for(i=0;i<128;i+=2)
{
WriteData(1,0x00);
WriteData(1,0xFF);
}
}
Delay(650);
for (j=0;j<8;j++)
{
WriteData(0,0xB0+j); //Set Page Address 0xB0-0xB7 Icon Address 0xB8
WriteData(0,0x10); //Set Column Address MSB 0x10-0x1F
WriteData(0,0x00); //Set Column Address LSB 0x00-0x0F
for(i=0;i<=128;i++)
WriteData(1,0xAA);
}
Delay(650);
for (j=0;j<8;j++)
{
WriteData(0,0xB0+j); //Set Page Address 0xB0-0xB7 Icon Address 0xB8
WriteData(0,0x10); //Set Column Address MSB 0x10-0x1F
WriteData(0,0x00); //Set Column Address LSB 0x00-0x0F
for(i=0;i<128;i++)
WriteData(1,0x55);
}
Delay(650);
/*
for (j=0;j<4;j++)
{
WriteData(0,0xB0+j); //Set Page Address 0xB0-0xB7 Icon Address 0xB8
WriteData(0,0x10); //Set Column Address MSB 0x10-0x1F
WriteData(0,0x00); //Set Column Address LSB 0x00-0x0F
for(i=0;i<128;i++)
WriteData(1,0x00);
}
for (j=0;j<4;j++)
{
WriteData(0,0xB4+j); //Set Page Address 0xB0-0xB7 Icon Address 0xB8
WriteData(0,0x10); //Set Column Address MSB 0x10-0x1F
WriteData(0,0x00); //Set Column Address LSB 0x00-0x0F
for(i=0;i<128;i++)
WriteData(1,0xff);
}
Delay(650);
*/
PlayData=&Dbmp;
for (j=0;j<8;j++)
{
WriteData(0,0xB0+j); //Set Page Address 0xB0-0xB7 Icon Address 0xB8
WriteData(0,0x10); //Set Column Address MSB 0x10-0x1F
WriteData(0,0x00); //Set Column Address LSB 0x00-0x0F
for(i=0;i<128;i++)
WriteData(1,*PlayData++);
}
Delay(1000);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -