当前位置: 首页> 汽车> 新车 > 单片机建立自己的库文件(3)

单片机建立自己的库文件(3)

时间:2025/8/26 15:21:52来源:https://blog.csdn.net/ganhui13000/article/details/139525655 浏览次数: 2次

文章目录

  • 前言
  • 一、新建工程
  • 二、将库文件复制到工程中
    • 1.在工程中添加.c文件
    • 2.主函数中添加LCD1602.h文件
    • 3.主函数中添加需要的LCD1602的显示文件
  • 三、编译测试
  • 四、遇到问题
  • 五、最后完整.h .c
  • 总结


前言

提示:这里可以添加本文要记录的大概内容:

项目需要:调用自己写写的.c .h文件,为STM32学习奠定基础


提示:以下是本篇文章正文内容,下面案例可供参考

一、新建工程

上一次新建了.c 和 .h 文件这次新建工程来调用

在这里插入图片描述
在这里插入图片描述

二、将库文件复制到工程中

在这里插入图片描述

1.在工程中添加.c文件

在这里插入图片描述

2.主函数中添加LCD1602.h文件

在这里插入图片描述

3.主函数中添加需要的LCD1602的显示文件

#include<reg51.h>
#include<LCD1602.h>unsigned int a=0;void main()
{
// 初始化LCD1602 LcdInit();	LcdWriteCom(0x80);LcdWriteData('a'); LcdWriteData('1'); 	 LcdWriteData('2'); LcdWriteData('3'); LcdWriteData('4'); 	 // WUZHOU   1234      第一行// 0123456789123456   第二行while(1){a++;if(a==10000){a=0;}LcdWriteCom(0x80);LcdWriteData('a'); LcdWriteData(a/1000%10+0x30); 	 //+0x30 将数字转换成字符  acii表LcdWriteData(a/100%10+0x30); LcdWriteData(a/10%10+0x30); LcdWriteData(a%10+0x30); //			lcd_4num(0xc0,a);
//			Lcd1602_Delay1ms(2000);  }}

三、编译测试

在这里插入图片描述

四、遇到问题

在这里插入图片描述

在这里插入图片描述


五、最后完整.h .c

LCD1602.h


#ifndef __LCD1602_H__
#define __LCD1602_H__//---重定义关键词---//
#ifndef uchar
#define uchar unsigned char
#endif#ifndef uint 
#define uint unsigned int
#endif/**********************************
函数声明
**********************************/
/*在51单片机12MHZ时钟下的延时函数*/
void Lcd1602_Delay1ms(uint c);   //误差 0us
/*LCD1602写入8位命令子函数*/
void LcdWriteCom(uchar com);
/*LCD1602写入8位数据子函数*/	
void LcdWriteData(uchar dat);
/*LCD1602初始化子程序*/		
void LcdInit();	#endif

LCD1602.c

 #include <reg52.h> #include <LCD1602.h> /**********************************
PIN口定义
**********************************/
#define LCD1602_DATAPINS P0
sbit LCD1602_E=P2^7;
sbit LCD1602_RW=P2^5;
sbit LCD1602_RS=P2^6;/*******************************************************************************
* 函 数 名         : Lcd1602_Delay1ms
* 函数功能		   : 延时函数,延时1ms
* 输    入         : c
* 输    出         : 无
* 说    名         : 该函数是在12MHZ晶振下,12分频单片机的延时。
*******************************************************************************/void Lcd1602_Delay1ms(uint c)   //误差 0us
{uchar a,b;for (; c>0; c--){for (b=199;b>0;b--){for(a=1;a>0;a--);}      }}/*******************************************************************************
* 函 数 名         : LcdWriteCom
* 函数功能		   : 向LCD写入一个字节的命令
* 输    入         : com
* 输    出         : 无
*******************************************************************************/void LcdWriteCom(uchar com)	  //写入命令
{LCD1602_E = 0;     //使能LCD1602_RS = 0;	   //选择发送命令LCD1602_RW = 0;	   //选择写入LCD1602_DATAPINS = com;     //放入命令Lcd1602_Delay1ms(1);		//等待数据稳定LCD1602_E = 1;	          //写入时序Lcd1602_Delay1ms(5);	  //保持时间LCD1602_E = 0;
}/*******************************************************************************
* 函 数 名         : LcdWriteData
* 函数功能		   : 向LCD写入一个字节的数据
* 输    入         : dat
* 输    出         : 无
*******************************************************************************/		   void LcdWriteData(uchar dat)			//写入数据
{LCD1602_E = 0;	//使能清零LCD1602_RS = 1;	//选择输入数据LCD1602_RW = 0;	//选择写入LCD1602_DATAPINS = dat; //写入数据Lcd1602_Delay1ms(1);LCD1602_E = 1;   //写入时序Lcd1602_Delay1ms(5);   //保持时间LCD1602_E = 0;
}/*******************************************************************************
* 函 数 名       : LcdInit()
* 函数功能		 : 初始化LCD屏
* 输    入       : 无
* 输    出       : 无
*******************************************************************************/		   void LcdInit()						  //LCD初始化子程序
{LcdWriteCom(0x38);  //开显示LcdWriteCom(0x0c);  //开显示不显示光标LcdWriteCom(0x06);  //写一个指针加1LcdWriteCom(0x01);  //清屏LcdWriteCom(0x80);  //设置数据指针起点
}

main.c

#include<reg51.h>
#include<LCD1602.h>unsigned int a=0;void main()
{
// 初始化LCD1602 LcdInit();	LcdWriteCom(0x80);LcdWriteData('a'); LcdWriteData('1'); 	 LcdWriteData('2'); LcdWriteData('3'); LcdWriteData('4'); 	 // WUZHOU   1234      第一行// 0123456789123456   第二行while(1){a++;if(a==10000){a=0;}LcdWriteCom(0x80);LcdWriteData('a'); LcdWriteData(a/1000%10+0x30); 	 //+0x30 将数字转换成字符  acii表LcdWriteData(a/100%10+0x30); LcdWriteData(a/10%10+0x30); LcdWriteData(a%10+0x30); //			lcd_4num(0xc0,a);
//			Lcd1602_Delay1ms(2000);  }}

总结

用最简单的方式,将.c .h 添加到工程根目录,并用添加main.c 的方法添加LCD1602.c。主打一个简单实用。 第四将将讲解过度到 项目管理的要求做库管理。

关键字:单片机建立自己的库文件(3)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: