标题: 如何对单片机IO口编程详解 [打印本页]

作者: 永恒的思恋    时间: 2018-1-31 12:38
标题: 如何对单片机IO口编程详解
学习嵌入式还是先了解IO口吧,IO口作为单片机的基本单元作用很大
相关知识讲解:
IO 口能做什么呢? IO 口是单片机中最基本的单元了,通过对 IO 口寄存器的控制, 可以让它作为输出管脚或者是输入管脚。作为输出管脚时,可以输出高电平(5V)或者是 低电平(0V),这个通过给数据寄存器赋值实现。作为输入脚时,可以检测到外部电平变化。
在芯片手册中我们可以看到,对 IO 口的操作主要由两个寄存器实现,一个是数据方 向寄存器 DDR*(*代表 A、B、C…),一个是数据寄存器PORT*。
以 DDRA 为例,我们可以看到一个寄存器,控制 8 个 IO 管脚,当相应位置 1 时,相 应管脚被配置成输出模式,当置 0 时,相应管脚被配置成输入模式。
当一个管脚被配置成输出模式,那么到底输出高电平还是低电平由谁决定呢,这时就 需要数据寄存器 PORTA 了,当数据方向寄存器指定了某一管脚是输出时,输出的具体电平 由 PORT*决定。



举例:
我想让 PA7 管脚输出高电平,怎么写程序呢?很简单

DDRA              |=0x80; PORTA  |=0x80;

0x 指后面数据为 16 进制,0x80=1000 0000B ,|=运算就是 DDRA =DDRA | 0x80,也
就是将第 7 位置 1,且不改变别的位的状态。假如你写 DDRA=0x80,那么这就意味着第 7
位被置 1,其他位都被置 0。
实际应用:
在我们的开发板中 led2 和 led3 分别有 PE5  和 PE6 控制,当 PE5,PE6 为低电平时 led
中有 5mA 电流流过,led 亮,当 PE5,PE6 为高电平时,led 中无电流流过,led 灭。
让 led 亮程序
DDRE              |=0x60; /*0xC0=0110 0000,即将 PE5、PE6 设置成输出模式*/
PORTE &=0x9F;/*0x9F=1001 1111 这时按位与操作,将 PE5、PE6 设置成低电平*/


让 led 灭程序
DDRE |=0x60; /*0xC0=0110 0000,即将 PE5、PE6 设置成输出模式*/ PORTE |=0x60;/*0x60=0110 0000 将 PE5、PE6 设置成高电平,led 灭*/ 好啦,快去试试吧,这样就算和飞思卡尔的单片机打过招呼啦~~


下载:


如何对IO口编程.pdf

249.77 KB, 下载次数: 22, 下载积分: 黑币 -5






欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1