⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lcd.h

📁 基于m16的寻迹小车(包含小车题目
💻 H
字号:
/*
****************************************
//头文件名:LCD液晶驱动
//创建人  :hebei
//创建时间:2008-5-30
//芯片    : m16
//晶振    : 8.0000Mhz
//说明    : 为节省程序空间,尽量不用浮点型显示, 可以用条件编译去掉,可自行修改。
            函数前带有使用例子。
//		  	
// 注意   : 本驱动对以前版本做更新,带写负浮点数和写负整数(其实是从12864的驱动里拷贝过来而已)
            如果没有必要不推荐使用此版本,因为在算法上增加额外时间与空间, 同一程序增加flash约为2%左右
****************************************
*/

/*------AVR与LCD连接信息-----------------------------------------
PA_2 ->RS
PA_3 ->EN
PA_4 ->D4
PA_5 ->D5
PA_6 ->D6
PA_7 ->D7            6根线
----------------------------------------------------------------*/

#ifndef _LCD_H_
#define _LCD_H_
#include "DELAY.H"
#include <string.h>
#include <stdlib.h>


//===============使用本驱动,改变下面配置信息即可==================
#define uint    unsigned int
#define uchar   unsigned char

#define LEFT        0
#define RIGHT       1
#define RS_SET      PORTA |=  (1 << 1)
#define RS_CLR      PORTA &=~ (1 << 1)
#define EN_SET      PORTA |=  (1 << 3)
#define EN_CLR      PORTA &=~ (1 << 3)
#define DB          PORTA                  //定义数据口
#define DB_DDR_OUT  { DDRA |= 0b11110000, DDRA |= 0b00001010; }    //使用到的口线定义为1
//=================================================================

//===================函数说明======================================
void long_to_string( long int dataint, char *p  );                 //整型数据转化为字符串
void float_2_string( float dataf, char *datastr, uchar p );        // 浮点型数据转化为字符串

void LCD_en_write(void);										   //使能
void LCD_write_command(uchar command);							   //写指令
void LCD_write_data(uchar DATA);								   //写数据
void LCD_init( void );	  										   //初始化
void LCD_set_rc( uchar r, uchar c );							   //写位置
void LCD_write_string(uchar r, uchar c, uchar *s);				   //写字符串
void LCD_write_char(uchar r, uchar c, uchar DATA);				   //写字符
void LCD_write_chardata( uchar r, uchar c, uchar chardata[]);      //写整型字符n
void LCD_write_array( uchar r, uchar c, uchar array[] );			  //写字符数组

void LCD_write_datalongint( uchar r, uchar c, long int datalongint );  //写整数
void LCD_write_datafloat( uchar r, uchar c, float dataf, uchar p );    //写浮点型数据
//==================================================================
#endif

/*---------------------------------------例主程序--------------------------------------
#include <iom16v.h>
#include "lcd.h"
#include "delay.h"

void init_devices( void )
{
 	 LCD_init();
}

void main( void )
{
 	 long int i = 0;
	 float tmp_f = 0.00;	
 	 init_devices();             //目标板初始化
	
	 LCD_write_string( 1, 4, "TEST LCD" );     //写字符串
	 delay_ns( 1 );  //延时1S
	 LCD_write_string( 1, 0, "                        " );   //清第一行数据
	
	 for( i = 0; i < 1234; i++ )        //显示整数,小数
	 {
	  	  LCD_write_datalongint( 2, 1, i ); //显示正整数 i
		  LCD_write_datalongint( 1, 0, i*(-1) ); //显示负整数 -i
		  delay_nms( 10 );
		
		  tmp_f = 1.234 * i;
		  LCD_write_datafloat( 2, 8, tmp_f, 2 );  //显示正浮点数tmp_f, 小数位2位
		  LCD_write_datafloat( 1, 7, tmp_f*(-1), 2 );  //显示负浮点数-tmp_f, 小数位2位
		
		  if( i == 1233 )
		  {
		   	  LCD_write_string( 1, 0, "                        " );   //清第一行数据
			  LCD_write_string( 2, 0, "                        " );   //清第二行数据
			  i = 0;
	      }
	 }
}
*/
//--------------------------------------------------------------------------------------------------------

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -