"); //-->
//定时闹钟
//声音输出P3.7
//
//
#include <reg52.h>
#define unchar unsigned char
sbit sound="P3"^7;
sbit push="P3"^5; //暂停,继续键
unchar ssadd1;
unsigned char code dispcode[]={0xC0,0xF9,0xA4,0xB0,
0x99,0x92,0x82,0xF8,
0x80,0x90,0Xbf,0xFF}; //数码管字形表,0-9,-,灭
unchar cnt; //定时中断计数器
unchar timeadd1=0; //时间加1判断
unchar alarmtime; //闹钟时间长度
unchar bjss="5"; //以下分别为闹钟秒,分钟,小时变量
unchar bjmm="0";
unchar bjhh="0";
unchar ss="0"; //实际秒变量
unchar mm="0"; //实际分钟变量
unchar hh="0"; //实际小时变量
unchar t="3"; //延时常数
#define SSL 0x7f //秒低位段码地址
#define SSH 0XBF //秒高位段码地址
#define _L 0XFB //8位数码管显示,分钟与秒之间的-分隔符
#define MML 0XEF //以下同
#define MMH 0XF7
#define _H 0XDF //8位数码管显示,小时与分钟之间的-分隔符
#define HHL 0XFD
#define HHH 0XFE
void add1(unchar i) //时间加1函数
{
while(i>0)
{ i--;
ss++;
timeadd1--;
if(ss==60)
{ss=0;
mm++;
if(mm==60)
{mm=0;
hh++;
if(hh==24)
hh="0";
}
}
}
}
void delay(unchar x) //延时函数
{
unchar i;
for(i=0;i<=x;i++);
}
void display(void) //显示函数
{
P1 =dispcode[ss%10];
P2 =SSL; //显示秒低位
delay(t);
P1=dispcode[ss/10];
P2=SSH; //显示秒高位
delay(t);
P1 =dispcode[10];
P2=_L;
delay(t);
P1 =dispcode[mm%10];
P2=MML; //显示分钟低位
delay(t);
P1=dispcode[mm/10];
P2=MMH; //显示分钟高位
delay(t);
P1 =dispcode[hh%10];
P2=HHL;
delay(t);
P1=dispcode[hh/10];
P2=HHH;
delay(t);
P1 =dispcode[10];
P2=_H;
delay(t);
}
void baojingsheng(void) //闹钟音产生函数
{ unchar m="800";
while(m>300)
{ sound=~sound;
add1(timeadd1);
display();
m--;
}
while(m>0)
{sound=~sound;
add1(timeadd1);
display();
delay(15);
m--;
}
}
void alarm(unchar i) //闹钟定时函数,定时长度为alarmtime
{ if((hh==bjhh)&&(mm==bjmm)&&(ss==bjss))
{
while(i>0)
{baojingsheng();
i--;
}
}
}
void main(void)
{ cnt="20";
timeadd1=0;
TMOD="0X01";
TL0=((65536-50000)%256);
TH0=((65536-50000)/256);
EA="1";
ET0=1;
TR0=1;
alerttime="20";
while(1)
{
add1(timeadd1);
display();
alarm(alarmtime);
}
}
void time0 (void) interrupt 1 //定时中断函数
{ cnt--;
TL0+=(65536-50000)%256;
TH0+=(65536-50000)/256;
if(cnt==0)
{cnt=20;
timeadd1++;
}
}
专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们
相关推荐
会唱歌的不倒翁电路
精彩电路图收集系列
中国半导体设备厂商再获资本加码
\"zangchao\"的CAN通信协议与USART通信协议互相转换视频
60V、98% 效率、四开关同步降压-升压型控制器 IC 可驱动 LED、调节电压并给电池充电
日本三大半导体厂商将整合,功率半导体领域迎变局
2012英特尔杯大学生电子设计竞赛嵌入式系统专题邀请赛开赛
Google AI压缩技术引发市况反转? 两岸存储器业界:大缺货潮恐延续更久
IC解密——专业单片机IC解密,PLD IC解密,价格低,速度快!联系我们:13714058932 0755-81591815 罗工
六路互复位型手触开关电路
基于多线程编程的视频控制系统四路回放的设计
Cirrus Logic CS161X LED 控制器调光兼容性演示
技术术语
台积电遇75年来罕见现象 外界忧引爆AI供应链新危机
触摸报警电路
模拟芯片产业迎涨价潮,AI需求推动市场变革
马瑞利将在2026北京车展发布20余项创新成果 推进本土化、成本效率优势与快速交付
如果您在ARM方面强调服务, 到北京恒颐
玩具娃娃电路
三星罢工危机延烧晶圆代工 DDIC、PMIC海啸
Cirrus Logic 推出采用创新数字技术的TRIAC调光LED驱动器IC产品
精彩电路图收集
无线收/发模块,无线遥控开关,语音电路, 超声波测距/单片机编程器/教学光盘
基于PCI总线的高速实时数字采集系统
单稳态触摄开关电路
复旦微电2025年营收39.82亿元,FPGA产品线营收亮眼
泰克发布高效电源测试白皮书: 以95.5%回馈效率重塑AI数据中心测试标准
三安集团实控人被调查,公司回应:经营不受影响
[推荐]IC解密——电话:13714058932,单片机解密,芯片解密,破解MCU,破解CPLD,/直销可代替PIC/EMC系列单片机
应届毕业生求职