锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

基于51单片机之LCD1602实验例程

时间:2024-04-17 15:07:10

************************** Copyright(C)CaKe *****************************************

======================================================================================== ==============**文件名 : main.c ============== ==============**作者 : CaKen ============== ==============**版本号 : V1.0 ============== ==============**时间 : 2014.08.12 ============== ==============**功能描述 : 1602液晶屏实验测试 ============== ======================================================================================== **************************************************************************************** #include #include #define uchar unsigned char //宏定义 #define uint unsigned int //宏定义 uchar code Table1[]="CaKen-2245286160"; uchar code Table2[]=" "; sbit 1602_RS=P2^4; //数据命令端口 sbit LCD1602_RW=P2^5; //读写端口.我们在这里只写 sbit LCD1602_EN=P2^6; //使能端口 ***************************************************************************************** 函数名:延时函数 调 用:delayms(); 参 数: 返回值: 结 果: 备 注: ***************************************************************************************** void delayms(unsigned int ms) { unsigned int i , j; for(i = 0; i < ms; i++) for(j = 0; j < 110; j++); } ***************************************************************************************** 函数名:写指令 调 用:Write_com(); 参 数: 返回值: 结 果: 备 注: ***************************************************************************************** void Write_com(uchar com) { LCD1602_RS=0; //写指令时RS=L LCD1602_EN=0; P0=com; //给端口送指令 delayms(5); LCD1602_EN=1; //使能端高电平有效 delayms(5); LCD1602_EN=0; } ***************************************************************************************** 函数名:写数据 调 用:Write_Date(); 参 数: 返回值: 结 果: 备 注: ***************************************************************************************** void Write_Date(uchar Date) { LCD1602_RS=1; //写数据时RS=L LCD1602_EN=0; P0=Date; //给端口送数据 delayms(5); LCD1602_EN=1; //使能端高电平有效 delayms(5); LCD1602_EN=0; } ***************************************************************************************** 函数名:LCD1602初始化 调 用:LCD1602_Init(); 参 数: 返回值: 结 果: 备 注: ***************************************************************************************** void LCD1602_Init() { unsigned char num; LCD1602_RW=0; //写信号拉低 LCD1602_EN=0; //使能端拉低 Write_com(0x38); //开显示 Write_com(0x0c); //开显示不显示光标 Write_com(0x06); //每写一个地址和光标加一 Write_com(0x01); //显示清零 Write_com(0x80); //第一行的初始地址为0x80 for(num=0;num<16;num++) //循环的数字要看上面的占多少个字符 { Write_Date(Table1[num]); //多了和少了都不会对的。 delayms(5); } Write_com(0x80+0x40); //第二行初始地址为0x80+0x40 for(num=0;num<16;num++) { Write_Date(Table2[num]); delayms(5); } } ***************************************************************************************** 函数名:主函数 调 用: 参 数: 返回值: 结 果:
锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章