单片机IO口操作是什么

2017-04-28

相信很多同学对单片机都有一定了解,那么你知道单片机IO口操作是什么吗?不知道的话跟着小编一起来学习了解单片机IO口操作。

单片机IO口操作

单片机中有四个i/o口,分别是P1,P2,P3和P4,每个引脚不止一种功能(如P3.2既是i/o口又是外部中断INT0引脚)。

下面用一个闪烁灯的例子来说明51单片机单个i/o口的用法:

/*****************************************************************************

晶振:11.0593MHz

LED接P1.0引脚

实验结果:LED每隔0.5s闪烁一次

*******************************************************************************/

#include<reg51.h> //包含头文件

#define LED P1.0 //定义LED为P1.0口

void delay(unsigned int i) //延时1ms函数

{

for(;i>0;i--)

for(int j=0;j<110;j++);

}

void main() //主函数

{

while(1)

{

LED=1; //熄灭LED

delay(500); //延时0.5s

LED=0; //点亮LED

delay(500);

}

}

下面再用一个流水灯例子说明51单片机整体I/O的用法:

/*****************************************************************************

晶振:11.0593MHz

8个LED1~LED8分别接接P1.0~P1.7引脚

实验结果:从LED1至LED8逐个点亮,呈现流水灯效果

*******************************************************************************/

#include<reg51.h>

void delay(unsigned int i) //延时1ms函数

{

for(;i>0;i--)

for(int j=0;j<110;j++);

}

void main()

{

while(1)

{

P1=0xFF; //就是二进制中的11111111,全部熄灭

delay(100); //延时0.1s

P1=0xFE; //就是二进制中的11111110,点亮LED1

delay(100); //延时0.1s

P1=0xFD; //就是二进制中的11111101,点亮LED2

delay(100); //延时0.1s

P1=0xFB; //就是二进制中的11111011,点亮LED3

delay(100); //延时0.1s

P1=0xF7; //就是二进制中的11110111,点亮LED4

delay(100); //延时0.1s

P1=0xEF; //就是二进制中的11101111,点亮LED5

delay(100); //延时0.1s

P1=0xDF; //就是二进制中的11011111,点亮LED6

delay(100); //延时0.1s

P1=0xBF; //就是二进制中的10111111,点亮LED7

delay(100); //延时0.1s

P1=0x7F; //就是二进制中的01111111,点亮LED8

delay(100); //延时0.1s

更多相关阅读

最新发布的文章