液晶LCD1602的测试
1.硬件电路图2.测试程序/************************************************ * 文件描述 : LCD1602液晶屏显示字符串八位模式测试程序 * 程序文件 : main.c * 版 本 : 1.0 * 作 者 : 火龙电子工作室 * 日 期 : 2017.01.01 * 芯 片 : IAP15W4K58S4 * 时 钟 内部11.0592MHz * 开发环境 Keil uVision4 C51 V9.52 * 操 作 : 1、将LCD1602液晶屏插入J5插座中注液管脚方向。 2、将跳线插座J3的跳线帽调至1602端。 3、通过调节电位器VR1可以改变显示的对比度。 * 现 象 : 将程序下载到开发板后可观察到液晶屏显示字符串 * 备 注 : 详细说明见左侧Doc目录下的readme文件 ************************************************/ //文件包含 #include stc15w4k32s4.h #include lcd1602.h //宏定义 #define uchar unsigned char #define uint unsigned int //函数声明 void IO_Init(void); void Delay_ms(uint ms); void LCD1602_Init(void); void LCD1602_DisplayString(uchar addr,uchar* pointer); //主方法 void main(void) { Delay_ms(10); //延时等待液晶屏上电稳定。 IO_Init(); //端口初始化 LCD1602_Init(); //1602液晶屏初始化 //1602显示字符串 LCD1602_DisplayString(LINE12,Welcome to use); LCD1602_DisplayString(LINE22,FireDragon); while(1) { } } /*********************************************** 函数名称LCD1602_Init 功 能LCD1602初始化 入口参数无 返 回 值无 备 注详见数据手册定义。 ************************************************/ void LCD1602_Init(void) { Delay_ms(15); //上电延时15ms LCD1602_WriteCMD(0x38); //写显示指令(不检测忙信号) Delay_ms(5); LCD1602_WriteCMD(0x38); //写显示指令(不检测忙信号) Delay_ms(5); LCD1602_WriteCMD(0x38); //写显示指令(不检测忙信号) LCD1602_CheckBusy(); LCD1602_WriteCMD(0x38); //写显示指令 LCD1602_CheckBusy(); LCD1602_WriteCMD(0x08); //显示关闭 LCD1602_CheckBusy(); LCD1602_WriteCMD(0x01); //清屏 LCD1602_CheckBusy(); LCD1602_WriteCMD(0x06); //显示光标移动设置 LCD1602_CheckBusy(); LCD1602_WriteCMD(0x0c); //显示开及光标设置 } /*********************************************** 函数名称LCD1602_DisplayString 功 能显示字符函数 入口参数addr起始地址pointer指针地址 返 回 值无 备 注无 ************************************************/ void LCD1602_DisplayString(uchar addr,uchar* pointer) { LCD1602_CheckBusy(); //判断忙信号 LCD1602_WriteCMD(addr); //写入地址 while(*pointer !\0) { LCD1602_CheckBusy(); //判断忙信号 LCD1602_WriteDAT(*pointer); //写入数据 pointer; } } /*********************************************** 函数名称Delay_ms 功 能STC 1T单片机1ms延时程序 入口参数ms:延时的毫秒数 返 回 值无 备 注示波器实测1.05ms 内部时钟11.0592MHz ************************************************/ void Delay_ms(unsigned int ms) { unsigned int i; while( (ms--) ! 0) { for(i 0; i 600; i); } } /*********************************************** 函数名称IO_Init 功 能单片机IO端口模式初始化 入口参数无 返 回 值无 备 注无 ************************************************/ void IO_Init(void) { //初始化P2口为准双向口 P2M1 0x00; P2M0 0x00; //初始化P41,P42,P44口为准双向口 P4M1 ~( (11) | (12) | (14) ); P4M0 ~( (11) | (12) | (14)); //分析 // 10等价于0x01 即 0000 0001 // 11等价于0x02 即 0000 0010 // 12等价于0x04 即 0000 0100 // 13等价于0x08 即 0000 1000 // 以此类推1n 即第n位为1其余位是0 // x |(1n) 即对x执行按位取或 // 即x中的第n位置为1不改变其他位状态 // y ~(1n) 即将1n按位取反然后对y按位取与 // 即y中的第n位置为0不改变其他位状态 }3.信号测试使用简易逻辑分析仪隐藏至下次访问此域名禁用全局禁用4.使用注意事项保存图片编辑图片移除物体提取文字图片翻译
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2587679.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!