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

📄 ocmj4x8b(avr).c

📁 4X8B液晶模块驱动程序
💻 C
字号:
/***********************
型号:OCMJ4X8B
单片机:ATmega8
内部RC振荡:4M
编写人:肇庆金鹏电子 吴英生 0758-2317972
日期:2007/1/5
修改纪录:
***********************/
#include <iom8v.h>
#include <macros.h>

#define data_ora   PORTB              //MCU PROTB<------> LCM
#define uchar      unsigned char
#define uint       unsigned int

#define sbit(x,y)     (x|=(1<<y))    //Set Bit y of Byte x 
#define cbit(x,y)     (x&=~(1<<y))   //Clear Bit y of Byte x 
#define chkbit(x,y)   (x&(1<<y))     //Check Bit y of Byte x 
#define invbit(x,y)   (x^=(1<<y))    //Invert Bit y of Byte x

#define busy       PORTD     //PORTD0 H:已收到数据并在处理中,L:空闲可接收数据
#define req        PORTD     //PORTD1 请求信号,H有效

const uchar chn[]={
"本系列中文模块内"
"置二级字库,可在"
"任意位置反白显示"
"使用更方便更灵活"
};
const uchar eng[]={
"Golden Palm TECH"
"TEL:0758-2263858"
"  No.31 Jianshe "
"Road3 Zhaoqing  "
"P.R.China       "
"Postcode: 526040"
};
const uchar pic[]={
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,
0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x80,0x00,0x00,0x00,0x20,0x81,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x80,0x00,0x00,0x00,0x61,0x83,0x00,0xE0,0x00,0x00,0x0F,0xFF,0xE0,0x00,0x00,0x01,
0x80,0x00,0x00,0x00,0xE3,0x87,0x03,0xE0,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x01,
0x80,0x00,0x00,0x01,0xC7,0x8F,0x07,0xC0,0x00,0x1F,0xFF,0xFF,0xFF,0xF0,0x00,0x01,
0x80,0x00,0x00,0x23,0xCF,0x9E,0x0F,0x80,0x00,0xFF,0xFF,0xFF,0xFF,0xFE,0x00,0x01,
0x80,0x00,0x00,0x3B,0xFF,0xFF,0xFE,0x00,0x03,0xFF,0xFC,0x00,0x0F,0xFF,0x00,0x01,
0x80,0x00,0x00,0x3F,0xFF,0xFF,0xF8,0x00,0x0F,0xFF,0x80,0x00,0x00,0xFF,0x80,0x01,
0x80,0x00,0x00,0x3F,0xFF,0xFF,0xF0,0x00,0x3F,0xFF,0xFF,0xFF,0x00,0x0F,0xC0,0x01,
0x80,0x00,0x00,0x7C,0xFF,0xFF,0xC0,0x00,0xFF,0xFF,0xFF,0xFF,0xF0,0x07,0xC0,0x01,
0x80,0x00,0x00,0xFC,0xFF,0xFF,0x00,0x01,0xFF,0xFF,0xFF,0xFF,0xFE,0x01,0xE0,0x01,
0x80,0x00,0x01,0xFF,0xFF,0xF0,0x00,0x03,0xFF,0xFF,0xF0,0x00,0xFF,0x80,0xF0,0x01,
0x80,0x00,0x01,0xFF,0xFF,0x80,0x00,0x07,0xFF,0xFF,0xFF,0xE0,0x0F,0xE0,0x70,0x01,
0x80,0x00,0x01,0x87,0xFF,0xE0,0x00,0x0F,0xFF,0xFF,0xFF,0xFE,0x01,0xF0,0x30,0x01,
0x80,0x00,0x01,0x0F,0xFF,0xF0,0x00,0x1F,0xFF,0xFF,0xFF,0xFF,0xC0,0xF8,0x30,0x01,
0x80,0x00,0x00,0x7F,0xFF,0xF8,0x00,0x3F,0xFF,0xFF,0xFF,0xFF,0xF0,0x78,0x30,0x01,
0x80,0x00,0x01,0xFF,0xFF,0xFC,0x00,0x3F,0xFF,0xFF,0xFF,0xFF,0xF0,0x1C,0x30,0x01,
0x80,0x00,0x07,0xFF,0xFF,0xFE,0x00,0x7F,0xFF,0xFF,0xFF,0xFF,0xFC,0x1C,0x30,0x01,
0x80,0x00,0x1F,0xFF,0xFF,0xFE,0x00,0x7F,0xFF,0xFF,0xFF,0xFF,0xFE,0x0C,0x30,0x01,
0x80,0x00,0x3F,0xFF,0xFF,0xFE,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0x0C,0x30,0x01,
0x80,0x00,0x7F,0xFF,0xFF,0xFE,0x01,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x0C,0x30,0x01,
0x80,0x00,0xFF,0xFF,0xFF,0xFE,0x01,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x18,0x20,0x01,
0x80,0x00,0xFF,0xFF,0xFF,0xFE,0x03,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x10,0x40,0x01,
0x80,0x00,0xFF,0xFF,0xFF,0xFF,0x07,0xFF,0xFF,0xFF,0xFF,0xFE,0x3F,0x00,0x80,0x01,
0x80,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x9F,0x00,0x00,0x01,
0x80,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xCF,0x00,0x00,0x01,
0x80,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0xEF,0x00,0x00,0x01,
0x80,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0xE7,0x00,0x00,0x01,
0x80,0x00,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xBF,0xE6,0x00,0x00,0x01,
0x80,0x00,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xBF,0xE6,0x00,0x00,0x01,
0x80,0x00,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0xFF,0xBF,0xC6,0x00,0x00,0x01,
0x80,0x00,0x1F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0xFF,0x9F,0xC6,0x00,0x00,0x01,
0x80,0x00,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0x7F,0xFF,0x9F,0x0C,0x00,0x00,0x01,
0x80,0x00,0x07,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0x7F,0xFE,0x1E,0x0C,0x00,0x00,0x01,
0x80,0x00,0x03,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0x7F,0xFE,0x1E,0x0C,0x00,0x00,0x01,
0x80,0x00,0x01,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0x7F,0xFE,0x1C,0x0C,0x00,0x00,0x01,
0x80,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xF0,0xFE,0xFC,0x18,0x0C,0x00,0x00,0x01,
0x80,0x00,0x00,0x7F,0xFF,0xFF,0xFF,0xFF,0xE0,0xF8,0xF8,0x10,0x08,0x00,0x00,0x01,
0x80,0x00,0x00,0x3F,0xFF,0xFF,0xFF,0xFF,0xE0,0xF9,0xF0,0x10,0x00,0x00,0x00,0x01,
0x80,0x00,0x00,0x1F,0xFF,0xFF,0xFF,0xFF,0x21,0xF1,0xC0,0x00,0x00,0x00,0x00,0x01,
0x80,0x00,0x00,0x0F,0xFF,0xFF,0xFF,0xFE,0x21,0x81,0x00,0x00,0x00,0x00,0x00,0x01,
0x80,0x00,0x00,0x07,0xFF,0xFF,0xFF,0xFE,0x11,0x01,0x00,0x00,0x00,0x00,0x00,0x01,
0x80,0x00,0x00,0x01,0xFF,0xFE,0x7F,0xFE,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x80,0x00,0x00,0x00,0x7F,0xF8,0x3F,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x80,0x00,0x00,0x00,0x1F,0xF0,0x0F,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x80,0x00,0x00,0x00,0x07,0xE6,0x03,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x80,0x00,0x00,0x00,0x03,0xE0,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x80,0x00,0x00,0x00,0x01,0xC0,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x80,0x00,0x00,0x00,0x01,0xC0,0x00,0x64,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x80,0x00,0x00,0x00,0x03,0xE0,0x00,0x3A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x80,0x00,0x00,0x00,0x06,0x20,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x80,0x00,0x00,0x00,0x0C,0x20,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x80,0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x80,0x00,0x00,0x00,0x31,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x80,0x00,0x00,0x00,0xE1,0x90,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x80,0x00,0x01,0xFF,0xC1,0x81,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x80,0x00,0x03,0xFA,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x80,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,
0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
};

/*****1us延时函数****/
void delay_1us(void)
{
  asm("nop");
}

/****Nus延时函数****/
void delay(uint n)
{
  uint i=0;
  for (i=0;i<n;i++)
    delay_1us();
}

/****1ms延时函数****/ 
void delay_1ms(void)
{
  uint i;
  for (i=0;i<1140;i++);
}

/****Nms延时函数****/ 
void delay1(uint n)
{
  uint i=0;
  for (i=0;i<n;i++)
    delay_1ms();
}

/*******IO口初始化******/
void port_init(void)
{
  PORTB=0xff;
  DDRB=0xff;
  PORTD=0xff;
  DDRD=0xfe;
}

/***********显示图形***********/
void disp_img (const uchar *img)
{
  uchar i,j;
  for(j=0;j<64;j++)
  {
    for(i=4;i<20;i++)
    {
      wr_zb(0xf3,i,j);
      send(img[j*16+i-4]);
    }
  }
}

/*----------显示中文----------*/
void disp_chn (const uchar *chn)
{
  uchar i,j;
  for(j=0;j<4;j++)
  {
    for(i=2;i<10;i++)
    {
      wr_zb(0xf0,i,j);
      send(chn[j*16+(i-2)*2]-0xa0);
      send(chn[j*16+(i-2)*2+1]-0xa0);
    }
  }
}

/*------显示字符(8X16点阵)-----*/
void disp_eng (const uchar *eng)
{
  uchar i,j;
  for(j=0;j<4;j++)
  {
    for(i=4;i<20;i++)
    {
      wr_zb(0xf9,i,j*16);
      send(eng[j*16+i-4]);
    }
  }
}

/*------------写命令或数据到LCD--------------*/
void wr_zb (uchar comm,uchar addr_x,uchar addr_y)
{
  send(comm);
  send(addr_x);
  send(addr_y);
}

/*----写命令或数据------*/
void send (uchar dat)
{
  while(chkbit(PIND,PIND0));
  data_ora=dat;
  sbit(req,PORTD1);
  while(!chkbit(PIND,PIND0));
  cbit(req,PORTD1);
}

/*+++++++++主程序++++++++++*/
void main ()
{
  CLI();
  MCUCR=0x00;
  GICR=0x00;
  TIMSK=0x00; //timer interrupt sources
  port_init();
  cbit(req,PORTD1);
  sbit(busy,PORTD0);
  while(1)
  {
    send(0xf4);
    disp_chn(chn);
    delay1(800);
    send(0xf4);
    disp_eng(eng);
    delay1(800);
    send(0xf4);
	disp_img(pic);
	delay1(800);
  }
}

⌨️ 快捷键说明

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