|
通過用51單片機(jī)與語(yǔ)音模塊+喇叭來制作一個(gè)定時(shí)鬧鐘,相當(dāng)于上下課鈴的那種....可個(gè)性設(shè)置鬧鐘鈴與時(shí)間....
單片機(jī)源程序如下:
- #include <reg52.h>
- #define uint unsigned int
- #define uchar unsigned char
- uchar code digital_table[]={//數(shù)碼管
- 0x3f,0x06,0x5b,0x4f,
- 0x66,0x6d,0x7d,0x07,
- 0x7f,0x6f,0x77,0x7c,
- 0x39,0x5e,0x79,0x71
- };
- uchar code digital[]={//數(shù)碼管位
- 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;//關(guān)閉鬧鐘
- 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++;//計(jì)數(shù)++
- }
復(fù)制代碼
所有資料51hei提供下載:
51鬧鐘.zip
(1.41 MB, 下載次數(shù): 9)
2020-11-19 13:36 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
|