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

標題: 求51單片機蜂鳴器和流水燈同時工作的程序。 [打印本頁]

作者: 天成問道    時間: 2015-6-11 13:56
標題: 求51單片機蜂鳴器和流水燈同時工作的程序。
求51單片機蜂鳴器和流水燈同時工作的程序。
作者: 木木de    時間: 2015-6-11 17:19
原理圖都沒有 讓別人怎么給你程序
思路:
看你的是有源蜂鳴器還是無源的。假設是無源的
1.蜂鳴器導通幾個到幾十個毫秒,再關斷  再導通  再關斷 輪流運行  寫個函數  叫BEEP()
2.流水燈   依次點亮單個LED  LED1ON() delay()  LED2ON()  delay()  LED3ON()  delay()............
函數叫 flow_led()
3.蜂鳴器和LED同時工作  在while(1)里面調用 上面的兩個函數  BEEP()  和flow_led()




就行啦
作者: yanse51    時間: 2015-6-11 21:48
工作的時候,調用蜂鳴器程序后,再調用點燈即可
作者: wszzj3339818    時間: 2015-6-12 10:04
這類很簡單的吧,一般單片機的書上都會有類似程序的
作者: 喀喇昆侖的鷹    時間: 2015-6-23 15:21
同          問
作者: yanjibao    時間: 2015-6-24 08:49
蜂鳴器,就是某個io口的持續震蕩。流水燈就是秒級延時以后的io電平變化。要這樣的程序,必須明確單片機型號,以及晶振頻率,否則有快有慢效果不一定好
作者: yanjibao    時間: 2015-6-24 08:50
本帖最后由 yanjibao 于 2015-6-24 08:58 編輯

這個用定時器好一些,定時125us,定時器函數直接翻轉io蜂鳴器就會響。累計80次就是10毫秒,在累計100次就是一秒鐘了
作者: liuxianbin2015    時間: 2015-6-27 10:47
同問,樓主知道了要告訴我
作者: jasone    時間: 2015-6-27 13:36
同時工作其實也有個先后順序的
作者: yanjibao    時間: 2015-6-27 18:09
liuxianbin2015 發表于 2015-6-27 10:47
同問,樓主知道了要告訴我

同問的還有嗎,要不要我發布一個。就定在今天晚上吧
作者: 無名小卒007    時間: 2015-6-27 18:27
分別寫蜂鳴器和流水燈的程序,然后在while(1)里調用。。。。
作者: 深瀾潛    時間: 2016-3-25 12:31
yanjibao 發表于 2015-6-27 18:09
同問的還有嗎,要不要我發布一個。就定在今天晚上吧

同求😊
作者: 深瀾潛    時間: 2016-3-25 12:32
yanjibao 發表于 2015-6-27 18:09
同問的還有嗎,要不要我發布一個。就定在今天晚上吧

同求,^O^

作者: luoluoluo136    時間: 2016-3-25 14:20
我覺得用定時器最好~~~
作者: npn    時間: 2016-7-7 12:04
控制特殊功能寄存器讓某IO口輸出指定頻率,再通過定時器中斷控制頻率持續時間,中斷外添加流水燈程序,要求中斷外延遲程序精度高的不得使用此方法。
作者: sy1998    時間: 2016-7-7 15:44
原理圖都沒有 讓別人怎么給你程序 思路: 看你的是有源蜂鳴器還是無源的。假設是無源的 1.蜂鳴器導通幾個到幾十個毫秒,再關斷  再導通  再關斷 輪流運行  寫個函數  叫BEEP() 2.流水燈   依次點亮單個LED  LED1ON() delay()  LED2ON()  delay()  LED3ON()  delay()............ 函數叫 flow_led() 3.蜂鳴器和LED同時工作  在while(1)里面調用 上面的兩個函數  BEEP()  和flow_led()
作者: zl2168    時間: 2016-7-7 21:37
先安排流水燈工作,在某個燈亮延時時讓蜂鳴器工作。
作者: distance1502    時間: 2016-7-10 10:00
自己研究吧,多看看大神們的資料
作者: zl2168    時間: 2016-7-10 22:30
distance1502 發表于 2016-7-10 10:00
自己研究吧,多看看大神們的資料

非常有道理。
作者: lxa0    時間: 2017-8-2 19:01
樓主問的這個問題不簡單
這2天我正好在試驗把發聲和點led合并在一起
也就是一邊叫單片機唱“生日快樂”
同時叫單片機點亮一個led拼湊的心形圖案
發現2個子程序的調用會有沖突
相互之間有bug
正在排除中。。。。。
作者: wulin    時間: 2017-8-3 06:50
無源蜂鳴器和流水燈同時工作的程序,你自己按實際電路更改設置I/O口
#include <AT89X52.H>                         //單片機頭文件
#include <intrins.h>
#define uint unsigned int                 //宏定義變量uint為無符號整型數據(0-65535)
#define uchar unsigned char         //宏定義變量uchar為無符號字符型數據(0-255)
sbit Buzzer=P2^3;                                //蜂鳴器端口定義
bit Buzzer_sign=0;                                //蜂鳴器使能標志位
uint Cnt200us=0;                                //中斷計數
void xianshi();                                        //顯示子程序聲明
void Timer0Init();                                //定時器初始化聲明

void main()
{
        Buzzer=1;                                        //蜂鳴器端口初始化
        Timer0Init();                                //定時器初始化
        P1=0xfe;                                        //LED端口初始化
        while(1)
        {
                xianshi();                                //顯示子程序
        }
}

void xianshi()                                        //顯示子程序
{
        if(Cnt200us>=5000)                        //1秒
        {
                Cnt200us=0;
                P1=_crol_(P1,1);                //循環移位
                Buzzer_sign=1;                        //蜂鳴器使能標志置1
        }
}
void Timer0Init()                                //200微秒@11.0592MHz
{
        TMOD = 0x02;                                //設置定時器8位自動重載模式
        TL0  = 0x48;                                //設置定時初值
        TH0  = 0x48;                                //設置定時重載值
        TF0  = 0;                                        //清除TF0標志
        TR0  = 1;                                        //定時器0開始計時
        EA=1;                                                //開總中斷
        ET0=1;                                                //開定時器0中斷       
}
void timer0() interrupt        1                //中斷服務程序
{
        static uint count;
        Cnt200us++;
        if(Buzzer_sign==1)                        //如果蜂鳴器使能標志1
        {
                count++;                                //定時器中斷變量自+1
                Buzzer=~Buzzer;                        //蜂鳴器端口取反
                if(count>=1000)                        //持續鳴0.2秒
                {
                        count=0;                        //計數清0       
                        Buzzer_sign=0;                //蜂鳴器使能標志清0                               
                        Buzzer=1;                        //蜂鳴器端口清0
                }
        }
}
作者: CZP1234    時間: 2017-8-3 09:40
用定時器,如果需要的話,可以加我QQ 3110312640
作者: 淡然若夢    時間: 2017-8-5 11:17
蜂鳴器的節奏是啥啊?只是響就行了?
作者: Baby_a    時間: 2017-8-5 12:29
先寫好一個蜂鳴器的子程序,然后在寫LED點亮程序后面的同時調用蜂鳴器子程序即可。
作者: wkblack    時間: 2017-8-7 23:03
意思是亮一個燈,蜂鳴器響同樣的時間?
作者: wangxianshen642    時間: 2018-2-8 20:59
#include"reg51.h"  #include"intrins.h"  #include"stdio.h"  typedef unsigned char u8;  typedef unsigned int  u16;    #define led P2  sbit beep=P1^5;  void delay(u16 i)  {     while(i--); }    void main() {       int i;    led=0xfe;    delay(100000);    while(1)     {          for(i=0;i<7;i++)           {                 led=_crol_(led,1);            delay(100000);           }         }            led=0;     delay(50000);    while(1)    { beep=~beep;                 delay(10);   } }
作者: pmm    時間: 2018-2-28 16:22
可以在論壇里面找找應該有這方面的內容
作者: Hero.i    時間: 2018-2-28 17:41
如果蜂鳴器和流水燈使用的IO不同的話,可以分別寫出函數,再在主函數中調用即可,

作者: 372438dfs    時間: 2018-2-28 20:30
這個書上和網上有資料,只要把單獨的流水燈和蜂鳴器程序合并就行。




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 国产精品久久久久久妇女6080 | 国产久 | 欧美三级在线 | 欧美一区二区免费 | 99re国产视频 | 成人一区二区视频 | 欧美激情精品久久久久久 | 国产精品视频播放 | 日本在线网站 | 国产一区二区电影网 | 国产精品成人久久久久 | 成人看片在线观看 | 国产网站在线 | 亚洲区在线 | 涩爱av一区二区三区 | 日韩一区二区在线看 | 三区在线 | 成年人在线播放 | 国产福利在线播放麻豆 | 精品日韩 | 伊人久久综合 | 在线国产中文字幕 | 亚洲伊人久久综合 | 毛片大全 | 91传媒在线播放 | 天堂亚洲 | 日韩欧美一区二区在线播放 | 亚洲大片一区 | 一区二区三区四区免费观看 | 激情五月婷婷丁香 | 性生生活大片免费看视频 | 精品国产一区二区三区成人影院 | www.天天操.com | 亚洲成人一区二区 | 999久久久 | 在线一区 | 欧美日韩中文字幕在线 | 天天想天天干 | 日韩一级 | 超碰成人在线观看 | 国产精品人人做人人爽 |