单片机课程设计:八路温度巡回检测系统 - 图文 联系客服

发布时间 : 星期三 文章单片机课程设计:八路温度巡回检测系统 - 图文更新完毕开始阅读53025fc8d5bbfd0a795673d5

(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位

开始输出。

图6.2 DS1302控制字

DS1302的数据输入输出方式(I/O) ,在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。

DS1302一共有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式,其日历、时间寄存器及其控制字见图2.3。

图6.3DS1302日历、时间寄存器

此外,DS1302 还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。 DS1302与RAM相关的寄存器分为两类:一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0H~FDH,其中奇数为读操作,偶数为写操作;另一类为突发(Burst)方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。

6.3 DS1302的接口实现

DS1302的初始化过程非常简单,在DS1302上电之后先关闭DS1302的写保护,接着依据不同的寄存器地址分别写入年份、月份、日期,以及需要设定的时间,然后启动DS1302的时钟振荡,打开写保护,这样DS1302就能正常走时了,并且不会因为误操作而干扰到DS1302。当DS1302上电后,为了防止系统掉电后重新上电,接着调用DS1302初始化程序造成时间丢失,我们在初始化

DS1302的时候先把DS1302当前的秒走时读出,放如临时变量,接着判断时间的正确性,如果时间正确,则把秒走时回送DS1302,重新启动时钟振荡后关闭 保护;如果时间不正确,则重新调用时间设置程序。芯片上电 关闭写保护 读出秒数据 Y 时间正确? N 回送秒数据 调用时间设置 打开写保护 打开写保护 结束 图6.4 DS1302初始化 结束

此外,DS1302 还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。 DS1302与RAM相关的寄存器分为两类:一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0H~FDH,其中奇数为读操作,偶数为写操作;另一类为突发(Burst)方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。 DS1302与单片机的连接电路图如图6.5所示: 图 6.5 DS1302硬件连接图

备用电池可用来断电保护,当主电源断开之后,备用电池开始工作,起到备用作用,继续保持时钟的准确性

7 温度上限报警功能

7.1 设计原理

固话报警的设计原理非常简单,把电话外壳拆出来之后,里面的按键其实就

是一个矩阵键盘,为了简化设计,这里只说明重拨按键,因为只需要重拨按键就可以工作完全满足我们功能了。拆出来后下一步就是找出重拨键对应的引脚,先找到重拨键位置然后通过万用表就可以测出重拨键对应的两个引脚线,这个过程相当简单,通过肉眼也能很快找出来。其他按键找出方法相同,不过本次设计无需用到不再阐述。

图7.1 固话内部电路 图7.2改装后的固话

找出重拨键引脚之后通过外线引出来,中间通过一个继电器连接单片机既可工作。如图7.3所示。

温度 监控系统 RC0 继电器 改装后 的固话 图 7.3 固话报警连接图

上限温度通过软件设计设定也可以通过功能按键设定,当满足条件达到上限温度,单片机引脚触发高电平引发继电器工作既可实现自动重拨。固话的重拨号码要事先先设定好。

7.2 设计心得体会

没有做不到,只有想不到,一个非常简单的小小改装就可以实现一个远程报警功能,其实生活就是缺少发现。

8 与PC串口通讯及VB上位机简单介绍 8.1 与PC串口通信

目前较为常用的串口有9针串口(DB9)和25针串口(DB25)。最为简单且常用的是三线制接地法,即地、接收数据和发送数据三脚相连,本文只涉及到最为基本的接法,且直接用RS232相连,电路图如图8.1所示

图8.1串口通信电路图

本系统串行通信采用异步通信方式。协议如下:

1. 一帧数据由1位起始位、8位数据位、无奇偶校验位、1位停止位共10位组成。

2. 波特率设为119200bps。单片机串行口按方式1工作,波特率由定时器T1控制,

PC机串口波特率通过VB通讯控件的Settings属性设置,为保证数据传送的准确性,两者的波特率必须一致。

单片机串口初始化:

TRISC=0XFF; //设置C口方向全为输出 SPBRG=0XC; //设置波特率为119200BPS TXSTA=0X24; //使能串口发送,选择高速波特率 RCSTA=0X90; //使能串口工作,连续接收 RCIE=0X1; //使能接收中断 GIE=0X1; //开放全局中断