zoukankan      html  css  js  c++  java
  • 自制编写51单片机封装库

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

     1 /*
     2 *主函数
     3 */
     4 
     5 #include <reg52.h>
     6 #include <gpio.h>
     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 <GPIO.h>
     7 #include <reg52.h>
     8 
     9 void setBit(unsigned char gpio,unsigned char pin)
    10 {
    11         unsigned char i = 1;//0000 0001
    12       i = i<<pin;//做移运算,pin对应的位为1,其他为0
    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<<pin;//做移运算,pin对应的位为1,其他为0    假如:pin输入3          0000 0100
    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
  • 相关阅读:
    idea 设置默认的maven
    IDEA中Tomcat部署时war和war exploded区别
    所谓的SaaS服务到底是什么?
    java8 Lambda表达式
    java8 :: 用法 (JDK8 双冒号用法)
    idea 本地调试,修改代码,代码自动生效
    nacos配置中心demo
    Logparser 的用法
    android软键盘的一些控制 转来的,格式有点乱
    TranslateAnimation 使用详解
  • 原文地址:https://www.cnblogs.com/kinson/p/7575285.html
Copyright © 2011-2022 走看看