精华内容
下载资源
问答
  • 串行工作模式之同步移位寄存器的输入输出方式 主要用于扩展并行输入或输出口。数据有RXD(P3.0)引脚输入或输出,同步移位脉冲由TXD(P3.1)引脚输出。发送和接受均为8位数据。低位在前,高位在后。 //串行口...

    串行工作模式之同步移位寄存器的输入输出方式

    主要用于扩展并行输入或输出口。数据有RXD(P3.0)引脚输入或输出,同步移位脉冲由TXD(P3.1)引脚输出。发送和接受均为8位数据。低位在前,高位在后。


    //串行口工作模式0


    #include <reg52.h>
    #define uchar unsigned char 
    #define uint unsigned int
    void delayms(uint xms)
    {
    uint i,j;
    for(i=xms;i>0;i--)
    for(j=110;j>0;j--);
    }
    void main()
    {
    SCON=0;
    EA=1;
    ES=1;
    TI=0;
    while(1)
    {
    SBUF=0xaa;
    //delayms(1);
    }
    }
    void ser0() interrupt 4
    {
    TI=0;
    }

    用 示波器看到的波形 注意的是发送的是靠左的是数据的地位。01010101的序列



    展开全文
  • stm32寄存器(四种输入输出方式

    千次阅读 2020-03-10 16:32:37
    c极 是开路,你可以接一个电阻到3.3V,也可以接一个电阻到5V,这样,在输出1时候,就可以是5V电压,也可以是3.3V电压了.但是不接电阻上拉时候,这个输出高就不能实现了. 推挽,就是有推有拉,任何时候IO口电平都是...

    概述

    在STM32入门学习过程中,STM32 的每个 IO 端口都有 7 个寄存器来控制。他们分别是:配置模式的 2 个 32 位的端口。
    配置寄存器 CRL 和 CRH;2 个 32 位的数据寄存器 IDR 和 ODR;1 个 32 位的置位/复位寄存器
    BSRR;一个 16 位的复位寄存器 BRR;1 个 32 位的锁存寄存器 LCKR;这里我们仅介绍常用 的
    几个寄存器,我们常用的 IO 端口寄存器只有 4 个:CRL、CRH、IDR、ODR。
    浮空,顾名思义就是浮在空中,上面用绳子一拉就上去了,下面用绳子一拉就沉下去了.
    开漏,就等于输出口接了个NPN三极管,并且只接了e,b. c极 是开路的,你可以接一个电阻到3.3V,也可以接一个电阻到5V,这样,在输出1的时候,就可以是5V电压,也可以是3.3V电压了.但是不接电阻上拉的时候,这个输出高就不能实现了.
    推挽,就是有推有拉,任何时候IO口的电平都是确定的,不需要外接上拉或者下拉电阻.
    (1)GPIO_Mode_AIN 模拟输入
    (2)GPIO_Mode_IN_FLOATING 浮空输入
    (3)GPIO_Mode_IPD 下拉输入
    (4)GPIO_Mode_IPU 上拉输入
    (5)GPIO_Mode_Out_OD 开漏输出
    (6)GPIO_Mode_Out_PP 推挽输出
    (7)GPIO_Mode_AF_OD 复用开漏输出
    (8)GPIO_Mode_AF_PP 复用推挽输出

    推挽电路是两个参数相同的三极管或MOSFET,以推挽方式存在于电路中,各负责正负半周的波形放大任务,电路工作时,两只对称的功率开关管每次只有一个导通,所以导通损耗小、效率高。输出既可以向负载灌电流,也可以从负载抽取电流。推拉式输出级既提高电路的负载能力,又提高开关速度。
    在这里插入图片描述

    开漏输出:输出端相当于三极管的集电极. 要得到高电平状态需要上拉电阻才行. 适合于做电流型的驱动,其吸收电流的能力相对强(一般20ma以内).
    总结下使用情况:
    在STM32中选用IO模式
    (1) 浮空输入_IN_FLOATING ——浮空输入,可以做KEY识别,RX1
    (2)带上拉输入_IPU——IO内部上拉电阻输入
    (3)带下拉输入_IPD—— IO内部下拉电阻输入
    (4) 模拟输入_AIN ——应用ADC模拟输入,或者低功耗下省电
    (5)开漏输出_OUT_OD ——IO输出0接GND,IO输出1,悬空,需要外接上拉电阻,才能实现输出高电平。当输出为1时,IO口的状态由上拉电阻拉高电平,但由于是开漏输出模式,这样IO口也就可以由外部电路改变为低电平或不变。可以读IO输入电平变化,实现C51的IO双向功能
    (6)推挽输出_OUT_PP ——IO输出0-接GND, IO输出1 -接VCC,读输入值是未知的
    (7)复用功能的推挽输出_AF_PP ——片内外设功能(I2C的SCL,SDA)
    (8)复用功能的开漏输出_AF_OD——片内外设功能(TX1,MOSI,MISO.SCK.SS)
    STM32设置实例:
    (1)模拟I2C使用开漏输出_OUT_OD,接上拉电阻,能够正确输出0和1;读值时先GPIO_SetBits(GPIOB, GPIO_Pin_0);拉高,然后可以读IO的值;使用GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_0);
    (2)如果是无上拉电阻,IO默认是高电平;需要读取IO的值,可以使用带上拉输入_IPU和浮空输入_IN_FLOATING和开漏输出_OUT_OD;
    在这里插入图片描述

    展开全文
  • STM32F103系列,每个端口IO最多为16,因此设置分为高8位IO与低8位IO,高8位IO与低8位IO 各有32位寄存器。 高8位IO需要操作(GPIOx_CRH)寄存器,低8位IO则操作(GPIOx_CRL) 1.低8位IO寄存器 每个IO口由该寄存器控制...

    STM32F103系列,每个端口的IO最多为16,因此设置分为高8位IO与低8位IO,高8位IO与低8位IO 各有32位寄存器。
    高8位IO需要操作(GPIOx_CRH)寄存器,低8位IO则操作(GPIOx_CRL)

    1.低8位IO寄存器

    在这里插入图片描述在这里插入图片描述
    每个IO口由该寄存器控制表的4个位进行控制,
    其中CNY寄存器两位,MODE寄存器两位。
    IO序号由ANY0CNY7,MODE0MODE7,对应的是Px0~Px7的io口。
    例如:设置PB6 IO口为输入模式

    //自行理解C语言的位带操作
    //先清空B6io寄存器内容
    GPIOB->CRL&= 0XF0FFFFFF;
    //由于设置为输入模式,若选择上拉/下拉输入模式
    //ANY控制位的值为10,MODE控制位的值为00,由于是B6IO,因此需要左移24位。
    GPIOB->CRL|= 8<<24;

    例如:设置PB6 IO口为输出模式,

    //先清空B6io寄存器内容
    GPIOB->CRL&= 0XF0FFFFFF;
    //由于设置为推挽输出模式,输出频率为50Mhz
    //ANY控制位的值为00,MODE控制位的值为11,由于是B6IO,因此需要左移24位。
    GPIOB->CRL|= 8<<24;
    展开全文
  • 这句话的意思是:将8[1000]左移12位后,再或上复位初始值0x44444444 得到CNF11=11,MODE11=00 最后端口配置为 保留的输入模式 GPIOG->CRH|=3; 这句话的意思是:将3[0011]左移12位后,再或上复位初始值0x44444444 ...

    这个问题困扰了我很久很久,今天我终于想明白了。

    直接上例子

    //IO方向设置
    #define DS18B20_IO_IN()  {GPIOG->CRH&=0XFFFF0FFF;GPIOG->CRH|=8<<12;}
    #define DS18B20_IO_OUT() {GPIOG->CRH&=0XFFFF0FFF;GPIOG->CRH|=3<<12;}
    IO操作函数											   
    #define	DS18B20_DQ_OUT PGout(11) //数据端口	
    #define	DS18B20_DQ_IN  PGin(11)  //数据端口	 

    896577b031b79586543ec016a8172139.png

    f4194d0e8a2a415dc454facbaf661a48.png

    这里所操作的是PG11,

    GPIOG->CRH&=0XFFFF0FFF;

    这句话的意思是:CNF11位和MODE11位设置为模拟输入模式

    GPIOG->CRH|=8<<12;

    这句话的意思是:将8[1000]左移12位后,再或上复位初始值0x44444444

    得到CNF11=11,MODE11=00

    最后端口配置为 保留的输入模式

    GPIOG->CRH|=3<<12;

    这句话的意思是:将3[0011]左移12位后,再或上复位初始值0x44444444

    得到CNF11=01,MODE11=11

    最后端口配置为 开漏输出模式,输出最高速度为50MHz


    举个例子,加入我现在要设置PA15为输入和输出模式

    //IO方向设置
    #define DS18B20_IO_IN()  {GPIOA->CRH&=0X0FFFFFFF;GPIOA->CRH|=8<<28;}
    #define DS18B20_IO_OUT() {GPIOA->CRH&=0X0FFFFFFF;GPIOA->CRH|=3<<28;}
    IO操作函数											   
    #define	DS18B20_DQ_OUT PAout(15) //数据端口	
    #define	DS18B20_DQ_IN  PAin(15)  //数据端口

    结果编译时出现错误

    warning: #61-D: integer operation result is out of range

    warning: #68-D: integer conversion resulted in a change of sign

    warning: #61-D: integer operation result is out of range

    warning: #68-D: integer conversion resulted in a change of sign

    解决的办法就是:

    加个(u32)在8<<28;

    前面就可以了。

    //IO方向设置
    #define DS18B20_IO_IN()  {GPIOA->CRH&=0X0FFFFFFF;GPIOA->CRH|=(u32)8<<28;}
    #define DS18B20_IO_OUT() {GPIOA->CRH&=0X0FFFFFFF;GPIOA->CRH|=(u32)3<<28;}
    展开全文
  • 端口编址与寻址接口中通常都设置了一些用于数据、控制和状态缓存的寄存器,这些寄存器就是能够让CPU直接访问I/O端口。为了便于CPU对外部设备快速识别和选择,必须对接口中所有可访问的寄存器(I/O端口)进行编址...
  • 几种标准外部接口输入/输出接口与主机内部所有模块连接是通过计算机系统总线完成,接口与外部设备连接部分则是系统总线通过接口向外延伸,它是采用标准接口实现连接。通常,称它为外部接口。相对内部...
  • 移位寄存器

    2020-12-09 01:57:52
    为了完成不同的移位功能,每个寄存单元的输出与其相邻的下一个寄存单元的输入之间的连接方式也不同。(2)所有寄存单元共用一个时钟。在公共时钟的作用下,各个寄存单元的工作是同步的。每输入一个时钟脉冲,寄存器的...
  • 基于嵌入式NiosⅡ软核串口直接读写寄存器方式编程,讨论了NiosⅡ软棱串口直接读写寄存器方式的编程方法,并给出了参考源代码。它与C语言标准输入输出语句相比,可极大地缩短程序执行时间,并使得CPU能同时...
  • 移位寄存器(shift_reg) 在数字电路中,移位寄存器是一种在...根据移位数据的输入输出方式,又可将它分为串行输入-串行输出、串行输入-并行输出、并行输入-串行输出和并行输入-并行输出四种电路结构。 移位寄...
  • 仅供参考,写是博主自己归纳理解,有歧义地方可以指出,博主也是刚开始学习,是个小白,写文章为了总结,日有用到可以方便自己查看。 1.STM8与STM32单片机GPIO所支持模式 ...常用的输出方式推挽结构“Push-.
  • 数据输入/输出缓冲寄存器的作用是将外设送来的数据暂时存放以供CPU取用,或者是存放CPU送往外设的数据。它可以在高速工作的CPU和不同速率工作的外设之间起协调缓冲作用,以保证两者之间的速率匹配。 (2)控制...
  • STM32寄存器方式流水灯

    千次阅读 2016-05-11 19:11:41
    GPIO寄存器 GPIOx->MODER 模式寄存器 32位 00:输入(复位状态) ...01:通用输出模式 ...注:输出推挽带负载能力强,输出开漏吸收电流能力相对强,要得到高电平需要上拉电阻 GPIOD->OSPEED
  • 操作系统的输入输出管理IO的控制方式主要是介绍了 四种IO与内存交换信息的方法,都需要掌握。 主要的重点冷月做出了标识,知识点如下图(pdf版或xmind源文件请关注公众号:学长冷月,回复操作系统)。 冷月点睛 ...
  • 在数字电路中,移位寄存器是一种在若干相同时间脉冲下工作的触发器为基础的器件,数据以并行或串行的方式输入到该器件中,然后每个时间脉冲依次向左或右...移位寄存器的输入输出都可以是并行或串行的。它们经常被...
  • 文字表达不太清楚,感兴趣的朋友可以观看视频:电堂科技​c.51diantang.... 端口的各个位可以被单独配置可选择的输入模式:浮动输入和带上拉输入可选择的输出模式:推挽式输出和开漏输出数据输入和输出采用独立的...
  • 程序自己控制输入输出。 busy控制是否向数据寄存器输入完毕。 数据先输入到数据寄存器中,之后当busy为0,装入内存供cpu使用。 缺点:CPU花费太多时间在输入输出上,成套流程都是CPU控制。CPU应该将时间用于计算,...
  • 5.2输入/输出控制方式

    2017-06-28 19:08:19
    设备管理的主要任务之一是控制设备和内存或处理机之间的数据传送,外围设备和内存之间的输入/输出控制方式有四种,下面分别介绍。 程序直接控制方式 如图5-1(a)所示,计算机从外部设备读取数据到存储器,每次读...
  • 8086 寄存器

    2020-09-02 15:47:47
    80386 系统结构 80386 微处理器基本结构 ...80386 的输入/输出接口 8038 的I/O系统 多功能接口芯片82380 80386 的异常和中断及其处理 实模式下异常和终端的处理过程 保护虚地址方式下异常和中断的处理过程 精简
  • LC-3指令集 字符的输入输出

    千次阅读 2020-05-20 23:39:41
    LC-3是一个简单的指令集,字符的输入输出,也比较简单,即通过中断的方式,键盘输入产生中断,有一些标志位,标志着键盘是否可用,显示器是否可用,下面介绍LC-3中的输入输出 这里写目录标题4个寄存器字符的输入键盘...
  • 移位寄存器数据 可以在移位脉冲作用下依次逐位右移或左移,数据既可以并行输入、并行输出,也可以串行输入、串行输 出,还可以并行输人、串行输出,串行输人、并行输出,输人输出方式十分灵活,用途也很广。...
  • (笔记总结)80C51串行口工作方式

    千次阅读 2018-11-29 16:57:38
    方式0时,串行口为同步移位寄存器的输入输出方式。主要用于扩展并行输入或输出口。数据由RXD(P3.0)引脚输入或输出,同步移位脉冲由TXD(P3.1)引脚输出。发送和接收均为8位数据,低位在先,高位在后。波特率固定为...
  • 操作系统的输入输出管理IO的控制方式主要是介绍了 四种IO与内存交换信息的方法,都需要掌握。 主要的重点冷月做出了标识,知识点如下图(pdf版或xmind源文件请我:操作系统)。 冷月点睛 输入输出管理IO的控制方式 ...
  • 0000为模拟输入、0100为浮空输入、0101为开漏输出… 但你可能会发现当写入1000时为上拉/下拉输入 问:那到底是上拉还是下拉呢?? 答:默认状态是下拉输入 问:那怎么配置上拉输入呢?? 答:e.g.PB2配置为上拉输入 ...
  • 移位寄存器的功能和电路形式较多,按移位方向分有左移、右移、和双向移位寄存器;按接收数据方式分为串行输入和并行输入;按输出方向分为串行输出和并行输出。 如果将若干个触发器级联成如下图所示电路,则构成基本...
  • (2) 输入输出指令 掌握点: I/O端口 I/O端口就是I/O接口中用于存储数据,可以直接被CPU访问的寄存器 输入输出指令 PORT是端口 寻址方式: 练习
  • 输入输出中断

    2014-05-08 11:10:00
    每一种输入设备都要通过硬件接口或控制器与CPU相连,程序利用I/0指令,存取接口上的寄存器,获得外部设备状态信息,从而实现输入输出 I/O地址:在8086家族中,I/O端口地址和存储单元地址是相互独立,各自...
  • 移位寄存器串入并出与并入串出  在数字电路中,移位寄存器... 移位寄存器的输入输出都可以是并行或串行的。它们经常被配置成串入并出(serial-in, parallel-out, SIPO)的形式或并入串出(parallel-in, seri
  • 输入输出系统

    2019-02-09 22:11:12
    I/O寄存器的访问方式 I/O通道 中断 中断处理程序和设备驱动程序 I/O中断处理程序 设备驱动程序 I/O控制方式 与设备无关的I/O软件 设备无关性 设备软件独立性 设备分配 缓存管理 用户层的I/O软件 I/O...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 828
精华内容 331
关键字:

寄存器的输入输出方式