OCMJ510B型液晶驱动 For AVR (Mega16L)_☆电子学习笔记☆

OCMJ510B型液晶驱动 For AVR (Mega16L)_☆电子学习笔记☆

OCMJ5*10B型液晶驱动 For AVR (Mega16L)2007年07月11日 星期三 15:02驱动代码OCMJ.c和主程序LCD.c
以下是OCMJ.c代码:
/********************************************************************************
OCMJ5*10B型液晶驱动 For AVR (Mega16L)
ICC AVR 环境下测试通过

********************************************************************************/
#include <iom16v.h>
#include <macros.h>
/********************************************************************************
数据类型的定义
********************************************************************************/
#define uchar unsigned char
/********************************************************************************
位变量操作宏定义
********************************************************************************/
#define (BIT_SET(a,b)) a|=BIT(b)
#define (BIT_CLR(a,b)) a&=~BIT(b)
#define (BIT_INV(a,b)) a^|=BIT(b)
#define (BIT_STATUS(a,b)) a&BIT(b)
/********************************************************************************
OCMJ控制位操作定义
硬件连线如下,使用时须根据实际连线变更
OCMJ_busy ---->PA5
OCMJ_req ---->PA6
********************************************************************************/
#define CLR_BUSY BIT_CLR(PORTA,PA5) //强制拉低
#define SET_BUSY BIT_SET(PORTA,PA5) //强制拉高,上拉
#define HLD_BUSY BIT_SET(DDRA,PA5) //Mega16控制总线
#define RLS_BUSY BIT_CLR(DDRA,PA5) //释放总线
#define STU_BUSY BIT_STATUS(PINA,PA5) //数据线的状态
#define CLR_REQ BIT_CLR(PORTA,PA6) //强制拉低
#define SET_REQ BIT_SET(PORTA,PA6) //强制拉高,上拉
#define HLD_REQ BIT_SET(DDRA,PA6) //Mega16控制总线
#define RLS_REQ BIT_CLR(DDRA,PA6) //释放总线
#define STU_REQ BIT_STATUS(PINA,PA6) //数据线的状态
//---------------------------------------------------------
//硬件连接线定义,使用时需另外定义
//---------------------------------------------------------
#define LCD_OUT PORTB
//---------------------------------------------------------
//---------------------------------------------------------
//程序名:extern void sub_lcd(uchar in)
//功能:OCMJ5*10B型LCD驱动子程序
//说明:在in中传入要发送的字节
void sub_lcd(uchar in)
{ RLS_BUSY;
while(STU_BUSY);
_NOP(


);
LCD_OUT=in;
_NOP();
SET_REQ;
while(!(STU_BUSY));
_NOP();
CLR_REQ;
_NOP();
}
//------------------------------------------------------

Word文档免费下载Word文档免费下载:OCMJ510B型液晶驱动 For AVR (Mega16L)_☆电子学习笔记☆ (共3页,当前第1页)

OCMJ510B型液晶驱动 For AVR (Mega16L)_☆电子学习笔记☆相关文档

最新文档

返回顶部