51单片机C编程(十二、LM016L液晶显示)

发布者:cyzcee最新更新时间:2015-09-25 来源: eefocus关键字:51单片机  C编程  LM016L  液晶显示 手机看文章 扫描二维码
随时随地手机看文章
[转载]51单片机C编程(十二、LM016L液晶显示)

#include
#define uchar unsigned char
#define uint unsigned int
#define  LCDPORT P0
uchar code tab[]="I LIKE MCU!";
uchar code tab1[]="HELLO!";

sbit LCDE=P3^5;
sbit LCDRW=P3^6;
sbit LCDRS=P3^7;

void WriteCMD(uchar);
void init();
void WriteData(uchar);
void Delay();
void mydelay(int);
void main()
 {
     uint i;
  init();
  
    for(i=0;i<11;i++)
      {
   WriteData(tab[i]);
      mydelay(50);
   }
   mydelay(1000);
   WriteCMD(0x01);
   WriteCMD(0x80+0x40+10);
   for(i=0;i<6;i++)
   {
       WriteData(tab1[i]);
      mydelay(50);
   }
  
   while(1);
 }
void Delay()
{
 uint uiCount;
 for(uiCount=0;uiCount<250;uiCount++);
}


//*************************************************************************************************
//*                          *
//*    **************************把1个命令写入LCD*************************      *
//*                          *
//*************************************************************************************************
void WriteCMD(uchar Command)      
{
 Delay();    //先延时。

 LCDE=1;     //然后把LCD改为写入命令状态。
 LCDRS=0;
 LCDRW=0;

 LCDPORT=Command;  //再输出命令。

 LCDE=0;     //最后执行命令。
}


//*************************************************************************************************
//*                          *
//*    ***************************把1个数据写入LCD************************      *
//*                          *
//*************************************************************************************************
void WriteData(uchar dat)      
{
 Delay();      //先延时。

 LCDE=1;       //然后把LCD改为写入数据状态。
 LCDRS=1;
 LCDRW=0;

 LCDPORT=dat;     //再输出数据。

 LCDE=0;       //最后显示数据。
}
void init()
{
 LCDRW=0;
    LCDE=0;
  WriteCMD(0x38);
 WriteCMD(0x0e);
 WriteCMD(0x07);
 WriteCMD(0x01);
 WriteCMD(0x80+14);
}
void mydelay(int x)
{
 int i,j;
 for(i=x;i>0;i--)
     for(j=255;j>0;j--);
}

关键字:51单片机  C编程  LM016L  液晶显示 引用地址:51单片机C编程(十二、LM016L液晶显示)

上一篇:51单片机C编程(十一、电话拨号模拟液晶显示)
下一篇:51单片机C编程(十三 DAC0832锯齿波的产生)

推荐阅读最新更新时间:2024-03-16 14:33

51单片机定时器/计数器的结构以及原理介绍
定时器/计数器简称定时器,其作用主要包括产生各种时标间隔、记录外部事件的数量等,是微机中最常用、最基本的部件之一。803l单片机有2个16位的定时器/计数器:定时器0(T0)和定时器1(T1)。 T0由2个定时寄存器TH0和TL0构成,T1则由TH1和TL1构成,它们都分别映射在特殊功能寄存器中,从而可以通过对特殊功能寄存器中这些寄存器的读写来实现对这两个定时器的操作。作定时器时,每一个机器周期定时寄存器自动加l,所以定时器也可看作是计量机器周期的计数器。由于每个机器周期为12个时钟振荡周期,所以定时的分辨率是时钟振荡频率的1/12。作计数器时,只要在单片机外部引脚T0(或T1)有从1到0电平的负跳变,计数器就自动加1。计数的
[单片机]
<font color='red'>51单片机</font>定时器/计数器的结构以及原理介绍
51单片机(三十)—— 矩阵键盘计算器
在《51单片机(二十九)—— 矩阵键盘输入实验》中,我们对矩阵键盘的原理及使用方法进行了介绍。在本文中,我们采用矩阵键盘设计一个计算器,实现简单的计算器功能。 这个实验的代码的主函数如下所示。 main() { init_T0(); for(;;) { keyma=KEYscan(); keyvalue=Keychange(keyma); if(keyvalue!=0xff) { if(mm==0) for(n=0;n 8;n++) showdata =0; //清除数码管显示 if(('+'==keyvalue)|| (mm
[单片机]
51单片机的启动代码究竟里面写了什么
在我们使用kei c51创建一个51单片机项目时,会有如下图所示的提示: keil创建新项目时,提示是否添加启动文件 一般情况下,需要选择“是”。当然,也可以选择不加。那么,这个启动文件的作用是什么?什么情况下需要加,什么情况下可以不加? 今天我们就来详细了解一下这个启动文件的内容,看明白这个内容后,我们就会有种恍然大悟的感觉:“哦,原来是这样啊!” 启动代码第一段 ▼以下是启动代码原文第一段: strongerHuang • 来源:老马识途单片机 • 作者:老马识途单片机 • 2021-09-22 10:15 • 1508次阅读 0 在我们使用kei c51创建一个51单片机项目时,会有如下图所示的提示: 图
[单片机]
<font color='red'>51单片机</font>的启动代码究竟里面写了什么
PC机与多MCS-51单片机间的串行通信设计
1 引 言   在测控系统和工程应用中,常遇到多项任务需同时执行的情况,因而主从式多机分布式系统成为现代工业广泛应用的模式。它们大多由IBM-PC微机和MCS-51单片机组成。单片机功能强、体积小、价格低廉、开发应用方便,尤其具有全双工串行通讯的特点,在工业控制、数据采集、智能仪器仪表、家用电器方面都有广泛的应用。同时,IBM-PC机正好补充单片机人机对话和外围设备薄弱的缺陷。各单片机独立完成数据采集处理和控制任务,同时通过通信接口将数据传给PC机,PC机将这些数据进行处理、显示或打印,把各种控制命令传给单片机,以实现集中管理和最优控制。   故IBM-PC机(上位机)与各MCS-51单片机(下位机)之间的通信显得尤其重要。本文主要
[单片机]
PC机与多MCS-<font color='red'>51单片机</font>间的串行通信设计
51单片机之74HC138译码器控制数码管进行100s计数
/** I use a timer in my code to control the time I use 138decoder int the hardware **/ #include reg51.h #define uint unsigned int #define uchar unsigned char sbit LSA=P2^2; sbit LSB=P2^3; sbit LSC=P2^4; uchar code tab_1 ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; uchar tab_2 ; uchar counter=0,tim
[单片机]
基于51单片机的函数发生器设计
一.硬件方案 此函数信号发生器是基于单片机AT89C51设计而成的,能够产生频率范围在0Hz—535Hz的锯齿波、正弦波、三角波、矩形波四种波形,并且能够通过液晶屏1602显示各自的波形类型以及频率数值。 主要由51单片机+最小系统+DA0832模数转换模块+运放模块+LED指示灯+按键模块;如图: 二.设计功能 (1)LCD1602液晶显示波形种类和频率值(10-100HZ)。可产生正弦波、锯齿波、三角波、矩形波。 (2)按键设置波形种类和设定频率步进值。 (3)通过电位器器改变振幅(0V-3.5V稳定)。 (4)有四个指示灯分别指示发出的是哪种波形,方便明了。 三.设计原理图 (1)原理图主要采用AD软件进行设计,
[单片机]
基于<font color='red'>51单片机</font>的函数发生器设计
AT89C51单片机在数控车床切削力测量中的应用
1 问题的提出   在数控车床的加工中,切削力的测量甚为重要。通过对切削力的测量可以分析与研究数控车床各零部件、机构或结构的受力情况和工作状态,验证设计和计算结果的正确性,确定整机工作过程中的负载谱和某些物理现象的机理。因此,他对发展设计理论、保证数控机床安全可靠地运行以及实现数控机床自动加工、自动检测、自动控制和切削力过载报警等都具有十分重要的作用和适用价值。 2 系统硬件接口电路的设计   系统硬件原理框图如图1所示。系统以AT89C51单片机为控制核心,外围电路针对单片机的功能特点而设计,充分利用了AT89C51单片机片内资源丰富的特点,简化了外围电路,提高了可靠性。下面对系统中主要功能模块与硬件可靠性技术逐一分析。 图1
[单片机]
AT89C<font color='red'>51单片机</font>在数控车床切削力测量中的应用
C51单片机的IO口介绍(下)
上一篇文章我们对C51的IO简单的介绍了一下,现在我们来简单了解C51的IO的结构 这里我们学习一下比较常见的单片机的IO模式,分别是准双向,开漏输出和推挽输出 (这里要提一嘴,我们用的STC88C52RC是没有推挽输出功能的,STC公司后续推出的一些机型才有推挽输出功能) 接下来我们来看看这几种模式 1.准双向 看看下面的原理图,机内信号通过一个非门取反后送入一个MOS管,MOS管负责控制这个IO的高低电平,配合内部上拉电阻完成高低电平的输出 为了方便我们分析,我们把这个MOS管看成一只NPN三极管。区别是三极管靠电流导通,MOS管靠电压导通 结合前面我们讲过的知识,对于一只NPN三极管,基极b电压比集电极c电压
[单片机]
C<font color='red'>51单片机</font>的IO口介绍(下)
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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