1602.rar

  • PUDN用户
    了解作者
  • C/C++
    开发工具
  • 3KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • 1 积分
    下载积分
  • 2
    下载次数
  • 2010-04-15 23:26
    上传日期
1602液晶驱动 包含字符显示与简易接口
1602.rar
  • LCD1602DRIVER.h
    2.4KB
  • LCD1602DRIVER.c
    4.9KB
内容介绍
//************************************************************ //Copyright(C)2007,桂林电子科技大学电子工程学院科技协会 // LCD1602液晶驱动源文件 //文件名称:LCD1602DRIVER.c //文件标识:(内参) //摘 要: // 1.配合头文件使用; // 2.硬件参考作品; // 3.LCD1602功能参数设置(当前液晶为YJ-1602A). // //当前版本:1.0 //作 者:RYUDO //完成日期:2007.5.5 // //取代版本:无 //原 作 者:余新凯 //完成日期:2006.7.25 // //函数声明清单: // 1. void InitLCD (void); // 2. void SendCommand (uchar val); // 3. void SendData (uchar val); // 4. void DispStr (uchar X,uchar Y,uchar *Str); // 5. void DispNum (uchar X,uchar Y,ulong num); // 6. void DispByte (uchar X,uchar Y,uchar vel); // 7. void GotoXY (uchar X,uchar Y); //*********************************************************** #include"C8051F020Init.h" #include"LCD1602DRIVER.h" static void LCDisBusy(); //******************************************* //函数名称:void LCDisBusy(void) //函数功能:判断液晶是否忙函数 //形式参数:无 //行参说明:无 //返回参数:无 //使用说明:文件私有函数,外部不可调用 //******************************************* void LCDisBusy(void) { bit isbusy=1; IO_IN_SETTING(); LCD_Data=0XFF; LCD_RS=0; LCD_RW=1; _nop_();_nop_();_nop_(); LCD_E=1; do{ isbusy=LCD_Data&0X80; }while(isbusy==1); _nop_();_nop_();_nop_(); _nop_(); LCD_E=0; } #if INITLCD_EN //******************************************* //函数名称:void InitLCD(void) //函数功能:液晶初始化 //形式参数:无 //行参说明:无 //返回参数:无 //使用说明:无 //******************************************* void InitLCD(void) { LCD_CMD_PORT_OUT_SETTING( ); LCD_E=0; #ifdef CURSOR_REST SendCommand(CURSOR_REST); #endif _delay_ms( 1 ); #ifdef LCDREST SendCommand(LCDREST); #endif _delay_ms( 1 ); #ifdef FUNCTION SendCommand(FUNCTION); #endif _delay_ms( 1 ); #ifdef ENTRY_MODE SendCommand(ENTRY_MODE); #endif _delay_ms( 1 ); #ifdef DISPLAY_ON_OFF SendCommand(DISPLAY_ON_OFF); #endif _delay_ms( 1 ); #ifdef LCDADDRESS SendCommand(LCDADDRESS); #endif _delay_ms( 1 ); } #endif #if SENDCOMMAND_EN //******************************************* //函数名称:void SendCommand(uchar val) //函数功能:把指令发送给LCD //形式参数:uchar val //行参说明:要发送的指令代码 //返回参数:无 //使用说明:无 //******************************************* void SendCommand(uchar val) { IO_OUT_SETTING( ); LCD_RS=0; LCD_RW=0; LCD_Data=val; _nop_();_nop_();_nop_(); LCD_E=1; _delay_500ns( ); LCD_E=0; LCDisBusy(); } #endif #if SENDDATA_EN //******************************************* //函数名称:void SendData(uchar val) //函数功能:把数据发送给LCD //形式参数:uchar val //行参说明:要发送的数据 //返回参数:无 //使用说明:无 //******************************************* void SendData(uchar val) { IO_OUT_SETTING( ); LCD_RS=1; LCD_RW=0; LCD_Data=val; _nop_();_nop_();_nop_(); LCD_E=1; _delay_500ns( ); LCD_E=0; LCDisBusy(); } #endif #if DISPSTR_EN //******************************************* //函数名称:void DispStr(uchar X,uchar Y,uchar *Str) //函数功能:在当前位置显示字符串 //形式参数:uchar X,uchar Y,uchar *Str //行参说明: // X :液晶显示的列地址 // Y :液晶显示的行地址 // *str:要显示的字符串的首地址 //返回参数:无 //使用说明:无 //******************************************* void DispStr(uchar X,uchar Y,uchar *Str) { uchar i=0; GotoXY(X,Y); while(*Str!='\0') { SendData(*Str); Str++; } } #endif #if DISPNUM_EN //******************************************* //函数名称:void DispNum(uchar X,uchar Y,ulong num) //函数功能:在当前位置显示数字 //形式参数:uchar X,uchar Y,ulong num //行参说明: // X :液晶显示的列地址 // Y :液晶显示的行地址 // num :要显示的数字 //返回参数:无 //使用说明:无 //******************************************* void DispNum(uchar X,uchar Y,ulong num) { uchar i = 10; uchar vec[10]; vec[i] =0x00; do { vec[--i] = num%10 + 0x30; num /= 10; } while (num!=0); DispStr(X,Y,vec+i); } #endif #if DISPBYTE_EN //******************************************* //函数名称:void DispByte(uchar X,uchar Y,uchar vel) //函数功能:在当前位置显示一个字符 //形式参数:uchar X,uchar Y,uchar vel //行参说明: // X :液晶显示的列地址 // Y :液晶显示的行地址 // vel :要显示的字符 //返回参数:无 //使用说明:无 //******************************************* void DispByte(uchar X,uchar Y,uchar vel) { GotoXY(X,Y); SendData(vel); } #endif #if GOTOXY_EN //******************************************* //函数名称:void GotoXY(uchar X,uchar Y) //函数功能:设置字符显示的位置 //形式参数:uchar X,uchar Y //行参说明: // X :液晶显示的列地址 // Y :液晶显示的行地址 //返回参数:无 //使用说明:无 //******************************************* void GotoXY(uchar X,uchar Y) { if(Y==0) SendCommand(0x80|X); else SendCommand(0xc0|X); } #endif
评论
    相关推荐
    • 数据库课程设计
      一个数据库课程设计,access管理工具实现,用的是窗体!
    • 数据库课程设计
      数据库课程设计十分完整有需要的请下载啊谢谢
    • 数据库课程设计
      广东工业大学数据库课程设计,可视化界面连接数据库,delphi7
    • 数据库课程设计
      数据库课程设计实验及其描述 数据库课程设计实验及其描述 数据库课程设计实验及其描述 数据库课程设计实验及其描述 数据库课程设计实验及其描述 数据库课程设计实验及其描述
    • 数据库课程设计
      数据库课程设计》由周爱武、汪海威、肖云编著,遵循数据库课程设计的具体要求,独立于具体的数据库教材,从实际应用系统的需求着手,引导读者逐步完成数据库设计全过程,重点讲解数据库系统的需求分析、概念设计、...
    • 数据库课程设计
      数据库课程设计人事管理系统 数据库课程设计人事管理系统数据库课程设计人事管理系统数据库课程设计人事管理系统数据库课程设计人事管理系统数据库课程设计人事管理系统数据库课程设计人事管理系统数据库课程设计...
    • 数据库课程设计
      数据库课程设计,基于visual basic自助银行管理系统,界面很清爽,实用。同学都说好,所以就上传了!!!
    • 数据库课程设计
      数据库课程设计 里面有详细的文档资料 包含数据库一切的图 以及生成的数据库表文件 期末得分为优秀
    • 数据库课程设计
      可以作为数据库课程设计,也可以作为Java的课程设计,内容全面。本资源转载的,非本人原创。用于交流学习,特此申明!
    • 数据库课程设计
      数据库课程设计蓝天大学学生管理系统 2.商店信息管理系统 3.实验室机房收费管理系统 4.图书馆资料检索系统 5.企业库存管理系统 6.仓库管理系统 7.工程项目管理系统 8.教材管理系统 9.企业人事管理系统 10.企业财务...