📄 lcd_ocmj.c
字号:
#include<iom128v.h>
#include<macros.h>
#define ASK (PINE&0X40)
#define SBT_ANSWER PORTE|=BIT(PORTE7)
#define CLR_ANSWER PORTE&=~BIT(PORTE7)
#define SBT_RESET PORTC|=BIT(PORTC3)
#define CLR1_RESET PORTC&=~BIT(PORTC3)
#define DPORT_A PORTA
/*************************************/
void delay(unsigned char n)
{
unsigned char i;
for(;n>0;n--)
for(i=0;i<100;i++);
}
/**************************************/
void initail_ocmj(void)
{
MCUCR=0X00;
DDRA=0XFF;
DPORT_A=0XFF;
DDRE=0X80; ///PORTE.7作为输出脚
PORTE=0XFF;
DDRC=0X08;
CLR1_RESET;
delay(100);
SBT_RESET;
CLR_ANSWER;
delay(100);
}
/***************************************/
void ocmj_write(unsigned char adata)
{
while(ASK);
DPORT_A=adata;
_NOP();
SBT_ANSWER;
_NOP();
while(ASK==0);
CLR_ANSWER;
}
/********************************************/
void write_lcd_word(unsigned char cmd ,unsigned char x,unsigned char y,unsigned char *pp)
/// x:0x00~0x07 y:0x00~0x03
{ x+=2;
while(*pp!=0)
{ ocmj_write(cmd);
ocmj_write(x);
ocmj_write(y);
ocmj_write(*pp-0xa0);
pp++;
ocmj_write(*pp-0xa0);
pp++;
if(x<0x09)
x++;
else
{
x=0x02;
y++;
}
}
}
/**********************************************************************/
void write_asiic(unsigned char x,unsigned char y,unsigned char *asc_p)
{
x+=4;
while((*asc_p)!=0)
{
ocmj_write(0xf1);
ocmj_write(x);
ocmj_write(y);
ocmj_write(*asc_p);
asc_p++;
if (x<0x13)
x++;
else
{
x=0x04;
y+=8;
}
}
}
/********************************************************/
void write_a(unsigned char x,unsigned char y,unsigned char asc_p)
{
x+=4;
ocmj_write(0xf1);
ocmj_write(x);
ocmj_write(y);
ocmj_write(asc_p);
}
////CLR LCD
/********************************/
void DisplayListChar(unsigned char x,unsigned char y)
{
unsigned char i,asc_p;
asc_p=' ';
x+=4;
for(i=0;i<16;i++)
{ ocmj_write(0xf1);
ocmj_write(x+i);
ocmj_write(y);
ocmj_write(asc_p);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -