自制编写51单片机封装库

发布者:EtherealHeart最新更新时间:2024-08-14 来源: cnblogs关键字:51单片机  封装库 手机看文章 扫描二维码
随时随地手机看文章

以下包含:三个文件,main.c、gpoi.c、gpio.h


 1 /*

 2 *主函数

 3 */

 4 

 5 #include

 6 #include

 7 

 8 void main()

 9     

10 {

11   P2 = 0;

12     setBit(GPIO_2,3);//GPIO_2意思是选择P2端口,3意思是选择P2.3这个位

13     while(1);

14 }


 1 /*

 2 *gpio.c文件

 3 */

 4 

 5 

 6 #include

 7 #include

 8 

 9 void setBit(unsigned char gpio,unsigned char pin)

10 {

11         unsigned char i = 1;//0000 0001

12       i = i<13     switch(gpio)//选择P0 P1 P2 P3

14     {

15         case 0:

16             P0 |=i;

17         break;

18         case 1:

19             P1 |=i;

20         break;

21         case 2:

22             P2 |=i;

23         break;

24         case 3:

25             P3 |=i;

26         break;

27         

28     }

29 }

30 void resetBit(unsigned char gpio,unsigned char pin)

31 {

32 unsigned char i = 1;                                                                                                    //0000 0001

33     i = i<34     i = ~i;//取反                                                                                                                    1111 1011

35     switch(gpio)

36     {

37         case 0:

38             P0 &=i;//按位与运算 有两个1才是1   1111 1011  所以第三为肯定为0,输出低电平

39         break;

40         case 1:

41             P1 &=i;

42         break;

43         case 2:

44             P2 &=i;

45         break;

46         case 3:

47             P3 &=i;

48         break;

49         

50     }

51 }


 1 /*

 2 *gpio.h文件 

 3 */

 4 

 5 #ifndef _GPIO_H_

 6 #define _GPIO_H_

 7 //枚举  0 1 2 3 表示P0 P2 P3 P4

 8 enum gpio{

 9     GPIO_0 = 0,GPIO_1 = 1,

10     GPIO_2 = 2,GPIO_3 = 3

11     };

12 /*

13     *把某个引脚设置为高电平

14     *@param gpio:枚举常量gpio

15     *@param pin:各IO寄存器对应的引脚有序号

16     */

17 

18 void etBit(

19     unsigned char gpio,

20     unsigned char pin);

21         

22     void resetBit(

23         unsigned char gpio,

24     unsigned char pin);

25     #endif


关键字:51单片机  封装库 引用地址:自制编写51单片机封装库

上一篇:闪烁的LED灯
下一篇:自定义reg52.h头文件(单片机学习重难点核心知识点)

推荐阅读最新更新时间:2026-03-25 11:43

STC8H开发(一): 在Keil5中配置和使用FwLib_STC8封装库
介绍 FwLib_STC8 是一个针对STC8G, STC8H系列MCU的C语言封装库, 适用于基于这些MCU的快速原型验证. 项目地址: Gitee FwLib_STC8 镜像地址: GitHub FwLib_STC8 为避免之前STC12封装库存在的问题, 这个封装库在以下方面进行了改进 兼容SDCC和Keil C51 FwLib_STC12封装库只支持SDCC编译, 并且寄存器命名与官方不同, 使得基于FwLib_STC12的项目代码与其他Keil开发的项目代码无法兼容. 在FwLib_STC8的开发上, 采用了与官方库文件一致的命名, 并且增加了对Keil C51和SDCC的适配. 基于FwLib_STC8的项目,
[单片机]
STC8H开发(一): 在Keil5中配置和使用FwLib_STC8<font color='red'>封装库</font>
仿真设计|基于51单片机的两路数码管温度检测报警系统
具体实现功能 (1)预设温度值和实测温度值分别由两个3位数码管显示,范围为0~99℃。 (2)当水温低于预设温度值时系统开始加热(红色发光二极管点亮表示加热状态)。 (3)当温度达到预设温度值时自动停止加热。 仿真演示视频: https://www.bilibili.com/video/BV1CfyZY9EP5/ 设计介绍 51单片机简介 51单片是一种低功耗、高性能CMOS-8位微控制器,拥有灵巧的8位CPU和可编程Flash,使得51单片机为众多嵌入式控制应用系统提供灵活、高效的解决方案。 本设计所使用的芯片可兼容以下所有的51系列单片机(包括AT系列和STC系列)。 资料内容 仿真实现(protues8.7)
[单片机]
51单片机的电路图看不懂,该补充哪些基础知识?
单片机是可编程芯片,现在的电子产品几乎都有单片机的身影。学好单片机可以找一份较好的工作。单片机相关的工作涉及到硬件设计和软件设计。在小公司,一般硬件和软件是不分开的,在大公司硬件和软件是分开的。我从事嵌入式行业多年,硬件和软件(主要裸奔)都做。如果只学习硬件设计的话,可以多看看电路分析、数字电路、模拟电路等相关内容。想要获取更多的电子知识,可以关注我的微信公众号,玩转嵌入式(micropoint8)。可以从以下几个方面去熟悉。 1.熟悉基础知识 电路的基础知识要牢固,从电路分析,到数字电路,还有模拟电路等,基本的概念一定要清楚。如题目中的上拉电阻,可以简单的理解为一端接在信号上,另一端接在电源上的电阻,如下图就是一个上拉电阻。起到
[单片机]
《逗比小憨憨51单片机Proteus仿真系列》第19期单片机的5位数码管显示(汇编代码)
源代码: ORG 0000H LJMP MAIN ORG 0030H MAIN: MOV 30H,#01H MOV 31H,#02H MOV 32H,#03H MOV 33H,#04H MOV 34H,#05H MOV P0,#8FH DIS1: MOV R0,#30H MOV R1,#00H MOV R2,#05H DIS2: MOV A,@R0 ANL A,#0FH MOV B,A MOV A,R1 ANL A,#0FH
[单片机]
《逗比小憨憨51单片机Proteus仿真系列》第2期51单片机的花式流水灯仿真
源代码: #include "reg52.h" #include "intrins.h" /*********************** Function : 花式流水实验 Hardware : 硬件连接:LED0-LED7 - P1.0-P1.7 Author : 欢迎关注逗比小憨憨 *******************/ #define u8 unsigned char #define u16 unsigned int u8 code tab = {0x7e,0xbd,0xdb,0xe7}; /* 声明子函数 */ void model1(); void model2();
[单片机]
《逗比小憨憨51单片机Proteus仿真系列》第12期单片机的串口实验
源代码: #include reg51.h char code *str = & #34;doubixiaohanhan&# 34;; void main(void) { void doubixiaohanhan(char *str); void delay_ms(int xms); TMOD = 0X20; SCON = 0X50; TH1 = 0XFD; TL1 = 0XFD; TR1 = 1; while(1) { doubixiaohanhan(str); delay_ms(1000); } } void doubixiaohanhan(char *str) { int i = 0;
[单片机]
51单片机学习(8)- IIC总线和AT24C02芯片
本次学习的是IIC总线相关知识以及用单片机来模拟IIC总线和AT24C02芯片进行通信。 内容关键点: 1 IIC总线的介绍 2 IIC总线细节 总结一下: 1 IIC总线的主机先发送启动信号,启动IIC总线; 2 在发送启动信号后,需要找到想要建立联系的对象,所以要发送寻址信号(寻址信号就是一个字节数据,包含7位的地址和1位读写;可以想象成寄信一样,家庭门牌号就是地址,根据地址俩找到位置) 3 在找到想要建立联系的对象后,该对象会回一个消息来通知你,这就是应答信号(应答信号是通过电平变化来表现的) 4 在建立完联系后,就可以开始发送数据了 5 停止发送数据 (让我想到了TCP中的三次握手!) 3
[单片机]
仿真设计|基于51单片机的双机通信控制数码管显示
具体实现功能 (1)双机通信系统分为通讯发送端和通讯接收端。(2)通讯发送端通过按键发送相应的数值(1-3),通讯接收端接收后通过数码管显示(1-3)。 设计介绍 51单片机简介 51单片是一种低功耗、高性能CMOS-8位微控制器,拥有灵巧的8位CPU和可编程Flash,使得51单片机为众多嵌入式控制应用系统提供灵活、高效的解决方案。 本设计所使用的芯片可兼容以下所有的51系列单片机(包括AT系列和STC系列)。 资料内容 仿真实现(protues8.7) 本设计利用protues8.7软件实现仿真设计,具体如图。 程序(Keil5) 本设计利用KEIL5软件实现程序设计。程序运行结果如图: 全部内容 全
[单片机]
小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved