单片机课程设计——《基于AT89S52单片机和DS1302时钟芯片的电子时钟(可蓝牙校准)》 ...


引言

本设计以AT89S52单片机为控制核心,时钟芯片DS1302提供时钟源,配合LCD1602液晶显示模块,组成基本硬件系统,同时利用HC-05嵌入式蓝牙串口通讯模块,可在手机端进行日期、时间的校准。具有走时精确,功耗低,显示直观,调整简单方便等优点。

能描述

基本显示:

第一行为日期,依次为:年-月-日-星期

      第二行为时间,依次为:时:分:秒

说明:

每月的天数,闰年的天数可自动调整

蓝牙校准日期:

命令d+年月日星期+#,如设置2016年12月8日星期四,手机发送命令:d16120804

蓝牙校准时间:

命令t+时分秒+#,如设置15:11:46,手机发送命令:t151146#

 

硬件电路设计

 

硬件概述:

AT89S52单片机介绍:AT89S52_百度百科

DS1302时钟芯片介绍:DS1302_百度百科

LCD1602液晶模块介绍:LCD1602_百度百科

HC-05嵌入式蓝牙串口通讯模块介绍:HC-05

蓝牙通信原理:

 

硬件电路图:

 

 

 

程序设计:

主程序:main.c

 1 #include <reg52.h>
 2 #include <LCD1602.c>
 3 #include <DS1302.c>
 4 #include <bluetooth.c>
 5 void serial_initial()            
 6 {
 7     EA = 1;                //开总中断
 8     ES = 1;                //开串口中断
 9     TMOD = 0x20;        //定时器1,方式2,8位自动重装,作波特率发生器
10     TH1 = 0xfa;            //波特率9600
11     TL1 = 0xfa;
12     TR1 = 1;
13     SCON = 0x50;        //串口工作方式1,允许接收
14     PCON = 0x80;        //SMOD=1,bps倍增9600
15 }
16 void clock_initial()
17 {    
18     lcd_initial();                 //1602初始化
19     serial_initial();            //中断初始化
20     Set_DS1302_Time(0x80);        //先写入寄存器起始地址设置时钟日历初值
21     dis_string(0x80,"Date:11-11-11-11");
22     dis_string(0xc0,"Time: 11:11:11  ");
23     flag_date = 0;
24     flag_time = 0;
25     bt_flag = 0;
26 }
27 
28 void main()
29 {
30     clock_initial();
31     while(1)
32     {
33         if(flag_date == 1&&cmd_end==1)
34             date_set();
35         if(flag_time == 1&&cmd_end==1)
36             time_set();
37         Read_DS1302_Time(0x81); 
38         dis_twonum (5, 0, TimeData[6]); //
39         dis_twonum (8, 0, TimeData[4]); //
40         dis_twonum (11, 0, TimeData[3]); //
41         dis_twonum (14, 0, TimeData[5]); //星期
42         dis_twonum (6, 1, TimeData[2]); //
43         dis_twonum (9, 1, TimeData[1]); //
44         dis_twonum (12, 1, TimeData[0]); //
45         Delay_Ms(1000);                     //
26页,7342字数 摘 要 时钟,自从它发明的那天起,就成为人类的朋友,但随着时间的推移,科学技术的不断发展,人们对时间计量的精度要求越来越高,应用越来越广。怎样让时钟更好的为人民服务,怎样让我们的老朋友焕发青春呢?这就要求人们不断设计出新型时钟。 数字电子钟的设计方法有多种,其中,利用单片机实现的电子钟具有编程灵活,便于电子钟功能的扩充,即可用该电子钟发出各种控制信号,精确度高等特点,同时可以用该电子钟发出各种控制信号。 本文主要介绍用单片机内部的定时/计数器来实现电子时钟的方法,本设计由单片机AT89S52芯片LED数码管为核心,辅以必要的电路,构成了一个单片机电子时钟。与传统机械表相比,它具有走时精确,显示直观等特点。它的计时周期为24小时,显满刻度为“23时59分59秒”,另外具有校时功能等特点。该电子钟可以做到的功能: 上电或按键复位后能自动显示系统提示符“P.”进入时钟准备状态2.第一次按电子钟启动/调整键,电子钟从0时0分0秒开始运行,进入时钟运行状态。再次按电子钟启动/调整键,则电子钟进入时钟调整状态,此时可利用各调整键调整时间,调整结束后可按启动/调整键再次进入时钟运行状态。通过设置的A、B、C、D四个键来调整运行,并且利用了8位LED显示时分秒。 此电子钟严格按照要求设计,最终达到预期的效果,能够正确显示“P”点以及时分秒的计时,算是一次比较成功的设计了。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值