久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2264|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

定時(shí)鬧鐘

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:204636 發(fā)表于 2017-5-25 10:52 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
#include<reg51.h>
#include<intrins.h>
#include<stdio.h>
#define uchar unsigned char
#define uint unsigned int
uchar code segtbl[]= {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf,0xff,0xc6};
                     // 0  1    2   3   4    5    6   7   8   9    -        c   
uchar data dis_b; //位段碼
uchar data dis_r; //位偏移量
uchar data dis[8];      //定義8個(gè)連續(xù)的存儲器

uchar data c_min;
uchar data c_hou;
uchar data second;
uchar data minite;
uchar data hour;
uchar data CNTA;
uchar data speaker_num;   //蜂鳴次數(shù)
bit beep;          //整點(diǎn)報(bào)時(shí)標(biāo)志
bit run;         //運(yùn)行標(biāo)志
bit flash;         //滅燈標(biāo)志
bit clarm_switch;     //鬧鐘開關(guān)標(biāo)志
bit baoshi;     //報(bào)時(shí)開關(guān)標(biāo)志
sbit  speaker=P1^3;
sbit minitek=P1^1;
sbit hourk=P1^0;
sbit enter=P1^4;
sbit led1=P1^6;      //  按鍵標(biāo)識
sbit led2=P1^7;      // 運(yùn)行標(biāo)志
uint n,k;

void delay_10us(uchar n)    //10微秒級延時(shí)
{ do
  { _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
  }while(--n);
}
void delay_ms(uint n)     //毫秒級延時(shí)
{ do delay_10us(131);
  while(--n);
}
clk_to_dis()
{
    dis[0]=minite%10;
dis[1]=minite/10;
     if(flash)dis[2]=10;
        else dis[2]=11;
dis[3]=hour%10;
dis[4]=hour/10;
dis[5]=10;
dis[6]=11;
}
clarm_to_dis()
{
    dis[0]=c_min%10;
dis[1]=c_min/10;
if(flash)dis[2]=10;//亮燈
        else dis[2]=11;    //滅燈
dis[3]=c_hou%10;
dis[4]=c_hou/10;
dis[5]=10;
dis[6]=8;
}
void main()
{
P2=0xff;
P1=0XFF;
P0=0xff;
run=1;
led1=0;
flash=0x00;
dis[2]=10;      //第三位顯示“-”
dis_r=0;        //為偏移量初始為“0”
dis_b=0x80; //選通P2.7
second=0x00;
minite=0x00;
hour=0x00;
CNTA=0x00;
TMOD=0x11;
TH0=19500/256;
TL0=19500%256;
TH1=0xfc;
TL1=0x18;
EA=1;    //開中斷;
TR0=1;
TR1=1;
ET1=1;
EX0=1;
EX1=1;
ET0=1;

while(1)
  {

   while(run==1)
   {
  while(!minitek)
  {
  for(n=0;n<1000;n++);
  if(!minitek==0)break;    //延時(shí)防抖
  minite++;
  second=0x00;
  led1=0;
      for(n=0;n<20;n++)
        {
         speaker=!speaker;
           delay_10us(50);             //蜂鳴器響
         }

  if(minite==60)minite=0x00;
  while(!minitek);  //等待鍵松開
   led1=1;    //顯示燈   
  }

      while(!hourk)
  {
  for(n=0;n<1000;n++);
  if(!hourk==0)break;
  hour++;
  second=0x00;
  led1=0;
   for(n=0;n<30;n++)
   {
   speaker=!speaker;
   delay_10us(30);             //蜂鳴器響
   }

  if(hour==24) hour=0x00;
  while(!hourk);
  led1=1;
  }

  if(clarm_switch)
  {
  if(c_min==minite&&c_hou==hour)

   {speaker_num=60;
   beep=1;
   while(beep&& clarm_switch)
   {
   led1=!led1;
   delay_ms(100);
   }
   led1=1;
   beep=0;
   }
         }

  while(run==0)
  {
     while(!minitek)
{
for(n=0;n<1000;n++);
if(!minitek==0)break;    //延時(shí)防抖
c_min++;
led1=0;
for(n=0;n<25;n++)
{
speaker=!speaker;
delay_10us(40);             //蜂鳴器響
}
if(c_min==60)c_min=0x00;
while(!minitek);        //等待鍵松開
led1=1;
}

  while(!hourk)
{for(n=0;n<1000;n++);
if(!hourk==0)break;
c_hou++;
led1=0;
for(n=0;n<40;n++)
{
speaker=!speaker;
delay_10us(20);             //蜂鳴器響
}
if(c_hou==24) c_hou=0x00;
while(!hourk);
led1=1;
}



}
    }
}

}
timer0() interrupt 1 using 2//定時(shí)器0中斷號為1號 使用第2組寄存器
{
TH0=19534/256;
TL0=19534%256;
CNTA++;
if(beep)
{
if(speaker_num%2)speaker=!speaker;
if(!speaker_num) beep=0;

}
if(CNTA==20)
{       if(speaker_num)speaker_num--;
flash=!flash;
CNTA=0;
         second++;//秒加
   if(second==60)
   {second=0;
    minite++;
  if(minite==60)
  {
  minite=0;
  hour++;
  if(hour>7){speaker_num=2*hour;    //整點(diǎn)到 蜂鳴標(biāo)志  置1
     beep=1;}
   if(hour==24)

   {
   hour=0;
   }
  }
    }
}

}
timer1() interrupt 3 using 3
  {

uchar ttt=0;                   //ttt存儲段碼
if(run==0) clarm_to_dis();
else clk_to_dis();
ttt = segtbl[dis[dis_r]];        //段碼賦值

P2= dis_b;                       //位碼送P2
P0=ttt;                          //段碼送P0

if(++dis_r==8)dis_r=0x00;
dis_b=_cror_(dis_b,1);          //位碼右移
TH1=0xfc;
        TL1=0x18;

  }

int_0() interrupt 0    //鬧鐘開關(guān)
{
clarm_switch=!clarm_switch;
if(clarm_switch)dis[7]=12;   //開啟顯示   C
else dis[7]=11;      //關(guān)閉 不顯示   
  for(k=0;k<40;k++)
{speaker=!speaker;
led1=!led1;
delay_ms(5);
}
led1=1;
}

int_1() interrupt 2     //鬧鐘時(shí)間設(shè)置/運(yùn)行 轉(zhuǎn)換開關(guān)
{
run=!run;
if(run)led2=0;
else led2=1;
for(k=0;k<90;k++)      // 蜂鳴器響
{speaker=!speaker;      //指示燈閃爍
led1=!led1;
delay_10us(100);
}
led1=1;
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产一级片一区二区三区 | 国产午夜三级一区二区三 | 亚洲视频一区二区三区四区 | 日韩视频在线一区 | 日韩精品一区二区三区中文在线 | 欧美日韩在线观看一区 | 日韩免费一区二区 | 天天干,夜夜操 | 国产精品一区二区三区在线 | 丝袜 亚洲 另类 欧美 综合 | 黄色免费网站在线看 | 高清视频一区二区三区 | 99久久婷婷国产综合精品电影 | 91精品国产综合久久福利软件 | 在线欧美一区二区 | 久久精品小视频 | 欧美999 | 日韩二三区 | 亚洲国产成人av好男人在线观看 | 国产探花在线精品一区二区 | 午夜在线小视频 | av黄色在线 | 97av视频在线 | 久草在线在线精品观看 | 日韩精品一区二区三区在线播放 | 亚洲一区视频 | 中文字幕成人 | 九九久久国产 | 亚洲综合无码一区二区 | 天天操天天操 | 国产a视频| 亚洲一区二区中文字幕 | 国产乱码精品1区2区3区 | 区一区二区三在线观看 | 午夜精品 | 五月天婷婷久久 | 精品久久久一区二区 | 欧美激情一区二区三级高清视频 | 欧美一区二区三区国产精品 | 亚洲国产精品成人无久久精品 | 久草在线在线精品观看 |