标题:
51单片机制作闹钟程序 附亚博BST-M51电路图
[打印本页]
作者:
automation007
时间:
2020-11-19 13:38
标题:
51单片机制作闹钟程序 附亚博BST-M51电路图
通过用51单片机与语音模块+喇叭来制作一个定时闹钟,相当于上下课铃的那种....可个性设置闹钟铃与时间....
单片机源程序如下:
#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
uchar code digital_table[]={//数码管
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71
};
uchar code digital[]={//数码管位
0x1f,0x2f,0x4f,0x8f
};
uint num;//
void init();//
void display_digital();//
void main(){
init();
display_digital();
}
void display_digital(){
uchar temp,m[4],up=1,lower=0,min_temp=0,max_temp=1;
uint tim=1;
while(1){
if(num>=1200){//
num=0;//
tim++;//
if(up&&tim>29){//
tim=0;
lower=1;//
up=0;//
min_temp=2;//
max_temp=3;//
}
if(lower&&tim>9){//
tim=0;//
up=1;//
lower=0;//
min_temp=0;//
max_temp=1;//
}
}
if(tim==0&&up==1&&num<340){//
P1=0xfd;//开启闹钟
}else if(tim==0&&lower==1&&num<400){//<2?s
P1=0xf7;//0xfb
}else
P1=0xff;//关闭闹钟
if(tim>9){//>9
temp++;//
if(temp>max_temp)//
temp=min_temp;//
m[min_temp]=tim/10;
m[max_temp]=tim%10;
}else{
temp=min_temp;
m[min_temp]=tim;//
}
P0=0x00;//
P2=digital[temp];//
P0=digital_table[m[temp]];//
}
}
void init(){
num=0;
TMOD=1;//
TH0=(65535-50000)/255;//50毫秒
TL0=(65535-50000)%255;//
EA=1;//
ET0=1;//
TR0=1;//
}
void timer0() interrupt 1 {//
TH0=(65535-50000)/255;//50毫秒
TL0=(65535-50000)%255;//50
num++;//计数++
}
复制代码
所有资料51hei提供下载:
51闹钟.zip
(1.41 MB, 下载次数: 9)
2020-11-19 13:36 上传
点击文件名下载附件
下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1