《液晶1602程序.pdf》由会员分享,可在线阅读,更多相关《液晶1602程序.pdf(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 /液晶 1602 程序 /这是我读大学那年,生产实习做项目时写的,绝对没问题,请大家放心使用。/当时我写这程序时,查了很多资料,花了很多时间。/现传到网上,希望能给大家带来便利。#include#include#include#include /*LCD1602 设置 START*#define LCD_DB P0 sbit LCD_RS=P23;sbit LCD_RW=P24;sbit LCD_E=P25;/*定义函数*/#define uchar unsigned char#define uint unsigned int void LCD_init(void);/初始化函数 void
2、LCD_write_command(uchar command);/写指令函数 void LCD_write_data(uchar dat);/写数据函数 void LCD_disp_char(uchar x,uchar y,uchar dat);/在某个屏幕位置上显示一个字符,X(0-15),y(1-2)void LCD_disp_str(uchar x,uchar y,uchar*str);/LCD1602 显示字符串函数 void delay_n10us(uint n);/延时函数 uint jishu,jishu1=0,wendu,bb,fen=0,miao=0,fmiao=0;/*-
3、;模块名称:LCD_init();功 能:初始化 LCD1602 ;占用资源:-;参数说明:-;-*/void delay(uint z)uint i,j;for(i=z;i0;i-)for(j=100;j0;j-);void LCD_init(void)delay_n10us(10);LCD_write_command(0 x38);/设置 8 位格式,2 行,5x7 delay_n10us(10);LCD_write_command(0 x0c);/整体显示,关光标,不闪烁 delay_n10us(10);LCD_write_command(0 x06);/设定输入方式,增量不移位 del
4、ay_n10us(10);LCD_write_command(0 x01);/清除屏幕显示 delay_n10us(100);/延时清屏,延时函数,延时约 n 个 10us /*-;模块名称:LCD_write_command();功 能:LCD1602 写指令函数 ;占用资源:P2.0-RS(LCD_RS),P2.1-RW(LCD_RW),P2.2-E(LCD_E).;参数说明:dat 为写命令参数;-*/void LCD_write_command(uchar dat)delay_n10us(10);LCD_RS=0;/指令 LCD_RW=0;/写入 LCD_E=1;/允许 LCD_DB=
5、dat;delay_n10us(10);/LCD_E=0;delay_n10us(10);/*-;模块名称:LCD_write_data();功 能:LCD1602 写数据函数 ;占用资源:P2.0-RS(LCD_RS),P2.1-RW(LCD_RW),P2.2-E(LCD_E).;参数说明:dat 为写数据参数;-*/void LCD_write_data(uchar dat)delay_n10us(10);LCD_RS=1;/数据 LCD_RW=0;/写入 LCD_E=1;/允许 LCD_DB=dat;delay_n10us(10);LCD_E=0;delay_n10us(10);/*-;
6、模块名称:;功 能:显示一个字符;占用资源:-;参数说明:;-*/void LCD_disp_char(uchar x,uchar y,uchar dat)uchar address;if(y=1)address=0 x80+x;else address=0 xc0+x;LCD_write_command(address);LCD_write_data(dat);/*-;模块名称:;功 能:显示一个字符串。;占用资源:-;参数说明:;-*/void LCD_disp_str(uchar x,uchar y,uchar*str)uchar address;if(y=1)address=0 x80
7、+x;else address=0 xc0+x;LCD_write_command(address);while(*str!=0)LCD_write_data(*str);str+;/*-;模块名称:delay_n10us();功 能:延时函数,延时约 n 个 10us;占用资源:-;参数说明:-;-*/void delay_n10us(uint n)/延时 n 个 10us12M 晶振 uint i;for(i=n;i0;i-)_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();/*LCD1602 设置 END*/*主函数*void main()while(1)LCD_init();LCD_disp_char(0,1,1+0);/显示一个字符 LCD_disp_char(15,1,1+0);/显示一个字符 LCD_disp_str(3,1,We Are Good);/显示字符串 delay(500);/延时 LCD_disp_str(5,2,Partner!);/显示字符串 delay(500);/延时