最近刚刚接触了单片机方面,关于单片机方面的知识很多也很杂,本科生一般还不会接触到比较系统的知识,所以在学习的同时,我也把自己的笔记进行了整理,希望能对大家产生帮助,关于单片机的理论知识,我大概会分为五个模块来进行知识点方面的讲解,如果大家也和我一样,是想要去多学习多了解单片机方面知识的人。首先我们需要了解的最基本的知识便是I/O口的控制,
I/O口控制
cc2530I/O端口说明
cc2530中有21个数字输入输出引脚可以进行配置和连接,主要有一下四点功能:
1、 21个数字通用输入/输出引脚
2、 通用I/O或外设I/O
3、 输入上拉或下拉功能
4、外部中断功能
通用I/O:共21个,分成三组,p0组、p1 组、p2组,其中的p0和p1组各有八个IO,p2有五个IO。其中只有p1_0、p1_1有20mA的输出驱动能力,其余都只有4mA。
所有端口都可通过SFR寄存器P0,P1和P2进行位和字节寻址。 每个端口引脚都可以单独设置为通用I / O或外设I / O。
具体IO口图像是这样的:
字节地址和位地址
位地址指的是每一位的地址,八位一个字节,如果把字节比成一个8位数组的话,字节地址就是这个数组的首地址。一个位里面的内容可以是0或者1。地址是八位二进制。
举一个简单一点的例子来说:
AT89S52单片机中规定,累加器A的字节地址是E0H,规定它的八个位地址是E7H~E0H
如果累加器A此时存数00001011
那么,字节地址E0H内容是00001011。
位地址E0H的内容是1,
位地址E1H的内容是1,
位地址E2H的内容是0,
位地址E3H的内容是1,
位地址E4H,E5H,E6H,E7H的内容都是0
RAM
随机存取存储器,也叫主存,随时读写速度很快,数据易失,一旦断电,数据立即丢失
I/O相关寄存器说明
1、GPIO功能选择寄存器——PxSEL
寄存器PxSEL(其中x是端口号0-2)用于将端口中的每个引脚配置为通用I/O引脚或外设I/O引脚,可寻位寻址。默认情况下,复位后,所有数字输入/输出引脚都配置为通用输入引脚。
其中,P2SEL只有第0位至第2位是端口2的功能选择控制位,第3位至第6位是端口1的外设优先级控制位。
2、GPIO输入输出方向选择寄存器——PxDIR
寄存器PxDIR用于将每个端口的引脚方向设置为输入方向或输出方向。 因此,将PxDIR中的相应位设置为1,相应的引脚就变成输出方向,可位寻址。
位寻址:单片机内部只有RAM和特殊功能寄存器的部分单元有位地址,因此位寻址只能对有位地址的这两个空间进行寻址操作。
其中,P2DIR只有第0位至第4位是端口2的方向选择控制位,第6位和第7位是端口0外设优先级控制位。
3、GPIO输入模式寄存器——PxINP
寄存器PxINP用于设置IO端口的输入模式,通用I / O端口引脚可配置为具有上拉,下拉或三态操作模式。 默认情况下,复位后,输入配置为带有上拉的输入。如果要取消输入端口的上拉或下拉功能,必须将PxINP中的相应位设置为1。
I / O端口引脚P1.0和P1.1不具有上拉或下拉功能。
请注意,即使IO端口是外设功能输入,配置为外设I / O信号的引脚也不具有上拉或下拉功能。
其中,P2INP中,第0位至第4位是端口2的输入模式选择位,第5位至第7位是端口0、端口1、端口2的上下拉选择位。