
实验7 LCD显示实验.docx
3页本文格式为Word版,下载可任意编辑实验7 LCD显示实验 《单片机原理与应用》测验报告 测验序号:06 测验工程名称: 串口通信测验 学 号 1207082107 姓 名 陈永超 专业、班 测验时间 12物联网 测验地点 测验楼1#416 指导教师 一、测验目的 1.了解KEIL C51 集成开发环境及软件仿真; 2. 掌管单片机烧写方法; 3. 熟悉液晶1602模块; 4. 掌管液晶显示字符的步骤 二、测验设备(环境)及要求 硬件:PC机,51单片机开发板; 软件:PC机操作系统windows XP,KEIL C51集成开发环境 三、测验内容与步骤 利用液晶1602模块,通过编程实现在显示屏上显示字符 四、测验结果与数据处理 #include //此文件中调用了空指令_nop_()作为延时,该指令在头文件intrins.h中声明,所以需要包含该头文件; #define LCD1602_DATA P0 //定义数据口 sbit LCD1602_EN=P2^5; //定义液晶1602的使能引脚 sbit LCD1602_RW=P2^6; //定义液晶1602的读/写选择引脚 sbit LCD1602_RS=P2^7; //定义液晶1602的数据/命令选择引脚 1 /********************************************** 功能: 延时函数 输入参数: n: 延时时长 输出参数: 无 返回值: **********************************************/ void Delay(unsigned int n) { unsigned int i; while(n--) { i=200; while(i--); } } /********************************************** 功能: 2 忙检测 输入参数: 无 输出参数: 无 返回值: 1: 忙 0: 空闲 **********************************************/ unsigned char BusyCheck(void) { LCD1602_DATA = 0xFF; //将数据引脚都置为高电平,以保证接下来所读取的数为实际引脚的输入 LCD1602_RS = 0; LCD1602_RW = 1; LCD1602_EN = 0; _nop_(); LCD1602_EN = 1; return (LCD1602_DATA //从1602所读取的字节的最高位 } /********************************************** 3 功能: 写命令到LCD1602 输入参数: CmdByte: 命令字节 输出参数: 无 返回值: **********************************************/ void CommandWrite(unsigned char CmdByte) { while(BusyCheck()); //等待忙 LCD1602_RS = 0; LCD1602_RW = 0; LCD1602_EN = 1; LCD1602_DATA = CmdByte; _nop_(); LCD1602_EN = 0; } /********************************************** 功能: 4 写数据到LCD1602 输入参数: DataByte: 数据字节 输出参数: 无 返回值: **********************************************/ void DataWrite(unsigned char DataByte) { while(BusyCheck()); //等待忙 LCD1602_RS = 1; LCD1602_RW = 0; LCD1602_EN = 1; LCD1602_DATA = DataByte; _nop_(); LCD1602_EN = 0; } /*---------------------------------------------------------------------------------------------------------*/ /********************************************** 主函数,实现LCD1602显示功能 5 — 3 —。
