原创 PIC24HJ单片机自学笔记_IO端口

2014-1-7 07:40 2273 6 6 分类: MCU/ 嵌入式 文集: PIC24HJ单片机自学笔记
IO的端口大部分都是复用的,见下图:
20140107073230306.jpg

下面是一个典型的IO的结构:
20140107073645102.jpg
  • 读方向:则方向锁存器Q的数据被读到数据总线中。
  • 写方向:写方向,则IO单元的输出被打开
  • 写LAT和写端口是一样的:如果输出打开,则数据总线直接输出。
  • 读LAT只读回刚刚写出的数据
  • 读端口则是读引脚输入的值。

每一个IO都有四个寄存器:
  • 方向:复位时都定义为输入!
  • 端口:读端口是直接将端口数据读入,而写为写LAT,必须将端口设置为输出才能完成。部分指令为读+修改+写的操作,会引入一些意想不到的错误,要注意,尤其是在引脚带有电容负载的情况下。
  • 锁存:如果借用这个功能,就好办了,写锁存和读锁存跟外部没有关系,不会读外面电容负载的影响。
  • 开漏:3.3V系统如果要使用5V的电平,可以使用开漏,PIC24HJ128GP506开漏的电压VIH最高可达5.5V
外设复用:
20140107073705141.jpg
如果外设使能了,则IO引脚输出被剥夺,而输入还是可以使用。
这里要注意,有些引脚是默认为与外设模块共享的,如果要使用IO,就算外设模块没有打开,就必须先将此位请出来.
20140107073855892.jpg
上面的方框图还有一个细节,如果两个模块同时占用IO作为输出,则A明显会优先占有。
而输入都可以使用。

输入引脚的软件配置
一些引脚作为输入功能的时候,将不能使用它的输出功能,例如捕获功能。但是如果配置输入捕获为输出,有意思的事情来了,我们可以设置PORTX的值,来设置一个捕获信号,这个功能对于测试很有用,我们不需要给外部信号就可以设置输入了。

下面的模块就有这些功能:
  • 外部中断
  • 定时器时钟输入
  • 输入捕获
  • PWM故障引脚
还有一些则是由控制器完全控制的,为了避免通信出错:
  • SPI
  • I2C
  • UART
  • ECAN
CN功能:
CN的功能很好理解,方框图如下:
20140107073917931.jpg

CN的寄存器也很简单:
CNENX:使能中断
CNXPUE:上拉,上拉主要是作为一个电流源,为按键提供一个弱上拉。

如何操作?
流程如下:
  • 配置方向:作为一个数字输入
  • 使能中断:设置CNEN设置某位的使能
  • 使能上拉
  • 清标志
  • 中断优先级设置
  • 通过CNIE设置CN模块的中断使能。
这里一定要注意,使用者必须读走PORTX的值,为下一次中断准备依据。

睡眠模式和闲置模式下的应用:
CN可以唤醒CPU,并通过优先级的比较来确定CPU是不是要理会。












PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
6
关闭 站长推荐上一条 /3 下一条