久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

單片機課程設計

時間:2019-05-15 10:27:54下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關的《單片機課程設計》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《單片機課程設計》。

第一篇:單片機課程設計

《單片機技術》課程設計說明書

音樂盒

院、部:電氣與信息工程學院 學生姓名:劉亮 指導教師:凌云職稱講師 專業:電子信息工程 班級:電子1302班 學

號:1330340220 完成時間: 2016年1月11日

摘要

音樂盒起始于中世紀歐洲,當時為使教會的鐘塔報時,而將大小的鐘表上裝置機械設備,被稱為可發出聲音的組鐘。

本次的課題主要分為數碼管顯示模塊、供電模塊、按鍵模塊、發聲模塊、復位電路和AT89S52單片機。數碼管顯示模塊采用共陽極數碼管,通過P0口控制,實現歌曲序號的顯示;供電模塊采用+5V供電;按鍵通過P3口控制,實現歌曲播放順序的調換和暫停播放功能;揚聲器由P3.1口控制,實現歌曲播放。

主要的工作過程是通過按鍵控制下一首和上一首播放以及暫停和播放,同時有數碼管顯示當前正在播放的歌曲序號,揚聲器播放出音樂。

此次設計主要用到PROTEUS、KEIL編程和AD作圖軟件。用PROTEUS畫出原理圖,用KEIL編寫程序,將程序導入原理圖中進行仿真。最后用AD畫出PCB圖,打印圖紙進行腐蝕焊接。將程序下載到單片機中,利用I/O口產生方波,驅動揚聲器,發出音調,從而演奏樂曲。

關鍵詞:揚聲器;AT89S52單片機;I/0口

目 錄

背景意義、任務要求及設計原理、框圖··························1 1.1 背景意義···············································1 1.2 任務要求···············································1 1.3 設計原理···············································1 1.4 設計框圖···············································1 2 硬件系統····················································3 2.1 數碼管模塊··············································3 2.2 鍵盤模塊················································3 2.3 復位電路················································3 2.4 蜂鳴器模塊··············································4 3 軟件系統·····················································5 3.1 主程序介紹及流程圖······································5 3.2 各個模塊及功能介紹······································6 3.2.1 定時器模塊········································6 3.2.2 延時模塊··········································6 3.2.3 中斷模塊··········································7 3.2.4 數碼管顯示模塊 ···································9 4 電路仿真和程序檢測··········································10 5 實物制作及調試··············································11 結束語 ····························································12 參考文獻 ··························································13 致 謝· ···························································14 附 錄· ···························································15 背景意義、任務要求及設計原理、框圖

1.1 背景意義

音樂盒的起源是中世紀歐洲的教會用來鐘塔報時,后來,隨著工業的發展,逐漸的體積變小,功能變多,不過多數以機械音樂盒為主,這樣的音樂盒大部分體積較大音調單一,容易受到外界的影響,而且,代價昂貴。

此次設計的音樂盒,是基于單片機設計制作的電子音樂盒。與傳統的相比更加小巧,音質更優美而且可以演奏和弦音樂。單片機音樂盒的動力是+5V的電源,制作簡單,可以批量生產,控制功能強大,可以隨時的加減歌曲,使用更加的方便而且不易受到外界的影響而音質變壞,另外,可以根據需要,添加流水彩燈等外設更改外觀,使音樂盒的功能更加豐富。

1.2 任務要求

此次的設計要求為:設計一個具有特定功能的音樂盒,要求包含軟件和硬件兩大模塊,能夠通過按鍵來選擇曲目,切換曲目,顯示器來顯示曲目編號,能夠準確的播放曲目。

1.3 設計原理

本次的設計最主要的在于蜂鳴器的設計,想要蜂鳴器發出不同的音調,通過單片機的定時器產生一定長度的方波,方波脈沖驅動蜂鳴器發聲。要產生音頻脈沖,只需要算出某一音頻的周期,然后取半周期的時間定時。利用定時器計時這半個周期時間,每當計時到之后,就將輸出脈沖的I/O反向,然后在重復計時此周期時間再對I/O口反相,就可在I/O口得到此頻率的脈沖。如中音DO,頻率為523HZ,其周期T=1/523=1912微秒,因此只要令計數器定時1912/2=926。在每計數956次時將I/O口反相,就可以得到中音。

每當有鍵按下時,判斷鍵值,啟動計數器T0,產生一定頻率的脈沖,驅動蜂鳴器,放出曲目。數碼管采用共陽極數碼管,通過單片機P0口控制,實現曲目序號的顯示。功能鍵盤采用按鍵開關,通過P3口控制,實現曲目播放順序的調換和暫停播放功能,蜂鳴器由P3.1口控制,實現音樂播放。

1.4 設計框圖

單片機接+5V電源供電,晶振電路負責產生單片機所需要的時鐘信號,通過功能鍵產生外部中斷,控制音樂盒的上一曲和下一曲。在由I/O口輸出控制蜂鳴器發聲。另外可以用復位電路對程序初始化,在程序出錯時,重啟單片機。具體 的設計框圖如圖1所示。

圖1 總體設計框圖

編程設置好定時時間,通過編程器寫入AT89S52單片機系統中。由AT89S52單片機的定時器每秒通過P1口控制LED數碼管顯示,復位信號由按鍵輸入,沒按一次,系統恢復原始狀態。電源,晶振電路,單片機,功能鍵,和揚聲器部分具體介紹在后面有介紹。硬件系統

2.1 數碼管模塊

歌曲顯示部分用數碼管來顯示,LED顯示器件是通過發光二極管顯示字段的器件,該設計采用的是7段數碼管,原理是由P0口控制數碼管中的7端LED發光二極管,通過單片機給予P0口不同的數值來顯示不同的數字。數碼管分為共陽極和共陰極兩種,共陽極的數碼管,當管腳是低電平有效,而陰極的數碼管,是管腳高電平有效。這樣,單片機給予P0口的數值將會發生差異,也就是說,不同種類的數碼管,對應的ASCII碼就會不同。本次選用的是共陽極數碼管,其引腳如圖2所示。

圖2 數碼管引腳

2.2 鍵盤模塊

本次的鍵盤模塊采用按鍵開關這樣操作簡單,辨別容易的開關。用到4個按鍵開關,分別是復位按鍵,下一首按鍵,上一首按鍵,和暫停按鍵。上一首按鍵和下一首按鍵接單片機的外部中斷0,外部中斷1。暫停按鍵接定時器1,復位按鍵在復位電路中,接單片機RES。

2.3 復位電路

復位電路主要用于初始化程序,當單片機音樂盒發生死機時,用復位電路初始化程序來重啟單片機。兩個電容,兩個電阻和一個復位按鍵組成,當單片機死機時,按下按鍵,即可重啟,其電路原理圖如圖3所示。

圖3 復位電路原理圖

2.4 揚聲器模塊

揚聲器模塊最為重要,當單片機輸出脈沖經過揚聲器時,會是揚聲器發聲,不過因為設計中用到的元件較多,不能保證通過揚聲器的電流足夠大,所以要用三極管放大電路來放大電流,這樣才能讓揚聲器正常工作,具體的原理圖如圖4所示。

圖4 揚聲器原理圖 軟件系統

3.1 主程序介紹及流程圖

一個系統的正常運行不僅需要硬件的運行,還需要軟件系統的支持。同時軟件要根據硬件的連接來設計,來配合硬件的工作,例如,本次的設計用到的是P 0口和P3口。所以,設計的時候就要注意,只能用到P0和P3。本次用到的軟件設計選用課堂學到的匯編語言。另外用KEIL軟件來編寫程序,用課堂上學到的中斷和循環等來編寫程序。

主程序要開始定義音頻輸出端口,歌曲總數以及每首歌的入口地址;然后對定時器初始化,確定工作方式,賦初值,開放中斷啟動定時器工作;對音頻輸出端口初始化;設置音節起始位置和節拍間距,把音節和節拍的入口地址信息存放在固定存儲單元中,查詢音樂的節拍表;當6首歌曲的節拍查詢結束后,音樂播放完畢,程序結束。主程序的清單在附錄中,其流程圖如圖5所示。

圖5 主程序流程圖

3.2 各個模塊及功能介紹 3.2.1 定時器模塊

單片機中有兩個16位的可編程計數器/定時器,他們具有定時和計數的功能,可用于定時控制,延時,對外部的事件檢測和計數。

定時器的核心部件是加一計數器,通過TMOD寄存器可以使定時器工作在定時或者計數,還可以選擇工作方式,工作方式關系到后面音調和節拍的調用,因此,要選擇合適的工作方式。定時器模塊的程序清單見附錄。圖6為定時程序流程圖。

圖6 定時器模塊流程圖

3.2.2 延時模塊

此處的延時模塊并不是固定的延時程序,而是將節拍表中的接拍數存放在固定的單元中,再將固定單元中的內容送給延時程序中,這樣空拍就可以將節拍分開,這樣,圖7為延時程序流程圖。

圖7 延時流程圖

3.2.3 中斷模塊

中斷模塊主要用來進行上一首,下一首和暫停的控制,本次的中斷主要用到INT0,INT1和T1三個I/O口。不同的中斷有不同的程序。因為單片機中只有兩個外部中斷,因此,我決定選用定時器1來改變成中斷,即應定時器1的F0判斷,當F0為1時,為中斷。在此僅具體介紹上一曲的功能。下面為流程圖介紹。

圖8 中斷程序流程圖

3.2.4 數碼管顯示模塊

本次設計采用的是共陽極的數碼管,因此要采用相應的數值來控制數碼管的亮滅。另外還要求通過按鍵在改變曲目順序的時候改變數碼管顯示數字。下面為數碼管顯示模塊的流程圖。

圖9 數碼管顯示模塊流程圖 電路仿真和程序檢測

仿真圖作圖用到的是PROTEUS軟件,對于這個軟件,我們已經相當的熟悉,所以用起來比較順利,首先將各個元件搜索出來,必須要有單片機最小系統,顯示模塊,按鍵模塊,發聲模塊。根據要求,可以畫出仿真圖。如圖10所示。

圖10 設計仿真圖

將KEIL中寫好的程序導入到單片機中,開始檢測,首先檢測是否能夠清晰的播放出音樂,其次通過控制三個按鍵來檢測上一首,下一首和暫停的功能是否實現,觀察數碼管的數字是否隨著按鍵的變化,通過以上檢測,發現程序和仿真完全符合標準,表示仿真和程序檢測通過,可以制作實物。

5實物調試

將程序編譯好產生.hex文件,通過無需驅動程序將編譯好的.hex文件導入到三合一的實驗板中,在外邊接入三個按鍵開關來控制上一首,下一首和暫停,調試過程與仿真圖的調試過程相同,可以通過按鍵來控制歌曲的調換和暫停,而且也可以控制數碼管按曲目的調換來顯示序號。實驗成功,實驗成品如圖11所示。

圖11 實物圖 11

結束語

首先要感謝凌老師平時的耐心教導,才能讓我對單片機這門課程產生興趣,在平時的課堂上都會跟著老師的思路走,下課后,努力的完成老師布置的作業是凌老師讓我學到了很多關于單片機的知識。

其次對這次制作課程設計的感想。本次的課題是音樂盒,最主要的就是程序設計,經過比較分,決定采用51編程語言,因為平時上課接觸最多的就是匯編語言,對于C語言,了解比較少,并不是非常熟練。運用課堂上學到的定時,中斷,循環,以及數碼管顯示和按鍵程序,可以比較完整的制作出這次的課題。不僅可以復習近平時學到的知識,還會有新的能力學到,比如AD繪圖的使用和熟悉。

最后,了解了單片機的方便性,和強大性。這是我們走向崗位的通行證,必須學會單片機,才會在大四畢業的時候找到適合自己的好工作。

參考文獻

[1]李廣弟.單片機基礎[M].第3版.北京:北京航空航天大學出版社,2003.06.[2]李全利.單片機原理及應用(C51編程)[M].北京:高等教育出版社,2012.12.[3]樓然苗.51系列單片機設計實例[M].北京:北京航空航天大學出版社,1999.06.[4]李葉紫.單片機應用教程[M].北京:清華大學出版社,2002.01.[5]李光飛.單片機課程設計實例指導[M].北京:北京航空航天大學出版社,2004.09.致

這次的設計可以說是給了我很多,不僅僅是學習上的,更多的是精神上和生活中的

首先要感謝老師的教育,讓我學到了這么多的知識,在這段制作單片機課設的時候更是有感觸,當聽到設計的音樂盒發出聲音的時候,第一感覺是好舒暢,因為第一次可以看到自己制作出這樣的東西,在這些自豪中,更能感覺到老師對我們的栽培是那么的重要。

還要感謝同學們的幫助,有的時候,自己真的是不懂了,就去問同學,這不僅僅是問問而已,更能加深同學之間的友情,而且還會收獲更多的知識,在這樣的學習氛圍中,收益的是我們大家。所以我要感謝在這次課設里幫助過我的所有同學。

這次的設計給我最大的啟發就是,在學習中馬虎不得。當你馬虎的對待學習,學業也會馬虎的對待你,這樣吃虧的還是自己,學業本來就是自己的,自己不努力,難道就會白白得來嗎?所以以后的學習中不能有一絲的馬虎大意,就算是為了自己也要學下去。

附錄A 電路原理圖

附錄B 電路實物圖

附錄C 元器件清單

芯片

AT89S52 1 數碼管八段2

電容

22μF

電容

33pF

三極管1

電阻

470Ω

電阻

300Ω

電阻

200Ω

電阻

1KΩ LED燈8

下載口

晶振

12MHZ1

按鍵

排阻8位4

排阻

2位1

短路帽

插針

若干

附錄D 程序清單

OUT BIT p3.1

N EQU 6 OUT_NUM EQU P0 ORG 0000H AJMP MAIN ORG 0003H AJMP LAST_SONG ORG 000BH LJMP F_T0 ORG 0013H AJMP NEXT_SONG ORG 001BH AJMP START_PAUSE ORG 0030H MAIN: MOV SP ,#60H MOV DPTR,#TABLE MOV R0 ,#30H MOV R5 ,#00H MOV R6 ,#1 SET_TAB: MOV A,R5 MOVC A ,@A+DPTR MOV @R0 ,A INC R5 INC R0 MOV A ,R5 MOVC A ,@A+DPTR MOV @R0 ,A INC R5 INC R0 MOV A ,R5 MOVC A ,@A+DPTR MOV @R0 ,A INC R5 INC R0 MOV A,R5 MOVC A,@A+DPTR MOV @R0 ,A INC R0 INC R5 INC R6 CJNE R6,#N+1,SET_TAB MOV TMOD ,#61H MOV TH1,#0FFH MOV TL1,#0FFH SETB ET1 SETB ET0 CLR PT0 SETB PT1 SETB IT0 SETB PX0 SETB IT1 SETB PX1 SETB EX1 SETB EX0 SETB EA SETB TR1 SETB OUT CLR F0 MOV 22H ,#01H MOV DPTR,#OUT_TAB MOV A,22H MOVC A,@A+DPTR MOV OUT_NUM,A MOV R7,#00H

START0: MOV R4,#00H MOV R0,#30H MOV A,R7 ADD A,R0 MOV R0,A MOV DPH,@R0 INC R0 MOV DPL,@R0 INC R0 MOV A,R4 INC R4 MOVC A,@A+DPTR MOV 26H,A NEXT:MOV R0,#30H MOV A,R7 ADD A,R0 MOV R0,A MOV DPH,@R0 INC R0 MOV DPL,@R0 INC R0 MOV A,R4 INC R4 MOVC A,@A+DPTR JZ END0 MOV R1,A ANL A,#0FH MOV R2,A MOV A,R1 SWAP A ANL A,#0FH JNZ SING CLR TR0 SJMP SING1 SING:DEC A MOV R3,A RL A MOV DPH,@R0 INC R0 MOV DPL,@R0 INC R0 MOVC A,@A+DPTR MOV 21H,A MOV TH0,A MOV A,R3 RL A INC A MOVC A,@A+DPTR MOV 20H,A MOV TL0,A SETB TR0 SING1: LCALL DELAY JB F0,FOR AJMP NEXT FOR:CLR TR0 JB F0,$ AJMP NEXT END0: CLR TR0 MOV A,22H CJNE A,#N,WW MOV 22H,#01H MOV R7,#00H MOV OUT_NUM,#11111001B AJMP WWW WW:MOV A,R7 ADD A,#4 MOV R7,A INC 22H CLR EA PUSH DPH PUSH DPL MOV A,22H MOV DPTR,#OUT_TAB MOVC A,@A+DPTR MOV OUT_NUM,A POP DPL POP DPH WWW:SETB EA AJMP START0 F_T0:MOV TH0,21H MOV TL0,20H CPL OUT RETI NEXT_SONG: PUSH ACC PUSH DPH PUSH DPL CLR EA MOV A,22H CJNE A,#N,Q MOV R7,#00H MOV 22H,#01H AJMP BACK Q: INC 22H MOV A,R7 ADD A,#4 MOV R7,A BACK: MOV R4,#00H MOV A,22H MOV DPTR,#OUT_TAB MOVC A,@A+DPTR MOV OUT_NUM,A MOV B ,R0 MOV R4,#00H MOV R0,#30H MOV A,R7 ADD A,R0 MOV R0,A MOV DPH,@R0 INC R0 MOV DPL,@R0 INC R0 MOV A,R4 INC R4 MOVC A,@A+DPTR MOV 26H,A DEC R4 MOV R0,B POP DPL POP DPH POP ACC SETB EA RETI LAST_SONG: PUSH ACC PUSH DPH PUSH DPL CLR EA MOV A,22H CJNE A,#1,QQ MOV 22H,#N MOV B,#4 MOV A,#N-1 MUL AB MOV R7,A AJMP BACK2 QQ: DEC 22H MOV A,R7 SUBB A,#4 MOV R7,A BACK2: MOV R4,#00H MOV A,22H MOV DPTR ,#OUT_TAB MOVC A,@A+DPTR MOV OUT_NUM,A MOV B,R0 MOV R4,#00H MOV R0,#30H MOV A,R7 ADD A,R0 MOV R0 ,A MOV DPH,@R0 INC R0 MOV DPL,@R0 INC R0 MOV A,R4 INC R4 MOVC A,@A+DPTR MOV 26H ,A DEC R4 MOV R0,B POP DPL POP DPH POP ACC SETB EA

RETI START_PAUSE: CPL F0 JB F0,RETURN SETB TR0 RETURN: RETI DELAY: MOV 27H,26H D2: D3:

MOV 28H,#125 MOV 29H,#248 DJNZ 29H,$ DJNZ 28H,D3 DJNZ 27H,D2 DJNZ R2,DELAY RET OUT_TAB: DB 0CH,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EH,0FFH TABLE: DW SONG1,TABLE1,SONG2,TABLE2,SONG3,TABLE3,SONG4,TABLE4,SONG5,TABLE5,SONG6,TABLE6 TABLE1: DW 64580,64684,64777,64820,64898,64968,65030 DW 63628,63835,64021,64103,64260,64400,64524 SONG1: DB 04H DB 32H,54H,52H,32H,54H,52H,32H,12H,12H,32H,32H,54H,52H,32H,52H,52H,32H,32H,21H,31H,4H,0E2H,0D1H,0E1H,0D2H,0C2H,14H,14H DB 0C2H,32H,32H,12H,21H,31H,24H,32H,34H,0D2H,0C2H,14H,14H,32H,52H,52H,32 26

H,52H,54H,32H,34H,31H,21H,12H,24H,34H DB 34H,0E2H,0C2H,0D1H,0E1H,0D4H,12H,0E2H,32H,32H,0E2H,32H,32H,0E2H,0D1H,0E1H,0D4H,0D2H,0E2H,32H,32H,0E2H,0E2H,0D1H,0E1H,0D4H DB 22H,0D1H,11H,0E2H,0D2H,0C2H,0C4H,0C4H,32H,52H,52H,32H,62H,05H,61H,54H,31H,52H,31H,12H,31H,32H,54H,52H,32H,52H,52H,32H DB 32H,21H,31H,24H,0E2H,0D1H,0E1H,0D2H,0C2H,34H,34H,32H,52H,52H,32H,62H,51H,61H,54H,31H,12H,32H,12H,32H,12H,32H,32H,54H,52H

DB DB DB 32H,52H,52H,31H,31H,32H,21H,31H,24H,0E2H,0D1H,0E1H,0D2H,0C2H,14H,14H 32H,52H,52H,32H,32H,21H,31H,24H,0E2H,0D1H,0E1H,0D2H,0C2H,14H,14H 0C2H,32H,32H,12H,21H,31H,24H,32H,34H,0D2H,0C2H,14H,14H,32H,52H,52H,32H,34H,31H,21H,12H,24H,24H DB 34H,0E2H,0C2H,0D1H,0E1H,0D4H,12H,0E2H,32H,32H,0E2H,0D1H,0E1H,0D4H,0D2H,0E2H,32H,32H,0E2H,0E2H,0D1H,0E1H,0D4H TABLE2: DW 63835,64021,64103,64260,64400,64524,64580,64684,64777 DW 64820,64898,64968,65030,65058,65110,65157,65178 SONG2: DB 02H DB 04H,94H DB 0E8H,0E4H,0E4H,0E8H,0E4H,0F4H,0D4H,0C4H,0B4H,84H,84H,92H,92H,94H,92H,02H

02H DB 0A4H,0A2H,0B2H,0B4H,0C4H,84H,82H,92H,94H,0A4H DB 04H,0C2H,0C2H,0D4H,0C2H,0D2H,0D8H,0D4H,0D2H,92H DB 0E8H,0E4H,0E4H,0E8H,0E4H,0F4H,0D4H,0C4H,0B4H,84H,84H,92H,92H,94H,92H, 27

DB 0A4H,0A2H,0B2H,0B4H,0C4H,0E8H,0D8H DB 0C8H,0C8H,08H,08H,78H,28H,38H,34H,24H DB 24H,64H,64H,24H,64H,72H,72H,78H,58H,54H,44H,38H,34H,14H,34H,84H,74H,74H,62H,0D8H,78H,28H,38H,34H,24H

DB DB DB

58H,58H,58H,58H,0A8H,0A8H,0A4H,0B4H,0A4H,84H,0A4H, 24H,64H,64H,24H,64H,72H,72H,72H,94H,92H,94H,0A4H,58H,58H,54H,44H 94H,98H,98H,08H 84H,82H,82H,82H,82H,94H,0A2H,94H,92H,82H,74H,72H,74H,72H,72H,72H,72H,92H,91H,91H,94H,54H,74H,94H 02H DB 0A4H,0A2H,0B2H,0B4H,0C4H,84H,82H,92H,94H,0A4H,04H,0C2H,0C2H,0D4H,0D8H,0D4H,0D2H,92H 02H DB 0A4H,0A2H,0B2H,0B4H,0C4H,84H,82H,92H,94H,0A4H,04H,0C2H,0C2H,0D4H,0D8H,0D4H,0D2H,92H

DB 0A4H,0A2H,0B2H,0B3H,0C4H,0E8H,0D8H DB 0C8H,0C8H,0C8H,08H DB 00H DB 0E8H,0E4H,0E4H,0E8H,0E4H,0F4H,0D4H,0C4H,0B4H,84H,84H,92H,92H,94H,92H,DB 0E8H,0E4H,0E4H,0E8H,0E4H,0F4H,0D4H,0C4H,0B4H,84H,84H,92H,92H,94H,92H,TABLE3: DW 64898,64968,65030,65086,65135,65158,65199,64260,64400,64524,64580,64684,64777,64862 SONG3: DB 03H DB 28

04H,04H,0C2H,14H,12H,12H,12H,11H,11H,0C2H,0D1H,0E1H,14H,14H,02H,32H,12H,21H,31H,52H,51H,51H,54H DB 32H,31H,31H,12H,11H,31H,52H,51H,31H,24H,24H,24H,64H,54H,24H,34H,52H,34H,52H,32H,21H,31H,12H,11H,21H,34H,04H DB 52H,51H,0D1H,12H,12H,32H,31H,31H,52H,51H,51H,22H,22H,22H,0D2H,0D1H,0D1H,24H,22H,0C2H,14H,12H,12H,34H,32H,32H,54H,54H,54H,54H DB 12H,11H,31H,52H,51H,51H,64H,54H,32H,31H,11H,52H,52H,52H,32H,02H,12H,02H,0C4H,14H DB 0A2H,0A1H,11H,52H,52H,52H,32H,02H,12H,02H,0C4H,14H,0C4H,14H,0C4H,14H,14H,04H DB 04H,04H,04H,04H DB 00H TABLE4: DW 64260,64400,64524,64580 ,64684,64777,64280,64898,64968,65030,65058,65110,65157,65178,65217 SONG4: DB 04H

DB 82H,01H,81H,94H,84H DB 0B4H,0A4H,04H DB 82H,01H,81H,94H,84H DB 0C4H,0B4H,04H DB 82H,01H,81H,94H,84H DB 0B4H,0A4H,04H DB 82H,01H,81H,94H,84H DB 0C4H,0B4H,04H DB 82H,01H,81H,94H,84H DB 0B4H,0A4H,04H DB 82H,01H,81H,94H,84H DB 0C4H,0B4H,04H 29

DB 82H,01H,81H,94H,84H DB 0B4H,0A4H,04H DB 0C4H,0B4H,04H DB 00H DB 82H,01H,81H,94H,84H TABLE5: DW 64021,64103,64260,64400 ,64524,64580,64684,64777,64820,64898,64968,65030,64934 SONG5:

DB 05H DB 42H,82H,82H,82H,84H,02H,72H DB 62H,72H,62H,52H,48H DB 0B2H,0B2H,0B2H,0B2H,0B4H,02H,0A2H DB 12H,0A2H,0D2H,92H,88H DB 82H,0B2H,0B2H,0A2H,84H,02H,72H DB 62H,72H,62H,52H,44H,02H,12H DB 12H,62H,62H,52H,44H,02H,82H DB 72H,62H,52H,32H,48H DB 00H TABLE6: 64021,6103,64260,64400,64524,64580,64624,64777,64820,64898,64958,65030,65058,65110,65157 SONG6: DB 06H

DB 0A2H,0B2H,0D2H,0B2H,0A4H,0B2H,0D2H DB 0B2H,0A2H,82H,72H,88H DB 72H,82H,0A2H,82H,72H,62H,42H,62H DB 0A4H,02H,0B2H,0A4H,84H DB 72H,82H,72H,62H,72H,84H,72H DB 64H,62H,12H,34H,02H,42H DB 38H,38H DW DB 38H,38H 30

DB 44H,02H,32H,44H,64H DB 72H,74H,82H,0A4H,02H,062H DB 0A8H,0A8H DB 0B2H,0B4H,0A2H,84H,82H,72H DB 62H,72H,82H,0A2H,88H DB 72H,74H,62H,42H,32H,32H,62H DB 78H,78H DB 82H,84H,72H,82H,0A2H,84H DB 72H,82H,72H,62H,48H DB 32H,0A2H,82H,0F2H,0A2H,0B2H,82H,72H DB 68H,68H DB 0B2H,0B2H,0B2H,0A2H,82H,84H,02H DB 72H,74H,62H,42H,32H,42H,62H DB 78H,78H DB 0A2H,0B2H,0A2H,72H,82H,84H,82H DB 72H,74H,62H,44H,64H DB 0A8H,0A4H,02H,0A2H DB 0A2H,0B1H,0A1H,82H,0A2H,0B4H,0B2H,0C2H DB 0A2H,0B2H,0A2H,82H,78H DB 84H,72H,62H,44H,02H,62H DB 72H,81H,71H,62H,72H,84H,02H,0A2H DB 0B4H,02H,82H,74H,82H,72H DB 68H,68H DB 00H END DB 72H,82H,72H,62H,72H,84H,0A2H 31

第二篇:單片機課程設計

設計題目: 單片機課程設計

學生姓名:

院: 電氣與信息工程學院

級: 電子111班 指導教師:

日 期: 2014年9月20日

一、課程設計目的:

了解電子元器件的功能與原理,掌握單片機的結構和原理,學會使用單片機應用開發技術的相關軟件如 keill、STC_ISP_V394等,能夠使用c語言的語言編程簡單的功能。

二、設計的思想:

利用所提供的單片機和開發板的原理圖用keill軟件編程程序以實現一些功能。然后用STC_ISP_V394.exe軟件將編譯完全正確的程序生成的hxe文件下載到開發板上,再調試編譯的程序能否實現其所設計的功能。

1、對蜂鳴器的了解:

蜂鳴器是一種一體化結構的電子訊響器,采用直流電壓供電,它由振蕩器、電磁線圈、磁鐵、振動膜片及外殼組成,接通電源后,振蕩器產生的音頻信號由電流通過電磁線圈,使電磁線圈產生磁場,振動膜片在電磁線圈和磁鐵的相互作用下,周期性的振動發聲。

2、設計:

我們所使用的開發板實物圖如圖一,單片機對右上角蜂鳴器的控制是加入三極管接入vcc,單片機的第22引腳和負極上,以此來控制蜂鳴器工作。單片機我們選擇STC89C52RC+1602液晶來實現對蜂鳴器的控制及顯示所需要的信息。

圖一 調試說明:

首先用Keil軟件創建一個工程,將程序源代碼輸入并編譯生成單片可執行的.hex文件。其次,打開單片機實踐板的電源,接好串口線,用STC-ISP燒錄軟件,將.hex文件燒錄入單片機中。程序下載完畢后,單片機會自動執行程序功能。最后,觀察程序功能的執行情況,看是否達到了設計要求。

如果單片機實踐板硬件電路的執行結果與設計結果一致,則說明設計過程及流程沒有問題,完全符合設計要求。否則,先檢查單片機實踐板的硬件電路是否完好,是否有斷點、漏焊、虛焊以及元器件是否完好等情況,排除故障重新連接后重新進行調試。如果仍然無法正

常實現,則說明程序編寫有誤,需要認真檢查程序流程,然后經過反復的修改與調試排除故障,實現設計要求的各項功能。編譯和燒寫該程序到單片機:

(1)用Keil編譯上面的代碼,并設置產生16進制代碼文件*.hex.(2)用專用下載線,連接好實驗板和電腦串口(DB9)(2)運行hex文件燒寫軟件STC_ISP_V394.exe

選單片機的型號,并打開編譯產生好的hex文件

點擊下載,給開發板上電。

3、實現的功能:使用單片機將歌曲《八月桂花》的調子通過蜂鳴器播放出來,用1602液晶將想要表達的信息有步驟地顯示在液晶顯示屏上,并且調子與顯示內容可以任意通過修改的程序燒錄到單片機內,實現設計產品的使用性與靈活性。

三、實驗程序:

/************************************************************************

[主題] C51音樂程序《八月桂花》

[功能]

通過單片機演奏音樂,顯示一些內容

/**********************************************************************/

#include

#include

//本例采用89C52, 晶振為11.0592MHZ

//關于如何編制音樂代碼, 其實十分簡單,各位可以看以下代碼.//頻率常數即音樂術語中的音調,而節拍常數即音樂術語中的多少拍;

//所以拿出譜子, 試探編吧!

unsigned char i=0;sbit Beep = P2^7;

unsigned char p,m;

//m為頻率常數變量

unsigned char n=0;//n為節拍常數變量

unsigned char code music_tab[] ={

0x18, 0x30, 0x1C , 0x10, //格式為: 頻率常數, 節拍常數, 頻率常數, 節拍常數,0x20, 0x40, 0x1C , 0x10,0x18, 0x10, 0x20 , 0x10,0x1C, 0x10, 0x18 , 0x40,0x1C, 0x20, 0x20 , 0x20,0x1C, 0x20, 0x18 , 0x20,0x20, 0x80, 0xFF , 0x20,0x30, 0x1C, 0x10 , 0x18,0x20, 0x15, 0x20 , 0x1C,0x20, 0x20, 0x20 , 0x26,0x40, 0x20, 0x20 , 0x2B,0x20, 0x26, 0x20 , 0x20,0x20, 0x30, 0x80 , 0xFF,0x20, 0x20, 0x1C , 0x10,0x18, 0x10, 0x20 , 0x20,0x26, 0x20, 0x2B , 0x20,0x30, 0x20, 0x2B , 0x40,0x20, 0x20, 0x1C , 0x10,0x18, 0x10, 0x20 , 0x20,0x26, 0x20, 0x2B , 0x20,0x30, 0x20, 0x2B , 0x40,0x20, 0x30, 0x1C , 0x10,0x18, 0x20, 0x15 , 0x20,0x1C, 0x20, 0x20 , 0x20,0x26, 0x40, 0x20 , 0x20,0x2B, 0x20, 0x26 , 0x20,0x20, 0x20, 0x30 , 0x80,0x20, 0x30, 0x1C , 0x10,0x20, 0x10, 0x1C , 0x10,0x20, 0x20, 0x26 , 0x20,0x2B, 0x20, 0x30 , 0x20,0x2B, 0x40, 0x20 , 0x15,0x1F, 0x05, 0x20 , 0x10,0x1C, 0x10, 0x20 , 0x20,0x26, 0x20, 0x2B , 0x20,0x30, 0x20, 0x2B , 0x40,0x20, 0x30, 0x1C , 0x10,0x18, 0x20, 0x15 , 0x20,0x1C, 0x20, 0x20 , 0x20,0x26, 0x40, 0x20 , 0x20,0x2B, 0x20, 0x26 , 0x20,0x20, 0x20, 0x30 , 0x30,0x20, 0x30, 0x1C , 0x10,0x18, 0x40, 0x1C , 0x20,0x20, 0x20, 0x26 , 0x40,0x13, 0x60, 0x18 , 0x20,0x15, 0x40, 0x13 , 0x40,0x18, 0x80, 0x00

};

void int0()interrupt 1

//采用中斷0 控制節拍

{ TH0=0xd8;

TL0=0xef;

n--;

}

void delay(unsigned char m)

//控制頻率延時

{

unsigned i=3*m;

while(--i);

}

void delayms(unsigned char a)//豪秒延時子程序

{

while(--a);

//采用while(--a)不要采用while(a--);各位可編譯一下看看匯編結果就知道了!

}

typedef unsigned char BYTE;typedef bit BOOL;

sbit LCD_RS = P2^0;

sbit LCD_RW = P2^1;sbit LCD_EP = P2^2;

BYTE code dis1[] = {“

WLCOME TO

”};BYTE code dis2[] = {“

DanPianJi ”};BYTE code dis3[] = {“

111iZnaiD

”};BYTE code dis4[] = {“

eiXeiX ”};

delays(int ms){

// 延時子程序 int i;while(ms--){

for(i = 0;i< 250;i++)

{

_nop_();

_nop_();

_nop_();

_nop_();

} } }

BOOL lcd_bz(){

// 測試LCD忙碌狀態 BOOL result;LCD_RS = 0;LCD_RW = 1;LCD_EP = 1;_nop_();_nop_();_nop_();_nop_();result =(BOOL)(P0 & 0x80);LCD_EP = 0;return result;}

lcd_wcmd(BYTE cmd){

while(lcd_bz());LCD_RS = 0;LCD_RW = 0;LCD_EP = 0;_nop_();_nop_();P0 = cmd;_nop_();_nop_();_nop_();_nop_();LCD_EP = 1;_nop_();_nop_();_nop_();_nop_();LCD_EP = 0;

}

lcd_pos(BYTE pos){

lcd_wcmd(pos | 0x80);

// 寫入指令數據到LCD //設定顯示位置

}

lcd_wdat(BYTE dat)

{

//寫入字符顯示數據到LCD while(lcd_bz());LCD_RS = 1;LCD_RW = 0;LCD_EP = 0;P0 = dat;_nop_();_nop_();_nop_();_nop_();LCD_EP = 1;_nop_();_nop_();_nop_();_nop_();LCD_EP = 0;}

lcd_init(){

lcd_wcmd(0x38);

delays(1);lcd_wcmd(0x0c);

delays(1);lcd_wcmd(0x06);

delays(1);lcd_wcmd(0x01);

delays(1);}

void main()

{

BYTE j;

lcd_init();

delays(10);

//LCD初始化設定

//16*2顯示,5*7點陣,8位數據//顯示開,關光標 //移動光標 //清除LCD的顯示內容

// 初始化LCD

lcd_wcmd(0x06);

//向右移動光標

lcd_pos(0);

//設置顯示位置為第一行的第1個字符

j = 0;

while(dis1[ j ]!= '

主站蜘蛛池模板: 国产精品视频二区不卡| 五十丰满熟妇性旺盛| 无人区乱码一区二区三区| 无码喷水一区二区浪潮av| 亚洲熟妇久久精品| 免费国产裸体美女视频全黄| 把插八插露脸对白内射| 日韩人妻无码精品久久| 国产成人无码精品亚洲| h无码动漫在线观看| 亚洲中文字幕无码av| 亚洲国产成人片在线观看无码| 又大又硬又黄的免费视频| 成人免费午夜无码视频在线播放| 国内精品国内精品自线在拍| 八个少妇沟厕小便漂亮各种大屁股| 少妇真实被内射视频三四区| 亚洲第一在线综合网站| 欧美丰满熟妇乱xxxxx视频| 伊人久久大香线蕉av色婷婷色| 久人人爽人人爽人人片av| 丰满少妇被粗大猛烈进人高清| 亚洲精品乱码久久久久久日本麻豆| 东京热无码中文字幕av专区| 亚洲精品一区二区久| 亚洲成av人网站在线播放| 中日韩亚洲人成无码网站| 每天更新的免费av片在线观看| 一个人看的www免费视频在线观看| 免费特黄夫妻生活片| 亚洲欧美综合精品二区| 人妻少妇乱子伦精品| 欧美成人看片一区二区三区尤物| 日本真人做爰免费的视频| 欧美奶涨边摸边做爰视频| 午夜乱人伦精品视频在线| 伊人伊成久久人综合网996| 2021精品国产自在现线看| 最新四色米奇影视777在线看| 精品无码日韩国产不卡av| 97在线观看播放|