上电rc复位电路时间时, i/o 端口配置为输出引脚.对不对

设单片机 P2.0 引脚接一个按键(按下时为低电平),P0口接8个发光二极管(输出1发光,0 在单片机的P0口接有8个发光二极管作为指示灯,P1.0...
你正在浏览: & >
设单片机 P2.0 引脚接一个按键(按下时为低电平),P0口接8个发光二极管(输出1发光,0
设单片机 P2.0 引脚接一个按键(按下时为低电平),P0口接8个发光二极管(输出1发光,0
INT1、T0。
3. ++var表示对变量var先增一;var—表示对变量后减一. While( 1 );&#177.h给出了SFR特殊功能寄存器所有端口的定义单片机的外部结构;O引脚;�©ߵ熽µıೌ(运行单片机内部ROM中的程序)
7. P3支持第二功能:RXD、TXD、INT0,TL1:
C语言编程基础。
2. 如果将一个16位二进数赋给一个8位的字节变量,则自动截断为低8位,而丢掉高8位。
4. x |= 0x0f;(IE. DIP40双列直插;
5 2. P0,P1;表示为 x = x | 0x0f;
5; 表示无限执行该语句,即死循环,也就是{;
Ԛijҽ¨&#189,TH1)
3. 一个串行通信接口;(SCON,SBUF)
4. 一个中断控制器. 十六进制表示字节0x5a,P2,P3四个8位准双向I&#47,而不改变TMOD的高四位。
6;(作为I/O输入时;(10uF电容接CC与RESET,即可实现上电复位)
5. 内置振荡电路,外部只要接晶体至X1(PIN18)和X0(PIN19);(频率为主频的12倍)
6. 程序配置EA(PIN31)接高电平CC;O部件;£O部件.3£¨PIN4£©&#1213,TL0;¨&#330. TMOD = ( TMOD & 0xf0 ) | 0x05;表示给变量TMOD的低四位赋值0x5;0x6E为;O端口,对应引脚P0、P1、T1
单片机内部I/&#163. 高电平复位RESET(PIN9):
1;1;༁,要先输出高电平)
3. 电源CC(PIN40)和地线GND(PIN20);
4;½䳶º¸ţ
&#180:(所为学习单片机,实际上就是编程控制以下I&#47。语句后的分表示空循环体,IP)
针对AT89C52单片机,头文件AT89x52;&#183,完成指定任务)
1. 四个8位通用I/
2. 两个16位定时计数器;(TMOD,TCON:二进制为B;½·&#520、P2和P3,TH0
4-07 10:59
INT1、T0。
3. ++var表示对变量var先增一;var—表示对变量后减一. While( 1 );&#177.h给出了SFR特殊功能寄存器所有端口的定义单片机的外部结构;O引脚;�©ߵ熽µıೌ(运行单片机内部ROM中的程序)
7. P3支持第二功能:RXD、TXD、INT0,TL1:
C语言编程基础。
2. 如果将一个16位二进数赋给一个8位的字节变量,则自动截断为低8位,而丢掉高8位。
4. x |= 0x0f;(IE. DIP40双列直插;
5 2. P0,P1;表示为 x = x | 0x0f;
5; 表示无限执行该语句,即死循环,也就是{;
Ԛijҽ¨&#189,TH1)
3. 一个串行通信接口;(SCON,SBUF)
4. 一个中断控制器. 十六进制表示字节0x5a,P2,P3四个8位准双向I&#47,而不改变TMOD的高四位。
6;(作为I/O输入时;(10uF电容接CC与RESET,即可实现上电复位)
5. 内置振荡电路,外部只要接晶体至X1(PIN18)和X0(PIN19);(频率为主频的12倍)
6. 程序配置EA(PIN31)接高电平CC;O部件;£O部件.3£¨PIN4£©&#1213,TL0;¨&#330. TMOD = ( TMOD & 0xf0 ) | 0x05;表示给变量TMOD的低四位赋值0x5;0x6E为;O端口,对应引脚P0、P1、T1
单片机内部I/&#163. 高电平复位RESET(PIN9):
1;1;༁,要先输出高电平)
3. 电源CC(PIN40)和地线GND(PIN20);
4;½䳶º¸ţ
&#180:(所为学习单片机,实际上就是编程控制以下I&#47。语句后的分表示空循环体,IP)
针对AT89C52单片机,头文件AT89x52;&#183,完成指定任务)
1. 四个8位通用I/
2. 两个16位定时计数器;(TMOD,TCON:二进制为B;½·&#520、P2和P3,TH0
4-07 10:59
你可能感兴趣的内容?S3C2410多功能复用I/O口_Linux编程_Linux公社-Linux系统门户网站
你好,游客
S3C2410多功能复用I/O口
来源:Linux公社&
作者:js_gary
S3C2410A共有117个多功能复用输入/输出口(I/O口),分为8组,即PORTA~PORT H,8组I/O口按照其位数的不同,可分为:1个23位输出口(PORT A)2个11位I/O口(PORT B和PORT H)4个16位I/O口(PORT C、PORT D、PORT E和PORT G)1个8位I/O口(PORT F)
具体的I/O口配置见S3C2410A芯片手册
&&& 在S3C2410A中,大部分引脚都是复用的,所有需要对每一个引脚定义其功能。为了使用I/O口,首先也要定义引脚的功能。配置这些端口,是通过设置一系列寄存器来实现的。与配置I/O都相关的寄存器包括:端口控制寄存器(GPACON~GPHCON)、端口数据寄存器(GPADAT~GPHDAT)、端口上拉寄存器(GPBUP~GPHUP)、杂项控制寄存器以及外部中断屏蔽寄存器(EXTINTN)等。所有GPIO寄存器的值在掉电模式下都会被保存。外部中断屏蔽寄存器EINTMASK不能阻止从掉电模式唤醒,但是如果EINTMASK正在屏蔽的是EINT[15:4]中的某位,则可以实现唤醒,不过中断源挂起寄存器SRCPND的位EINT4_7和EINT8_23在刚刚唤醒后不置1。
&&& 端口控制寄存器用于定义每个引脚的功能。如果GPF0~GPF7和GPG0~GPG7用作掉电模式下的唤醒信号,那么这些端口必须在中断模式下配置。
&&& 如果将端口配置为输出口,数据可以写入到端口数据寄存器的相应位中;如果将端口配置为输入口,则可以从端口数据寄存器的相应位中读出数据。
&&& 端口上拉寄存器用于控制每组端口的上拉电阻为禁止还是使能。如果相应位设置为0,则表示该引脚的上拉电阻使能;为1,则表示上拉电阻禁止。如果使能了端口上拉寄存器,则不论引脚配置为哪种功能,上拉电阻都会起作用。
&&& 杂项控制寄存器用于控制数据端口的上拉电阻、高阻状态、USBPad和CLKOUT的选择。
&&& 24个外部中断通过不同的信号被请求。EXTINTn寄存器用于配置这些信号对于外部中断请求采用的是低电平触发、高电平触发、下降沿触发、上升沿触发还是双边沿触发。
下面对相关寄存器的设置分别进行描述:
1.PORT A控制寄存器:
GPACON&&&&&&& 地址0x&&&&&&&&&&&
&&&&&&&&&&&&&&& 配置A口的引脚,使用位[22:0]
&&&&&&&&&&&&&& 0:输出引脚
&&&&&&&&&&&&&& 1:输入引脚
GPADAT&&&&&&&& 地址0x
&&&&&&&&&&&&&& A口的数据寄存器,使用位[22:0]
保留&&&&&&&&&& 地址0x&
保留&&&&&&&&&& 地址0x5600000C&
2.PORT B控制寄存器:
GPBCON &&&&&& 地址0x
&&&&&&&&&&&&&& 配置B口的引脚,使用位[21:0]分别对B口的相应11个位进行配置。
&&&&&&&&&&&&&& 00:输入&&&&&&&&&&&& 01:输出
&&&&&&&&&&&&&&& 10:功能引脚&&&&&&&& 11:保留
GPBDAT&&&&&&&& 地址0x
&&&&&&&&&&&&&& B口的数据寄存器,使用位[10:0]
GPBUP&&&&&&&& 地址0x
&&&&&&&&&&&&&& B口的上拉电阻禁止寄存器,使用位[10:0]
&&&&&&&&&&&&&& 1表示禁止&&&&&& 0表示使能
保留&&&&&&&&&& 地址0x5600001C&
3.PORT C控制寄存器:
GPCCON &&&&&& 地址0x
&&&&&&&&&&&&&& 配置C口的引脚,使用位[31:0]分别对C口的相应16个位进行配置。
&&&&&&&&&&&&&& 00:输入&&&&&&&&&&&& 01:输出
&&&&&&&&&&&&&&& 10:功能引脚&&&&&&&& 11:保留
GPCDAT&&&&&&&& 地址0x
&&&&&&&&&&&&&& C口的数据寄存器,使用位[15:0]
GPCUP&&&&&&&& 地址0x
&&&&&&&&&&&&&& C口的上拉电阻禁止寄存器,使用位[15:0]
&&&&&&&&&&&&&& 1表示禁止&&&&&& 0表示使能
保留&&&&&&&&&& 地址0x5600002C&
4.PORT D控制寄存器:
GPDCON &&&&&& 地址0x
&&&&&&&&&&&&&& 配置D口的引脚,使用位[31:0]分别对D口的相应16个位进行配置。
&&&&&&&&&&&&&& 00:输入&&&&&&&&&&&& 01:输出
&&&&&&&&&&&&&&& 10:功能引脚&&&&&&&& 11:保留/另一功能引脚
GPDDAT&&&&&&&& 地址0x
&&&&&&&&&&&&&& D口的数据寄存器,使用位[15:0]
GPDUP&&&&&&&& 地址0x
&&&&&&&&&&&&&& D口的上拉电阻禁止寄存器,使用位[15:0]
&&&&&&&&&&&&&& 1表示禁止&&&&&& 0表示使能
保留&&&&&&&&&& 地址0x5600003C&
5.PORT E控制寄存器:
GPECON &&&&&& 地址0x
&&&&&&&&&&&&&& 配置E口的引脚,使用位[31:0]分别对E口的相应16个位进行配置。
&&&&&&&&&&&&&& 00:输入&&&&&&&&&&&& 01:输出
&&&&&&&&&&&&&&& 10:功能引脚&&&&&&&& 11:保留/另一功能引脚
GPEDAT&&&&&&&& 地址0x
&&&&&&&&&&&&&& E口的数据寄存器,使用位[15:0]
GPEUP&&&&&&&& 地址0x
&&&&&&&&&&&&&& E口的上拉电阻禁止寄存器,使用位[15:0]
&&&&&&&&&&&&&& 1表示禁止&&&&&& 0表示使能
保留&&&&&&&&&& 地址0x5600004C&
6.PORT F控制寄存器:
GPFCON &&&&&& 地址0x
&&&&&&&&&&&&&& 配置F口的引脚,使用位[15:0]分别对F口的相应8个位进行配置。
&&&&&&&&&&&&&& 00:输入&&&&&&&&&&&& 01:输出
&&&&&&&&&&&&&&& 10:功能引脚&&&&&&&& 11:保留
GPFDAT&&&&&&&& 地址0x
&&&&&&&&&&&&&& F口的数据寄存器,使用位[7:0]
GPFUP&&&&&&&& 地址0x
&&&&&&&&&&&&&& F口的上拉电阻禁止寄存器,使用位[7:0]
&&&&&&&&&&&&&& 1表示禁止&&&&&& 0表示使能
保留&&&&&&&&&& 地址0x5600005C&
7.PORT G控制寄存器:
GPGCON &&&&&& 地址0x
&&&&&&&&&&&&&& 配置G口的引脚,使用位[31:0]分别对G口的相应16个位进行配置。
&&&&&&&&&&&&&& 00:输入&&&&&&&&&&&& 01:输出
&&&&&&&&&&&&&&& 10:功能引脚&&&&&&&& 11:保留/另一功能引脚
GPGDAT&&&&&&&& 地址0x
&&&&&&&&&&&&&& G口的数据寄存器,使用位[15:0]
GPGUP&&&&&&&& 地址0x
&&&&&&&&&&&&&& G口的上拉电阻禁止寄存器,使用位[15:0]
&&&&&&&&&&&&&& 1表示禁止&&&&&& 0表示使能
保留&&&&&&&&&& 地址0x5600006C&
8.PORT H控制寄存器:
GPHCON &&&&&& 地址0x
&&&&&&&&&&&&&& 配置D口的引脚,使用位[21:0]分别对D口的相应11个位进行配置。
&&&&&&&&&&&&&& 00:输入&&&&&&&&&&&& 01:输出
&&&&&&&&&&&&&&& 10:功能引脚&&&&&&&& 11:保留/另一功能引脚
GPHDAT&&&&&&&& 地址0x
&&&&&&&&&&&&&& H口的数据寄存器,使用位[10:0]
GPHUP&&&&&&&& 地址0x
&&&&&&&&&&&&&& H口的上拉电阻禁止寄存器,使用位[10:0]
&&&&&&&&&&&&&& 1表示禁止&&&&&& 0表示使能
保留&&&&&&&&&& 地址0x5600007C&
9.杂项控制寄存器:
MISCCR &&&&&&& 地址0x
&&&&&&&&&&&&&& 控制数据端口的上拉电阻、高阻状态、USB Pad和CLKOUT的选择
10.DCLK控制寄存器:
DCLKCON& &&&& 地址0x
&&&&&&&&&&&&&& DCLK0/1控制寄存器,位[27:16]控制DCLK1,位[11:0]控制DCLK0
11.外部中断控制寄存器:
EXTINT0&&&&&& 地址0x
EXTINT1&&&&&& 地址0x5600008C
EXTINT2&&&&&& 地址0x
12.外部中断滤波寄存器:
EINTFLT0&&&&&& 地址0x
EINTFLT1&&&&&& 地址0x
EINTFLT2&&&&&& 地址0x5600009C
&&&&&&&&&&&&&&& 控制EINT19~EINT16的滤波时钟和滤波宽度&&&&&&&&&&&&
EINTFLT3&&&&&& 地址0x
&&&&&&&&&&&&&& 控制EINT23~EINT20的滤波时钟和滤波宽度
13.外部中断屏蔽寄存器:
EINTMASK&&&&&& 地址0x
&&&&&&&&&&&&&& 使用位[23:4]分别对EINT23~EINT4设置是否屏蔽相应中断
&&&&&&&&&&&&&&& 0:使能中断&&&&&&&& 1:屏蔽中断
14.外部中断挂起寄存器:
EINTPEND&&&&& 地址0x
&&&&&&&&&&&&&& 使用位[23:4]分别对EINT23~EINT4设置是否请求中断挂起
&&&&&&&&&&&&&&& 0:不请求挂起&&&&&&&& 1:请求挂起
15.通用状态寄存器:
GSTATUS0 &&&& 地址0x560000AC
&&&&&&&&&&&&&& 外部引脚状态
GSTATUS1 &&&& 地址0x
&&&&&&&&&&&&&& 芯片ID
GSTATUS2 &&&& 地址0x
&&&&&&&&&&&&&& 复位状态
GSTATUS3 &&&& 地址0x
&&&&&&&&&&&&&& 通知(Inform)寄存器。可被复位信号nRESET或看门狗定时器清零
GSTATUS4 &&&& 地址0x560000BC
&&&&&&&&&&&&&& 通知(Inform)寄存器。可被复位信号nRESET或看门狗定时器清零
相关资讯 & & &
& (06月05日)
& (10/06/:29)
& (01/17/:34)
& (03/08/:41)
& (04/11/:45)
& (12/04/:17)
   同意评论声明
   发表
尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除其管辖留言中的任意内容
本站有权在网站内转载或引用您的评论
参与本评论即表明您已经阅读并接受上述条款您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
通用和复用功能I-O.doc 40页
本文档一共被下载:
次 ,您可全文免费在线阅读后下载本文档。
下载提示
1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
2.该文档所得收入(下载+内容+预览三)归上传者、原创者。
3.登录后可充值,立即自动返金币,充值渠道很便利
需要金币:108 &&
你可能关注的文档:
··········
··········
通用和复用功能I/O
STM32F10x系列有着丰富的端口可供使用,有26/37/51/80/112个多功能双向5V兼容的快速I/O口,所有I/O口可以映像到16个外部中断。每个GPI/O端口有两个32位配置寄存器(GPIOx_CRL,GPIOx_CRH),两个32位数据寄存器GPIOx_IDR,GPIOx_ODR),一个32位置位/复位寄存器(GPIOx_BSRR),一个16位复位寄存器(GPIOx_BRR)和一个32位锁定寄存器(GPIOx_LCKR)。GPIO端口的每个位可以由软件分别配置成多种模式。
推挽式输出
推挽式复用功能
开漏复用功能
每个I/O端口位可以自由编程,I/0端口寄存器必须按32位字被访问(不允许半字或字节访问)。GPIOx_BSRR和GPIOx_BRR寄存器允许对任何GPIO寄存器的读/更改的独立访问;这样,在读和更改访问之间产生IRQ时不会发生危险。
图3-1-1给出了一个I/O端口位的基本结构。
I/O端口位的基本结构
3.1.1 通用I/O(GPIO)
复位期间和复位后,复用功能未开启,I/O端口被配置成浮空输入模式。复位后,JTAG引脚被置于输入上拉或下拉模式:
─ PA15:JTDI置于上拉模式
─ PA14:JTCK置于下拉模式
─ PA13:JTMS置于上拉模式
─ PB4: JNTRST置于上拉模
当I/O脚作为输出配置时,写到输出数据寄存器上的值(GPIOx_ODR)输出到相应的I/O引脚。可以以推挽模式或开漏模式(当输出0时,只有N-MOS被打开)使用输出驱动器。 输入数据寄存器(GPIOx_IDR)在每个APB2时钟周期捕捉I/O引脚上的数据。所有GPIO引脚都有一个内部弱上拉和弱下拉,当配置为输入时,它们可以被激活也可以被断开。
3.1.2单独的位设置或位清除
当对GPIOx_ODR的个别位编程时,软件不需要禁止中断:在单次APB2写操作里,可以只更改一个或多个位。这是通过对“置位/复位寄存器”(GPIOx_BSRR,复位是 GPIOx_BRR)中想要更改的位写’1’来实现的。没被选择的位将不被更改。
3.1.3 外部中断/唤醒线
所有端口都有外部中断能力。为了使用外部中断线,端口必须配置成输入模式。更多的关于外部中断的信息,参考:外部中断/事件控制器章节介绍
3.1.4复用功能(AF)
使用默认复用功能前必须对端口位配置寄存器编程。对于复用的输入功能,端口必须配置成输入模式(浮空、上拉或下拉)且输入管脚必须由外部驱动;对于复用输出功能,端口必须配置成复用功能输出模式(推挽或开漏);对于双向复用功能,端口位必须配置复用功能输出模式(推挽或开漏)。这时,输入驱动器被配置成浮空输入模式。
如果把端口配置成复用输出功能,则引脚和输出寄存器断开,并和片上外设的输出信号连接。 如果软件把一个GPIO脚配置成复用输出功能,但是外设没有被激活,它的输出将不确定。
3.1.5软件重新映射I/O复用功能
为了使不同器件封装的外设I/O功能的数量达到最优,可以把一些复用功能重新映射到其他一些脚上。这可以通过软件配置相应的寄存器来完成(参考AFIO寄存器描述)。这时,复用功能就不再映射到它们的原始引脚上了。
GPIO锁定机制
锁定机制允许冻结IO配置。当在一个端口位上执行了锁定(LOCK)程序,在下一次复位之前,将不能再更改端口位的配置。这主要用在一些关键引脚的配置上,防止程序跑飞引起灾难性后果,如在配置驱动功率模块的配置上,应该使用锁定机制以冻结IO口配置,即使程序跑飞,也不会改变这些引脚的配置。
3.1.7 输入配置
当I/O端口配置为输入时,在图3-1-1 I/O端口位的基本结构图中,会有以下变化:
1. 输出缓冲器被禁止 ;
2. 施密特触发输入被激活;
3. 根据输入配置(上拉,下拉或浮动)的不同,弱上拉和下拉电阻被连接 ;
4. 出现在I/O脚上的数据在每个APB2时钟被采样到输入数据寄存器 ;
对输入数据寄存器的读访问可得到I/O状态。
3.1.8输出配置
当I/O端口被配置为输出时,在图3-1-1 I/O端口位的基本结构图中,会有以下变化:
1. 输出缓冲器被激活 :
-- 开漏模式:输出寄存器上的’0’激活 N-MOS,而输出寄存器上的’1’将端口置于高阻状态(P-MOS从不被激活)。
-- 推挽模式:输出寄存器上的’0’激活 N-MOS,而输出寄存器上的’1’将激活 P-MOS。
正在加载中,请稍后...温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
阅读(12791)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
在LOFTER的更多文章
loftPermalink:'',
id:'fks_',
blogTitle:'51单片机IO端口的四种输入输出模式 (by wuleisly)',
blogAbstract:'单片机IO口的使用对所有单片机玩家来说都是“家常便饭”,但是你真的了解IO口吗?你真的能按你的需要配置IO口吗?
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}}

我要回帖

更多关于 复位电路时间计算 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信