LCD1602显示程序

发布者:HarmoniousDream最新更新时间:2016-09-08 来源: eefocus关键字:LCD1602  显示程序 手机看文章 扫描二维码
随时随地手机看文章
/*********端口定义,可以修改*****************/

sbit ledrs=P2^3; //读写控制字    
sbit leden=P2^5; //使能端控制字
sbit ledrw=P2^4;
void write_com(uchar com)
{
  ledrw=0;
 ledrs=0;
 P0=com;
 delayl(1);
 leden=1;
 delayl(1);
 leden=0;
}
void write_data(uchar date)
{
  ledrw=0;
 ledrs=1;
 P0=date;
 delayl(1);
 leden=1;
 delayl(1);
 leden=0;
}
void LCD_init() 
{
  leden=0;
  write_com(0x38);
  write_com(0x0c);
  write_com(0x06);
  write_com(0x01);

void setPosition(uchar x,uchar y)
{
 uchar pos;
 switch(x%2)
 {
  case 1:pos=0x80+y;break; //第一行
  case 0:pos=0xc0+y;break; //第二行
 }
 write_com(pos);
}                 
void printc(uchar a)
{
 write_data(a); 
}

void prints(uchar * str)      
{   uchar i = 0;
    while(str[i] != '\0')
    {
        write_data(str[i++]);
    }
}
uchar buffer[5];
void IntToStr(uint t, uchar *str,uchar n) 
{
uchar a[5]; char i, j;    //取得整数值到数组                                  
 a[0]=t/100;   //百位          
 a[1]=(t/10)%10;//十位                                      
 a[2]=t%10;    //个位                     
                                     
                                                      
 for(i=0; i<3; i++)         //转成ASCII码               
  a[i]=a[i]+'0';                                     
 for(i=0; a[i]=='0' && i<=1; i++);                      
 for(j=3-n; j   { *str=' ';  str++; }                              
 for(; i<3; i++)                                        
  { *str=a[i]; str++; }  //加入有效的数字            
 *str='\0'; 
}
void inttostrr(uint t,uchar *str)
{
 uchar a[6],i;
 a[0]=t/100+'0';   //百位          
 a[1]=(t/10)%10+'0';//十位                                      
 a[2]='.';//十位 
 a[3]=t%10+'0';    //个位
 for(i=0; i<4; i++)                                        
  { *str=a[i]; str++; }  //加入有效的数字
 *str='\0'; 
}

 

#define uint unsigned int
#define uchar unsigned char

void delayl(uint n) //长延时n毫秒
{
 uint i,j;
 for(i=n;i>0;i--)
  for(j=114;j>0;j--);
}

void delays(uchar i)//短延时
{
 while(i--);
}

关键字:LCD1602  显示程序 引用地址:LCD1602显示程序

上一篇:DS18B20智能温度传感器驱动程序
下一篇:基于GPS/GPRS/RFID的车辆监控终端设计

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

AT89C51单片机1602液晶显示时钟程序
这是一款AT89C51单片机1602液晶显示时钟程序,功能主要有:温度、时间、日期、星期显示以及调节。有多级菜单显示。第一级菜单调节时间、日期。第二级菜单显示自定义信息。 #include reg52.h #include intrins.h #define uchar unsigned char #define uint unsigned int sbit DQ=P2^1; sbit light=P2^7; sbit k1=P1^0; sbit k2=P1^1; sbit k3=P1^2; sbit k4=P1^3; sbit k5=P1^4; sbit LED1=P1^3; sbit LED2=P1^4; sbit
[单片机]
AT89C51单片机1602液晶<font color='red'>显示</font>时钟<font color='red'>程序</font>
单片机应用系统显示程序编写
已知一单片机应用系统如图1所示。试回答问题并编写显示程序,以1秒为间隔,亮暗相间,显示 88888888 。 (1).写出各口的地址和控制字 A口地址: B口地址: C口地址: 控制口地址: 控制字: (2).显示程序 图片1
[单片机]
单片机应用系统<font color='red'>显示</font><font color='red'>程序</font>编写
T6963C控制器的LCD实用显示程序
ORG 0000H LJMP RETUN ORG 0050H RETUN: ;ACALL DL10MS ACALL DISP ;执行本子程序 AJMP $ ;------------------------------------------ DISP:; LCALL CDSET ; LCD 初始化 ; MOV DPTR,# Hz TAB ;取字码表 ; LCALL HZXSR ;送显 MOV DPTR,#ASCTB ;取字码表 LCALL HZXSR ;送显 ACALL CDSET ;清屏 MOV DPTR,#DIANYA ;取字码表 LCALL HZXSR ;送显
[单片机]
STM8 LCD602显示程序
软件设计 /********************************************************************* 目 的: 建立LCD1602操作库 目标系统: 基于STM8单片机 应用软件: Cosmic CxSTM8 *********************************************************************/ #define PORT_busy PB_DDR=0x00;PB_CR1=0xff; #define busy PB_IDR #define PORT_OUT PB_DDR=0xff;PB_CR1=0xff; #define
[单片机]
LCD显示接口模块的程序设计
低功耗方式Sleep,通过执行一条睡眠指令就进入低功耗方式。如果使能,MDT将被清0,但仍保持运行。TO(STUATUS 4 )位被置1,PD位(STUATUS 3 )被清0,振荡器驱动器被停止。所有I/O端口保持Sleep指令执行前它们所有的状态(驱动高、驱动低或高阻)。 在这种方式时为使电流消耗最低,把所有的I/O引脚放在VDD或VSS电平上,以保证外部电路从I/O引脚、低功耗的A/D、不使能的外部时钟中拉出电流。为使电流消耗最低,TOCK1输入电平应该在VDD或VSS上。 1.睡眠唤醒 单片机通过下列事件之一唤醒睡眠:   · 在MCLR引脚上的外部复位输入;   · 监视定时器唤醒(如果WDT使能
[电源管理]
LCD<font color='red'>显示</font>接口模块的<font color='red'>程序</font>设计
(海尔)东软单片机 HR7P153 SOP-16数码管显示程序
HR7P153 SOP-16三个数码管显示,共阴极。 单片机源程序如下: #include hic.h #include math.h #define u8 unsigned char #define u16 unsigned int u16 i,a=0; u8 const SEG7 ={0x77,0x06,0xb3,0x97,0xc6,0xd5,0xf5,0x07,0xf7,0xd7}; u8 const ACT ={0xfb,0xf7,0xef,}; /****************/ void Ram_Clr(void) //ram全清 { __asm { CLR IAAL; C
[单片机]
跑秒程序-数码管显示
/* 程序效果:跑秒,同时显示四位数码管 版权所有:http://www.51hei.com 转载请保留. P1控制数码管的位 P2控制段 注意:如果无法在keil里编译,请删除每一行的所有前导空白, */ #include reg52.h //头文件 #define uchar unsigned char //宏定义 #define uint unsigned int void display(); //函数声明 uchar code table ={0x3f,0x06,0x5b,//数码管显示的数值 0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; void delay(uchar x) //延
[单片机]
LCD1602高手使用详解
前面总算走完了对AVR MEGA16这块单片机的一些基本的应用方式了,这时候大家对AVR的一些内部资源比如定时器,ADC,最主要的IO口的使用方式应该有了一个虽比较粗浅但是却比较形象的认识了。这节我们来看使用单片机的另外一大主题,就是用单片机来实现芯片控制。 在前面的数码管显示一文中,就已经涉及到了用单片机来控制芯片为我们工作,CEPARK AVR开发板,为了达到增强驱动能力和节省IO口的作用,运用了移位寄存器74HC595来驱动两个四位八段数码管,是一个十分有创意的设计。但是前面的内容重心还是集中于对AVR的IO口的控制,所以,我们从这节开始要正式逐渐深入的接触各种芯片了。 先做个引子。单片机是一种微控制器,本身内部集成了数
[单片机]
<font color='red'>LCD1602</font>高手使用详解
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

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

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