【TB作品】51单片机设计_智能时钟_西交大

1.显示年月日时分秒
2.秒表功能
3.计时器
3.显示温度
4.可背光熄屏(发的HB12864显示屏能做到的程度)
5.手机app设置闹钟时间
6.可手机调节闹钟音量
7.可手机从预留音乐中选择闹钟音乐

代码工程打开下载:

http://dt4.8tupian.net/2/28880a61b30000.pg3	

1 显示屏的PSB 接高电平,表示并行传输数据
2 显示屏的TEST 接高电平,表示正常工作;否则就是自测;
3 显示屏的通信是8个数据线,看原理图找准REQ BUSY
4 供电奇特,大功率线给显示屏,串口线给单片机+外接板
5 供地需求,单片机板子的2个地分别接到显示屏和DS1302板子
6 DS1302的板子有很多vcc和gnd,可以给蓝牙这种设备供电
7 音乐模块有大功率喇叭,必须依靠显示屏那个板子去供电比较好
8 下程序 下不进去,可以按复位;还是下不进去,或者下进去没反应,多按复位再试试下进去
9 驱动找好COM,驱动软件选最古老的
在这里插入图片描述

这段代码是一个嵌入式系统中的C语言程序,看起来像是用于控制智能时钟的一部分。以下是对代码的主要部分的解释:

  1. 全局变量定义:

    • music_index: 代表音乐编号,范围是1到5。
    • music_volume: 音乐的播放音量,范围是5到30。
    • music_volume_temp: 临时变量,用于设置音乐音量时的中间值。
    • uart_rev_state, uart_rev_state_naozhong, uart_rev_state_xianshi: 用于记录接收状态的变量。
    • rev_buffer_time_14bit: 用于存储接收到的时间或数字的数组。
    • naozhong_time, naozhong_open_flag: 用于处理闹钟的计时和状态标志。
    • num2, ms100, second100, minute100: 秒表的计时变量。
    • second_countdown, minute100_countdown, hour100_countdown, countdown_open_flag: 用于倒计时的变量。
  2. 函数定义:

    • init_timer0(): 初始化定时器0,设置为模式1,用于产生50ms的定时中断。
    • convert_string_to_time(): 将接收到的字符串转换为时间结构体。
    • main(): 主函数,包含主要的时钟控制逻辑,包括显示时间、闹钟、温度、秒表和倒计时。
    • T0_time(): 定时器0的中断服务函数,用于秒表的计时。
    • Uart_isr(): 串口中断服务函数,处理串口接收到的指令和数据。
  3. 串口指令处理:

    • 通过串口接收指令,执行相应的功能,如调整音量、设置闹钟、显示时间等。
    • 通过串口进行交互,例如按键’a’表示点亮屏幕,'b’表示播放音乐,'c’表示停止播放等。
  4. 定时器和计时逻辑:

    • 使用定时器0实现了50ms的定时中断,用于秒表的计时。
    • 在主循环中,通过定时中断来更新显示屏上的时间、温度、秒表和倒计时。
  5. 其他功能:

    • 通过DS1302实现了时钟的初始化和时间读取。
    • 使用了一些自定义的函数,如Screen_Con()SerInit()set_time()get_time()等,这些函数的具体实现未在提供的代码中给出。

请注意,由于缺少一些函数和定义,例如struct RTCTIMEds1302_init()等,代码的完整性可能受到限制。此外,代码中使用的一些函数如Screen_Con()SerInit()set_volume()bofang()tingzhi()等的实现也未提供。如果有其他相关的代码或库文件,可以提供更多上下文。

猜你喜欢

转载自blog.csdn.net/x1131230123/article/details/135047955
今日推荐