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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5271|回復: 14
打印 上一主題 下一主題
收起左側

蜂鳴器要加在單片機程序的哪里?

  [復制鏈接]
跳轉到指定樓層
樓主
70黑幣
本帖最后由 1269210768 于 2020-6-26 20:59 編輯

當時鐘走到整點時,蜂鳴器鳴響一分鐘。按“E” 鍵,系統進入鬧鐘設定狀態,數碼管顯示屏不再顯示當前時間,而顯示鬧鐘設定值,最初為00.00.00AL,然后根據“B”“C”“D”鍵來設定鬧鐘的秒,分,時。設定完畢,再次按“E”鍵,系統回到時鐘走時狀態,繼續走時。其中AL代表鬧鐘狀態alarm,且在鬧鐘設定時,后臺的時鐘繼續走時。
當時鐘時間與鬧鐘時間一致時,蜂鳴器鳴響一分鐘。蜂鳴器播放音樂做鬧鐘鈴聲。



我的程序在下面,這個蜂鳴器的程序應該怎么編程,可以教一下我這個要怎么編輯嗎?謝謝
#include<regx51.h>
#define uchar unsigned char
#define uint unsigned int
#define TIME=1200
sbit K1=P1^0;
sbit K2=P1^1;
sbit K3=P1^2;
sbit K4=P1^3;
sbit K5=P1^4;
unsigned int cnt=0;
unsigned char i=0;
unsigned long sec=0;
unsigned char second = 0;
unsigned char minute = 0;
unsigned char hour = 0;
unsigned char code segment_code[10] = {0x3f, 0x06, 0x5b, 0x4f,0x66, 0x6d, 0x7d, 0x07,0x7f, 0x6f};
unsigned char digital_tube[8]={0x3f,0x3f,0x3f,0x3f,0x3f,0x39,0x38};
void ScanLed()
{
        static unsigned char display_bit = 0;
        switch (display_bit)
        {
        case 0:
                P2=0xfe;
                break;
        case 1:
                P2=0xfd;
                break;
        case 2:
                P2=0xfb;
                break;
        case 3:
                P2=0xf7;
                break;
        case 4:
                P2=0xef;
                break;
        case 5:
                P2=0xdf;
                break;
        case 6:
                P2=0xbf;
                break;
        case 7:
                P2=0x7f;
                break;
        default:
                break;
}
        P0=digital_tube[display_bit];
                display_bit++;
        if (display_bit == 8)
                display_bit = 0;
}
void main()
{
        TMOD = 0x01;
    TH0 = 64536 / 256;
    TL0 = 64536 % 256;
    EA = 1;
    ET0 = 1;
    TR0 = 1;
        while (1)
                ;
}
void delay(unsigned int xms)
{
        unsigned int i,j;
        for(i=xms;i>0;i--)
                for(j=100;j>0;j--);
}
void Timer0() interrupt 1
{
        static int index = 0;
        TH0 = 64536 / 256;
   TL0 = 64536 % 256;
        index++;
        ScanLed();
        if (index == 1000)
        {
                index = 0;
                second++;
        }
        if (second == 60)
        {
                second = 0;
                minute++;
        }
        if (minute == 60)
        {
                minute = 0;
                hour++;
        }
        if (hour == 24)
        {
                hour = 0;
        }
        if(K4==0)
    {
  delay(10);
   if(K4==0)
{
hour++;
if(hour==24)        hour=0;
}
  while(!K4);
}
if(K3==0)
   {
  delay(10);
  if(K3==0)
{
  minute++;
  if(minute==60)        minute=0;
   }
while(!K3);
  }
if(K2==0)
{
delay(10);
if(K2==0)
   {
second++;
if(second==24)       second=0;
}
while(!K2);
}
if(K1==0)
     {
delay(10);
if(K1==0)
      {
hour=0;
minute=0;
second=0;
}
while(!K1);
}
digital_tube[0] = segment_code[hour / 10];
digital_tube[1] = segment_code[hour % 10]+0x80;
digital_tube[2] = segment_code[minute / 10];
digital_tube[3] = segment_code[minute % 10]+0x80;
digital_tube[4] = segment_code[second / 10];
digital_tube[5] = segment_code[second % 10]+0x80;
digital_tube[6] = 0x39;
digital_tube[7] = 0x38;        
}

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

使用道具 舉報

沙發
ID:584814 發表于 2020-6-23 15:26 | 只看該作者
加在哪里都無所謂,只要鬧鐘程序觸發后能調用到就可以。
回復

使用道具 舉報

板凳
ID:665461 發表于 2020-6-25 04:04 | 只看該作者
按照程序的安排來看,這個不是必要的操作,所以加在哪都可以
回復

使用道具 舉報

地板
ID:452950 發表于 2020-6-25 12:43 | 只看該作者
要求是當時鐘時間與鬧鐘時間一致時,蜂鳴器鳴響一分鐘。
那就每秒比對一次時間,到點就控制蜂鳴器響60s就好了。
回復

使用道具 舉報

5#
ID:789451 發表于 2020-6-25 13:48 | 只看該作者
當蜂鳴器需要調用時可以響應就行,自己可以找個位置加上,仿真調試實驗一下!
回復

使用道具 舉報

6#
ID:750684 發表于 2020-9-7 08:28 | 只看該作者
按照程序的安排來看,這個不是必要的操作,所以加在哪都可以
回復

使用道具 舉報

7#
ID:311846 發表于 2020-9-7 09:47 | 只看該作者
你這個程序放在主循環即可,能觸發就行影響不大。養成良好的編程習慣,定時器盡量不要放代碼,盡量將執行程序放在主循環,
回復

使用道具 舉報

8#
ID:235954 發表于 2020-9-7 11:57 | 只看該作者
制作函數模塊,用的時候可以調用
回復

使用道具 舉報

9#
ID:816586 發表于 2020-9-7 13:31 | 只看該作者
制作蜂鳴器函數模塊,需要使用的時候可以直接調用就行了
回復

使用道具 舉報

10#
ID:420836 發表于 2020-9-8 08:33 | 只看該作者
它應該在調用它的main函數中。
回復

使用道具 舉報

11#
ID:348041 發表于 2020-9-9 08:13 | 只看該作者
建議嘗試采用時間片輪詢的方式寫整個程序的架構,可以讓你對單片機的運轉方式更加了解
回復

使用道具 舉報

12#
ID:807182 發表于 2020-9-16 15:25 | 只看該作者
蜂鳴器的代碼加到那都可以,看心情
回復

使用道具 舉報

13#
ID:820049 發表于 2020-9-17 09:18 | 只看該作者
如果是蜂鳴器檢測時間的程序的話可以放在小時計數之后。影響不大
回復

使用道具 舉報

14#
ID:820049 發表于 2020-9-17 09:20 | 只看該作者
放在主函數中小時計時的后面,我習慣這么做
回復

使用道具 舉報

15#
ID:582903 發表于 2020-9-17 10:55 | 只看該作者
在main里面加,到時相應位置1
回復

使用道具 舉報

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

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 91免费高清 | 久久久成人一区二区免费影院 | 精品1区2区3区4区 | 久久国产精品-国产精品 | www.中文字幕.com | 波波电影院一区二区三区 | 亚洲免费成人 | 天天爱av | 在线观看国产视频 | 四虎永久免费地址 | 日韩淫片免费看 | 国产精品亚洲一区 | 天堂精品 | 久久久视 | 国内精品视频一区二区三区 | 日本午夜网站 | 羞羞涩涩在线观看 | 国产精品久久国产精品久久 | 91国在线观看 | 这里只有精品99re | 国产在线精品一区二区三区 | 欧美福利一区 | 日本免费小视频 | 激情国产视频 | 激情久久av一区av二区av三区 | 亚洲最大av网站 | 天天操夜夜操 | 91精品国产91久久久久久最新 | 免费美女网站 | 91精品国产综合久久久久久 | 懂色一区二区三区免费观看 | 精品国产一区二区三区免费 | 亚洲一区中文字幕在线观看 | 欧美精品一区二区三区蜜桃视频 | 成人一级片在线观看 | 日本精品视频在线观看 | xnxx 日本免费 | 日韩欧美国产精品一区二区三区 | 日本视频一区二区三区 | 在线观看久草 | 免费中文字幕日韩欧美 |