打印

写了个1602 液晶驱动,各位看用着如何

[复制链接]
1241|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
max116|  楼主 | 2012-6-11 23:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 max116 于 2012-6-20 19:09 编辑

!!已经下载的同学注意
void lcd_ddpos(unsigned char y,unsigned char x)
{                          //设定显示位置

unsigned char pos = ((y-1)<<6) + (x-1);

lcd_wcmd(pos | 0x80);
}

这个函数修改了,不好意思,之前没注意运算符优先级。



写这个的时候,看1602 的设置不是正交的,又没办法读出当前设置,比较麻烦,不知有何解决办法?
以下是头文件,源码见附件
#ifndef _LCD_H
#define _LCD_H
#include<reg51.h>
#include <intrins.h>
#include"includ.h" /*延时函数及其他通用函数*/

//清屏
#define lcd_clr() lcd_wcmd(0x1)

//归位
#define lcd_gohome() lcd_wcmd(0x02)

sbit LCD_RS = P2^0;            
sbit LCD_RW = P2^1;
sbit LCD_EP = P2^2;

//忙检测
bit lcd_bz();

//写命令
void lcd_wcmd(unsigned char cmd);

//设定RAM 地址后,写入数据
void lcd_wdat(unsigned char dat);

//读数据
unsigned char lcd_rdat();

//读AC 值
unsigned char get_pos();

//DDRAM位置设置
void lcd_ddpos(unsigned char y,unsigned char x);

//CGRAM位置设置
void lcd_cgpos(char pos);

//输入方式,iord = 1则AC 自增,shift = 1则 画面平移
void lcd_hinsert(bit iord, bit shift);

// 开/关 显示。cur = 1则 显示光标,flash = 1 则 光标闪烁
void lcd_on( bit cur, bit flash);
void lcd_off(bit cur, bit flash);

//sorc = 1选择画面,否则为光标。lorr = 1 则右移,否则左移
void lcd_corsmov(bit cors, bit lorr);

//wdata(位宽:8/4,本实现现仅支持8位模式)nline(显示行数:2/1)

// dot (1: 5*10 点阵,0: 5*7 点阵)
void lcd_funset(char wdata, char nline, bit dot);

void lcd_init();

#endif

lcd.zip

1.62 KB

相关帖子

沙发
joing1999| | 2012-6-12 14:21 | 只看该作者
额……这个,我有全套的。你要不?

使用特权

评论回复
板凳
max116|  楼主 | 2012-6-12 18:26 | 只看该作者
2# joing1999
好啊,省的自己写了,哈哈

使用特权

评论回复
地板
hjs1618| | 2012-6-12 19:12 | 只看该作者
能给我个吗

使用特权

评论回复
5
wukunshan| | 2012-6-13 12:32 | 只看该作者
那么辛苦在这里求人,还不如去我的博客看,那里有完整详细的代码和电路。http://wushifuc51.21ic.org

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

7

帖子

1

粉丝