1286 4带字库程序_第1页
1286 4带字库程序_第2页
1286 4带字库程序_第3页
1286 4带字库程序_第4页
1286 4带字库程序_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、#include <reg51.h>#include <intrins.h>#define uchar unsigned char#define uint unsigned int/*TS12864A-3 端口定义*/#define LCD_data P0 /数据口sbit LCD_RS = P10; /寄存器选择输入 sbit LCD_RW = P11; /液晶读/写控制sbit LCD_EN = P25; /液晶使能控制sbit LCD_PSB = P12; /串/并方式控制sbit wela = P26;sbit dula = P27;uchar code dis

2、1 = "欢迎指导工作"uchar code dis2 = "淮南师范学院"uchar code dis3 = "罗雷雷"uchar code dis4 = "胡伟伟 "#define delayNOP(); _nop_();_nop_();_nop_();_nop_();uchar IRDIS2;uchar IRCOM4;void delay0(uchar x); /x*0.14MSvoid beep();void dataconv();void lcd_pos(uchar X,uchar Y); /确定显示位置

3、/*/* */* 延时函数 */* */*/void delay(int ms) while(ms-) uchar i; for(i=0;i<250;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;

4、return(result); /*/* */*写指令数据到LCD */*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(ucha

5、r dat) while(lcd_busy(); LCD_RS = 1; LCD_RW = 0; LCD_EN = 0; P0 = dat; delayNOP(); LCD_EN = 1; delayNOP(); LCD_EN = 0; /*/* */* LCD初始化设定 */* */*/void lcd_init() LCD_PSB = 1; /并口方式 lcd_wcmd(0x34); /扩充指令操作 delay(5); lcd_wcmd(0x30); /基本指令操作 delay(5); lcd_wcmd(0x0C); /显示开,关光标 delay(5); lcd_wcmd(0x01); /

6、清除LCD的显示内容 delay(5);/*/* */* 主程序 */* */*/ main() uchar i; delay(10); /延时 wela=0;dula=0; lcd_init(); /初始化LCD lcd_pos(0,0); /设置显示位置为第一行的第1个字符 i = 0; while(dis1i != '0') /显示字符 lcd_wdat(dis1i); i+; lcd_pos(1,0); /设置显示位置为第二行的第1个字符 i = 0; while(dis2i != '0') lcd_wdat(dis2i); /显示字符 i+; lcd_

7、pos(2,0); /设置显示位置为第三行的第1个字符 i = 0; while(dis3i != '0') lcd_wdat(dis3i); /显示字符 i+; lcd_pos(3,0); /设置显示位置为第四行的第1个字符 i = 0; while(dis4i != '0') lcd_wdat(dis4i); /显示字符 i+; while(1);/*/* */* 延时x*0.14ms子程序 */* */*/void delay0(uchar x) /x*0.14MS uchar i; while(x-) for (i = 0; i<13; i+) /*/* */* 设定显示位置 */* */*/void lcd_pos(uchar X,uchar Y) uchar pos; if

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论