高电平

单片机最小系统详解,你要知道的都在这里了

僤鯓⒐⒋嵵緔 提交于 2020-04-06 19:28:40
单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统. 对51系列单片机来说,最小系统一般应该包括:单片机、晶振电路、复位电路. 下面给出一个51单片机的最小系统电路图. 说明: 复位电路:由电容串联电阻构成,由图并结合"电容电压不能突变"的性质,可以知道,当系统一上电,RST脚将会出现高电平,并且,这个高电平持续的时间由电路的RC值来决定.典型的51单片机当RST脚的高电平持续两个机器周期以上就将复位,所以,适当组合RC的取值就可以保证可靠的复位.一般教科书推荐C 取10u,R取8.2K.当然也有其他取法的,原则就是要让RC组合可以在RST脚上产生不少于2个机周期的高电平.至于如何具体定量计算,可以参考电路分析相关书籍. 晶振电路:典型的晶振取11.0592MHz(因为可以准确地得到9600波特率和19200波特率,用于有串口通讯的场合)/12MHz(产生精确的uS级时歇,方便定时操作) 单片机:一片AT89S51/52或其他51系列兼容单片机 特别注意:对于31脚(EA/Vpp),当接高电平时,单片机在复位后从内部ROM的0000H开始执行;当接低电平时,复位后直接从外部ROM的0000H开始执行.这一点是初学者容易忽略的. 复位电路 一、复位电路的用途 单片机复位电路就好比电脑的重启部分,当电脑在使用中出现死机

基于stm32的HC-SR04超声波测距模块使用

北城以北 提交于 2020-04-06 19:09:17
1 工作原理 使用超声波模块之前,先了解其IO口和工作原理: 1.1 IO说明 VCC: 供5V电源 GND: 为地线 TRIG: 触发控制信号输入 ECHO: 回响信号输出 1.2 基本工作原理: 认真看好以下工作原理,后面的代码就是基于工作原理来实现的。 (1)采用IO口TRIG触发测距,给最少10us的高电平信号。 (2)模块自动发送8个40khz的方波,自动检测是否有信号返回; (3)有信号返回, 通过IO口ECHO输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。 测试距离=(高电平时间*声速(340M/S))/2 时序图: 2 程序编写 2.1 外设配置 根据两个信号引脚来配置两个单片机的IO口 trig: 需要产生一个10us高电平, 配置为推挽输出; echo: 等待高电平脉冲并测量其脉冲宽度, 配置为下拉输入 测量echo的高电平持续的时间,需要用到定时器, 因此配置一个定时器,用来计时 void UltrasonicWave_Init(void) { GPIO_InitTypeDef GPIO_InitStructure; TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);//开启GPIOB时钟 RCC

Verilog -- IIC总线协议

纵饮孤独 提交于 2020-04-04 15:06:47
Verilog -- IIC总线协议 @ 目录 Verilog -- IIC总线协议 简介 读写时序 写时序 读时序 verilog代码设计 IIC发送模块的接口定义与整体设计 SCL标志位创建逻辑 发送逻辑 读逻辑 IIC设备多字节连续读写操作 参考自 https://www.cnblogs.com/liujinggang/p/9656358.html 上面的博文写的很好,下面只是摘录一些重要知识点以及自己的理解。 简介 IIC(Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。I2C总线产生于在80年代,最初为音频和视频设备开发,如今主要在服务器管理中使用,其中包括单个组件状态的通信。例如管理员可对各个组件进行查询,以管理系统的配置或掌握组件的功能状态,如电源和系统风扇。可随时监控内存、硬盘、网络、系统温度等多个参数,增加了系统的安全性,方便了管理。IIC数据传输速率有标准模式(100 kbps)、快速模式(400 kbps)和高速模式(3.4 Mbps),另外一些变种实现了低速模式(10 kbps)和快速+模式(1 Mbps)。 需要注意的是IIC总线的数据采集是scl高电平期间,再0电平期间允许sda数据变化。因此是电平敏感的,不是边沿触发类型 。  

I2C通信

心不动则不痛 提交于 2020-03-17 07:52:44
项目之前研究了I2C通信协议的实现,完成FPGA对视频解码芯片SAA7111A的初始化配置,设计实现了I2C主机对从机(SAA7111A)32个寄存器的写操作,因此只简单实现了I2C的写时序。 这次重新梳理学习了I2C协议,借助黑金开发板设计I2C主机控制器完成对EEPROM(24LC02)的读写操作,设计单字节的写时序和随机读时序。通过按键将数据先入EEPROM,再通过按键选择将数据显示在数码管上进行验证。 1. 时序介绍 主要的时序如下所示: 数据线SDA在空闲状态时为高电平,在SCL高电平时拉低SDA表示开始,在SCL低电平时拉高SDA表示结束。数据在SCL低电平时变化,8位数据,高位在前,低位在后。一个数据字节后,接收器需要产生一个低电平,即拉低SDA,表示接收正确。 写时序: 读时序: 其中,应答位一般由接收器产生,在读时序时主机接收数据一般不产生应答位(NO ACK),除了在连续读模式下,一个数据读完需要拉低SDA产生应答位。 2. 串行时钟线(SCL) 首先要确定SCL时钟,根据系统时钟利用计数器完成SCL的100KHz的设置,这里SCL作为输出信号,因此为输出单向口。 1 //分频部分 2 reg[2:0] cnt; // cnt=0:scl上升沿,cnt=1:scl高电平中间,cnt=2:scl下降沿,cnt=3:scl低电平中间 3 reg[8:0] cnt

「STM32 」IIC通讯原理及其实验

北慕城南 提交于 2020-03-17 07:52:26
I2C两线式串行总线通讯协议,它是由飞利浦开发的,主要用于连接微控制器及其外围设备之间,它是由数据线SDA和信号线SCL构成的,可发送和接收数据即在MUC和I2C设备之间,I2C和I2C之间进行全双工信号传输,高速I2C总线一般可达到400kbps。一般我们也称为TWI接口。 I2C支持多主机模式: 即在这个主线上可以挂载n个I2C外设。 对于I2C协议,其实也很简单,不要想的那么复杂,其实就是电平的变换。我们可以人为的分为6个部分 整体时序图: 各状态: 空闲状态 I2C总线的SCK和SDA两个线同时处于高电平的时候,规定为总线的空闲状态,这个就是由总线上的上拉电阻把电平拉高的。 起始信号 当SCL为高电平期间,SDA由高电平变成低电平,即为起始信号。启动信号是一种电平跳变时序信号,不是一个电平信号。 停止信号 当SCL为高电平期间,SDA由低电平变为高电平,即为停止信号。停止信号也是一种电平跳变时序信号,不是一个电平信号。 应答信号 发送器每发送一个字节(8bit)数据,就在时钟脉冲(SCL)9期间释放数据线(SDA),再由接收器来反馈一个应答信号,应答信号为低电平的时候,规定为有效应答位(ACK:应答位),表明接收器已经成功的接收了该字节,应答信号为高电平时,规定为非应答位(NACK:非应答位),表示接收器没有成功的接收该字节。 对于反馈有效应答位(ACK)

单片机下使用IIC

纵饮孤独 提交于 2020-03-17 07:51:56
一、 IIC 总线有两根双向信号线,一根是数据线 SDA ,一根是时钟线 SCL 每根接到 IIC 总线上的器件都有唯一的地址 二、 IIC 通信协议的函数写法 1、 起始信号 2、 终止信号 3、 写数据 4、 读数据 5、 发送应答信号 6、 发送非应答信号 7、 等待应答 8、 检测 IIC 总线设备 三、 函数解析 1、 起始信号和终止信号 SCL 为高电平期间, SDA 线由高电平向低电平变化表示起始信号 SCL 为高电平期间, SDA 线由低电平向高电平变化表示终止信号 void i2c_Start(void) { /* 当SCL高电平时,SDA出现一个下跳沿表示I2C总线启动信号 */ SDA = 1; SCL = 1; i2c_Delay(); SDA = 0; i2c_Delay(); SCL = 0; i2c_Delay(); } void i2c_Stop(void) { /* 当SCL高电平时,SDA出现一个上跳沿表示I2C总线停止信号 */ SDA = 0; SCL = 1; i2c_Delay(); SDA = 1; i2c_Delay(); } 2、 应答和非应答 IIC 总线规定,每传送一字节的数据后都要有一个应答信号以确定数据传送是否被对方接收。 应答信号由接收设备产生,在 SCL 为高电平期间,接收设备将 SDA 拉低为低电平,表示数据传输正确

AD7739的SPI程序,DS1302的SPI程序,和24C02IIC程序字节读写总结

落爺英雄遲暮 提交于 2020-03-12 13:08:39
一、AD7739的SPI程序 空闲电平是高电平,所以字节读写程序最后时钟电平是高电平,必须是完整的时钟周期。 void Write7738(unsigned char ch) { unsigned char idata, n=8; // 向SDA上发送一位数据字节,共八位 //传输时钟频率117.260KHZ,T=8.528US和波形相符合2020.1.11 CS=0; //但是硬件的SPI计算频率140.625KHZ,实际波形234.625KHZ,T=4.26US不相符合2020.1.11 SCK = 1 ; //时钟置高 while(n--) { delay_us(3); //delay(3); SCK = 0 ; //时钟置低 if((ch&0x80) == 0x80) // 若要发送的数据最高位为1则发送位1 { MOSI = 1; // 传送位1 } else { MOSI = 0; // 否则传送位0 } delay_us(3); //delay(3); SCK = 1 ; //时钟置高 ch = ch<<1; // 数据左移一位 } CS=1; //在103行导致RDY引脚一直是高电平 } //----------------------------------------------------------------------------------------

ESP8266 SDK开发: 外设篇-PWM,呼吸灯

走远了吗. 提交于 2020-03-01 16:20:05
说明 1.英文版的资料介绍的不够详细,看这个资料 注意:资料说共用一个硬件定时器,由于从前面知道硬件定时器本身是us级别 说明产生PWM是一个us级别的,让引脚产生PWM只不多也是进入硬件定时器 中断然后控制引脚翻转而已. 2.为了看到明显效果 利用开发板的GPIO2上的LED 设置GPIO2输出PWM 1.根据资料定义一个1*3的数组 //引脚寄存器地址 复用值(普通IO) 引脚序号 uint32 io_info[1][3] = {PERIPHS_IO_MUX_GPIO2_U, FUNC_GPIO2, 2}; 2.设置引脚的高电平时间 uint32 duty[1]={1023/1000*100};//高电平时间约是100us 1023: 固定,我感觉实际上应该填写1024 1000: PWM的周期是1000us(这个在下面) 至于为什么是这样,请用户接着看 3.启动 #include "pwm.h" //1000:周期1000us duty:高电平时间100us 1:就配置了一个管脚,因为数组是[1][3] io_info:io_info数组 pwm_init(1000, duty, 1, io_info); pwm_start();//启动PWM 4.测试 4.1.GPIO2的指示灯发暗 4.2.用示波器观察 5.关于为什么设置高电平时间是 1023*周期/高电平时间

关于IIC总线

二次信任 提交于 2020-02-08 12:51:45
关于IIC总线 I2C(Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。I2C总线产生于在80年代,最初为音频和视频设备开发,如今主要在服务器管理中使用,其中包括单个组件状态的通信。例如管理员可对各个组件进行查询,以管理系统的配置或掌握组件的功能状态,如电源和系统风扇。可随时监控内存、硬盘、网络、系统温度等多个参数,增加了系统的安全性,方便了管理。 1 I2C总线特点 I2C总线最主要的优点是其简单性和有效性。由于接口直接在组件之上,因此I2C总线占用的空间非常小,减少了电路板的空间和芯片管脚的数量,降低了互联成本。总线的长度可高达25英尺,并且能够以10Kbps的最大传输速率支持40个组件。 I2C总线的另一个优点是,它支持多主控(multimastering), 其中任何能够进行发送和接收的设备都可以成为主总线。一个主控能够控制信号的传输和时钟频率。当然,在任何时间点上只能有一个主控。 2 I2C总线工作原理 2.1 总线的构成及信号类型 I2C总线是由 数据线SDA 和 时钟SCL 构成的串行总线,可发送和接收数据。在CPU与被控IC之间、IC与IC之间进行双向传送,最高传送速率100kbps。 各种被控制电路均并联在这条总线上,但就像电话机一样只有拨通各自的号码才能工作

STM32入门之电路基础

◇◆丶佛笑我妖孽 提交于 2020-02-04 01:10:19
描述了一些简单的电路基础知识 模拟电路转数字电路进行采样曲线 电路的基本元素 电路图中的电源线表达符号 数字电路电平表达 电平 推挽输出(带负载输出高电平) 推挽输出(吸收电流低电平) 上下拉电阻 拉的是某一个接口,0或者1的电平状态 平时高电平,复位时低电平,直接导通接地为0。 下拉电阻保持低电平,唤醒后触发高电平为1,忽略低电平,因为电路都是优先导通电阻最小的通路。 来源: CSDN 作者: weixin_40227845 链接: https://blog.csdn.net/weixin_40227845/article/details/104161400