数码管的程序用了之前网友发的代码
说明:上电数码管流水,2秒后显示1307的时间,显示时间时,按键1,切换数码管流水-计时器-显示时间,按键2,切换要调整的时,分值
每5分钟,蜂鸣器响2秒
有一个问题不会,调整1307的值时,是以16进制的方式调,10再往上就出现字母了,下次再解决吧。
单片机代码只上传了C文件的,其他文件在压缩包里
#include<STC15W.H>
#include<LED.h> // 定义了LED黄灯 定义了 时钟的一个标志位ds1307flag,
#include<SMG.h> //
#include<T2.h> // 定时器2 用于数码管 计时
#include<FMQ.h> //
#include<KEY.h> //
#include<DS1307.h> //
//#include<T0.h> // 定时器0 用于FMQ
void main()
{
Timer2Init(); // 定时器2初始化
// Timer0Init(); // 定时器0初始化
fmqinit(); // 蜂鸣器 初始化
smgioinit(); // 数码管 位选 推挽
//write(0xd0,0x01,minute); // 分 手动输入时间
// write(0xd0,0x02,0x22); // 时 手动输入时间
while(1)
{
if(xx1==0) // 上电 数码管动态流动 2秒后,XX1=1;显示时间
{
smginit_2();
}
if(xx1==1) //
{
ds1307dis(); //显示1307 时间
Key_Scan(); // // 按键4 切换
Key_Scan2(); // 按键1 切换
Key_Scan3(); // 按键2
Key_Scan4(); // 按键3
}
if(xx1==2) //
{
SMGdisplay_zjs(); // 数码管 正计时
}
Key_Scan(); // // 按键4 切换
Key_Scan2(); // 按键1 切换
Key_Scan3(); // 按键2
Key_Scan4(); // 按键3
}
}
Keil代码下载: