您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 单片机声光报警器程序
//程序功能1602液晶第一行显示Name:xxxxxxxxx;//第二行显示timer:报警时间;#includereg52.h#includeintrins.h#defineucharunsignedchar#defineuintunsignedintsbitbeep=P2^3;//蜂鸣器接口sbitdu=P2^6;sbitwe=P2^7;sbitalarm=P3^6;//报警源sbitrs=P3^5;//H数据,L命令sbitlcden=P3^4;//LCD使能端ucharFRQ;ucharcodetable[]=Name:YinFeifei;ucharcodetable1[]=timer:;ucharnum=0;ucharmiao,fen;voiddelay1(ucharx){uinty;for(;x0;x--){for(y=100;y0;y--){};}}/*voiddelayms(ucharms){uchari;//这个函数你没有调用过,可以屏蔽掉。while(ms--){for(i=0;i120;)FRQ++;}}*/voidlcdwrdata(uchardat){rs=1;//写数据时RS拉高lcden=1;P0=dat;delay1(6);lcden=0;delay1(6);}voidlcdwrcom(ucharcdat)//写指令数据到LCD{rs=0;//写指令时RS拉低lcden=1;P0=cdat;//delay1(6);//不加此延时将导致不能写入指令,但能写入显示数据lcden=0;delay1(6);}voidlcd_init(){lcdwrcom(0x38);//0x38设置显示模式为:16X2显示,5X7点阵,8位数据接口lcdwrcom(0x0c);//打开显示光标闪烁lcdwrcom(0x06);//lcdwrcom(0x01);//}voidinitialtime0()//定时计数器T0,T1的初始化{TMOD=0X11;//FRQ=0X00;//删除TH0=(65536-50000)/256;//修改的地方(填写数字是个人爱好,也可以填写十六进制)TL0=(65536-50000)%256;TH1=0x4c;TL1=0;ET0=1;ET1=1;EA=1;TR0=0;TR1=0;}voidmain(){ucharn;ucharmge=0,mshi=0,fge=0,fshi=0;initialtime0();du=0;we=0;delay1(200);lcden=0;lcd_init();lcdwrcom(0x00|0x80);for(n=0;n16;n++){lcdwrdata(table[n]);delay1(50);}lcdwrcom(0x40|0x80);for(n=0;n6;n++){lcdwrdata(table1[n]);delay1(50);}lcdwrcom(0x80+0x40+8);lcdwrdata(0x3a);while(1){if(!alarm){delay1(10);TR0=1;TR1=1;}else{TR0=0;TR1=0;}//写入秒的十位和个位mge=miao%10;lcdwrcom(0x80+0X40+10);lcdwrdata(0x30+mge);mshi=miao/10;lcdwrcom(0x80+0X40+9);lcdwrdata(0x30+mshi);//写入分的十位和个位fge=fen%10;lcdwrcom(0x80+0X40+7);lcdwrdata(0x30+fge);fshi=fen/10;lcdwrcom(0x80+0X40+6);lcdwrdata(0x30+fshi);beep=1;//防止中断停止后蜂鸣器一直在响。}}voidtime0()interrupt1{TH0=(65536-20000)/256;//修改的地方(填写数字是个人爱好,也可以填写十六进制)TL0=(65536-20000)%256;beep=~beep;if(P1==0xff)P1=0xfc;P1=_crol_(P1,1);delay1(20);}voidtime1()interrupt3{TH1=0x4c;TL1=0;num++;if(num==20){num=0;miao++;if(miao==60){miao=0;fen++;if(fen==60){fen=0;}}}}
本文标题:单片机声光报警器程序
链接地址:https://www.777doc.com/doc-7197438 .html