admin管理员组

文章数量:1531424

2024年1月13日发(作者:)

51单片机时钟代码(带秒表闹钟功能)

#include

#include

#defineucharunignedchar#defineuintunignedint

bitbeep=P1^5;//蜂鸣器bitLED1=P1"6;//LED灯bitep=P2"7;//1602使能端bitr=P2八6;//1602bitrw=P2八5;//1602

bit0二P3八4;//停止闹铃和小灯bit1二P3八5;//功能键bit2二P3飞;//增

大键bit3二P3X;//减小键bit4二P3「;//bit5=P3^2;bit6二P3八3;

bit7=P3^0;

uchar1num,4num,count,count1,judge=0;

charec,min,hour,miao,fen,hi,ec1,min1,diwei;voiddelay(uintz){

uint某,y;

for(某二z;某〉0;某--)for(y=100;y〉0;y—);}voiddi(){

beep=0;delay(50);beep=1;

}

bitlcd_bz()//测试LCD忙碌状态{

bitreult;

r=0;rw=1;ep=1;_nop_();_nop_();_nop_();_nop_();

reult=(bit)(P0&0某80);ep=0;

returnreult;

}

_nop_();_nop_();

_nop_();ep=1;_nop_();_nop_();_nop_();_nop_();ep=0;

}

voidwrite_data(uchardat)//写入字符显示数据到LCD{

while(lcd_bz());//等待LCD空闲r=1;rw=0;ep=0;P0=dat;_nop_();_nop_();_nop_();_nop_();ep=1;_nop_();_nop_();

_nop_();_nop_();

ep=0;

}

ucharhi,ge;

hi=dat/10;ge=dat;

write_data(0某30+hi);

write_data(0某30+ge);}

voidwrite_alarm(ucharadd,uchardat){

ucharhi1,ge1;hi1=dat/10;

ge1=dat;

count=0;

//clearwrite_data('A');delay(5);

hi=17;

voidkeycan()//按键扫描{if(l==0){delay(5);if(1==0){1num++;while(!1);di();

if(1num==1)

{

TR0=0;

if(1num==2)

{

if(1num==3){

if(1num==4){

1num=0;

if(1num!=0){

if(2==0)

{delay(5);if(2==0){

while(!2);di();

if(1num==1){

ec++;if(ec==60)ec=0;

if(1num==2){

min++;if(min==60)min=0;

if(1num==3){

hour++;if(hour==24)hour=0;

delay(5);if(3==0){

while(!3);di();

if(1num==1){

ec--;if(ec<0)

ec=59;

if(1num==2){

min--;if(min<0)min=59;

hour--;if(hour<0)

hour=23;

}

voidkeycan1(){

if(4==0){

delay(5);if(4==0){

4num++;while(!4);di();if(4num==1){TR0=0;

if(4num==2){

if(4num==3){

if(4num==4){

if(4num!=0){

if(5==0){

delay(5);if(5==0){

while(!5);di();

if(4num==1)

{

miao++;if(miao==60)miao=0;

write_alarm(10,miao);

if(4num==2){

fen++;if(fen==60)fen=0;

if(4num==3){

hi++;if(hi==24)hi=0;

write_alarm(4,hi);

if(6==0){

delay(5);if(6==0){

while(!6);di();

if(4num==1){

miao--;if(miao<0)

miao=59;

if(4num==2){

fen--;

if(fen<0)

fen=59;

write_alarm(7,fen);

if(4num==3){

hi--;if(hi<0)

hi=23;

}}

if(7==0){delay(5);if(7==0)

{while(!7)di();judge++;}

}

if(judge==2){TL0=0某b0;TH0=0某3c;

{ec=0;min++;if(min==60)

{min=0;hour++;if(hour==24){hour=0;}}}}}

if(judge==3){judge=0;ec1=0;min1=0;diwei=0;

write_alarm(10,miao);write_alarm(7,fen);write_alarm(4,hi);wr

ite_alarm(10,miao);write_alarm(7,fen);write_alarm(4,hi);}

if(count==20){count=0;ec++;if(ec==60){

ec=0;min++;if(min==60){

min=0;hour++;if(hour==24){

hour=0;}}}}}

本文标签: 秒表代码显示闹钟闹铃