LCD1602液晶显示(51单片机c语言)

发布者:gamma13最新更新时间:2015-02-09 来源: 51hei关键字:LCD1602  液晶显示  51单片机 手机看文章 扫描二维码
随时随地手机看文章
效果图:
电路图:

#include
#include //包含_nop_()函数定义的头文件
#define uchar unsigned char
#define uint unsigned int
sbit RS=P2^5; //寄存器选择位
sbit RW=P2^6; //读写选择位
sbit E=P2^7; //使能信号位
//sbit BF=P0^7; //忙碌标志位
const uchar string1[ ]={" mazirong "};
const uchar string2[ ]={"TEL:13297961386 "};
/*****************************************************
函数功能:判断液晶模块的忙碌状态
返回值:result。result=1,忙碌;result=0,不忙
***************************************************/
/*uchar BusyTest()
{
bit result;
RS=0; //根据规定,RS为低电平,RW为高电平时,可以读状态
RW=1;
E=1; //E=1,才允许读写
_nop_(); //空操作
_nop_();
_nop_();
_nop_(); //空操作四个机器周期,给硬件反应时间
result=BF; //将忙碌标志电平赋给result
E=0;
return result;
}*/
//*********************延时
void delay(uchar z)
{
uchar i,j;
for(i=z;i>0;i--);
for(j=110;j>0;j--);
}
//********************写指令
void WriteInstruction(uchar dictate)
{
// while(BusyTest()==1);
RS=0; //根据规定,RS和R/W同时为低电平时,可以写入指令
RW=0;
E=0; //E置低电平(写指令时,E为高脉冲)
// 就是让E从0到1发生正跳变,所以应先置"0"
P0=dictate; //将数据送入P0口,即写入指令或地址
delay(1);
/*_nop_();
_nop_();
_nop_();
_ nop_();*/
E=1; //E置高电平
_nop_();
_nop_();
_nop_();
_nop_(); //空操作四个机器周期,给硬件反应时间
E=0; //当E由高电平跳变成低电平时,液晶模块开始执行命令
}
//*********************写数据
void WriteData(uchar dat)
{
// while(BusyTest()==1);
RS=1; //RS为高电平,RW为低电平时,可以写入数据
RW=0;
E=0; //(写指令时,E为高脉冲)
// 就是让E从0到1发生正跳变,所以应先置"0"
P0=dat; //将数据送入P0口,即将数据写入液晶模块
delay(1);
/*_nop_();
_nop_();
_nop_();
_ nop_();*/
E=1; //E置高电平
_nop_();
_nop_();
_nop_();
_nop_(); //空操作四个机器周期,给硬件反应时间
E=0; //当E由高电平跳变成低电平时,液晶模块开始执行命令
}
//*******************初始化
void Init(void)
{
WriteInstruction(0x38); //显示模式设置:16×2显示,5×7点阵,8位数据接口
WriteInstruction(0x0c); //显示模式设置:显示开,无光标
WriteInstruction(0x06); //显示模式设置:光标右移,字符不移
WriteInstruction(0x01); //清屏幕指令,将以前的显示内容清除
}
//*******************主函数
void main(void)
{
uchar a;
Init();
while(1)
{
a=0;
WriteInstruction(0x80); // 设置显示位置为第一行的第1个字
while(string1[a] != '\0') //'\0'是数组结束标志
{
WriteData(string1[a]);
a++;
}

a=0;
WriteInstruction(0x80+0x40); // 设置显示位置为第二行的第1个字
while(string2[a] != '\0') //'\0'是数组结束标志
{
WriteData(string2[a]);
a++;
}
}
}
关键字:LCD1602  液晶显示  51单片机 引用地址:LCD1602液晶显示(51单片机c语言)

上一篇:51单片机2路舵机驱动(定时器法)
下一篇:C51单片机串口通信

推荐阅读最新更新时间:2024-03-16 13:53

采用AT89C51单片机实现动态车辆检测器系统的设计
引言 随着经济的发展,不停车收费系统(ETC)已在我国悄然兴起。不停车收费系统主要是由通讯、监控、收费三大系统组成。整个系统可靠运行的一个重要环节就是车辆检测器。在不停车收费系统中它是检测驶向通讯区域的车辆并命令天线进行通信的传感器,具有进入检测、车速检测、车型判别等功能;它是检测出离开通信区域的车辆、根据ETC车道控制器的判断控制栏杆、路侧显示器的传感器,具有进入检测功能;它具有检测车辆通过,控制清除针对该车辆的路侧显示器的显示内容以及控制针对后续车辆的显示的功能,并命令栏杆关闭的功能。 考虑到性能、价格、技术复杂性、可靠性、维护要求、适用范围等因素,我们这种车辆检测器是基于地感线圈原理研制的。 1、动态车辆检测器设计
[单片机]
采用AT89C<font color='red'>51单片机</font>实现动态车辆检测器系统的设计
基于51单片机实现静态数码管显示
前言 前面我们已经介绍了如何控制51 单片机的IO 口输出高低电平,本教程我们通过另外一个实验来讲述51 单片机IO 口的输出。通过单片机的IO 口控制板载数码管显示。可以参考前面的实验章节内容。 一、数码管介绍 1.数码管简介 数码管是一种半导体发光器件,其基本单元是发光二极管。数码管也称LED数码管,不同行业人士对数码管的称呼不一样,其实都是同样的产品。数码管按段数可分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元,也就是多一个小数点(DP),这个小数点可以更精确的表示数码管想要显示的内容;按能显示多少个(8)可分为1 位、2 位、3 位、4 位、5 位、6 位、7 位等数码管。按发光二极管单元连接方
[单片机]
基于<font color='red'>51单片机</font>实现静态数码管显示
浅析51单片机学习过程中的四大误区
51单片机的辉煌过去 51单片机指MCS-51系列单片机,CICS指令集。由Intel公司开发,其结构增加了如乘(MUL)、除(DIV)、减(SUBB)、比较(CMP)、16位数据指针、布尔代数运算等指令,以及串行通信能力和5个中断源,内有128个RAM单元及4K的ROM。其代表型号是ATMEL公司的AT89系列,它广泛应用于工业测控系统之中。目前国内的51单片机市场主要为国产宏晶的产品STC系列其号称低功耗,稳定与廉价的特点。 学习51单片机的误区 误区1:51单片机是学习的基础 “51单片机是学习的基础”这句话本身并没有错。在我读本科的时候,当时它无疑是学习的基础——毕竟那时没有更高级的单片机可以供使用,
[单片机]
51单片机与PC通信方法总结
51单片机的串口,是个全双工的串口,发送数据的同时,还可以接收数据。 当串行发送完毕后,将在标志位 TI 置 1,同样,当收到了数据后,也会在 RI 置 1。 无论 RI 或 TI 出现了 1,只要串口中断处于开放状态,单片机都会进入串口中断处理程序。 在中断程序中,要区分出来究竟是发送引起的中断,还是接收引起的中断,然后分别进行处理。 常用的方法有: 接收数据时,使用 中断方式 ,清除 RI 后,用一个变量通知主函数,收到新数据。 发送数据时,也用 中断方式 ,清除 TI 后,用另一个变量通知主函数,数据发送完毕。 这样一来,收、发两者基本一致,编写程序也很规范、易懂。 更重要的是,主函数中,不用在那儿死等发送完毕,可以有更多的时
[单片机]
具有液晶显示器的3位数字AD转换器电路图
具有液晶显示器的3位数字A,D转换器电路图
[模拟电子]
具有<font color='red'>液晶显示</font>器的3位数字AD转换器电路图
C语言在C51单片机中的编程和常用c语言有什么异同
通用c语言和C51单片机c语言基本没做什么大的改变?只是要注意下面几点。 1.数据类型的差别(着不同说在不同芯片上所支持的类型是有些差别,用的时候注意看一下) 2.c51对c语言的数据类型做了扩充。 如下: sfr 特殊功能寄存器数据声明,声明一个8位的寄存器。 sfr16 16特殊功能寄存器的数据声明 sbit 特殊功能位声明 bit 位变量声明
[单片机]
基于FPGA和51单片机的信号发生器设计
信号发生器又称为波形发生器是一种常用的信号源并且广泛应用于电子电路、通信、控制和教学实验等领域的重要仪器之一。为了降低传统函数信号发生器成本,改善信号发生器低频稳定性。笔者结合FPGA和51单片机产生0.596 Hz频率精度函数信号。笔者设计通过51单片机控制函数信号类型以及相关参数,用户可通过按键设置需要的波形、波形幅度、波形频率以及方波的占空比、相位。本文设计方案不仅具有良好的经济前景,也可以为当代高等教育深化改革做一个参考方向。 1 系统设计方案 1.1 系统硬件设计 本文中设计中硬件包括EP2C8Q20818N芯片和C8051F0201单片机、DAC0800芯片,T6963的LCD。本文中主要利用FPGA(EP
[单片机]
基于FPGA和<font color='red'>51单片机</font>的信号发生器设计
液晶显示模拟KS0713及其应用
摘要:液晶显示模块KS0713是SAMSUNG ELECTRONICS生产的小型液晶显示模块。它具体积小、价格低、使用方便等优点。在一些小型的自动控制、监控、测量仪器中,常常用于显示提示菜单、波形或各类参数的变化,实现实时的监控和测量。 关键词:液晶模块 单片机 波形 汉字 概述 KS0713是一种小型的大规模集成并带有驱动器和控制器的点阵型液晶模块。它的外观尺寸为42mm%26;#215;39mm,有29个外部引脚。它直接受单片机控制,接收8位串行或并行数据, 同时可将数据显示,并将数据存储在模块同的数据存储器中(DDRAM)。由于DDRAM中的数据显示单元与液晶屏的点阵单元存在一一对应关系,并且KS0713液晶模块数据的
[应用]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved