




已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程设计报告学号: 姓名: 班级: 指导老师:苏州大学 电子信息学院2016年5月摘要 随着时代的发展,单片机在生活中的应用越来越广泛,本次课程设计围绕四个实验展开,分别是基于DS18B20的数字温度计设计,基于AT24C02的电子密码锁设计,基于DS1302的电子日历的设计以及基于NRF24L01的无线通信系统的设计。四个实验均以STC89C52单片机为核心,以Keil uVision4为编程平台,通过C语言实现功能设计。关键词:STC89C52 DS18B20 AT24C02 DS1302 NRF24L01目录摘要.1目录.2第1章 基于DS18B20的数字温度计设计.31.1 设计要求.31.2 系统组成.31.3 系统设计.41.3.1 硬件设计.41.3.2 软件设计.41.4 设计结果.7第2章 基于AT24C02的电子密码锁设计.82.1设计要求.92.2 系统组成.92.3 系统设计.102.3.1 硬件设计.112.3.2 软件设计.112.4设计结果.12第3章 基于DS1302的电子日历的设计.133.1设计要求.143.2 系统组成.143.3 系统设计.153.3.1 硬件设计.153.3.2 软件设计.163.4 设计结果.16第4章 基于NRF24L01的无线通信系统的设计.174.1设计要求.174.2 系统组成.174.3 系统设计.184.3.1 硬件设计.184.3.2 软件设计.194.4 设计结果.19总结.20第1章基于DS18b20的数字温度计设计1.1 设计要求 1)读取DS18b20的序列码。2)利用DS18b20实现实时的温度的读取(不断刷新),并用LCD1602显示。1.2 系统组成1)DS18b20系统2)STC89C52单片机3)LCD1602显示系统4)独立键盘1.3 系统设计1.3.1硬件设计图1-1 数字温度计硬件原理图STC89C52单片机为主控器1) 完成DS18B20与LCD1602的初始化2)实现对DS18B20温度读取,LCD1602的驱动。DS18B20:DS18B20数字温度计提供9-12位摄氏温度测量而且有一个由高低电平触发的可编程的不因电源消失而改变的报警功能。DS18B20通过一个单线接口发送或接受信息,因此在MCU和DS18B20之间仅需一条连接线(加上地线)。它的测温范围为-55125,并在-1085精度为5。除此之外DS18B20能直接从单线通讯线上汲取能量,除去了对外部电源的需求。每个DS18B20都有一个独特的64位序列号,从而允许多只DS18B20同时连在一根单线总线上;因此,很简单就可以用一个微控制器去控制很多覆盖在一大片区域的DS18B20。这一特性在探测建筑物、仪器或机器的温度以及过程监测和控制等方面非常有用。LCD1602:1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形。1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。本实验通过LCD1602显示DS18B20的序列码以及实时温度。仿真图图1-21.3.2 软件设计主程序:图1-3 主程序流程图1) 初始化(DS18b20的初始化和液晶屏的初始化)。DS18b20的初始化是为器件应答准备,作为从器件的DS18B20在一上电后就一直在检测总线上是否有480960微秒的低电平出现,如果有,在总线转为高电平后等待1560微秒后将总线电平拉低60240微秒做出响应存在脉冲,告诉主机本器件已做好准备;液晶屏的初始化是为显示做准备。2) 调用显示子程序刷新显示当前检测到的温度值;3) 利用循环不断刷新温度数据进行实时显示。图1-4 DS18B20初始化时序图初始化流程:将总线拉低480us960us1) 拉高总线,若DS18B20做出反应会将在15us60us后将总线拉低 2) 等待DS18B20拉低总线图1-5 DS18B20初始化流程图DS18B20读字节和写字节:图1-6 写字节/读字节子程序流程图写字节:写周期最少为60微秒,最长不超过120微秒。写周期一开始主机先把总线拉低1微秒表示写周期开始。随后若主机想写0,则将总线置为低电平,若主机想写1,则将总线置为高电平,持续时间最少60微秒直至写周期结束,然后释放总线为高电平至少1微秒给总线恢复 。而DS18B20则在检测到总线被拉底后等待15微秒然后从15us到45us开始对总线采样,在采样期内总线为高电平则为1,若采样期内总线为低电平则为0。读字节:读周期是从主机把单总线拉低1微秒之后开始,先释放单总线为高电平,以让DS18B20把数据传输到单总线上。作为从机DS18B20在检测到总线被拉低1微秒后,便开始送出数据,若是要送出0就把总线拉为低电平直到读周期结束。若要送出1则释放总线为高电平。主机在一开始拉低总线1微秒后释放总线,然后在包括前面的拉低总线电平1微秒在内的15微秒时间内完成对总线进行采样检测,采样期内总线为低电平则确认为0。采样期内总线为高电平则确认为1。完成一个读时序过程,至少需要60微秒才能完成。读取温度子程序: 图1-7 读取温度子程序流程图读取温度流程:1) 跳过ROM操作 (0CCH)(本次实验只挂置一只DS18B20,所以无须确认序列码)2) 温度转换命令 (044H) 3) 跳过ROM操作 (0CCH) 4) 读取温度命令 (033H) 5) 读取温度值 (0BEH)6) 温度格式转换1.4 设计结果图1-8 未按键时(初始化)图1-9 按下K1键时(不断刷新,实时温度的读取)图1-10 按下K2键时(序列码的读取)第2章基于AT24C02的数字密码锁设计2.1 设计要求1) 掉电记忆2)按键S14,输入密码,若正确则进入密码锁3)按键S13,输入密码若正确则进入修改密码模式4)按键S15,密码锁上锁(数字键失效)2.2 系统组成1) STC89C52单片机芯片2) 2K位串行CMOS 的EEPROM AT24C023) LCD1602显示模块AT24C02:(1) 模块原理图图2-1 AT24C02模块原理图(2)发送器件地址的格式图2-2 发送器件地址的格式图高四位1010是24Cxx系列的固定器件地址,接下来是A2、A1、A0是根据器件连接来决定,原理图都接地所以是000。R/W为是选择读或写模式,1为读,0为写。(3)芯片工作时序l 初始化(scl=H,sda=H)l 写入过程1) 发送器件地址(0XA0):SendByte(0xa0);2) 发送要写入24C02的内存地址:SendByte(addr);3) 发送要写入的数据: SendByte(dat);l 读出过程1) 发送写入的器件地址(0XA0)2) 发送要读的24C02的内存地址3) 发送读出的器件地址(0XA1)4) 读取数据(4)AT24C02的数据发送时序1)总线起始信号SCL线为高电平期间,SDA线由高电平向低电平的变化表示起始信号 图2-3 总线起始信号时序图 2) 总线应答信号每一个字节必须保证是8位长度。数据传送时,先传送最高位,每一个被传送的字节后面都必须跟随一位应答位(即一帧共有9位)。如果主机一段时间内没有收到从机的应答信号,则自动认为从机已正确接收到数据。图2-4 总线应答时序图3)总线结束信号SCL线为高电平期间,SDA线由低电平向高电平的变化表示终止信号。图2-4 总线结束信号时序图2.3 系统设计2.3.1 硬件设计图2-5 硬件原理图单片机是电子密码锁系统的主控制器。AT24C02:AT24C02是密码储存电路,它的SCL、SDA端分别接单片机的P2.1、P2.0端口,用于与单片机之间读写操作的数据传输;WP接低电平表示单片机可以对器件进行正常的读/写操作;A0、A1、A2是器件地址输入端,都接低电平表示只有一个AT24C02被器件寻址。用户设置的密码存放在AT24C02中,当需要更改或读取用户密码时,只需对AT24C02里的数据更改或读取。矩阵键盘电路:主要作用是对密码进行输入、修改、确定等操作,它由行线和列线组成,又称为行列式键盘,按键位于行、列的交叉点上,行列分别连接到按键开关的两端。无按键按动作时列线处于高电平状态;有按键按下时,交点的行线和列线相通,列线电平状态将由与此列线相连的行线电平决定。显示电路为LCD1602显示模块。仿真图图2-62.3.2 软件设计主程序: 图2-7 主程序流程图1)LCD显示进行初始化;2)按键S14扫描判断是否输入密码,如果输入密码并且输入正确,则密码锁开启;3)按键S13扫描判断是否进行密码的更改或者关闭密码锁;4)输入更改后的密码,若正确则密码锁开启;5)按键S15按下则关闭密码锁。2.4 设计结果功能键:S1-S10数字键0-9S13 更改密码 S14 进入密码锁S15 关闭密码锁(使数字键失效)初始密码:密码位数:6位(由宏定义设定)密码锁的初始密码为,密码输入正确后可启动密码锁对密码进行修改。密码锁掉电后记忆上一次设定的密码(掉电保护)。 图2-8 按下S14输入密码 图2-9 输入密码正确图2-10 输入密码错误图2-11 进入密码锁后修改新密码图2-12 关闭密码锁(数字键失效)第3章基于DS1302的电子日历设计3.1 设计要求(1)LCD1602上显示时间信息,即年、月、日、星期、时、分、秒 (2)具有时间的调校与保存功能(3)显示当前调节对象3.2 系统组成1)STC89C52单片机最小系统2)实时时钟芯片DS1302DS1302采用SPI三线接口与CPU进行通信,仅用到三根信号线:RST(复位),I/O(数据线),SCLK(同步串行时钟)。并可采用突发方式一次传送多个字节的时钟信号和RAM数据。实时时钟可提供秒、分、时、日、星期、月和年,一个月小与31天时可以自动调整,且具有闰年补偿功能。3)显示液晶LCD16024)按键扫描模块3.3 系统设计3.3.1 硬件设计图3-1 电子日历硬件原理图硬件连接:单片机的三个I/O引脚对应DS1302的SCLK、I/O、和RST进行控制,本次试验中单片机的P2.0,P2.1和P2.4分别与DS1302 的SCLK,I/O和RST相连,DS1302的主电源VCC2与系统电源VCC相连。DS1302原理:DS1302时钟芯片包括实时时钟(日历)和31字节的静态RAM,它通过一个简单的串行接口与微处理器通信,实时时钟提供秒,分,时,日,周,月,年等信息,对于小于30天的月和月末的日期自动进行调整,还包括闰年校正的功能,时钟的运行可以采用24h或带AM/PM的12h格式。(1)DS1302的控制字格式图3-2 DS1302的控制字格式DS1302的时钟控制字最高有效位(位7)必须是逻辑1,如果它为逻辑0,则不能把数据写到DS1302中;位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5 1(A4A0)指示操作单元的地址,最低有效位(位0)为0表示进行写操作,为1表示进行读操作。控制字总是从最低位开始进行输入/输出。(2)DS1302的读/写时序图3-3 DS1302的读/写时序图在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始;同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。(3)DS1302的时钟寄存器图3-4 DS1302的时钟寄存器图DS1302共有12个寄存器,其中有七个寄存器与日历,时钟相关,存放的数据位为BCD码形式。时钟寄存器的第8个字节是写保护寄存器。当WP为“1”的时候是开启写保护,这个时候是禁止对DS1302进行写操作的。当WP为“0”的时候是关闭写保护,这个时候才能对DS1302进行写操作。按键扫描电路:按键扫描电路模块主要用于对日历时间的修改,由四个按键组成,分别是:选择键,数值加键,数值减键和返回键。其中,选择键用于选定要修改的时间项目,数值加键和减键用于对修改项的数值进行加减操作,返回键用于修改完成后的重启计时。仿真图图3-53.3.2 软件设计主程序:图3-6 主程序流程图1)液晶初始化显示DS1302设定的初始化时间2)按键扫描更改显示时间,使之与当前实际时间对应;3)将更改后的时间送到液晶显示,启动计时功能键:S4键为选择键,通过按的次数来选择需要调整的项。(顺序为:秒,分,时,周,日,月,年)S8为数字增大键。S12为数字减小键。在初始化设置时间时,首先要按下选择键,显示屏上对应的模块项光标闪烁,然后可对数值进行加或减的操作,时间调整结束后按返回键从当前调整的时刻开始计时。3.4 实验结果烧录程序,上电后LCD显示程序已设置的初始化时间,通过S4按键选择、S8加、S12减可对年、月、日、周、时、分、秒几个时间项进行更改。图3-7 设计测试结果图(正常计时模式)图3-8 选择调校(选择项光标闪烁)第4章基于nrf24L01的无线通讯系统的设计4.1 设计要求1)利用NRF24L01实现两个单片机之间的通讯。(最大通讯距离25米)2)主机按下K1-K4,主机指示灯LED5闪烁(表示处于发送状态),从机的LED1-LED4对应点亮。3)主机、从机可以根据需要随时调换角色。4.2 系统组成1)单片机最小系统(控制)2)无线收发芯片nrf24L01模块(数据传输)发送模式(主机):通过SPI时序给既定的发送缓冲区写入数据。接受模式(从机):通过SPI从相应的接收缓冲区读出数据,并点亮对应LED灯。4.3 系统设计4.3.1 硬件设计图4-1 无线通讯硬件原理图本实验中独立键盘输入是人机交换的接口,其主要功能是设置nRF24L01的工作模式(扫描到有键输入即发送)和实现键盘输入信息。AT89C52单片机是主控模块,实现数据的储存、处理,将各模块联系起来并协调各模块的工作。NRF24L01模块:nRF24.L01是一款新型单片射频收发器件,工作于2.4 GHz2.5 GHz ISM频段。发射数据时,首先将nRF24L01配置为发射模式:接着把接收节点地址TX_ADDR和有效数据TX_PLD按照时序由SPI口写入nRF24L01缓存区,TX_PLD必须在CSN为低时连续写入,而TX_ADDR在发射时写入一次即可,然后CE置为高电平并保持至少10s,延迟130s后发射数据;若自动应答开启,那么nRF24L01在发射数据后立即进入接收模式,接收应答信号(自动应答接收地址应该与接收节点地址TX_ADDR一致)。如果收到应答,则认为此次通信成功,TX_DS置高,同时TX_PLD从TX FIFO中清除;若未收到应答,则自动重新发射该数据(自动重发已开启),若重发次数(ARC)达到上限,MAX_RT置高,TX FIFO中数据保留以便再次重发;MAX_RT或TX_DS置高时,使IRQ变低,产生中断,通知MCU。最后发射成功时,若CE为低则nRF24L01进入空闲模式1;若发送堆栈中有数据且CE为高,则进入下一次发射;若发送堆栈中无数据且CE为高,则进入空闲模式2。接收
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 梁平别墅铝扣板施工方案(3篇)
- 和老人谈话活动方案策划(3篇)
- 冰蓄冷施工方案(3篇)
- 走廊通风排烟施工方案(3篇)
- 医学培训考试题库及答案
- 北京市昌平区2024-2025学年八年级下学期第一次月考语文考点及答案
- 安徽省六安市金寨县2023-2024学年高三上学期第一次月考数学试题及答案
- 心理学选择题目及答案
- 心动信号测试题目及答案
- 小组成员题目大全及答案
- 中式烹调技艺高职全套教学课件
- 陕西华山的险峻之旅
- 苏教版分式章起始课-展示课件
- 《茶文化与茶健康》第一讲
- OBE理念下的小学音乐教学设计反向思路初探
- GB 24541-2022手部防护机械危害防护手套
- 《PLC与变频器控制》课件 1.PLC概述
- 智慧产业园综合管理平台解决方案
- 国王的恩赐-传奇-任务全书
- 资产负债表(个体工商户)
- 手枪射击技巧
评论
0/150
提交评论