找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 11133|回复: 0
打印 上一主题 下一主题
收起左侧

如何对单片机IO口编程详解

[复制链接]
跳转到指定楼层
楼主
ID:279978 发表于 2018-1-31 12:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
学习嵌入式还是先了解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

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表