C51:LCD1602 显示测量值

发布者:beta13最新更新时间:2016-10-14 来源: eefocus关键字:C51  LCD1602  显示 手机看文章 扫描二维码
随时随地手机看文章
#include

#include
#include


#define uchar unsigned char

//延时1 毫秒 程序
void delayms();

//延时 s 毫秒 程序 
void delay(uchar s);

//初始化 LCD
void InitLCD();

//写LCD 指令
void WriteInstruction(uchar);

//写LCD 数据
void WriteData(uchar);

//写地址
void WriteAdd(uchar);


//读LCD 状态
uchar BusyTest();

 

//LCD 操作位 设置
sbit RS=P2^2;
sbit RW=P2^1;
sbit E=P2^0;
sbit BF=P1^7;


uchar flag=1;

uchar code str[]="your test result:";
uchar code digit[]="0123456789";

uchar *p;

 


//main 程序
void main() 
{
 int x;
 uchar D1,D2,D3,D4,D5,i;

 //初始化LCD
 InitLCD();
 //写地址
 WriteAdd(0x00);

 p=str;  

 while(*p!='\0')
 {
  WriteData(*p);
  p++;
  delay(5);
 } 
 
 //

 
   while(1)
   {

 x=rand();

 D1=x%10;
 D2=(x%100)/10;
 D3=(x%1000)/100;
 D4=(x%10000)/1000;
 D5=x/10000;

 //写地址
 WriteAdd(0x45);
 delay(5);
 if(x>=10000)
  WriteData(digit[D5]);
 delay(5);
 if(x>=1000)
  WriteData(digit[D4]);
 delay(5);
 if(x>=100)
  WriteData(digit[D3]);
 delay(5);
 WriteData(digit[D2]);
 delay(5);

 WriteData('.');
 delay(5);
 WriteData(digit[D1]);
 for(i=0;i<4;i++)
  delay(250);

 WriteData(0x01);

 

 
 }

 

 

 

 

 

 

 

 

 

 

 

 

}


//初始化 LCD
void InitLCD()
{
 delay(15); 
 WriteInstruction(0x38);//  显示模式设置
 delay(5);
 WriteInstruction(0x38);
 delay(5);
 WriteInstruction(0x38);

 delay(5);
 WriteInstruction(0x0c);//显示模式设置: 开显示,显示光标,闪烁光标

 delay(5);
 WriteInstruction(0x06);//显示模式设置: 光标右移,文字不移动。

 delay(5);

 

 


 
}


//写 LCD 指令
void WriteInstruction(uchar instruction)
{
 //LCD 忙碌,等待。
 while(BusyTest()==1);

 //写指令

 RS=0;
 RW=0;
 E=0;

 _nop_();
 _nop_();
 _nop_();

 //指令
 P1=instruction;

 _nop_();
 _nop_();
 _nop_();

 E=1;

 _nop_();
 _nop_();
 _nop_();

 E=0;
}


//写LCD 数据
void WriteData(uchar d)
{
  //LCD 忙碌,等待。
 while(BusyTest()==1);

 //写数据
 RS=1;
 RW=0;
 E=0;

 _nop_();
 _nop_();
 _nop_();

 //指令
 P1=d;

 _nop_();
 _nop_();
 _nop_();

 E=1;

 _nop_();
 _nop_();
 _nop_();

 E=0;

}

//写地址,属于写指令
void WriteAdd(uchar ad)
{
 uchar addr=ad+0x80;
 WriteInstruction(addr);
 
}


//读LCD 状态
uchar BusyTest()
{
 bit result;

 //读LCD 状态
 RS=0;
 RW=1;
 E=1;

 _nop_();
 _nop_();
 _nop_();

 //指令
 result=BF;

 _nop_();
 _nop_();
 _nop_();

 E=0;

 return result;


}

 

void delay(uchar s)
{
 uchar tem;
 for(tem=0;tem  {
  delayms();
 }

}

void delayms()
{
 uchar i,j;
 for(i=0;i<10;i++)
  for(j=0;j<33;j++)
  ;
}

关键字:C51  LCD1602  显示 引用地址:C51:LCD1602 显示测量值

上一篇:c51: DS1820
下一篇:C51: INT0

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

基于单片机和可编程逻辑器件的LED显示显示
LED显示屏主要由电流驱动电路及LED点阵阵列、控制系统和PC端管理软件三部分构成(图1)。控制系统负责接收、转换和处理各种外部信号,并实现扫描控制,然后驱动LED点阵显示需要的文字或图案。控制系统作为LED显示屏的核心部分,直接决定了显示屏的显示效果和性能的优劣。本文详细分析采用Verilog HDL对ATF1508AS进行编程,实现双口RAM访问和产生LED点阵驱动电路所需的各种时序信号。 1 LED显示屏的基本结构及关键技术 本系统设计中,控制系统采用单片机+CPLD的方案来实现,整个控制系统可分为:信号接收及处理模块和CPLD的扫描控制模块和LED点阵驱动模块,如图1 所示。本系统的关键技术是使用双
[单片机]
基于单片机和可编程逻辑器件的LED<font color='red'>显示</font>屏<font color='red'>显示</font>
国知局宣奥源电子“一种节能型显示屏用电路板”专利无效
近日,国家知识产权局出具“无效宣告请求审查决定书”,决定号为51401,专利号为201821205285.2,宣告专利权全部无效。专利权人东莞市奥源电子科技有限公司(以下简称:奥源电子),无效宣告请求人为李道新。 李道新于2021年2月向国家知识产权局提出了无效宣告请求,涉及专利为奥源电子的“一种节能型显示屏用电路板”专利。国家知识产权局经过审查后,宣告该实用新型专利权全部无效。 图片来源:国知局 决定要点:如果权利要求所要求保护的技术方案相对于最接近的对比文件存在区别特征,但该区别特征是本领域公知常识,即现有技术中存在将其应用到该最接近的对比文件以解决其存在的技术问题的启示,则该权利要求所要求保护的技术方案不具备创造性。 奥
[手机便携]
国知局宣奥源电子“一种节能型<font color='red'>显示</font>屏用电路板”专利无效
等离子显示器(PDP)的应用与发展
摘要:详细介绍了等离子显示器的工作原理、特点与发展,对我国发展等离子显示器作出了比较明确的说明与分析。 关键词:等离子 显示器 PDP 等离子显示器(Plasma Display Panel,简写PDP)是采用了近几年来高速发展的等离子平面屏幕技术新一代显示设备。等离子彩电是用等离子显示技术制造的高科技彩电,这种彩电的主要特点是图像真正清晰逼真,在室外及普通居室光线下均可视,可提供在任何环境下的大屏视角;并且屏幕非常轻薄,厚度仅有厘米,便于安装,是彩色电真正的高端产品。 随着多媒体及高清晰度电视(HDTV)的出现,显示技术得到了空前的发展。在众多的显示方法中,等离子体显示器PDP以其卓越的性能受到了广泛的关注。PDP具有视
[电源管理]
C51单片机为核心的嵌入式系统实时控制设计
随着现代通信技术的发展,通信测试仪器不断推陈出新。各种新型设备对系统的实时响应能力的要求越来越高,一种通信测试仪器的实时响应性能,就成为系统设计能否成功的关键因素之一。笔者曾在多个通信测试仪器项目中,成功地应用ARM处理器、C51单片机等为主控芯片的嵌入式系统,实现了对仪器相关模块的实时控制功能。因此提出一种在某通信测试仪器中使用C51单片机来实现实时控制的设计方案。 1 硬件设计与实现 1.1 总体方案设计 在该通信测试仪器中,实时控制模块主要实现对射频接收频综、射频发生频综、滤波器组件、射频输入模块、射频输出模块等实时控制作用。对射频检波信号进行A/D转换以获取数据。与上位计算机进行通信等功能。 根据待实现的系统功能要
[单片机]
以<font color='red'>C51</font>单片机为核心的嵌入式系统实时控制设计
74ls164做的跑马灯c51程序
c51 74hc164--165--595c51 51单片机驱动74ls164跑马灯,好处是只用了2个端口即可实现,电路如下图所示: #include reg51.h #include intrins.h #define uint unsigned int #define uchar unsigned char sbit dat=P2^6; sbit clk=P2^7; uchar ii; uchar code seg7code = {0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x00,0xff};//0-9,-,全灭 void sendbyte(uchar seg) { ucha
[单片机]
74ls164做的跑马灯<font color='red'>c51</font>程序
DigiLens联手水晶光电将低成本AR显示器推向中国
AR全息波导显示技术的创新者DigiLens 宣布将与水晶光电携手扩张中国市场, 林晓书担任其驻中国区总经理。 水晶光电是光学镀膜、AR光学和半导体光学的顶级光学元件制造商,也是Digilens在中国的第一位合作伙伴。通过此次合作, DigiLens晶体波导技术将于2020年与消费者见面,并将亮相企业市场。 DigiLens首席执行官Chris Pickett表示:“我们很高兴在林晓书先生的带领下正式拓展中国市场,也很荣幸与水晶光电建立合作伙伴关系。水晶光电是消费类设备光学制造领域的领先者,与许多知名数字和手机企业都有合作。我们将携手批量生产使用Digilens低成本、高性能晶体波导技术的AR显示器。” 此次合作中,Dig
[物联网]
STC89C52单片机对数字温度计显示系统的设计
机测量和控制技术在经济迅速发展的今天,已被广泛应用于人类生活中,如工业控制、自动检测、智能仪器仪表、家用电器、等各个方面。而主控制器是每个控制系统不可或缺的部分,正因为单片机有体积小,重量轻,抗干扰能力强,环境要求不高,价格低廉,可靠性高,灵活性好,开发较为容易等优点,所以它是很多设计人员的首选控制器。而在人们的日常生活或工业生产中,经常要对温度进行检测及控制。在许多场合器材设备对温度的要求非常高,而传统的温度计反应速度慢、读数麻烦、测量精度不高、误差大,所以需要设计一种高精度的温度计。为了在很大程度上提高对温度的控制水平,因此以单片机为核心的温度采集与控制系统很有用研发和应用意义。本文研究了一个可以实时存储和显示当前的温度数据,
[单片机]
STC89C52单片机对数字温度计<font color='red'>显示</font>系统的设计
Acacia收购数字微镜专利,关注显示器新技术
Acacia Research公司日前宣布其子公司Acacia专利收购公司收购了一个专利组合,与应用微镜研制电视、显示器和投影仪的数字图像有关。该专利技术涉及的技术有,利用微镜显示具有灰度缩放等级的彩色图像,用于大屏幕电视和投影仪。 该数字微镜技术用于微显示器,经常与德州仪器(TI)的DLP(数字光处理)技术联合采用。但诸如Miradia、Reflectivity,以及其它初创公司也在开发基于数字微镜的DLP的替代技术。 Acacia收购微镜专利对未来显示器发展将产生何种影响还有待观察。但该公司扩充专利组合将产生2亿美元的年收入。
[焦点新闻]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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