20I2C-EEPROM实验
I2C介绍
I2C(Inter-Integrated Circuit)总线是由 PHILIPS 公司开发的两线式串行总线,用于连接微控制器及其外围设备。是微电子通信控制领域广泛采用的一种总线标准。它是同步通信的一种特殊形式,具有接口线少,控制方式简单,器件封装形式小,通信速率较高等优点。I2C 总线只有两根双向信号线。一根是数据线 SDA,另一根是时钟线 SCL。由于其管脚少,硬件实现简单,可扩展性强等特点,因此被广泛的使用在各大集成芯片内。下面我们就从 I2C 的物理层与协议层来了解 I2C。
I2C物理层
I2C通信设备常用的连接方式如下图所示:
它的物理层有如下特点:
它是一个支持多设备的总线。“总线”指多个设备共用的信号线。在一个 I2C 通讯总线中,可连接多个 I2C 通讯设备,支持多个通讯主机及多个通讯从机。
一个 I2C 总线只使用两条总线线路,一条双向串行数据线(SDA),一条串行时钟线(SCL)。数据线即用来表示数据,时钟线用于数据收发同步。
每个连接到总线的设备都有一个独立的地址,主机可以利用这个地址进行不同设备之间的访问。
总线通过上 ...
19创建多文件工程
创建多文件工程
创建一个项目文件夹,然后在该文件夹内新建App、Obj、Public、User四个文件夹,如下所示:
12345📂MyProject \📂App \📂Obj \📂Public \📂User
📂App:用于存放外设驱动文件,如LED、数码管、定时器等
📂Obj:用于存放编译产生的c/汇编/链接的列表清单、调试信息、hex文件、预览信息、封装库等文件
📂Public:用于存放51单片机公共的文件,如延时、51头文件、变量类型重定义等
📂User:用于存放用户主函数文件,如main.c
新建工程
新建项目,点击Project菜单,选择New uVision Project菜单项
保存项目路径
选择芯片类型位“AT89C51”
取消将标准启动文件复制到当前项目中
向工程添加文件
按照需要给工程分组并添加对应文件,这里我们在工程中分3组,User、App、Public,至于前面创建的Obj文件夹是在工程中无需体现,因为只是编译器生成的一些中间文件和.hex执行文件。通常在工程组的命名与创建的文件夹名保持一致,方便查找 ...
18串口通信实验
通信的基本概念
通信的方式可以分为多种:
按数据传送方式
串行通信
并行通信
按数据同步方式
异步通信
同步通信
按数据的传输方向
单工
半双工
全双工
串行通信与并行通信
串行通信
串行通信是指使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间长度。其只需要少数几条线就可以在系统间交换信息,特别适用于计算机与计算机、计算机与外设之间的远距离通信。如下图所示:
串行通信的特点:传输线少,长距离传送时成本低,且可以利用电话网等现成的设备,但数据的传送控制比并行通信复杂。
并行通信
并行通信通常是将数据字节的各位用多条数据线同时进行传送,通常是 8位、16 位、32 位等数据一起传输。如下图所示:
并行通信的特点:控制简单、传输速度快;由于传输线较多,长距离传送时成本高且接收方的各位同时接收存在困难,抗干扰能力差。
异步通信与同步通信
异步通信
异步通信是指通信的发送与接收设备使用各自的时钟控制数据的发送和接收过程。为使双方的收发协调,要求发送和接收设备的时钟尽可能一致。异步通信是以字符(构成的帧)为单位进行传输,字符与 ...
17定时器中断实验
定时器介绍
CPU时序的有关知识
振荡周期:为单片机提供定时信号的振荡源的周期(晶振周期或外加振荡周期)
状态周期:2个振荡周期为1个状态周期,用S表示。振荡周期又称S周期或时钟周期
机器周期:1个机器周期含6个状态周期,12个振荡周期
指令周期:完成一条指令所占用的全部时间,它以机器周期为单位
例如:外接晶振12MHz时,51单片机相关周期的具体值为:
振荡周期 = 112\frac{1}{12}121us
状态周期 = 16\frac{1}{6}61us
机器周期 = 1us
指令周期 = 1~4us
学习定时器前需要明白的几点
51单片机有两组定时器/计数器,因为既可以定时,又可以计数,故称之为定时器/计数器。
定时器/计数器和单片机的CPU是相互独立的。定时器/计数器工作的过程是自动完成的,不需要CPU的参与。
51单片机中的定时器/计数器是根据机器内部的时钟或者是外部的脉冲信号对寄存器中的数据加1。
有了定时器/计数器之后,可以增加单片机的效率,一些简单的重复加1的工作可以交给定时器/计数器处理。CPU转而处理一些复杂的事情。同时可以实现 ...
16外部中断实验
外部中断介绍
STC89C5X 系列单片机提供了4个外部中断:外部中断 O(INTO)、外部中断1(INT1)、外部中断 2(INT2)、外部中断 3(INT3)。(注意:51 系列单片机一定有基本的 2 个外部中断,但不全有 4 个中断,需要查看芯片手册,通常我们都是使用基本的2个外部中断:INT0和INT1)。
外部中断结构图
图中INT0和INT1即为外部中断0和外部中断1输入口。
INT0 对应的是P3.2口的附加功能,可由IT0(TCON.0)选择其为低电平有效还是下降沿有效。当CPU检测到P3.2引脚上出现有效的中断信号时,中断标志IE0(TCON.1)置 1,向CPU申请中断。
INT1 对应的是P3.3口的附加功能,可由IT1(TCON.2)选择其为低电平有效还是下降沿有效。当CPU检测到P3.3引脚上出现有效的中断信号时,中断标志IE1(TCON.3)置 1,向 CPU 申请中断。
中断允许控制
CPU 对中断系统所有中断以及某个中断源的开放和屏蔽是由中断允许寄存器IE 控制的。
位
7
6
5
4
3
2
1
0
字节地址:A8H
...
15中断系统
中断介绍
中断概念
中断是为使单片机具有对外部或内部随机发生的事件实时处理而设置的,中断功能的存在,很大程度上提高了单片机处理外部或内部事件的能力。
先来举一个生活事例:*你打开火,烧上一壶水。然后去洗衣服,在洗衣服的过程中,突然听到水壶发出水开的报警声,这时,你停止洗衣服动作,立即去关掉火,然后将开水灌入暖水瓶中,灌完开水后,你又回去继续洗衣服。*这个过程中实际上就发生了一次中断。
对于单片机来讲,中断是指 CPU 在处理某一事件 A 时,发生了另一事件 B,请求 CPU 迅速去处理(中断发生);CPU 暂时停止当前的工作(中断响应),转去处理事件 B(中断服务);待CPU 将事件 B 处理完毕后,再回到原来事件 A 被中断的地方继续处理事件 A(中断返回),这一过程称为中断。
单片机在执行程序时其程序流程图如下:
引起 CPU 中断的根源称为中断源。中断源向 CPU 提出中断请求,CPU 暂时中断原来的事务A,转去处理事件B,对事件B处理完毕后,再回到原来被中断的地方(即断点),称为中断返回。实现上述中断功能的部件称为中断系统(中断机构)。
当中央处理机 ...
14步进电机实验
步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件
步进电机简介
步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。这一线性关系的存在,加上步进电机只有周期性的误差而无累计误差等特点。使得在速度、位置等控制领域用步进电机来控制变的非常的简单。虽然步进电机已被广泛的应用,但步进电机并不能像普通的直流电机,交流电机在常规下使用。它必须由双环形脉冲信号、功率驱动电路等组成控制系统方可使用。因此用好步进电机也并非易事,它涉及到机械、电机、电子及计算机等多专业知识。下图即为混合式步进电机组成图。
步进电机工作原理
通常步进电机的转子为永磁体,当电流流过定子绕组时,定子绕组产生一矢量磁场。磁场会带动转子旋转一定的角度,使得转子的一对磁场方向与定子的磁场方向一致。当定子的矢量磁场旋转一个角度。转子也随着该磁场转步距角。每输入一个电脉冲,电动机转动一个角度前进一步。它输出的角位移与输入的脉冲数成正比、转速与脉冲频率成正比。改变绕组通电的 ...
13直流电机实验
直流点击介绍
直流电机是指能将直流电能转换成机械能(直流电动机)或将机械能转换成直流电能(直流发电机)的旋转电机。它是能实现直流电能和机械能互相转换的电机。当它作电动机运行时是直流电动机,将电能转换为机械能;作发电机运行时是直流发电机,将机械能转换为电能。
直流电机的结构应由定子和转子两大部分组成。直流电机运行时静止不动的部分称为定子,定子的主要作用是产生磁场,由机座、主磁极、换向极、端盖、轴承和电刷装置等组成。运行时转动的部分称为转子,其主要作用是产生电磁转矩和感应电动势,是直流电机进行能量转换的枢纽,所以通常又称为电枢,由转轴、电枢铁心、电枢绕组、换向器和风扇等组成。
直流电机没有正负之分,在两端加上直流电就能工作。需要知道直流电机的额定电压和额定功率,不能使之长时间超负荷运作。 在交换接线后,可以形成正反转。
当前开发板配置的直流电机为5V直流点击,其主要参数如下:
轴长:8mm
轴径:2mm
电压:1-6V
参考电流:0.35-0.4A
3V转速:17000-18000转每分钟
外观实物图
内部结构
ULN2003芯片介绍
51单片机主要是用来控制而非 ...
12LED点阵实验
LED点阵介绍
LED点阵是由发光二极管排列组合的显示器件,在我们日常生活的电器中随处可见,被广泛应用于汽车报站器,广告屏等。如下所示:
通常应用较多的是88点阵,然后使用多个88点阵可组成不同分辨率的LED点阵显示屏,比如1616点阵可以使用4个88点阵构成。因此理解了88LED点阵的工作原理,其他分辨率的LED点阵显示屏都是一样的。这里以88LED点阵来做介绍。其内部结构图如下所示:
8*8 点阵共由64个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一行置1电平,某一列置0电平,则相应的二极管就亮;如要将第一个点点亮,则1脚接高电平a脚接低电平,则第一个点就亮了;如果要将第一行点亮,则第1脚要接高电平,而(a、b、c、d、e、f、g、h )这些引脚接低电平,那么第一行就会点亮;如要将第一列点亮,则第a脚接低电平,而(1、2、3、4、5、6、7、8)接高电平,那么第一列就会点亮。由此可见,LED点阵的使用也是非常简单的。
硬件设计
本实验使用到硬件资源如下:
16*16LED点阵模块
74HC595模块
从上图中可以看出,该 ...
11GPIO扩展(串转并)-74HC595
74HC595芯片介绍
74HC595是一个8位串行输入、并行输出的位移缓存器,其中并行输出为三态输出(即高电平、低电平和高阻抗)。芯片管脚及功能说明如下:
引脚功能:
15和1到7QA-QH:并行数据输出
9脚QH非:串行数据输出
10脚SCLK非(MR):低电平复位引脚
11脚SCK(SHCP): 移位寄存器时钟输入
12脚RCK(STCP): 存储寄存器时钟输入
13脚G非(OE): 输出有效
14脚SER(DS) : 串行数据输入
74HC595是具有8位移位寄存器和一个存储器,三态输出功能。移位寄存器和存储器是单独的时钟。数据在SCK的上升沿输入,在RCK的上升沿进入到存储器中。如果两个时钟连在一起,则移位寄存器总是比存储器早一个脉冲。移位寄存器有一个串行输入(DS),和一个串行输出(Q7非),和一个异步的低电平复位,存储寄存器有一个并行8位的,具有三态的总线输出,当MR为高电平,OE为低电平时,数据在SHCP上升沿进入移位寄存器,在STCP上升沿输出到并行端口。
硬件设计
本实验使用到硬件资源如下:
16*16LED点阵模块
74HC595模块
...