基於51單片機的電子音樂盒的課程設計

2020-12-16 電子工程世界網

1.設計目的和要求1.1 設計目的

(1) 通過設計,查閱相關資料,掌握如何利用單片機設計產品,同時了解與單片機有關的軟體模擬器的使用及取字模塊軟體的使用方法。

(2) 通過本課程設計鞏固並擴展單片機課程的基本概念、基本理論、分析方法和實現方法。結合Proteus和Keil軟體等,學習單片機產品的設計方法,有效地將理論和實際緊密結合,培養創新思維和設計能力,增強軟體編程實現能力和解決實際問題的能力。

(3) 學習Proteus軟體,掌握Proteus中各種晶片的功能以及模擬。由於Proteus提供了實驗室無法相比的大量的元器件庫,提供了修改電路設計的靈活性、提供了實驗室在數量、質量上難以相比的虛擬儀器、儀表,因而也提供了培養實踐精神、創造精神的平臺。


1.2 設計要求

(1) 利用I/O口產生一定頻率的方波,驅動蜂鳴器,發出不同的音調,從而演樂曲(內存四首樂曲);

(2) 用LCD顯示歌曲序號和歌曲名字;

(3) 可通過功能鍵進行選擇歌曲和暫停的操作。

2.硬體電路設計2.1總體方案設計

圖1 總體方案圖

以AT89C51為核心,通過單片機的定時器產生一定長度的方波,方波脈衝驅動蜂鳴器發聲。要產生音頻脈衝,只需算出某一音頻的周期(1/音頻),然後取半周期的時間定時。利用定時器計時這個半周期時間,每當計時到後就將輸出脈衝的I/O反相,然後重複計時此半周期時間再對I/O口反相,就可在I/O腳上得到此頻率的脈衝。當鍵盤有鍵按下時,判斷鍵值,啟動計數器T0,產生一定頻率的脈衝,驅動蜂鳴器,放出樂曲。同時在LCD顯示歌曲序號和歌曲名稱。


2.2器件選擇

2.2.1  單片機的選擇

單片機型號的選擇是根據控制系統的目標、功能、可靠性、性價比、精度和速度等來決定的。根據本課題的實際情況,單片機型號的選擇主要從以下兩點考慮;一是要有較強的抗幹擾能力。二是要有較高的性價比。由於51系列在我國使用最廣,且該系列的資料和能夠兼容的外圍晶片也比較多,特別是ATMEL公司89C系列單片機,其典型產品AT89C51單片機,具有較高的性能價格比。故本系統採用ATMEL公司生產的AT89C51單片機作為電子音樂盒的核心部件,AT89C51是美國ATMEL公司生產的低電壓,高性能CMOS8位單片機,片內含4k bytes的可反覆擦寫的只讀程序存儲器(PEROM)和128 bytes的隨機存取數據存儲器(RAM),器件採用ATMEL公司的高密度、非易失性存儲技術生產,兼容標準MCS-51指令系統,片內置通用8位中央處理器(CPU)和Flash存儲單元,功能強大AT89C51單片機可提供許多高性價比的應用場合,可靈活應用於各種控制領域。


2.2.2 LCD1602簡介

LCD液晶顯示的原理是利用液晶的物理特性,通過電壓對其顯示區域進行控制,有電就有顯示,這樣即可以顯示出圖形。液晶顯示器具有厚度薄、適用於大規模集成電路直接驅動、易於實現全彩色顯示的特點,目前已經被廣泛應用在可攜式電腦、數字攝像機、PDA移動通信工具等眾多領域。


字符型液晶顯示模塊是一種專門用於顯示字母、數字、符號等點陣式LCD,目前常用16×1,16×2,20×2和40×2行等的模塊。LCD1602分為帶背光和不帶背光兩種,基控制器大部分為HD44780,帶背光的比不帶背光的厚,是否帶背光在應用中並無差別,兩者尺寸差別如下圖2所示:

圖2 LCD尺寸圖

1602LCD主要技術參數:

顯示容量:16×2個字符;

晶片工作電壓:4.5—5.5V;

工作電流:2.0mA(5.0V);

模塊最佳工作電壓:5.0V;

字符尺寸:2.95×4.35(W×H)mm。

引腳功能說明

LCD1602採用標準的14腳(無背光)或16腳(帶背光)接口,各引腳接口說明如表1所示。

表1 引腳接口說明表

編號

符號

引腳說明

編號

符號

引腳說明

1

VSS

電源地

9

D2

數據

2

VDD

電源正極

10

D3

數據

3

VL

液晶顯示偏壓

11

D4

數據

4

RS

數據/命令選擇

12

D5

數據

5

R/W

讀/寫選擇

13

D6

數據

6

E

使能信號

14

D7

數據

7

D0

數據

15

BLA

背光源正極

8

D1

數據

16

BLK

背光源負極

第1腳:VSS為地電源。

第2腳:VDD接5V正電源。

第3腳:VL為液晶顯示器對比度調整端,接正電源時對比度最弱,接地時對比度最高,對比度過高時會產生「鬼影」,使用時可以通過一個10K的電位器調整對比度。

第4腳:RS為寄存器選擇,高電平時選擇數據寄存器、低電平時選擇指令寄存器。

第5腳:R/W為讀寫信號線,高電平時進行讀操作,低電平時進行寫操作。當RS和R/W共同為低電平時可以寫入指令或者顯示地址,當RS為低電平R/W為高電平時可以讀忙信號,當RS為高電平R/W為低電平時可以寫入數據。

第6腳:E端為使能端,當E端由高電平跳變成低電平時,液晶模塊執行命令。

第7~14腳:D0~D7為8位雙向數據線。

第15腳:背光源正極。

第16腳:背光源負極。

1602液晶模塊內部的控制器共有11條控制指令,如表2所示:

表2 控制命令表

序號

指令

RS

R/W

D7

D6

D5

D4

D3

D2

D1

D0

1

清顯示

0

0

0

0

0

0

0

0

0

1

2

光標返回

0

0

0

0

0

0

0

0

1

*

3

置輸入模式

0

0

0

0

0

0

0

1

I/D

S

4

顯示開/關控制

0

0

0

0

0

0

1

D

C

B

5

光標或字符移位

0

0

0

0

0

1

S/C

R/L

*

*

6

置功能

0

0

0

0

1

DL

N

F

*

*

7

置字符發生存貯器地址

0

0

0

1

字符發生存貯器地址

8

置數據存貯器地址

0

0

1

顯示數據存貯器地址

9

讀忙標誌或地址

0

1

BF

計數器地址

10

寫數到CGRAM或DDRAM)

1

0

要寫的數據內容

11

從CGRAM或DDRAM讀數

1

1

讀出的數據內容

1602液晶模塊的讀寫操作、屏幕和光標的操作都是通過指令編程來實現的。(說明:1為高電平、0為低電平)

指令1:清顯示,指令碼01H,光標復位到地址00H位置。

指令2:光標復位,光標返回到地址00H。

指令3:光標和顯示模式設置 I/D:光標移動方向,高電平右移,低電平左移 S:屏幕上所有文字是否左移或者右移。高電平表示有效,低電平則無效。

指令4:顯示開關控制。 D:控制整體顯示的開與關,高電平表示開顯示,低電平表示關顯示 C:控制光標的開與關,高電平表示有光標,低電平表示無光標 B:控制光標是否閃爍,高電平閃爍,低電平不閃爍。

指令5:光標或顯示移位 S/C:高電平時移動顯示的文字,低電平時移動光標。

指令6:功能設置命令 DL:高電平時為4位總線,低電平時為8位總線 N:低電平時為單行顯示,高電平時雙行顯示 F: 低電平時顯示5x7的點陣字符,高電平時顯示5x10的點陣字符。

指令7:字符發生器RAM地址設置。

指令8:DDRAM地址設置。

指令9:讀忙信號和光標地址 BF:為忙標誌位,高電平表示忙,此時模塊不能接收命令或者數據,如果為低電平表示不忙。

指令10:寫數據。

指令11:讀數據。

與HD44780相兼容的晶片時序表如下:

表 3 晶片時序圖

讀狀態

輸入

RS=L,R/W=H,E=H

輸出

D0—D7=狀態字

寫指令

輸入

RS=L,R/W=L,D0—D7=指令碼,E=高脈衝

輸出

讀數據

輸入

RS=H,R/W=H,E=H

輸出

D0—D7=數據

寫數據

輸入

RS=H,R/W=L,D0—D7=數據,E=高脈衝

輸出

2.3  單元電路設計2.3.1晶振電路

單片機需要一個時間基準來為各種操作提供秩序,此電路叫時鐘電路,採用不同的接線方式可以獲得不同時鐘電路,有內部時鐘電路和外部時鐘電路,如圖4.3所示,外部時鐘電路會使電路複雜,故採用的是內部時鐘電路。時鐘電路在單片機的外部通過XTAL1,XTAL2這兩個引腳跨接晶體振蕩器和微調電容,構成穩定的自激振蕩器.本系統採用的為12MHz的晶振,一個機器周期為1us,C1,C2為30uF。


2.3.2復位電路

復位電路的基本功能是:系統上電時提供復位信號,直至系統電源穩定後,撤銷復位信號。為可靠起見,電源穩定後還要經一定的延時才撤銷復位信號,以防電源開關或電源插頭分-合過程中引起的抖動而影響復位。

復位電路分為上電自動復位和按鍵手動復位,如圖3所示。RST引腳是復位信號的輸入端,復位信號是高電平有效.這次採用的是手動復位,復位通過電容C3,C4和電阻R1,R2來實現,按鍵手動復位是圖中復位鍵來實現的。

圖 3 晶振與復位電路

2.3.3  鍵盤部分

鍵盤是由一組按壓式或觸摸式開關構成的陣列,是一種常用的輸入設備。鍵盤可分為編碼式鍵盤和非編碼式鍵盤兩種。


1.編碼鍵盤通過硬體電路產生被按按鍵的鍵碼,這種鍵盤所需程序簡單,但硬體電路複雜、價格昂貴通常不被單片機系統採用。

2.非編碼鍵盤常用一些按鍵排列成行列矩陣,其硬體邏輯與按鍵編碼不存在嚴格的對應關係,而要由所用的程序來決定。非編碼鍵盤的硬體接口簡單,但是要佔用較多的CPU時間,通常採用可編程鍵盤管理晶片來克服這個缺點。本設計使用兩種按鍵,一種是按鍵式非編碼鍵盤和輕觸式非編碼開關。

圖 4 鍵盤電路


2.3.4  LCD顯示電路

LCD的8根數據線與P1口相連,RS為寄存器選擇,高電平時選擇數據寄存器、低電平時選擇指令寄存器。R/W為讀寫信號線,RS與P2.0相連,由P2.0控制LCD的寫指令或寫數據操作。R/W與P2.1相連,由P2.1決定是讀操作還是寫操作。E端為使能端,當E端由高電平跳變成低電平時,液晶模塊執行命令。E端與P2.2相連。

圖5 LCD顯示電路


2.3.5  蜂鳴器部分

一般所指的蜂鳴器是以壓電陶瓷為主要元件的。壓電陶瓷是一類有將壓力與電流相互轉換能力的特殊陶瓷。這種能力緣於其特殊的晶體結構。當壓電陶瓷在一定方向上受到一個壓力使其晶體結構發生形變時,它就會在內部產生一個

[

1

] [

2

]

關鍵字:51單片機  電子音樂盒  定時器 編輯:什麼魚 引用地址:http://news.eeworld.com.cn/mcu/ic481480.html

推薦閱讀

51單片機霍爾自行車碼錶測速裡程表

#include <reg52.h>                 //調用單片機頭文件#define uchar unsigned char  //無符號字符型 宏定義        變量範圍0~255#define uint  unsigned int         //無符號整型 宏定義        變量範圍0~65535sbit clk = P1^3;&nbsp

發表於 2020-12-03

STC51單片機流水燈+外部中斷蜂鳴器

閒暇之餘做了一個簡單的流水燈,設計思路先將LED燈從0-7逐個顯示,然後再從7-0逐個顯示。如果產生外部中斷(即按鈕按下),則8個LED燈全亮,之後又恢復流水燈狀態。#include <reg52.h>#include <intrins.h>#define uchar unsigned char#define uint unsigned intsbit K=P3^2;//啟動按鈕,外部中斷uchar led;void delay(uint x)               {       

發表於 2020-12-03

51單片機8*8LED點陣翻頁 閃爍 靜止 平移顯示

基於單片機的LED點陣設計基本要求:利用單片機AT89C51設計LED點陣,顯示器能顯示不同的字符、圖形,能夠用獨立鍵控制不同字符的切換效果。創新:顯示效果可以是閃爍;靜止;平移等。任務區分:A——每隔1s閃爍1次B——循環平移,速度自定.單片機源程序如下:#include <reg52.h>sbit ADDR0 = P1^0;sbit ADDR1 = P1^1;sbit ADDR2 = P1^2;sbit ADDR3 = P1^3;sbit KEY   = P3^5;unsigned int cnt,m,stage,sec=1000;unsigned char code image

發表於 2020-12-03

8位數模轉換器DAC0832介紹及51單片機驅動程序

為(+10~-10)V。VREF端與D/A內部T形電阻網絡相連。(6)、Vcc :晶片供電電壓,範圍為(+5~ 15)V。(7)、AGND :模擬量地,即模擬電路接地端。(8)、DGND :數字量地。下面是單片機驅動程序:#include <reg51.h>#include <intrins.h>#define uchar unsigned char#define uint unsigned intsbit CS = P1^0;sbit CLK = P1^1;sbit DI = P1^2;sbit DO = P1^2;uchar code Tab[]={0x3F,0x06

發表於 2020-12-01

C51單片機全自動洗衣

源程序:#include<reg51.h>                                  //定義頭文件#define uint unsigned int                  //定義字符uint#define uchar unsigned char          &nbsp

發表於 2020-12-01

51單片機LCD12864顯示屏圖片中文英文顯示

顯示結果:圖片及字體取模單片機源程序如下:#include<reg51.h>#include<intrins.h>#include<stdlib.h>#define uchar unsigned char#define uint unsigned int//定義埠sbit A0=P2^0;  //定義埠是傳輸命令還是數據,sbit RW=P2^1;//定義埠是讀取還是寫入,sbit LCDEN=P2^2;//晶片使能啟動sbit RST=P2^3;//復位鍵uchar code dis1[]={/*--  文字:  我  --*//*--&nbsp

發表於 2020-12-01

相關焦點

  • 基於51單片機定時器的電子時鐘設計方案
    今天我們將會為大家分享一種比較基礎的電子時鐘設計方案,該方案基於51單片機定時器進行設計,精度較高,時鐘鬧鐘調節簡單。本文引用地址:http://www.eepw.com.cn/article/201808/387025.htm在本方案中,我們所設計的這種電子時鐘主要由51單片機定時器、1602LCD液晶屏等構成。在電路設計方面,該方案主要採用晶振電路作為驅動電路,晶振電路的晶振頻率為12MHZ。
  • 基於C語言51單片機電子密碼鎖的設計與仿真
    它克服了機械式密碼鎖密碼量少、安全性能差的缺點,尤其是的智能電子密碼鎖;不僅具有電子密碼鎖的功能」還可引人智能化管理功能,從而使密碼鎖具有更離的安全性和可靠性。  電子密碼鎖通常使用ARM和單片機控制,單片機相對ARM實現較為簡單,功能較為完善,因此使用單片機控制較多。用單片機控制的窖碼鎖常使用彙編語言編寫程序,顯示器多數用。
  • 《電子發燒友網51單片機設計方案TOP10》
    【詳情請參閱:基於51單片機的智能壓力傳感器設計】     基於MCS-51單片機的實時在線環境監測系統   1 引言   基於GPRS和MCS-51單片機的數據採集器是一種實時在線
  • 基於51單片機的遠程智能開關|文末贈書
    基於51單片機的遠程智能開關由4部分構成:基於51單片機的開關控制終端、網絡代理端、伺服器和遠程控制設備。網絡轉發、伺服器、遠程下發指令端等內容不在本文展開討論,本文著重講解基於51單片機的開關控制終端(下文簡稱「智能終端」)的硬體、軟體技術。
  • 51單片機輕鬆入門與實踐 — 暢學單片機
    在多角度、多方面的實例化講解中,讀者不僅掌握了單片機系統開發的基本技能,還開闊了單片機流行應用的視野。因此本課程適合所有51單片機應用開發人員,電子愛好者、大中院校相關專業學生、工程技術人員的學習課程,也可作為短期培訓課程,是單片機愛好者從入門到深入的經典課程。
  • 暢學三合一51單片機實戰教程
    ,講解當前最熱門的51單片機的C程序設計!      在多角度、多方面的實例化講解中,讀者不僅掌握了單片機系統開發的基本技能,還開闊了單片機流行應用的視野。因此本課程適合所有51單片機應用開發人員,電子愛好者、大中院校相關專業學生、工程技術人員的學習課程,也可作為短期培訓課程,是單片機愛好者從入門到深入的經典課程。
  • 基於MSP430單片機編程器的設計
    本文提出一種採用MSP430F149單片機作為CPU控制核心的編程器。與51單片機編程器相比,MSP430單片機編程器增加了I2C存儲模塊,可無需電腦利用該編程器對晶片進行燒錄,使燒錄過程更方便、快捷。
  • 單片機畢設(課設)題目匯總
    基於單片機的八路搶答器設計24. 基於單片機的超聲波測距系統的設計25. 基於 MCS-51數字溫度表的設計26. 電子體溫計的設計27. 基於 AT89C51的電話遠程控制系統28. 基於 AVR單片機幅度可調的 DDS信號發生器29. 基於單片機的數控穩壓電源的設計30.
  • 基於AT89C51單片機的十進位計算器系統設計
    基於AT89C51單片機的十進位計算器系統設計
  • 中國礦業大學電子協會舉辦51單片機培訓會
    培訓會現場為使同學們初步認識單片機,將之前學習的C語言編程知識應用到實際中,同時增強學生的自主學習意識,11月23日晚,電子協會於信控樓A407舉辦了51單片機培訓會。本次培訓由電子協會主席林澤南、實踐部部長崔忠仁、維修部副部長王浩主持。林澤南講解了單片機的結構組成、STC89C52RC單片機結構特點及原理,並重點講解了段選、位選、中斷等專業名詞的概念和數碼管的結構。崔鍾仁將之前培訓的C語言知識與51單片機相結合講解了基於Keil-C51環境的單片機在實際中的基本應用。
  • 基於51單片機modbusRTU從機設計
    本文引用地址:http://www.eepw.com.cn/article/201611/318646.htmmodbus協議被設計出來是針對PLC應用的,這裡我們可以簡單的模擬PLC環境,可以在單片機裡面設計一塊共享區,該區域是上位機和下位機共享的,均可以讀取或寫入該區域的值,所有的modbus協議都是針對該快區域的操作,下位機也是根據這塊區域的值做相應的操作
  • 基於51單片機的電話留言機設計
    電話留言機的設計與開發主要經歷了可行性分析、系統設計與系統調試三個階段。 1.5.2 系統設計 為了提出正確的設計方案,首先要對電話機內部電路作詳細的分析與電話機的連接接口,為整個方案奠定良好的基礎。
  • 電子類-單片機類畢業設計論文創新選題
    的自動泡茶機設計基於STM32的智能快遞空箱基於單片機的刷卡小車設計智能電錶系統中IC卡電費預存模塊的設計與實現基於STC89C52的指紋解鎖系統設計基於STC15單片機的射頻門禁系統的設計>基於89C51與MK60控制器的智能交通系統基於OpenCV的非接觸式測距系統基於單片機的紅外遙控電子密碼鎖設計基於MATLAB的車牌識別系統設計基於STC89C52的智能無線小車
  • 基於單片機設計的音樂馬桶
    畢業設計前的最後一項課程設計,班上同學每人一個題目。我的:音樂馬桶。這次程序倒是不難,也才用了51單片機的兩個I/O口,不過方案思路卻是推倒老師自立的。假如以後回看有什麼問題,加以反思。
  • 51單片機教程
    小到電話,玩具,手機,各類刷卡機,電腦鍵盤,彩電,冰箱,空調,電磁爐,大到汽車,工業自動控制,機器人,飛彈導航裝置,你可以用51單片機用它來做個鬧鐘,電飯煲定時控制器,電子門鎖,IC卡讀取識別器。電飯煲定時控制器如圖本文引用地址:http://www.eepw.com.cn/article/272993.htm
  • 基於單片機的ADC0809數字電壓表設計報告(彙編語言)
    本文重點介紹單片A/D 轉換器以及由它們構成的基於單片機的數字電壓表的工作原理。目前,由各種單片A/D 轉換器構成的數字電壓表,已被廣泛用於電子及電工測量、工業自動化儀表、自動測試系統等智能化測量領域,示出強大的生命力理。目前,數字電壓表的內部核心部件是A/D轉換器,轉換的精度很大程度上影響著數字電壓表的準確度,因而,以後數字電壓表的發展就著眼在高精度和低成本這兩個方面。
  • 基於單片機的多功能搶答器設計
    編者按:設計了一種以單片機AT89C51為核心的四路搶答器,從硬體和軟體兩方面詳細介紹了搶答器的設計方法,結合Proteus軟體的仿真結果,根據電路圖焊接實物,軟體仿真及硬體調試結果表明,該搶答器的設計實現了預期的目標。
  • 下載 | 《手把手教你學51單片機-C語言版》
    編輯推薦《手把手教你學51單片機(C語言版)》的創作,目的就是改變當前「51單片機」教學與自學的模式:國內首創「手把手教你學」——集理論知識、視頻教程可以預見,《手把手教你學51單片機(C語言版)》將引領一場單片機教學的革命!作者簡介宋雪松 ,國內知名單片機培訓專家,嵌入式產品技術顧問。擁有近十年產品研發經驗,曾主持研發通信類、虛擬儀器等多款產品,在硬體電路設計和嵌入式軟體設計方向有豐富的項目實戰經驗。
  • 基於C語言STC89C52單片機電子密碼鎖的設計與仿真
    關鍵詞:Protues;密碼鎖;單片機;C語言O 引言 電子密碼鎖是現代生活中常用的加密工具。它克服了機械式密碼鎖密碼量少、安全性能差的缺點,尤其是微控制器的智能電子密碼鎖,不僅具有電子密碼鎖的功能,還可引入智能化管理功能,從而使密碼鎖具有更高的安全性和可靠性。
  • 基於單片機旋轉時鐘的設計
    摘要:目前,社會、家庭普遍使用的是機械錶盤時鐘,而一款打破傳統的電子旋轉時鐘如果推出就能夠以其新穎的創意來吸引人們,於是文章就研究並設計了一個基於單片機的電子旋轉時鐘。而一款旋轉時鐘不僅在創意上擺脫了傳統時鐘的設計而且也能迎合人們獵奇的心理,並且功能也可以多樣化,不僅可以顯示時間、日期,甚至連文字都能夠顯示。文章基於單片機設計了一款跟傳統機械時鐘一樣具有秒針、分針、時針和錶盤刻度的旋轉時鐘,並且具有準確顯示即時時間和校準時間功能,且均可由紅外遙控器方便完成。