1.显示年月日时分秒
2.秒表功能
3.计时器
3.显示温度
4.可背光熄屏(发的HB12864显示屏能做到的程度)
5.手机app设置闹钟时间
6.可手机调节闹钟音量
7.可手机从预留音乐中选择闹钟音乐
代码工程打开下载:
bashhttp://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语言程序,看起来像是用于控制智能时钟的一部分。以下是对代码的主要部分的解释:
全局变量定义:
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
: 用于倒计时的变量。
函数定义:
init_timer0()
: 初始化定时器0,设置为模式1,用于产生50ms的定时中断。
convert_string_to_time()
: 将接收到的字符串转换为时间结构体。
main()
: 主函数,包含主要的时钟控制逻辑,包括显示时间、闹钟、温度、秒表和倒计时。
T0_time()
: 定时器0的中断服务函数,用于秒表的计时。
Uart_isr()
: 串口中断服务函数,处理串口接收到的指令和数据。
串口指令处理:
通过串口接收指令,执行相应的功能,如调整音量、设置闹钟、显示时间等。
通过串口进行交互,例如按键'a'表示点亮屏幕,'b'表示播放音乐,'c'表示停止播放等。
定时器和计时逻辑:
使用定时器0实现了50ms的定时中断,用于秒表的计时。
在主循环中,通过定时中断来更新显示屏上的时间、温度、秒表和倒计时。
其他功能:
通过DS1302实现了时钟的初始化和时间读取。
使用了一些自定义的函数,如Screen_Con()
、SerInit()
、set_time()
、get_time()
等,这些函数的具体实现未在提供的代码中给出。
请注意,由于缺少一些函数和定义,例如struct RTCTIME
,ds1302_init()
等,代码的完整性可能受到限制。此外,代码中使用的一些函数如Screen_Con()
、SerInit()
、set_volume()
、bofang()
、tingzhi()
等的实现也未提供。如果有其他相关的代码或库文件,可以提供更多上下文。
本文作者:Dong
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC。本作品采用《知识共享署名-非商业性使用 4.0 国际许可协议》进行许可。您可以在非商业用途下自由转载和修改,但必须注明出处并提供原作者链接。 许可协议。转载请注明出处!