1604液晶屏输入输出C51源程序

发布者:快乐阳光最新更新时间:2016-11-17 来源: eefocus关键字:1604液晶屏  输入输出  C51源程序 手机看文章 扫描二维码
随时随地手机看文章

#include
#include "INC\LCD1604.H"


sfr  LCD_INTER = 0x80;    //数据总线接口
 sbit LCDBUSY=LCD_INTER^7;  //标志位

sfr  LCD_CONTROL = 0xA0;   //数据总线接口
 sbit LCDRS=LCD_CONTROL^0;  //数据、指令选择
 sbit LCDRW=LCD_CONTROL^1;  //读写选择
 sbit LCDE =LCD_CONTROL^2;  //使能

 

/******************************自定义字符*******************************/
unsigned char code Symbol[40] = {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
         0x00,0x00,0x04,0x0E,0x1F,0x00,0x00,0x00, //UP 01H 
         0x00,0x00,0x1F,0x0E,0x04,0x00,0x00,0x00, //DOWN 02H
         0x00,0x02,0x06,0x0E,0x06,0x02,0x00,0x00, //LEFT 03H
         0x00,0x08,0x0C,0x0E,0x0C,0x08,0x00,0x00}; //RIGHT 04H          
/***********************************************************************/
/*名称: LCD_WriteCmd()
/*说明: 向LCD送入1字节指令数据
/*输入: cmd 要输入的指令数据 
/*输出: 无
/***********************************************************************/ 
void LCD_WriteCmd(unsigned char cmd)

 bit BF;
 do
 {
  LCDRS=0;
  LCDRW=1;
  LCD_INTER = 0xFF;
  LCDE=1;
  BF=LCDBUSY;
  LCDE=0;
 }
 while(BF==1);

 LCDE=0;
 LCDRS=0;
 LCDRW=0;
 LCD_INTER = cmd;
 LCDE=1; 
 LCDE=0;
 LCDRS=1;
 LCDRW=1;
 LCD_INTER = 0xFF;
}
/***********************************************************************/
/*名称: LCD_SendData()
/*说明: 向LCD送入1字节数据
/*输入: Word 要输入的数据 
/*输出: 无 
/***********************************************************************/
void LCD_SendData(unsigned char Word)
{   
 bit BF;
 do
 {
  LCDRS=0;
  LCDRW=1;
  LCD_INTER = 0xFF;
  LCDE=1;
  BF=LCDBUSY;
  LCDE=0;
 }
 while(BF==1);

 LCDE=0;
 LCDRS=1;
 LCDRW=0;
 LCD_INTER = Word;
 LCDE=1;   
 LCDE=0;
 LCDRS=1;
 LCDRW=1;
 LCD_INTER = 0xFF;
}

/**********************************************************************/
/*名称: LCD_Init()
/*说明: LCD初始化程序
/*输入: 无
/*输出: 无
/**********************************************************************/ 
void LCD_Init(void)
{
 LCD_WriteCmd(0x30);
 LCD_WriteCmd(0x30);
 LCD_WriteCmd(0x30);
 LCD_WriteCmd(SET_FUCTION);
 LCD_WriteCmd(CLEAR_WINDOW);
 LCD_WriteCmd(RESET_AC);
 LCD_WriteCmd(INPUT_MODE);
 LCD_WriteCmd(DISPLAY_CON);
 LCD_WriteCmd(CLEAR_WINDOW);
}

/**********************************************************************/
/*名称: LCD_WriteCGRam()
/*说明: 写入自定义字符
/*输入: 无
/*输出: 无
/**********************************************************************/
void LCD_WriteCGRam(void)
{
 unsigned int i;
 LCD_WriteCmd(0x40);
 for(i=0;i<40;i++)
 {
  LCD_SendData(Symbol[i]);
 }
 LCD_WriteCmd(CLEAR_WINDOW);
}
/**********************************************************************/
/*名称: LCD_ByteWrite()
/*说明: LCD单字符输出程序
/*输入: pos  要输出的位置
/*  byte 要输出的字符
/*输出: 无
/**********************************************************************/
void LCD_ByteWrite(unsigned char pos,unsigned char byte)
{
 LCD_WriteCmd(pos);
 LCD_SendData(byte); 
}

/**********************************************************************/
/*名称: LCD_StrNWrite()
/*说明: LCD指定长度字符串输出程序
/*输入: pos  要输出的位置
/*  *str  字符串指针
/*  length 字符串长度 
/*输出: 无
/**********************************************************************/
void LCD_StrNWrite(unsigned char pos,unsigned char *str,unsigned char length)
{
 unsigned char i;
 LCD_WriteCmd(pos);
 for(i=0;i { 
  LCD_SendData(*(str+i));
 }
}

/**********************************************************************/
/*名称: LCD_StrWrite()
/*说明: LCD字符串输出程序
/*输入: pos  要输出的位置
/*  *str  字符串指针 
/*输出: 无
/**********************************************************************/
void LCD_StrWrite(unsigned char pos,unsigned char *str)
{
 unsigned char i;
 LCD_WriteCmd(pos);
 for(i=0;i { 
  LCD_SendData(*(str+i));
 }
}     


关键字:1604液晶屏  输入输出  C51源程序 引用地址:1604液晶屏输入输出C51源程序

上一篇:PID调节C51程序(5)
下一篇:模拟I2C总线软件包(C51)

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

51单片机之输入输出
1. IO介绍 51单片机总的管脚有40个,但是其中能够作为IO使用的只有32个,每8个分为一组,共4组。单片机要想实现预定功能必然要使用到各种IO口,来完成各项功能,包括点亮LED,连接按键、键盘,各种I2C、SPI设备等。51单片机,4组IO的结构略有不同,使用时应当注意。 P0属于双向IO,内部没有上拉电阻,作为输出时,最好外加上拉电阻。 P1、P2、P3属于准双向IO。“准”体现在输入时,必须先输出“1”,才能正确读到IO的输入情况。 P3口的各个IO均有复用功能: 2. IO编程 对于IO的操作无非是读输入和写输出,通过读写相应的寄存器(P0、P1、P2、P3)就可以实现。 2.1 字节寻址 字节寻址可以
[单片机]
51单片机之<font color='red'>输入输出</font>
基于ARM9和CPLD的输入输出系统设计
简介:嵌人式丁业控制系统的突出特点是在高低温、高电磁辐射环境下的抗干扰性和可靠稳定性。和PLC系统相比。其明显的优点是处理速度快、方便进行工业以太网的组建、编程方便、通用性好,而且价格仅仅是PLC的几分之一,具有很好的发展前景。本论文主要论述了以EP9315和MAX2_EPM240为核心的嵌入式输入输出系统的设计。 1 系统构成 整个嵌入式输入输出系统分为嵌入式系统、应用模块(即输入输出模块)和转换模块三部分,总体结构如图1所示。 图1系统结构框图 1.1 嵌入式系统 本设计选择CirrusLogic公司高性能的ARM9嵌入式微处理器EP9315.该微处理器具有ARM920T内核所有的优异性能。丰富的集成外设
[单片机]
基于ARM9和CPLD的<font color='red'>输入输出</font>系统设计
输入输出设备I/O设备总结
I/O设备又叫输入输出设备。 如上图,对于I/O bus 包含数据总线、控制总线、地址总线; 每一个I/O设备均连接到I/O总线上,与pc进行数据传输。所以衍生出I/O接口的概念,逐渐产生了一门技术“I/O接口技术”。 I/O接口电路位于cpu和外设之间(复杂的外设需要有一个设备控制器),外设通过I/O接口把信息传送给微处理器进行处理,微处理器将处理完的信息通过I/O接口传给外设。 一个典型的I/O接口应包含:端口,地址译码,总线驱动,控制逻辑。 I/O端口属于cpu可以直接访问的寄存器,包括状态寄存器、数据寄存器、控制寄存器。 地址译码属于对I/O总线的地址进行译码选中I/O端口。 总线驱动是在I/O端口和I/O总线之间的
[单片机]
<font color='red'>输入输出</font>设备I/O设备总结
MCS-51单片机输入输出
8051有4组8位I/O口:P0、P1、P2和P3口,P1、P2和P3为准双向口,P0口则为双向三态输入输出口,下面我们分别介绍这几个口线: P0口和P2口: 右图为P0口和P2口其中一位的电路图,由图可见,电路中包含一个数据输出锁存器和两个三态数据输入缓冲器,另外还有一个数据输出的驱动和控制电路。这两组口线用来作为CPU与外部数据存储器、外部程序存储器和I/O扩展口,而不能象P1、P3直接用作输出口。它们一起可以作为外部地址总线,P0口身兼两职,既可作为地址总线,也可作为数据总线。参考图2。 P2口作为外部数据存储器或程序存储器的地址总线的高8位输出口AB8-AB
[单片机]
MCS-51单片机<font color='red'>输入输出</font>口
STM32_USART输入输出讲解
今天总结STM32F103串口,以工程实例来讲述。 工程现象: 1.间断发送字符 2.接收中断(接收字符,并发送该字符) 软件工程下载地址(360云盘): https://yunpan.cn/cPEI3zyQ7UqJv 访问密码ee52 讲述分如下几点: 一、初始化始终 这里的“时钟配置”函数在bsp.c文件下面; 使能串口1(RCC_APB2Periph_USART1)时钟。 二、USART1引脚配置 这里的“USART1引脚配置”函数在usart.c文件下面; 初始化串口使用引脚, 包含端口引脚、频率、输出类型。 三、串口配置 这里的“串口配置”函数在usart.c文件下面; 详见
[单片机]
STM32_USART<font color='red'>输入输出</font>讲解
MSP430输入输出I/O口详解
IO 口是处理器系统对外沟通的最基本部件,从基本的键盘、LED 到复杂的外设芯片等,都是通过IO 口的输入、输出操作来进行读取或控制的。 MSP430系列中,不同单片机的IO 口数量不同。体积最小的MSP430F20xx系列只有10 个IO,适合在超小型设备中应用;功能最丰富的MSP430FG46xx系列多达80 个IO 口,足够应付外部设备繁多的复杂应用。在MSP430FE425 单片机中,共有14 个IO 口,属于IO 口较少的系列。但由于需要大量引脚的设备,如LCD、多通道模拟量输入等都有专用引脚,不占用IO 口。因此在大部分设计中IO 数量还是够用的。 l IO 口寄存器 和大部分单片机类似,MSP430 单片机也将
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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