PIC16F877A驱动12864液晶

本程序配套液晶为金鹏的12864液晶使用串行模式

头文件

#ifndef LCD12864_H
#define LCD12864_H
#include  "main.h"

//define control port pin
//serial mode
//#define SCLK RD4
//#define STD RD5
//#define LCD_EN RD6
//parallel mode
#define PSB RA0
#define CS RA1
#define STD RA2
#define SCLK RA3
#define RST RA4

//define command word
#define CLR_LCD 0x01 ;
#define CLR_AC 0x02 ;
#define CURSOR_RIGHT 0x14
#define CURSOR_LEFT 0x10
#define CURSOR_ON 0x0F
#define CURSOR_OFF 0x0C
#define DISP_RIGHT 0x1C
#define DISP_LEFT 0x18
#define LCD_BUSY RD7


//define function
#define lcd_enable() CS=1
#define lcd_disable() CS=0
//4个基本函数
void init_lcd() ;
void wr_lcd(uchar flag,uchar data) ;//flag=0 command;flag=1,data
void send_cmd(uchar data ) ;
void send_byte(uchar data) ;
//4个低级封装函数实现字符、字符串的显示、汉字的显示和简单图像的显示
void char_disp(const char data,uchar X,uchar Y) ;
void str_disp(const char *data,uchar X,uchar Y) ;
void chn_disp(const char *data ,uchar add,uchar y,uchar count) ;
void clr_lcd() ;
void pic_disp1(uchar *img) ;
void pic_disp2(uchar *img) ;
void con_disp(uchar x0,uchar y0,uchar x1,uchar y1) ;
//控制显示函数
void shift_cursor(uchar flag,uchar count) ;
void shift_lcd(uchar flag,uchar count) ;
void locate_xy(uchar x,uchar y) ;
void lcd_rol() ;
void clr_ram() ;
//字符串处理
void float_str(uchar *str,float data) ;
void int_str(uchar *str,int data) ;
#endif
子程序

#include "lcd12864.h"
void init_lcd()
{
//init port ;
 ADCON1=0x06 ;//AD端口作为数字量端口
 TRISA=TRISA&0xE0 ;
 RST=0 ;
 DelayMs(20) ;
 RST=1 ;
 DelayMs(20) ;
 PSB=0 ;

 send_cmd(0x38) ;
 DelayUs(72) ;
// send_cmd(0x38,0) ;//8位控制,基本指令集
 send_cmd(0x38) ;
 DelayUs(72) ;
 send_cmd(0x38) ;
 send_cmd(0x38) ;
 send_cmd(0x30) ;
 send_cmd(0x0C) ;
 send_cmd(0x01) ;
 send_cmd(0x06) ;
 clr_lcd() ;
}
//两位小数三位整数的浮点数变为字符串
void float_str(uchar *str,float data)
{
 uchar a[6],flag ;
 int tem

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值