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

📄 ocm4x8c.c

📁 OCMJ4X8LCD程序(st7290)串行 OCMJ4X8LCD程序(st7290)串行
💻 C
字号:
//ICC-AVR application builder : 2003-8-13 10:54:14
// Target : 8515
// Crystal: 8.0000Mhz

#include <io8515v.h>
#include <macros.h>

/*   定义OCMJ4X8端口   */
//DATA_PORT=PORTA
#define data_port PORTA
//ASK=PORTA.7
//#define ask (PINA&0x80)
//RS=PORTC.2

/*
#define set_cs asm("sbi 0x15,2")
#define clr_cs asm("cbi 0x15,2")
//E=PORTC.0
#define set_sclk asm("sbi 0x15,0")
#define clr_sclk asm("cbi 0x15,0")
//RW=PORTD.6
#define set_std asm("sbi 0x12,6")
#define clr_std asm("cbi 0x12,6") 
//RW=PORTC.1
#define set_reset asm("sbi 0x12,1")
#define clr_reset asm("cbi 0x12,1")
*/



#define set_cs PORTD|=0X80 
#define clr_cs PORTD&=~0X80 

#define set_sclk PORTD|=0X20
#define clr_sclk PORTD&=~0x20 

#define set_std PORTD|=0X10 
#define clr_std PORTD&=~0x10 

#define set_reset PORTD|=0X40
#define clr_reset PORTD&=~0x40 



void port_init(void)
{
 PORTA = 0xFF;
 DDRA  = 0x00;
 PORTB = 0xFF;
 DDRB  = 0x00;
 PORTC = 0xFF;
 DDRC  = 0x00;
 PORTD = 0xFF;
 DDRD  = 0x00; 
}

//call this routine to initialise all peripherals
void init_devices(void)
{
 //stop errant interrupts until set up
 CLI(); //disable all interrupts
 port_init();

 MCUCR = 0x00;
 GIMSK = 0x00;
 TIMSK = 0x00;
 SEI(); //re-enable interrupts
 //all peripherals are now initialised
}
//====================================================
void delay(void)
{
unsigned int i;
for(i=0;i<500;i++);
}

void start_ocm4x8c(void)
{
DDRC=0XFF;
DDRD=0XFF;


set_std;set_std;
clr_sclk;clr_sclk;
set_cs;set_cs;
	
set_sclk;set_sclk;
clr_sclk;clr_sclk;
set_sclk;set_sclk;
clr_sclk;clr_sclk;
set_sclk;set_sclk;
clr_sclk;clr_sclk;
set_sclk;set_sclk;
clr_sclk;clr_sclk;
set_sclk;set_sclk;
clr_sclk;clr_sclk;

clr_std;clr_std;
set_sclk;set_sclk;
clr_sclk;clr_sclk;	
}

void write_ocm4x8c(unsigned char dat)
{unsigned char i;
clr_std;clr_std;
set_sclk;set_sclk;
clr_sclk;clr_sclk;
if((dat&0x80)==0x80)
{set_std;set_std;}
else
{clr_std;clr_std;}
set_sclk;set_sclk;
clr_sclk;clr_sclk;
if((dat&0x40)==0x40)
{set_std;set_std;}
else
{clr_std;clr_std;}
set_sclk;set_sclk;
clr_sclk;clr_sclk;
if((dat&0x20)==0x20)
{set_std;set_std;}
else
{clr_std;clr_std;}
set_sclk;set_sclk;
clr_sclk;clr_sclk;
if((dat&0x10)==0x10)
{set_std;set_std;}
else
{clr_std;clr_std;}
set_sclk;set_sclk;
clr_sclk;clr_sclk;

clr_std;clr_std;
set_sclk;set_sclk;
clr_sclk;clr_sclk;
set_sclk;set_sclk;
clr_sclk;clr_sclk;
set_sclk;set_sclk;
clr_sclk;clr_sclk;
set_sclk;set_sclk;
clr_sclk;clr_sclk;

if((dat&0x08)==0x08)
{set_std;set_std;}
else
{clr_std;clr_std;}
set_sclk;set_sclk;
clr_sclk;clr_sclk;
if((dat&0x04)==0x04)
{set_std;set_std;}
else
{clr_std;clr_std;}
set_sclk;set_sclk;
clr_sclk;clr_sclk;
if((dat&0x02)==0x02)
{set_std;set_std;}
else
{clr_std;clr_std;}
set_sclk;set_sclk;
clr_sclk;clr_sclk;
if((dat&0x01)==0x01)
{set_std;set_std;}
else
{clr_std;clr_std;}
set_sclk;set_sclk;
clr_sclk;clr_sclk;

clr_std;clr_std;
set_sclk;set_sclk;
clr_sclk;clr_sclk;
set_sclk;set_sclk;
clr_sclk;clr_sclk;
set_sclk;set_sclk;
clr_sclk;clr_sclk;
set_sclk;set_sclk;
clr_sclk;clr_sclk;

clr_cs;clr_cs;
set_std;set_std;
}

void write_ocm4x8_data(unsigned char dat)
{
unsigned char dd;
start_ocm4x8c();
set_std;set_std;
set_sclk;set_sclk;
clr_sclk;clr_sclk;
dd=dat;
write_ocm4x8c(dd);
}

void write_ocm4x8_code(unsigned char dat)
{
unsigned char dd;
start_ocm4x8c();
clr_std;clr_std;
set_sclk;set_sclk;
clr_sclk;clr_sclk;
dd=dat;
write_ocm4x8c(dd);
}
/*
void chk_busy(void)
{

 DDRA=0X00;
 DDRC=0XFF;
 DDRD=0XFF;
 clr_rs;
 set_rw;
 set_e;
 PORTA=0XFF;
 
 while(ask==0x80);
 clr_e;
 }
 
 void write_ocm4x8_data (unsigned char dat)
 {
  chk_busy();
  DDRA=0XFF;
  set_rs;
  clr_rw;
  set_e;
  PORTA=dat;
  clr_e;
  }
void write_ocm4x8_code (unsigned char dat)  
 {
  chk_busy();
  DDRA=0XFF;
  clr_rs;
  clr_rw;
  set_e;
  PORTA=dat;
  clr_e;
  }  
read_ocm4x8_data (void)
{unsigned char dat;
 chk_busy();
 DDRA=0X00;
 set_rs;
 set_rw;
 set_e;
 dat=PORTA;
 clr_e;
 return(dat);
 }*/
 
 void ocm4x8_init(void)
 {
   clr_reset;clr_reset;
   set_reset;set_reset;
   write_ocm4x8_code(0x30); 
   delay();
   write_ocm4x8_code(0x01);
   delay();
   write_ocm4x8_code(0x02);
   delay();
   write_ocm4x8_code(0x06);
   delay();
   write_ocm4x8_code(0x0c);
   delay();
 }
 
void asc_tran(unsigned char x,unsigned char *asc_p)
    {
	 while((*asc_p)!=0)
	    {
		 write_ocm4x8_code(0x80+x);
		 write_ocm4x8_data(*asc_p);
		 asc_p++;
		 x++;
		}	
	 } 
 void asc_tran1(unsigned char asc_p)
    {
//		 write_ocm4x8_code(0x80+x);
		 write_ocm4x8_data(asc_p);
	 } 
 
void hz_tran1(unsigned char x,unsigned char y,unsigned char *hz_p)
    {unsigned char i;
		// write_ocm4x8_code(0x80);
		// write_ocm4x8_data(*hz_p);
		// hz_p++;
		// write_ocm4x8_data(*hz_p);
		 while((*hz_p)!=0)
	    {if(y==0)
		 i=x;
		if(y==1)
		i=x+0x10;
		if(y==2)
		i=x+0x08;
		if(y==3)
		i=x+0x18;
		 write_ocm4x8_code(0x80+i);
		 write_ocm4x8_data(*hz_p);
		 hz_p++;
		 write_ocm4x8_data(*hz_p);
		 hz_p++;
		 x++;
		 }
	}	
/*--  调入了一幅图像:C:\WINNT\MGR.ico  --*/
/*--  宽度x高度=32x32  --*/
const unsigned char bmp_dz[]={
0x03,0xF0,0x00,0x00,0x0F,0xFC,0x00,0x00,0x1F,0xE2,0x00,0x00,0x3F,0xE7,0x00,0x00,
0x3F,0xE7,0x00,0x00,0x7F,0xCF,0x80,0x00,0x7F,0xBF,0x80,0x00,0x7F,0xFF,0x80,0x00,
0x7F,0xFF,0x87,0xE0,0x7F,0xBF,0x9F,0xF8,0x7F,0xCF,0xBF,0xC4,0x3F,0xE7,0x7F,0xCE,
0x3F,0xE7,0x7F,0xCE,0x1F,0xE2,0xFF,0x9F,0x0F,0xFC,0xFF,0x7F,0x03,0xF0,0xFF,0xFF,
0x03,0xF0,0xFF,0xFF,0x0F,0xFC,0xFF,0x7F,0x1F,0xE2,0xFF,0x9F,0x3F,0xE7,0x7F,0xCE,
0x3F,0xE7,0x7F,0xCE,0x7F,0xCF,0xBF,0xC4,0x7F,0xBF,0x9F,0xF8,0x7F,0xFF,0x87,0xE0,
0x7F,0xFF,0x80,0x00,0x7F,0xBF,0x80,0x00,0x7F,0xCF,0x80,0x00,0x3F,0xE7,0x00,0x00,
0x3F,0xE7,0x00,0x00,0x1F,0xE2,0x00,0x00,0x0F,0xFC,0x00,0x00,0x03,0xF0,0x00,0x00,
};	

/*--  调入了一幅图像:C:\WINNT\3.bmp  --*/
/*--  宽度x高度=128x64  --*/
const unsigned char wei[]={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x04,0x00,0x30,0x00,0x00,0x00,0x00,0x04,0x00,0x30,0x00,0x00,0x00,
0x00,0x00,0x30,0x0F,0x00,0x78,0x00,0x00,0x00,0x30,0x0F,0x00,0x78,0x00,0x00,0x00,
0x00,0x00,0x70,0x0F,0x00,0x7C,0x00,0x00,0x00,0x70,0x0F,0x00,0x7C,0x00,0x00,0x00,
0x00,0x03,0xE1,0x8F,0x18,0x7C,0x00,0x00,0x03,0xE1,0x8F,0x18,0x7C,0x00,0x00,0x00,
0x00,0x1F,0xE1,0xCF,0x18,0x7C,0x00,0x00,0x1F,0xE1,0xCF,0x18,0x7C,0x00,0x00,0x00,
0x00,0x7F,0xC1,0xC7,0x1C,0x78,0x00,0x00,0x7F,0xC1,0xC7,0x1C,0x78,0x00,0x00,0x00,
0x00,0x7F,0x01,0xC7,0x18,0x78,0x00,0x00,0x7F,0x01,0xC7,0x18,0x78,0x00,0x00,0x00,
0x00,0x3E,0x01,0xC7,0x18,0xF8,0x00,0x00,0x3E,0x01,0xC7,0x18,0xF8,0x00,0x00,0x00,
0x00,0x00,0x0D,0xFF,0xFC,0xF8,0x00,0x00,0x00,0x0D,0xFF,0xFC,0xF8,0x00,0x00,0x00,
0x00,0x00,0x1B,0xFF,0xFC,0xF0,0x00,0x00,0x00,0x1B,0xFF,0xFC,0xF0,0x00,0x00,0x00,
0x00,0x00,0x79,0xE0,0x78,0xFF,0xFF,0x00,0x00,0x79,0xE0,0x78,0xFF,0xFF,0x00,0x00,
0x00,0x01,0xF0,0x00,0x01,0xFF,0xFF,0x00,0x01,0xF0,0x00,0x01,0xFF,0xFF,0x00,0x00,
0x00,0x07,0xE3,0xC0,0x01,0xFF,0xFC,0x00,0x07,0xE3,0xC0,0x01,0xFF,0xFC,0x00,0x00,
0x00,0x3F,0xC7,0xFF,0xFB,0xC3,0x80,0x00,0x3F,0xC7,0xFF,0xFB,0xC3,0x80,0x00,0x00,
0x01,0xFF,0xC7,0xFF,0xF7,0x83,0x80,0x01,0xFF,0xC7,0xFF,0xF7,0x83,0x80,0x00,0x00,
0x01,0xFF,0xC6,0x00,0x0F,0x83,0x80,0x01,0xFF,0xC6,0x00,0x0F,0x83,0x80,0x00,0x00,
0x01,0xFF,0xC0,0x00,0x1F,0x07,0x80,0x01,0xFF,0xC0,0x00,0x1F,0x07,0x80,0x00,0x00,
0x00,0xE7,0xC0,0xFF,0xDF,0x87,0x80,0x00,0xE7,0xC0,0xFF,0xDF,0x87,0x80,0x00,0x00,
0x00,0x07,0xC0,0xFF,0xC3,0xC7,0x80,0x00,0x07,0xC0,0xFF,0xC3,0xC7,0x80,0x00,0x00,
0x00,0x07,0xC0,0x71,0xC1,0xE7,0x80,0x00,0x07,0xC0,0x71,0xC1,0xE7,0x80,0x00,0x00,
0x00,0x07,0xC0,0x71,0xC0,0xFF,0x00,0x00,0x07,0xC0,0x71,0xC0,0xFF,0x00,0x00,0x00,
0x00,0x07,0xC0,0x71,0xC0,0x7F,0x00,0x00,0x07,0xC0,0x71,0xC0,0x7F,0x00,0x00,0x00,
0x00,0x07,0xC0,0xF1,0x80,0x3F,0x00,0x00,0x07,0xC0,0xF1,0x80,0x3F,0x00,0x00,0x00,
0x00,0x07,0xC0,0xE1,0x8C,0x1F,0x00,0x00,0x07,0xC0,0xE1,0x8C,0x1F,0x00,0x00,0x00,
0x00,0x07,0xC1,0xE1,0xFC,0x3F,0xC0,0x00,0x07,0xC1,0xE1,0xFC,0x3F,0xC0,0x00,0x00,
0x00,0x07,0xC1,0xC3,0xF8,0x7F,0xE0,0x00,0x07,0xC1,0xC3,0xF8,0x7F,0xE0,0x00,0x00,
0x00,0x07,0xC3,0xC3,0xF0,0xFB,0xF8,0x00,0x07,0xC3,0xC3,0xF0,0xFB,0xF8,0x00,0x00,
0x00,0x07,0xCF,0x83,0xC3,0xF1,0xFE,0x00,0x07,0xCF,0x83,0xC3,0xF1,0xFE,0x00,0x00,
0x00,0x07,0xFF,0x00,0x0F,0xC0,0xFF,0x80,0x07,0xFF,0x00,0x0F,0xC0,0xFF,0x80,0x00,
0x00,0x07,0xDC,0x00,0x3F,0x80,0x7F,0xE0,0x07,0xDC,0x00,0x3F,0x80,0x7F,0xE0,0x00,
0x00,0x07,0xC0,0x01,0xFF,0x00,0x3F,0xC0,0x07,0xC0,0x01,0xFF,0x00,0x3F,0xC0,0x00,
0x00,0x07,0xC0,0x00,0xFC,0x00,0x1F,0xC0,0x07,0xC0,0x00,0xFC,0x00,0x1F,0xC0,0x00,
0x00,0x07,0x80,0x00,0x00,0x00,0x0F,0x80,0x07,0x80,0x00,0x00,0x00,0x0F,0x80,0x00,
0x00,0x03,0x00,0x00,0x00,0x00,0x06,0x00,0x03,0x00,0x00,0x00,0x00,0x06,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,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 bmp_pic(void)
{
 unsigned char x,y,z;
 unsigned int i=0;
 unsigned int a=0;
 write_ocm4x8_code(0x34);
 for(z=0;z<2;z++)
 {
  for(y=0;y<32;y++)
  { for(x=a;x<8+a;x++)
      {write_ocm4x8_code(0x80+y); 
	   write_ocm4x8_code(0x80+x);
	   write_ocm4x8_data(wei[i]);
	   i++;
	   write_ocm4x8_data(wei[i]);
	   i++;
	   }
   }
  a=8;
  }
  write_ocm4x8_code(0x36);
 }

 
 
void main(void)
{unsigned char i;
 init_devices();
 ocm4x8_init();
 //hz_tran();
 hz_tran1(0,0,"  青岛科技大学");
 hz_tran1(0,1,"电工&&电子实验室");
 hz_tran1(1,2,"小野蜂工作室"); 
 hz_tran1(1,3,"合上   开关"); 
 //bmp_pic();
 //for(i=0;i<64;i++)
 //asc_tran1(0x40+i);
 while(1)
 {;
  }
 }

⌨️ 快捷键说明

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