LCD12864液晶显示器C51单片机子程序.doc
-
资源ID:8775740
资源大小:19.50KB
全文页数:3页
- 资源格式: DOC
下载积分:12金币
快捷下载
![游客一键下载](https://static.bingdoc.com/images/hot.gif)
账号登录下载
微信登录下载
三方登录下载:
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
LCD12864液晶显示器C51单片机子程序.doc
1、#include #ifndef _LCD12864_H_#define _LCD12864_H_#include #define uchar unsigned char#define uint unsigned int/*端口定义*/#define LCD_data P0 /数据口sbit LCD_RS = P27; /寄存器选择输入 sbit LCD_RW = P26; /液晶读/写控制sbit LCD_EN = P25; /液晶使能控制sbit LCD_PSB = P14; /串/并方式控制#define delayNOP(); _nop_();_nop_();_nop_();_nop_
2、();/* 延时函数 */void delay1(int ms) while(ms-) uchar i; for(i=0;i250;i+) _nop_(); _nop_();_nop_();_nop_(); /*检查LCD忙状态 */*lcd_busy为1时,忙,等待。lcd-busy为0时,闲,可写指令与数据。*/bit lcd_busy() bit result; LCD_RS = 0; LCD_RW = 1; LCD_EN = 1; delayNOP(); result = (bit)(P0&0x80); LCD_EN = 0; return(result); /*写指令到LCD */*
3、RS=L,RW=L,E=高脉冲,D0-D7=指令码。*/void lcd_wcmd(uchar cmd) /while(lcd_busy(); LCD_RS = 0; LCD_RW = 0; LCD_EN = 0; _nop_(); _nop_(); P0 = cmd; delayNOP(); LCD_EN = 1; delayNOP(); LCD_EN = 0; /*写数据到LCD */*RS=H,RW=L,E=高脉冲,D0-D7=数据。*/void lcd_wdat(uchar dat) /while(lcd_busy(); LCD_RS = 1; LCD_RW = 0; LCD_EN =
4、 0; P0 = dat; delayNOP(); LCD_EN = 1; delayNOP(); LCD_EN = 0;/*显示字符串函数*/void lcd_string(uchar *pt) while(*pt != 0) lcd_wdat(*pt+); /* LCD初始化函数 */void lcd_init() LCD_PSB = 1; /并口方式 lcd_wcmd(0x34); /扩充指令操作 delay1(5); lcd_wcmd(0x30); /基本指令操作 delay1(5); lcd_wcmd(0x0C); /显示开,关光标 delay1(5); lcd_wcmd(0x01); /清除LCD的显示内容 delay1(5);/* 延时x*0.14ms子程序 */void delay0(uchar x) /x*0.14MS uchar i; while(x-) for (i = 0; i13; i+) /* 设定显示位置函数 */void lcd_pos(uchar X,uchar Y) uchar pos; if (X=0) X=0x80; else if (X=1) X=0x90; else if (X=2) X=0x88; else if (X=3) X=0x98; pos = X+Y ; lcd_wcmd(pos); /显示地址#endif