




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、南京工业大学 计算机科学与技术学院 Project3 课程设计 2014-2015学年第二学期 班 级: 浦电子 1203 组员姓名: 组员学号: 指导老师:武晓光,胡方强,包亚萍 袁建华,毛钱萍 2015年 7月 8日 目录 第一章 阶段任务 第二章 1.1 1.2 1.3 1.4 基于 WIFI 模块的无线数据传输的原理 时钟模块 最小单片机系统的原理 温度传感器 DS18B20 串口 1.5 WIFI 模块 第三章 2.1 基于 WIFI 模块的无线数据传输的实现 WIFI 模块设置 2.2 串口部分设置 2.3 调试与运行过程 第四章 程序与框图 第五章 小结 第一章 阶段任务: 第一
2、阶段 (1 天) 1、了解课程所给的 WIFI 模块,并详细研读其说明书 2、复习单片机知识 (2 天) 1、了解温湿度传感器模块,并设计其硬件模块 2、了解 lcd1602 显示模块,并设计其硬件模块 (2天) 1、设计整合电路: 5v转 3.3v电路 2、串口通讯电路 第二阶段 (4 天) 1、链接并完成整体电路图的设计,并检查 2、焊接电路并调试。 第三阶段 (3 天) 1、根据设计的硬件模块设计程序 (1):温湿度传感器模块 (2):串口通讯模块 (3): WIFI 传输与接收模块 ( 4):显示电路模块 (3 天) 2、将设计好的模块程序烧录到单片机内,调试 第四阶段: 2 天 (2
3、 天)写报告 3 第二章 基于 WIFI 模块的无线数据传输的原理 时钟 DS1302模块: 电路原理图: DS1302 与单片机的连接也仅需要 3 条线: CE引脚、 SCLK串行时钟引脚、 I/O 串行数据引脚, Vcc2 为备用电源,外接 32.768kHz 晶振,为芯片提供计时脉冲。 读写时序说明: DS1302 是 SPI 总线驱动方式。它不仅要向寄存器写入控制字,还需要读取 相应寄存器的数据。控制字总是从最低位开始输出。在控制字指令输入后的下一个SCLK时 钟的上升沿时,数据被写入 DS1302,数据输入从最低位( 0 位)开始。同样,在紧跟 8 位的控制字指令后的下一个 SCLK
4、脉冲的下降沿,读出 DS1302 的数据,读出的数据也是从最低位到最高位。数据读写时序如图 5 单片机最小系统的原理: 说明 复位电路 : 由电容串联电阻构成 ,由图并结合 电容电压不能突变 的性质 ,可以知道 ,当系统一 上电 ,RST 脚将会出现高电平 ,并且,这个高电平持续的时间由电路的RC 值来决定 .典型的 51 单片机当 RST 脚的高电平持续两个机器周期以上就将复位,所以,适当组合 RC 的取值就 可以保证可靠的复位 . 晶振电路 : 典型的晶振取 11.0592MHz( 因为可以准确地得到 9600 波特率和 19200 波特 率,用于有串口通讯的场合 )/12MHz( 产生精
5、确的 uS 级时歇 ,方便定时操作 ) 单片机 : 一片 AT89S51/52 或其他 51 系列兼容单片机 特别注意 : 对于 31 脚(EA/Vpp), 当接高电平时 ,单片机在复位后从内部 ROM 的 0000H 开 始执行 ;当接低电平时 ,复位后直接从外部 ROM 的 0000H 开始执行 . 温度传感器 DS18B20的原理( 连接到单片机最小系统,并将温度发送给 WIFI 模块 ): 3.1.1 DS18B20 性能特点 (1) 独特的单线接口方式,只需一个接口引脚即可通信; 6 (2) 每一个 DS18B20都有一个唯一的 64 位 ROM序列码; (3) 在使用中不需要任何外
6、围元件; (4) 可用数据线供电,电压范围 :+3.0V-+5.5 V ; (5) 测温范围 :-55 -+125 ,在 -10-+85 范围内精度为 +0.5 ,分辨率为 0.0625 ; (6) 通过编程可实现 9-12 位的数字读数方式。温度转换成 12 位数字信号所需时间最长为 750ms,而在 9 位分辩模式工作时仅需 93.75ms ; (7) 用户可自设定非易失性的报警上下限值; (8) 告警搜索命令可识别和定位那些超过报警限值的DS18B20; (9) 多个 DS18B20可以并联在惟一的三线上,实现多点测温; (10) 电源极性接反时, DS18B20不会因发热而烧毁,但不能
7、正常工作; 3.1.2 DS18B20 内部存储器及温度数据格式 对于 DS18B20内部存储器结构(如图 3.1 ),它包括一个暂存 RAM和一个非易失性电可 擦除 EERAM后, 者存放报警上下限 TH、TL。当改变 TH、T L 中的值时,数据首先被写进暂存 器的第二、三字节中,主机可再读出其中内容进行验证。如果正确,当主机发送复制暂存器 命令,暂存器的第二、三字节将被复制到TH、TL 中,这样处理有利于确保该数据在单总线 上传输的完整性 7 。 暂存器结构 EERAM 结构 温度低字节 (BYTE0) 温度高字节 (BYTE1) TH 上限报警温度 TH(BYTE2) 下限报警温度 T
8、L(BYTE3) TL 结构寄存器 (BYTE4) 结构寄存器 保留 (BYTE5) 保留 (BYTE6) 保留 (BYTE7) CRC ( BYTE8) 图 3.1 DS18B20 结构框图 8 字节组成,头两个字节表 暂存存储器作用是在单线通信时确保数据的完整性,它由 示测得的温度读数 。以 12 位转化为例说明温度高低字节存放形式 ( 温度的存储形式如表 3.1 ) 及计算: 12位转化后得到的 12位数据,存储在 18B20的两个高低 8 位的 RAM中,二进制中 的前面 5 位是符号位。如果测得的温度大于 0,这 5 位为 0,只要将测到的数值乘于 0.0625 即可得到实际温度 ;
9、如果温度小于 0,这 5 位为 1,测到的数值需要取反加 1,再乘于 0.0625 才能得到实际温度 8。 表 3.1 温度的存储形式 高 8 位 S S S S S 26 25 24 低 8 位 23 22 21 20 2-1 2-2 2-3 2-4 S=1 时表示温度为负, S=0 时表示温度为正,其余低位以二进制补码形式表示,最低位 为 1 时表示 0.0625 。温度 / 数字对应关系如表 3.2 所示。 表 3.2 DS18B20 温度 / 数字对应关系表 温度() 输出的二进制码 对应的十六进制码 +125 0000 0111 1101 0000 07D0H +85 0000 01
10、01 0101 0000 0550H +25.0625 0000 0001 1001 0001 0191H +10.125 0000 0000 1010 0010 00A2H +0.5 0000 0000 0000 1000 0008H 0 0000 0000 0000 0000 0000H -0.5 1111 1111 1111 1000 FFF8H -10.125 1111 1111 0110 1110 FF5EH -25.0625 1111 1110 0110 1111 FF6FH -55 1111 1100 1001 0000 FC90H DS18B20有六条控制命令,如表 3.3 所
11、示: 表 3.3 控制命令 指令 约定代码 操 作 说 明 温度转换 44H 启动 DS18B20进行温度转换 读暂存器 BEH 读暂存器 9 个字节内容 写暂存器 4EH 将数据写入暂存器的 TH、 TL字节 8 复制暂存器 48H 把暂存器的 TH、TL 字节写到 E2RAM中 重新调 E2RAM B8H 把 E2RAM中的 TH、 TL字节写到暂存器 TH、TL 字节 读电源供电方式 B4H 启动 DS18B20发送电源供电方式的信号给主CPU 3.1.3 DS18B20 操作命令及时序特性 DS18B20 对读写的数据位有着严格的时序要求,它是在一根 I/O 线上读写数据的。同 时,
12、DS18B20 为了保证各位数据传输的正确性和完整性,它有着严格的通信协议。 DS18B20 每一步操作都要遵循严格的工作时序和通信协议 ,如主机控制 DS18B20完成温度转换这一过 程,根据 DS18B20的通讯协议,须经三个步骤:每一次读写之前都要对DS18B20进行复位, 复位成功后发送一条 ROM指令,最后发送 RAM指令,这样才能对 DS18B20进行预定的操作 。 该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作为主 设备,单总线器件作为从设备。 而每一次命令和数据的传输都是从主机主动启动写时序开始 的,如果要单总线器件送回数据,在进行写命令后,主机需
13、启动读时序完成数据的接收。另 外,数据和命令的传输都是低位在先9 。 ( 1)DS18B20 的复位时序 主机控制 DS18B20 完成任何操作之前必须先初始化,即主机发一复位脉冲(最短为 480s 的低电平),接着主机释放总线进入接收状态 ,DS18B20 在检测到 I/0 引脚上的上升沿 之后,等待 1560s,然后发出存在脉冲 (60240) s的低电平。如图 3.2 所示。 ( 2)DS18B20 的读时序 DS18B20 的读时序分为读 0 时序和读 1 时序两个过程。 DS18B20 的读时序是从主机把 单总线拉低后,在 15 秒之内就得释放单总线,从而让 DS18B20 把数据传
14、输到单总线上。 DS18B20 完成一个读时序的过程,至少需要60 s。如图 3.3 所示。 图 3.2 DS18B20 的复位时序 DS18B20 的写时序同读时序一样,仍然分为写 0 时序和写 1 时序两个过程。 DS18B20 写 0 时序和写 1 时序的要求不同 ,当要写 0 时序时,单总线要被拉低至少 60s, 保证 DS18B20能够在 15s到45s之间能正确地采样 I/O总线上的 “0电”平,当要写 1时序 时,单总线被拉低之后,在 15s之内就得释放单总线。如图 3.4 所示。 图 3.4 DS18B20 的写时序 由 DS18B20 的通讯协议得知,主机控制 DS18B20
15、 完成温度转换的过程必须经过三个 步骤:每一次读写之前都要对 DS18B20 进行复位,复位成功后发送一条 ROM 指令,最后 发送 RAM 指令,从而对 DS18B20 进行预定的操作 。复位要求主 CPU 将数据线下拉 500s, 然后释放, DS18B20 收到信号后等待 16 60s左右,然后发出 60 240s 的存在低脉冲, 主 CPU 收到此信号表示复位成功。 10 串口部分 (让 WIFI 与电脑,单片机进行通讯) 串口原理图: 80C51 串行口的结构图: 11 80C51 串行口的工作方式 : 方式 1 方式 1 是 10 位数据的异步通信口。 TXD 为数据发送引脚, R
16、XD 为数据接收引脚,传 送一帧数据的格式如图所示。其中 1 位起始位, 8 位数据位, 1 位停止位。 起始位 1帧共10位 数据位 8位 D0 D7 LSB MSB 1、方式 1 输出 写入SBUF TXD 起始 D0 D1 D2 D3 D4 D5 D6 D7 停止位 TI (中断标志) 方式 1 输入 RXD 起始 D0 D1 D2 D3 D4 D5 D6 D7 停止位 位采样脉冲 RI(中断标志) 用软件置 REN 为1时,接收器以所选择波特率的 16倍速率采样 RXD 引脚电平,检测到 RXD 引脚输入电平发生负跳变时,则说明起始位有效,将其移入输入移位寄存器,并开始接收这 一帧信息
17、的其余位。接收过程中,数据从输入移位寄存器右边移入,起始位移至输入移位寄 存器最左边时,控制电路进行最后一次移位。当RI=0 ,且 SM2=0 (或接收到的停止位为 1) 时,将接收到的 9位数据的前 8位数据装入接收 SBUF,第 9 位(停止位)进入 RB8,并置 RI=1 ,向 CPU 请求中断 12 始位 1 位,数据 9 位(含 1 位附加的第 9 位,发送时为 SCON 中的 TB8 ,接收时为 RB8),停止位 1位,一帧数据为 11位。方式 2的波特率固定为晶振频率的 1/64或 1/32, 方式 3 的波特率由定时器 T1 的溢出率决定。 WIFI 模块: 使用接口: 5.5
18、mm 内径 2.1mm 的标准尺寸,内正外负,输入电压范围 1 电源接口 系统采用标准电源插座,外径 548V ,电流 350mA 2 指示灯 ID 名称 描述 1 Power 设备供电后亮 2 Ready 内部 Linux 系统启动完成后亮 3 Link 网络连接建立后亮 4 RXD 本设备的串口收到数据闪烁 5 TXD 本设备通过串口向外发送数据时闪烁 2.3 RS232 接口 设备的串口为公口 (针),RS232 电平 (可以直接连电脑串口的电平 ) ,引脚顺序与计算机的 COM口 保持一致,与电脑连接时需要用交叉线 (2-3 交叉, 7-8 交叉, 5-5 直连, 7-8 可以 不接但
19、是一定不能直连电脑 ,否则可能导致工作不正常 ) ,一共有 6 根线有定义 ,其余悬空。 序号 名称 描述 2 RXD 设备数据接收引脚 3 TXD 设备数据发送引脚 GND 信号地 RTS 请求发送 CTS 清除发送 VCC 默认未使用, PCB 上有个焊盘跳线,需要 时可以将它与设备的电源输入正极连接, 用于给串口传感器供电或者外部通过串口 线给设备供电。 13 第三章 基于 WiFi 模块的无线传输的实现 2.1 WIFI 模块的设置 14 15 2.2 串口部分设置 16 2.3 调试: 17 运行过程: 单片机首先运行,然后对 DS18B20 和 DS1302, LCD1602 进行
20、初始化,接着对 DS18B20 和 DS1302 进行写设置,读取温度和时间, 单片机处理数据,将其在 LCD1602 上显示,单片机 进行串口初始化并通过串口程序将温度和时间准备好, 等到串口接收到相应的信号, 在发送 数据。在程序内检测温度,若温度超过设定的值(值可通过终端修改) ,将发出报警信号。 蜂鸣器报警,待温度下降后(可通过终端打开降温系统) ,蜂鸣器关闭。 第五章 程序与框图 程序: #include #include #include #define uchar unsigned char #define uint unsigned int sbit DQ=P20; sbit
21、lcden=P34; sbit lcdrs=P35; sbit dula=P26; sbit wela=P27; /sbit led=P10; sbit sclk=P14; /时钟信号线 sbit io=P15; /信号线 sbit ce=P16; /片选 ,也是 RST 18sbit buzz=P23; sbit ledle=P25; unsigned int temp,temp1,temp2,temper,xs,flag,a,s,cc; unsigned char j; uchar code day=1234567; uchar shi,fen,miao,nian,yue,ri; ucha
22、r cdflag; uchar code number=0123456789; sbit ACC0 = ACC0; / 定义寄存器 ACC 的零位 sbit ACC7 = ACC7; void delay1(unsigned int m) unsigned int i,j; for(i=m;i0;i-) for(j=110;j0;j-); void delay(unsigned int m) while(m-); DS18B20 程序 void Init_DS18B20() unsigned char x=0; DQ=1; delay(8); DQ=0; delay(80); DQ=1; de
23、lay(4); x=DQ; delay(20); uchar ReadOneChar() unsigned char i=0; 19 unsigned char dat=0; for(i=8;i0;i-) DQ=0; dat=1; DQ=1; if(DQ) dat|=0 x80; delay(4); return(dat); void WriteOneChar(unsigned char dat) unsigned char i=0; for(i=8;i0;i-) DQ=0; DQ=dat delay(5); DQ=1; dat=1; void duwendu() unsigned char
24、a=0; unsigned char b=0; Init_DS18B20(); WriteOneChar(0 xcc); WriteOneChar(0 x44); delay(5); Init_DS18B20(); WriteOneChar(0 xcc); /去除高四位,即正负位 /个位 /小数 /整数 WriteOneChar(0 xbe); delay(5); a=ReadOneChar(); b=ReadOneChar(); temp1=(b4; temp2=a temp=(b*256+a)4); 20 xs=temp2*0.0625*10; temper=temp+xs; void w
25、rite_com(uchar com) lcdrs=0; P0=com; delay(5); lcden=1; delay(5); lcden=0; void write_data(uchar date) lcdrs=1; P0=date; delay(5); lcden=1; delay(5); lcden=0; 串口 初始化 void ckinit() TMOD=0 x20;/ TH1=0 xfa; TL1=0 xfa; TR1=1; 设置定时器 1 为工作方式 2 REN=1; SM0=0; /允许串行接收 SM1=1; /工作方式 1 / SCON=0 x50; PCON=0 x80;
26、 EA=1; ES=1; /波特率加倍 21 /* LCD1602 初 始 */ void lcdinit() dula=0; wela=0; ledle=0; lcden=0; write_com(0 x38); write_com(0 x0e); write_com(0 x06); write_com(0 x01); write_com(0 x80+0 x10); 温度显示 void display() write_com(0 x80+0 x40); /write_data(numbertemper/100); write_data(numbertemp/10); write_data(n
27、umbertemp%10); write_data(.); write_data(numberxs%10); write_data(C); void fas(unsigned char dat) ES=0;/串口中断允许位 SBUF=dat; while(!TI); TI=0; ES=1; 22 发送字 符串函 void fss(unsigned char *str) uchar b,i; b=strlen(str); for(i=0;i0; i-) io = ACC0;/就是把最低位的数据传输给 IO sclk = 1;/时钟拉高读走数据 sclk = 0;/ 时钟拉低允许数据变化 ACC
28、= ACC 1; /把 ACC 右移一位,然后又把最低的一位传送过去 / 读 DS1302 一个字节 DS1302 读字节 uchar read_ds1302_byte() uchar i; for(i=8; i0; i-) ACC = ACC 1;/特别说明,读回来的数据是从最低位到最高位。 ACC7 = io; /把读回来的数据存到 ACC 寄存器的最高位,然后在移到最低位 sclk = 1; sclk = 0; 23 return ACC; DS1302 写地址数据 void write_ds1302(uchar add, uchar dat)/ 写任意地址,任意数据 ce=0; / 根
29、据时序图编写 sclk=0; ce=1; / 片选打开 write_ds1302_byte(add); write_ds1302_byte(dat); io=0; / 释放总线 sclk=0; / 时钟释放 ce=0; / 片选关闭 DS1302 返回值 时间 uchar read_ds1302(uchar add) / 读任意地址数据 uchar temp; ce=0; sclk=0; ce=1; / 片选打开 write_ds1302_byte(add); temp=read_ds1302_byte(); sclk=0; / 时钟释放 io=0; / 释放总线 ce=0; / 片选关闭 r
30、eturn temp; 24 时间显示 函数 25 */ void dis_sj() uchar th,tl; nian=read_ds1302(0 x8d); /年寄存器 yue=read_ds1302(0 x89); / 月寄存器 ri=read_ds1302(0 x87); / 日寄存器 write_com(0 x80+0 x08); /设置时位置 th=nian4; write_data(numberth); / 刷新年高位 tl=nian write_data(numbertl); / 刷新年低位 write_data(-); th=yue4; write_data(numberth
31、); tl=yue write_data(numbertl); write_data(-); th=ri4; write_data(numberth); tl=ri write_data(numbertl); shi=read_ds1302(0 x85); / 时寄存器 fen=read_ds1302(0 x83); /分寄存器 miao=read_ds1302(0 x81); / 秒寄存器 write_com(0 x80+0 x48); th=shi4; write_data(numberth); / 刷新时高位 tl=shi write_data(numbertl);/ 刷新时低位 wri
32、te_data(:); th=fen4; write_data(numberth); tl=fen write_data(numbertl); write_data(:); th=miao4; write_data(numberth); tl=miao write_data(numbertl); void fssj() uchar th,tl; th=nian4; fas(numberth); tl=nian fas(numbertl); fas(-); th=yue4; fas(numberth); tl=yue fas(numbertl); fas(-); th=ri4; fas(numberth); tl=ri fas(numbertl); fss( ); th=shi4; fas(numberth); tl=shi fas(numbertl); fas(:); th=fen4; fas(numberth); tl=fen fas(numbertl); fas(:); th=miao4; 26 fas(numberth); tl=miao fas(numbertl); fss( ); f
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 第18课 东晋南朝时期江南地区的开发说课稿初中历史人教部编版五四学制2018中国历史第一册-统编版五四学制2018
- 13 美丽的冬天 第一课时 教学设计-道德与法治一年级上册(部编版)
- 安全知识培训会总结讲话课件
- 海南的青山绿水课件
- 2024秋五年级英语上册 Module 2 Unit 1 What did you buy说课稿2 外研版(三起)
- 第18课 从九一八事变到西安事变(说课稿)-八年级历史上册素养提升说课稿(统编版)
- 高中信息技术 4.2网站规划设计说课稿 粤教版选修3
- 安全目标培训课件
- 2.5.2 微生物与人类的关系(说课稿)-七年级生物上册同步教学说课稿+说课稿(苏教版2024)
- 二手车转让协议书一7篇
- 反诈知识竞赛题库及答案(共286题)
- 《有理数加减法的混合运算-添括号》教学课件
- 质量承诺保证保函
- 2025年10月自考15040习概押题及答案
- 安徽省宿州市埇桥区教育集团2024-2025学年上学期九年级第一次月考数学试卷
- 汾酒白酒招商手册
- 甜米酒创业计划书
- 塔吊租赁服务技术实施方案技术标
- 员工组织承诺的形成过程内部机制和外部影响基于社会交换理论的实证研究
- 优质课件:几代中国人的美好夙愿
- 2023年真空镀膜机行业市场分析报告及未来发展趋势
评论
0/150
提交评论