Toggle navigation
科创
{{ getSearchSuggestionLabel(suggestion) }}
{{ part.text }}
查看更多
登录
 
注册
电波
论坛
专栏
应用
登录
注册
{{ getSearchSuggestionLabel(suggestion) }}
{{ part.text }}
查看更多
论坛
>
计算机科学
>
软件综合
文号
t18668
阅读
4261
回复
5
收藏
5
利用最少的连线操作LCD1602液晶屏程序(转)
jrcsh
2009/08/14
软件综合
IP:广东
#define DPORT PORTB // 定义数据端口为B端口
#define DTRIS TRISB // 定义数据端口的方向
#define CTRIS_E TRISC0 // 定义端口的方向
#define CTRIS_RS TRISC1 // 定义端口的方向
#define RS RC1
#define E RC0
void LCD_WriteComm(unsigned int TheComm){
// 定义向LCD写一个指令字的函数
CTRIS_RS = 0; // 定义端口为写状态
CTRIS_E = 0;
DTRIS = 0x00;
DPORT = TheComm; // 把数据输出到端口,实际上只是高4位
RS = 0;
E = 0;
E = 0; // 多了一个指令,是为了让信号电平有足够得时间稳定
E = 1;
DPORT = TheComm<<4; // 将数据的低4位移位到高4位,输出到端口
RS = 0;
E = 0;
E = 0;
E = 1;
}
void LCD_WriteDate(unsigned int Hang,unsigned int No,unsigned char TheDate){
// 定义向LCD的第Hang行的第No个位置,写字符TheDate
// Hang:0,1; No:0-15;
unsigned char tmpi;
tmpi = Hang*0x40+No+0x80; // 计算地址指针
LCD_NoBusy();
CTRIS_RS = 0;
CTRIS_E = 0;
DTRIS = 0x00;
DPORT = tmpi;
RS = 0;
E = 0;
E = 0;
E = 1;
DPORT = tmpi<<4;
E = 0;
E = 0;
E = 1;
LCD_NoBusy();
DTRIS = 0x00;
DPORT = TheDate;
RS = 1;
E = 0;
E = 0;
E = 1;
DPORT = TheDate<<4;
E = 0;
E = 0;
E = 1;
}
void LCD_NoBusy(){
delay(2);
}
void LCD_init()
// 初始化LCD显示屏
{
delay(20); //1、延时大约20ms
CTRIS_RS = 0;
CTRIS_E = 0;
DTRIS = 0x00;
DPORT = 0x30;
RS = 0;
E = 0;
E = 0;
E = 1;
delay(5);
DPORT = 0x30;
RS = 0;
E = 0;
E = 0;
E = 1;
delay(2);
DPORT = 0x30;
RS = 0;
E = 0;
E = 0;
E = 1;
delay(2);
DPORT = 0x20;
RS = 0;
E = 0;
E = 0;
E = 1;
delay(2);
LCD_WriteComm(0x28);
delay(4);
LCD_WriteComm(0x08); //4、写指令08H,关闭LCD
LCD_NoBusy();
LCD_WriteComm(0x01); //5、写指令01H,清屏LCD
LCD_NoBusy();
LCD_WriteComm(0x06); //6、写指令06H
LCD_NoBusy();
LCD_WriteComm(0x0C); //7、写指令0CH
};
来自:
计算机科学
/
软件综合
5
0
全部
只看作者
AsyncMaster
17年5个月前
IP:未同步
140300
1楼
呃。。不就是四线模式吗。。
加载全文
引用
评论
0
warmonkey
17年5个月前
IP:未同步
140390
2楼
不如RS485-mcu-lcd方式
加载全文
引用
评论
0
boddmg
17年5个月前
IP:未同步
143480
3楼
用得着吗
最爽的是用74XX595
不过速度慢点就是了
加载全文
引用
评论
0
kangyuhelf2
17年5个月前
IP:未同步
143493
4楼
- -!
刚想找。赞一个
加载全文
引用
评论
0
全部
只看作者
在列表中查看
笔记
{{note.content}}
{{n.user.username}}
{{fromNow(n.toc)}} {{n.status === noteStatus.disabled ? "已屏蔽" : ""}} {{n.status === noteStatus.unknown ? "正在审核" : ""}} {{n.status === noteStatus.deleted ? '已删除' : ''}}
编辑
删除
{{n.status === 'disabled' ? "解除屏蔽" : "屏蔽" }}
保存
取消
我也是有底线的
保存中...
保存