校园打铃系统的设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

嵌入式系统综合设计实训报告

——校园打铃系统的设计

校园打铃系统的设计

一、实训目的

1、设计一个校园打铃系统,使用的是24小时计时制,能够设置多个打铃时

间,同时要求能够在系统掉电时,时间能够继续,打铃时间的数据能够保持。

2、掌握LCD1602、DS1302、DS18b20、AT24C02等相关知识

3、进一步了解时钟电路、复位电路、工作电源电路、程序存储器选择电路

二、实训内容

1、时钟功能:能显示年、月、日、星期、时、分、秒、温度等信息

2、调整功能:能校正年、月、日、时、分、秒、星期等信息

3、打铃功能:按指定的时间发出声音,并且闪光

4、设置的作息时间数据在单片机掉电后不会丢失 三、实训整体框图

中央处理单元STC89C52

时钟模块DS1302

存储模块AT24C02

液晶显示模块LCD1602

打铃模块

蜂鸣器、LED 指示灯

输入模块4X4矩阵键盘

时钟电路、复位电路、工作电源电

路、程序存储器选择电路

温度采集模块DS18B20

图1 系统总体设计图

四、各功能模块介绍 1、最小系统

单片机最小系统包括单片机(STC89C52)、时钟电路、复位电路、工作电源电路、程序存储器选择电路五个部分。 2、时钟模块DS1302

DS1302是美国DALLAS 公司推出的一种高性能、低功耗的实时时钟芯片,附加31字节静态RAM ,采用SPI 三线接口与CPU 进行同步通信,并可采用突发方式一次传送多个字节的时钟信号和RAM 数据。实时时钟可提供秒、分、时、日、星期、月和年,一个月小与31天时可以自动调整,且具有闰年补偿功能。工作电压宽达2.5~5.5V 。采用双电源供电(主电源和备用电源),可设置备用电源充电方式,提供了对后背电源进行涓细电流充电的能力。 3、存储模块AT24C02

AT24C02提供2k 位的串行电可擦写可编程只读存储器(EEPROM),组织形式为256字×8位字长,采用IIC 总线接口。 4、温度采集模块DS18B20

DS18B20数字温度计是DALLAS 公司生产的1-Wire ,即单总线器件,具有线路简单,体积小的特点。因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。 5、打铃模块

采用蜂鸣器和LED 指示灯作为系统打铃的声光报警器。 6、液晶显示模块LCD1602

LCD1602液晶显示器可以显示2行16列,共32个字符。

7、键盘输入模块

采用16键的矩阵式键盘,分别定义为0-9的数字键与其他的功能键。

图2 矩阵式键盘

8、LCD1602

2 0 1 1 - 0 8 - 2 2 S u n

2 3 :1 2 :4 9 ♫±2 6 . 7 º C

2 0 1 1 - 0 8 - 2 2 S u n

2 3 :1 2 :4 9 ±2 6 . 7 º C

S e t u p r i n g b e l l

t i m e r 0 1 2 3 :1 2 :4 9

9、矩阵键盘功能划分

●“15”键:界面切换功能,能够依次显示主界面、修改时间界面、打铃

时间界面

●“14”键:保存修改后的时间

●“12”键:关闭响铃

10、系统流程图

修改当前时间函数

五、程序代码

以下代码实现的功能是:

◆能够显示年月日、时分秒、星期、温度

◆能够修改小时、分钟、秒钟并且保存修改的时间

能够设置打铃时间,到设置的时间时蜂鸣器发出响声,设定为响10s,小灯亮。

1、zdy.h

int a,b,T;//自定义的变量

2、ds18b20.h

#include

sbit DQ=P2^2; //DQ的控制位

void delay5us(void) //延时5微秒

{

_nop_();

}

void delay1(int x) //x=(1. 20us,2. 28us,3. 36us,5. 52us,50. 412us,60. 492us,65. 535us)

{

unsigned int i;

for(i=0;i

}

//初始化,主机发送复位脉冲,从机如果存在则发送存在的应答脉冲

bit rst1bus(void)

{

bit f;

DQ=1;//准备阶段

DQ=0 ;//将DQ线拉低

delay1(65);//延时500us,主机发送复位脉冲:480us至960us的低电平

DQ=1 ;//将DQ线拉高

delay1(3); //延时40us;//主机释放总线:15us至60us的高电平

f=DQ;//从机如果存在则60us至240us内回复低电平

delay1(10);// 延时100us;

DQ=1;

delay1(40);// 延时350us;//结束阶段

return(f);//f=0:从设备存在;f=1:从设备不存在

}

//位写入函数:每次写1位数据

void writebit(bit x)

{

DQ=1;//准备阶段

DQ=0;

_nop_();//延时2us,主机发送15us的低电平

_nop_();

DQ=x;

delay1(6);//延时60us,从机DS18B20在至少60us内完成采样

DQ=1;//结束阶段

_nop_();//延时1us;

相关文档
最新文档