📄 lio.c~
字号:
#include <mega128.h>
#include "delay.h"
#include "lio.h"
#include "ucos_ii.h"
#define uchar unsigned char
/* 定义OCMJ4X8端口 */
#define data_port PORTA
#define ASK PINE.6
#define ANSWER PORTE.7
#define RESET PORTC.3
/************函数声明**************/
void ocmj_init(void);
void ocmj_write(uchar data);
void bmp_tran(uchar x,uchar y,uchar high,uchar width,flash uchar *bmp_p);
void hz_tran(uchar x,uchar y,uchar flash *hz_p);
void asc_tran(uchar x,uchar y,uchar flash *asc_p);
/***************主函数*************/
void LCD_disp(void)
{
ocmj_init();//初始化
ocmj_write(0xf4); //清屏
hz_tran(0,0,"第一路信号"); //传送内部汉字,以16*16为一个汉字单元
asc_tran(10,6,":");
hz_tran(0,1,"第二路信号");
asc_tran(10,22,":");
hz_tran(0,2,"第三路信号");
asc_tran(10,38,":");
hz_tran(0,3,"第四路信号");
asc_tran(10,54,":");
while(1)
{
OSTimeDly(50); //延时以让出CPU
}
}
/*****************************************/
/* OCMJ4X8LCD初始化 */
void ocmj_init(void)
{
RESET=0; //LCD复位
delay_ms(10);
RESET=1;
ANSWER=0;
delay_ms(10);
}
/* 写数据到LCD */
void ocmj_write(uchar data)
{
while(ASK!=0);
data_port=data;
delay_ms(2);
ANSWER=1;
delay_ms(2);
while(ASK==0);
ANSWER=0;
}
/* 传送bmp点阵数据到LCD */
/* x:0~15(字节为单位) y:0~64 */
/* bmp_p:指向图形数据的指针 */
/* high:位图高度(点阵行为单位) */
/* width:位图宽度(以字节为单位)? */
void bmp_tran(uchar x,uchar y,uchar high,uchar width,flash uchar *bmp_p)
{
uchar i,j;
x+=4;
for(j=0;j<high;j++)
{
for(i=0;i<width;i++)
{
ocmj_write(0xf3);
ocmj_write(x);
ocmj_write(y);
ocmj_write(*bmp_p);
bmp_p++;
x++;
}
x-=width;
y++;
}
}
/* 传送LCD内部汉字数据到LCD */
/* x:0x00~0x07 y:0x00~0x03 */
void hz_tran(uchar x,uchar y,uchar flash *hz_p)
{
x+=2;
while((*hz_p)!=0)
{
ocmj_write(0xf0);
ocmj_write(x);
ocmj_write(y);
ocmj_write(*hz_p-0xa0);
hz_p++;
ocmj_write(*hz_p-0xa0);
hz_p++;
if(x<0x09)
x++;
else
{
x=0x02;
y++;
}
}
}
/* 传送ASCII字母到LCD */
/* x:0x00~0x0f y:0~64 */
void asc_tran(uchar x,uchar y,uchar flash *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;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -