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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3164|回復(fù): 6
收起左側(cè)

51單片機(jī)在倒計(jì)時(shí)的時(shí)候蜂鳴器不響,倒計(jì)為0時(shí)蜂鳴器響

[復(fù)制鏈接]
ID:992665 發(fā)表于 2021-12-15 17:59 | 顯示全部樓層 |閱讀模式
1黑幣
#include <reg52.h>

sbit DGT0=P2^3;//數(shù)碼管控制位
sbit DGT1=P2^2;
sbit DGT2=P2^1;
sbit DGT3=P2^0;
sbit BEEP=P2^5;


unsigned char code  LedChar[]={
        0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
unsigned char LedBuff[4]={0xF9,0xC0,0xC0,0xC0};//顯示數(shù)據(jù)儲(chǔ)存空間
unsigned char  flagls=0;//工作表示
unsigned int cnt=0;//計(jì)數(shù)器
unsigned char i=0;//循環(huán)變量
void main()
{
        unsigned int sec=1000;//定義變量,倒計(jì)時(shí)起始數(shù)據(jù)
        
        TMOD=0x01;//MOV TMOD,#01H//12M晶振產(chǎn)生1ms定時(shí)
        TH0=0xFC;//定時(shí)器初置
        TL0=0x18;
          TR0=1;//啟動(dòng)定時(shí)計(jì)數(shù)
        EA=1;//允許中斷
        ET0=1;//允許定時(shí)器0中斷
        while(1)
        {         
                LedBuff[0]=LedChar[sec%10];//計(jì)數(shù)值個(gè)位存入
                        LedBuff[1]=LedChar[sec%100/10];//十位
                        LedBuff[2]=LedChar[sec%1000/100];//百位
                        LedBuff[3]=LedChar[sec/1000];//千位

                if(flagls==1)//判斷1秒時(shí)間到,工作表示有效
                {
                        flagls=0;//等等下一秒,清零
                        sec--;
                        
               
                }
        }
         
        
}
void InterruptTime0() interrupt 1//定時(shí)中斷
{
        TH0=0xFC;//重賦初始值
        TL0=0x18;
        cnt++;//計(jì)數(shù)器加1
        if (cnt>=200)//時(shí)間
        {
                cnt=0;//準(zhǔn)備下一秒記時(shí)
                flagls=1;//1秒時(shí)間到
              
        }
        P0=0xFF;//熄滅,P0高電平

         switch (i)
        {
                case 0:DGT3=0;DGT2=0;DGT1=0;DGT0=1;i++;P0=LedBuff[0];break;//個(gè)位
                case 1:DGT3=0;DGT2=0;DGT1=1;DGT0=0;i++;P0=LedBuff[1];break;//十位
                case 2:DGT3=0;DGT2=1;DGT1=0;DGT0=0;i++;P0=LedBuff[2];break;//百位
                case 3:DGT3=1;DGT2=0;DGT1=0;DGT0=0;i=0;P0=LedBuff[3];break;//千位
        }
}





  如何把修改程序加進(jìn)去?

回復(fù)

使用道具 舉報(bào)

ID:213173 發(fā)表于 2021-12-15 17:59 | 顯示全部樓層
無標(biāo)題.jpg
  1. #include <reg52.h>

  2. sbit DGT0=P2^3;//數(shù)碼管控制位
  3. sbit DGT1=P2^2;
  4. sbit DGT2=P2^1;
  5. sbit DGT3=P2^0;
  6. sbit KEY0=P2^4;
  7. sbit BEEP=P2^5;
  8. sbit KEY1=P2^6;
  9. sbit KEY2=P2^7;

  10. unsigned char code  LedChar[]={
  11. 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
  12. unsigned char LedBuff[4]={0xF9,0xC0,0xC0,0xC0};//顯示數(shù)據(jù)儲(chǔ)存空間
  13. bit sign,flag,B_flag;//工作表示
  14. unsigned int cnt=0;//計(jì)數(shù)器
  15. unsigned char i=0;//循環(huán)變量
  16. unsigned int sec,sec1=500;//定義變量,倒計(jì)時(shí)起始數(shù)據(jù)

  17. void main()
  18. {
  19.         unsigned int t1,t2,t3;
  20.         TMOD=0x01;//MOV TMOD,#01H//12M晶振產(chǎn)生1ms定時(shí)
  21.         TH0=0xFC;//定時(shí)器初置
  22.         TL0=0x18;
  23.         TR0=1;//啟動(dòng)定時(shí)計(jì)數(shù)
  24.         EA=1;//允許中斷
  25.         ET0=1;//允許定時(shí)器0中斷
  26.         while(1)
  27.         {         
  28.                 if(!KEY0 && !flag)
  29.                 {
  30.                         flag=1;//啟動(dòng)倒計(jì)時(shí)并自鎖按鍵
  31.                         sec=sec1;//倒計(jì)時(shí)賦初值
  32.                         cnt=0;//定時(shí)器計(jì)數(shù)復(fù)位
  33.                         t2=0;//蜂鳴器計(jì)數(shù)復(fù)位
  34.                         BEEP=1;//蜂鳴器復(fù)位
  35.                         B_flag=0;//蜂鳴器工作標(biāo)志復(fù)位
  36.                 }
  37.                 if(!KEY1 || !KEY2)//預(yù)置時(shí)間
  38.                 {
  39.                         if(++t1>=200 && !flag)
  40.                         {
  41.                                 t1=0;
  42.                                 sign=1;
  43.                                 if(!KEY1){if(sec1<1000)sec1++;}
  44.                                 if(!KEY2){if(sec1>10)sec1--;}
  45.                                 t3=3000;//顯示切換保持時(shí)間
  46.                         }
  47.                 }
  48.                 else
  49.                 {                       
  50.                         if(sign)
  51.                         {
  52.                                 if(--t3==0)sign=0;
  53.                         }               
  54.                         t1=0;
  55.                 }
  56.                 if(sign)//預(yù)置顯存
  57.                 {
  58.                         LedBuff[0]=LedChar[sec1%10];//計(jì)數(shù)值個(gè)位存入
  59.                         LedBuff[1]=LedChar[sec1%100/10];//十位
  60.                         LedBuff[2]=LedChar[sec1%1000/100];//百位
  61.                         LedBuff[3]=LedChar[sec1/1000];//千位
  62.                 }
  63.                 else//正常顯存
  64.                 {
  65.                         LedBuff[0]=LedChar[sec%10];//計(jì)數(shù)值個(gè)位存入
  66.                         LedBuff[1]=LedChar[sec%100/10];//十位
  67.                         LedBuff[2]=LedChar[sec%1000/100];//百位
  68.                         LedBuff[3]=LedChar[sec/1000];//千位
  69.                 }
  70.                 if(B_flag)//判斷蜂鳴器允許標(biāo)志
  71.                 {
  72.                         BEEP=0;//蜂鳴器工作
  73.                         if(++t2>=5000)//蜂鳴器工作時(shí)長
  74.                         {
  75.                                 t2=0;//蜂鳴器計(jì)數(shù)復(fù)位
  76.                                 BEEP=1;//蜂鳴器復(fù)位
  77.                                 B_flag=0;//蜂鳴器工作標(biāo)志復(fù)位
  78.                         }
  79.                 }
  80.         }
  81. }

  82. void InterruptTime0() interrupt 1//定時(shí)中斷
  83. {
  84.         TH0=0xFC;//重賦初始值
  85.         TL0=0x18;
  86.         if(flag)
  87.         {
  88.                 cnt++;//計(jì)數(shù)器加1
  89.                 if (cnt>=1000)//時(shí)間
  90.                 {
  91.                         cnt=0;//準(zhǔn)備下一秒記時(shí)
  92.                         sec--;
  93.                         if(sec==0)
  94.                         {
  95.                                 flag=0;//停止倒計(jì)時(shí)
  96.                                 B_flag=1;//允許蜂鳴器工作
  97.                         }
  98.                 }
  99.         }
  100.         P0=0xFF;//熄滅,P0高電平       
  101.         switch (i)
  102.         {
  103.                 case 0:DGT3=0;DGT2=0;DGT1=0;DGT0=1;i++;P0=LedBuff[0];break;//個(gè)位
  104.                 case 1:DGT3=0;DGT2=0;DGT1=1;DGT0=0;i++;P0=LedBuff[1];break;//十位
  105.                 case 2:DGT3=0;DGT2=1;DGT1=0;DGT0=0;i++;P0=LedBuff[2];break;//百位
  106.                 case 3:DGT3=1;DGT2=0;DGT1=0;DGT0=0;i=0;P0=LedBuff[3];break;//千位
  107.         }
  108. }
復(fù)制代碼



回復(fù)

使用道具 舉報(bào)

ID:993066 發(fā)表于 2021-12-17 22:14 | 顯示全部樓層
你這就給一塊錢,你太瞧不起人了,要不你就不給,要不你就多給點(diǎn)嘛。
回復(fù)

使用道具 舉報(bào)

ID:993066 發(fā)表于 2021-12-17 22:15 | 顯示全部樓層
我這可以給你一點(diǎn)建議,可以用case語句寫
回復(fù)

使用道具 舉報(bào)

ID:992665 發(fā)表于 2021-12-20 18:16 | 顯示全部樓層
akesking 發(fā)表于 2021-12-17 22:14
你這就給一塊錢,你太瞧不起人了,要不你就不給,要不你就多給點(diǎn)嘛。

十塊的有,你幫到我,就ok
回復(fù)

使用道具 舉報(bào)

ID:824490 發(fā)表于 2021-12-20 18:48 | 顯示全部樓層
akesking 發(fā)表于 2021-12-17 22:14
你這就給一塊錢,你太瞧不起人了,要不你就不給,要不你就多給點(diǎn)嘛。

然而,1HB,并不值1RMB!
回復(fù)

使用道具 舉報(bào)

ID:824490 發(fā)表于 2021-12-20 18:56 | 顯示全部樓層
倒計(jì)為0時(shí)蜂鳴器響 ?
1、以什么頻率響?
2、響時(shí)要不要顯示閃爍?
3、響多久?或者以什么方式停響?
4、響的過程中是否允許關(guān)閉響?
5、響完了是重新開始計(jì)時(shí),還是就停在那邊?
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 日本成人在线播放 | 国产精品久久久久久久粉嫩 | 涩爱av一区二区三区 | 亚洲一区在线观看视频 | 在线观看中文字幕视频 | 成人中文网 | 精品久久国产 | 天堂成人av | 欧美成人免费在线视频 | 久久伊人精品 | 成人免费视频网站在线观看 | 久久久久久久久久久久91 | av黄在线观看 | 国产在线视频一区二区董小宛性色 | 亚洲综合伊人 | 国产精品福利视频 | 黄色在线免费观看视频网站 | avav在线看 | 国产精品日产欧美久久久久 | 久久久精品亚洲 | 亚洲人成人一区二区在线观看 | 91精品国产91久久综合桃花 | 精品国产乱码久久久久久闺蜜 | 三级欧美 | 日日摸日日碰夜夜爽2015电影 | 69电影网 | 亚洲欧美精品一区 | 欧美日韩在线精品 | 毛片入口 | 免费成人高清在线视频 | 欧美精品成人 | 色桃网 | 久久综合色综合 | 亚洲中午字幕 | 91免费在线视频 | 成人影院网站ww555久久精品 | 精品久久久久久久久久久久久久 | 一级欧美日韩 | 2023亚洲天堂 | 夜夜爽夜夜操 | 涩涩视频大全 |