以下包含:三个文件,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<
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<
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