下午所有的PIC和實施正確的端口,尋找嵌入式系統上的蜂鳴器
我目前鑽研全新的世界(我反正)和我在努力理解的東西。我已經四處尋找答案,但答案是如此驚人地明顯以至於它不是隱含地陳述,或者我問的是錯誤的問題。
問題是這樣的;我有一個QL200開發板,它有幾個與PIC16F877A(按鈕,LED,LCD屏幕和蜂鳴器)接口的組件。我真正苦苦掙扎的最後一個組成部分是蜂鳴器。
通過一些閱讀,我被引導相信,要使蜂鳴器發聲,我只需要設置它在高電平工作的引腳。但我不確定如何做到這一點。此外,我發現(通過運氣或指導)所有其他組件運行的端口,但我不知道如何分配端口。是通過分配一個端口還是將它們設置在某個端口上作爲標準?
例如,我的LCD面板被流失PORTD:
#define lcd PORTD
void writeCommand(unsigned char ch)
{
lcd = ch;
RS = 0;
RW =0;
E = 1;
lcdDelay();
E=0;
}
void Init_lcd(void)
{
ADCON1 = 0x07; //required setting of analog to digital
TRISD = 0x00;
TRISA1 = 0;
TRISA2 = 0;
TRISA3 = 0;
writeCommand(0x0f);
writeCommand(0x38); //set to two line mode
clearDisplay();
writeString("MAIN MENU");
}
那是從數據表?我簡單地被告知它是在PORTD上運行的,它運行起來。
但是現在它出現了蜂鳴器的轉向,我甚至難以啓動。幾個例子在線使用PORTB,但我已經使用按鍵上輸入PORTB:
#define TempButton1 RB1
#define TempButton2 RB2
#define TempButton3 RB3
最後一件事是,一旦我找到了蜂鳴器運行的端口,是提高它高一個簡單的事情讓蜂鳴器響起來?即:
//declarations
#define buzzer PORT(x)
//in a function somewhere
buzzer = 1; //hopefully buzzer should sound
很多我的研究表明,這種方式應該工作,但一些使用PMW和頻率來實現聲音。提前致謝!
幾乎可以肯定的是,您將不得不以兩倍的頻率切換輸出端口引腳,因爲這也被稱爲音頻和語音功能,所以只需啓用輸出即可。如果它與其他輸出共享一個端口,則在切換時必須保留其他輸出的狀態。在[本數據表](http://www.pic16.com/soft/QL200_user_a4_en.pdf)中的「蜂鳴器模塊」部分有* *「此模塊的示例包含在CD-ROM中。」* –
晚上好@WeatherVane,很高興再次見到你。從該數據表中可以看出,蜂鳴器通過RC2連接。向我表明它必須如此設置:#define buzzer RC2。我想看一下RC2的低頻和高頻,可以讓人聽到並報告回來。不幸的是,我無法訪問光盤,否則這可能爲我節省了很多困難。 – James
我看到提示中的連接端口是可選的,甚至可以配置。去研究提供的例子! **編輯:**哎呀,你不能。 –