




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
-83- 1緒論 1.1選題意義該設(shè)計具有流水燈顯示、數(shù)碼顯示、音樂發(fā)聲等功能,能滿足教學課程實驗的基本設(shè)計,實驗系統(tǒng)結(jié)構(gòu)簡單,實用性強。在傳統(tǒng)的單片機實驗教學中,由于實驗箱電路固定,學生只能照抄照搬講義內(nèi)容進行電路插接,按照講義上的實驗步驟一步步完成規(guī)定的實驗項目,卻無法實現(xiàn)自己的一些新想法、新思路,進行實驗驗證,這嚴重挫傷了學生的學習主動性,束縛了學生的創(chuàng)新思維?,F(xiàn)在,通過仿真實驗,可以很好地彌補實際實驗的不足,并且該題目對硬件與軟件都有涉及,很明確軟硬件知識課程學習對應(yīng)用是非常重要的.通過對該題的深入研究不僅對學習單片機有用,而且對電子方面的教學也起到關(guān)鍵的作用。1.2要完成的任務(wù)首先設(shè)計實驗系統(tǒng)各個模塊的硬件電路,其次設(shè)計應(yīng)用實驗的軟件程序,然后安裝Proteus軟件和Keil軟件,在Proteus中繪制局部電路圖,再繪制各個實驗應(yīng)用電路圖。再在Keil中建立工程、編譯程序、檢查錯誤、鏈接程序、生產(chǎn).hex文件。最后在Proteus中添加.hex文件,進行實驗仿真,實現(xiàn)相應(yīng)功能或現(xiàn)象、最后自學Dreamweaver,在Dreamweaver環(huán)境中搭建一個的本地站點,通過插入動畫、圖片、文字、音樂等內(nèi)容,再利用編寫代碼、創(chuàng)建鏈接等知識做網(wǎng)頁展示,實現(xiàn)實驗系統(tǒng)。1.3單片機的性能特點單片機芯片作為控制系統(tǒng)的核心部件,除了具備通用微機CPU的數(shù)值計算功能外,還必須具有靈活、強大的控制功能,以便實時監(jiān)測系統(tǒng)的輸入量、控制系統(tǒng)的輸出量,實現(xiàn)自動控制的目的。由于單片機主要面向工業(yè)控制,工作環(huán)境比較惡劣,加上高溫、強電磁干擾,甚至還有腐蝕性氣體;在太空工作的單片機控制系統(tǒng),還必須具有抗輻射能力。因而,決定了單片機CPU與通用微機CPU具有不同的技術(shù)特征和發(fā)展方向,正由于它的實用性強,所以單片機在電類教學中的地位是相當重要的。(1)抗干擾性強.工作溫度范圍寬。通用微機CPU一般要求在室溫下工作.抗干擾能力也較低。(2)可靠性高。(3)控制功能往往很強,數(shù)值計算能力較差。通用微機CPU具有很強的數(shù)值運算能力,但控制能力相對較弱。將通用微機用于工業(yè)控制時,一般需要增加一些專用的接口電路。(4)指令系統(tǒng)比通用微機系統(tǒng)簡單?!?0C51系列新一代8位單片機的主要特點:(1)普遍采用CMOS工藝,除了具有節(jié)電運行模式和掉電數(shù)據(jù)保護功能外,整機功耗比采用HMOS工藝的80C5l系列低。(2)片內(nèi)存儲器容量大,規(guī)格多,程序存儲器類型也趨于多樣化。該系列不同品種的片內(nèi)程序存儲器容量從4KB擴展到8KB、16KB,甚至32KB,數(shù)據(jù)存儲器容量從128B擴展到512B。(3)最高時鐘頻率從12MHz提高到16MHz、24MHz、33MHz,甚至40MHz,指令執(zhí)行時間大大縮短,增強了這些產(chǎn)品的實時處理能力。(4)工作電壓低、范圍寬(1.8V'、一6.0V),可用電池供電,便于野外作業(yè)使用。(5)擴展了接口電路功能,如:增加了高速I/O接口,擴展了I/O口引線數(shù)目。(6)部分型號增加了定時/計數(shù)器的個數(shù),還擴展了定時/計數(shù)器的功能。(7)部分型號增加了定時復位功能,提高了抗干擾能力。(8)強化并且完善了串行通信功能。(9)封裝形式多樣化,同一型號的CPU,具有多種封裝形式,如PDIP封裝、CDIP封裝、PLCC(方形壁插塑封)、CLCC(方形壁插陶瓷封裝)、PQFP(塑料方形四邊引線扁平封裝),部分產(chǎn)品還采用了BGA(球形網(wǎng)格陣列)封裝。1.3.1AT89系列單片機簡介AT89系列單片機是美國Atmel公司的8位Flash單片機產(chǎn)品。這個系列單片機的最大特點是在片內(nèi)含有Flash存儲器,而其他方面和MCS.51沒有太大的區(qū)別。該系列有著十分廣泛的用途,特別是在便攜式、省電和特殊信息保存的儀器和系統(tǒng)中顯得更為突出。1.3.2AT89系列單片機的特點(1)內(nèi)含有Flash存儲器由于片內(nèi)含有Flash存儲器,因此在系統(tǒng)開發(fā)過程中可以十分容易地進行程序的修改。同時,在系統(tǒng)工作過程中,能有效地保存數(shù)據(jù)信息,即使外界電源損壞也不影響信息的保存。(2)和80C51插座兼容AT89系列單片機的引腳和MCS.51系列單片機的引腳是一樣的。只要用相同引腳的AT89系列單片機就可以取代MCS.51系列單片機。(3)靜態(tài)時鐘方式AT89系列單片機采用靜態(tài)時鐘方式,節(jié)省電能,這對于降低便攜式產(chǎn)品的功耗十分有用。1.3.3AT89S51單片機簡介AT89S51是一個低功耗,高性能CMOS8位單片機,片內(nèi)含4KBytesISP(In-SystemProgramming)的可反復擦寫1000次的Flash只讀程序存儲器,器件采用Atmel公司的高密度、非易失性存儲技術(shù)制造,兼容標準MCS.51指令系統(tǒng)及80C51引腳結(jié)構(gòu),芯片內(nèi)集成了通用8位中央處理器和IspFlash存儲單元,功能強大的微型計算機的AT89S51可為許多嵌入式控制應(yīng)用系統(tǒng)提供高性價比的解決方案。AT89S51具有如下特點:40個引腳,4KBytesFlash片內(nèi)程序存儲器,128Bytes的隨機存取數(shù)據(jù)存儲器(RAM),32個外部雙向輸入/輸出(I/O)口,5個中斷優(yōu)先級2層中斷嵌套,2個16位可編程定時計數(shù)器,2個全雙工串行通信口,看門狗(wdt)電路,片內(nèi)時鐘振蕩器。此外,AT89S51設(shè)計和配置了振蕩頻率可為0Hz并可通過軟件設(shè)置省電模式??臻e模式下,CPU暫停工作,而RAM、定時計數(shù)器、串行口、外部中斷系統(tǒng)可繼續(xù)工作,掉電模式凍結(jié)振蕩器而保存RAM的數(shù)據(jù),停止芯片其它功能直至外部中斷激活或硬件復位。同時該芯片還具有PDIP、TQFP和PLCC等三種封裝形式,以適應(yīng)不同產(chǎn)品的需求?!裰饕δ芴匦裕?1)兼容MCS.51指令系統(tǒng)(2)4K可反復擦寫(>1000次)IspFlashROM(3)32個雙向I/O口(4)4.5V-5.5V工作電壓(5)2個16位可編程定時/計數(shù)器(6)時鐘頻率0.33MHz(7)全雙工UART串行中斷口線(8)128×8Bit內(nèi)部RAM(9)2個外部中斷源(10)低功耗空閑和省電模式(11)中斷喚醒省電模式(12)3級加密位(13)看門狗(Wdt)電路(14)軟件設(shè)置空閑和省電功能(15)靈活的Isp字節(jié)和分頁編程(16)雙數(shù)據(jù)寄存器指針1.4仿真軟件介紹1.4.1PROTEUS軟件簡介
Proteus軟件是英國Labcenter
electronics公司出版的EDA工具軟件(該軟件中國總代理為廣州風標電子技術(shù)有限公司)。它不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機及外圍器件。它是目前最好的仿真單片機及外圍器件的工具。雖然目前國內(nèi)推廣剛起步,但已受到單片機愛好者、從事單片機教學的教師、致力于單片機開發(fā)應(yīng)用的科技工作者的青睞。Proteus是世界上著名的EDA工具(仿真軟件),從原理圖布圖、代碼調(diào)試到單片機與外圍電路協(xié)同仿真,一鍵切換到PCB設(shè)計,真正實現(xiàn)了從概念到產(chǎn)品的完整設(shè)計。是目前世界上唯一將電路仿真軟件、PCB設(shè)計軟件和虛擬模型仿真軟件三合一的設(shè)計平臺,其處理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列處理器,并持續(xù)增加其他系列處理器模型。在編譯方面,它也支持IAR、Keil和MPLAB等多種編譯器。
1.4.2KEIL軟件簡介
Keil
C51是美國Keil
Software公司出品的51系列兼容單片機C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結(jié)構(gòu)性、可讀性、可維護性上有明顯的優(yōu)勢,因而易學易用。Keil提供了包括C編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個集成開發(fā)環(huán)境(uVision)將這些部分組合在一起。運行Keil軟件需要WIN98、NT、WIN2000、WINXP等操作系統(tǒng)。如果使用C語言編程,那么Keil幾乎就是不二之選。2硬件設(shè)計2.1實驗系統(tǒng)設(shè)計方案單片機實驗開發(fā)板是一個實際應(yīng)用的系統(tǒng),能夠為相關(guān)的學生單片機實驗提供支持。此實驗板是參考單片機教材中的實驗內(nèi)容設(shè)計的,能夠?qū)崿F(xiàn)簡單的測試實驗。本設(shè)計包括硬件系統(tǒng)的詳細設(shè)計及C語言在基本控制中的應(yīng)用。本設(shè)計的任務(wù)主要分為硬件和軟件兩大部分,其主要硬件設(shè)計框圖如圖2.1所示:AT89S51晶振電路流水燈電路晶振電路流水燈電路數(shù)碼管顯示電路電路數(shù)碼管顯示電路電路復位電路液晶顯示電路存儲器擴展電路路液晶顯示電路存儲器擴展電路路發(fā)聲電路4*4矩陣按鈕電路發(fā)聲電路4*4矩陣按鈕電路DH11DH11溫濕度傳感器電路DS18B20溫度傳感器電路DS18B20溫度傳感器電路圖2.1硬件框圖此開發(fā)系統(tǒng)的主要內(nèi)容包括:(1)單片機最小系統(tǒng)電路(MCU、復位電路、晶振電路)(2)蜂鳴器發(fā)聲電路(3)按鍵電路(4)流水燈電路(5)LM106L液晶顯示電路(7)存儲器擴展電路(7)六段數(shù)碼管顯示電路(8)DS18B20溫度傳感器電路(9)DH11溫濕度傳感器電路2.2常用各功能模塊介紹2.2.1晶振電路MCS-51片內(nèi)有一個高增益的反相放大器,其輸入端為引腳XTAL1和輸出端為引腳為XTAL2,用于外接石英晶體振蕩器和微調(diào)電容,構(gòu)成穩(wěn)定的的自激振蕩器,其發(fā)出的脈沖直接送入內(nèi)部的時鐘電路,如圖3-2所示。電容C1和C2對頻率有微調(diào)作用,電容一般取20pF左右。晶體振蕩頻率范圍是1.2MHz~12MHz,一般情況下,選用振蕩頻率為12MHz的石英晶體。振蕩脈沖信號經(jīng)過內(nèi)部時鐘發(fā)生器進行二分頻之后,才成為單片機的時鐘信號。
電路如圖2.2所示圖2.2晶振電路選取晶振為12MHZ,系統(tǒng)機器周期為1us。2.2.2復位電路復位是由外部的復位電路來實現(xiàn)的。復位引腳RST通過一個施密特觸發(fā)器用來抑制噪聲,然后才能得到內(nèi)部復位操作所需要的信號。
本系統(tǒng)是采用上電自動復位,上電自動復位是通過外部復位電路的電容充電來實現(xiàn)的。只要Vcc的上升時間不超過1ms,就可以實現(xiàn)自動上電復位。電路如圖2.3所示:圖2.3復位電路2.2.34*4鍵盤按鈕電路用來連接P2口與矩陣鍵盤模塊,在矩陣式鍵盤中,每條水平線和垂直線在交叉處不直接連通,而是通過一個按鍵加以連接。這樣,一個端口(如P2口)就可以構(gòu)成4*4=16個按鍵,比之直接將端口線用于鍵盤多出了一倍,而且線數(shù)越多,區(qū)別越明顯,比如再多加一條線就可以構(gòu)成20鍵的鍵盤,而直接用端口線則只能多出一鍵(9鍵),在需要的按鍵數(shù)較多時,采用矩陣法來做鍵盤是合理的。電路如圖2.4所示:圖2.4按鈕電路2.2.4流水燈電路電路圖如圖2.5所示:圖2.5流水燈電路流水燈模塊包含8個LED燈,8個LED接8個上拉電阻到高電平,LED左側(cè)接低電平點,LED亮。2.2.5發(fā)聲電路本系統(tǒng)是采用蜂鳴器用來發(fā)出聲音,由于在實際應(yīng)用中,單片機輸出的標準高電平為5伏,輸出功率很有限,所以本系統(tǒng)中,理論聯(lián)系實際,用一個PNP型三極管驅(qū)動蜂鳴器,由于三極管具有放大作用,在實際應(yīng)用中,輸出功率將會提高很多。電路如下圖2.6所示:圖2.6發(fā)生電路2.2.66位7段LED數(shù)碼管顯示電路圖2.7LED數(shù)碼管如圖2.7所示ABCDEFG為7段LED的輸入端口,DP為小數(shù)點,123456為片先信號,當1為高電平時則選中第一個數(shù)碼管,2為高電平時則選中第二個數(shù)碼管,以此類推。2.2.7LCD液晶顯示電路液晶顯示的原理是利用液晶的物理特性,通過電壓對其顯示區(qū)域進行控制,有電就有顯示,這樣即可以顯示出圖形。液晶顯示器具有厚度薄、適用于大規(guī)模集成電路直接驅(qū)動、易于實現(xiàn)全彩色顯示的特點,目前已經(jīng)被廣泛應(yīng)用在便攜式電腦、數(shù)字攝像機、PDA移動通信工具等眾多領(lǐng)域。
(1)液晶顯示器的分類
液晶顯示的分類方法有很多種,通??砂雌滹@示方式分為段式、字符式、點陣式等。除了黑白顯示外,液晶顯示器還有多灰度有彩色顯示等。如果根據(jù)驅(qū)動方式來分,可以分為靜態(tài)驅(qū)動(Static)、單純矩陣驅(qū)動(Simple
Matrix)和主動矩陣驅(qū)動(Active
Matrix)三種。
(2)液晶顯示器各種圖形的顯示原理
1)線段的顯示
圖
2-2-8
存儲器擴展電路14
點陣圖形式液晶由M×N個顯示單元組成,假設(shè)LCD顯示屏有64行,每行有128列,每8列對應(yīng)1字節(jié)的8位,即每行由16字節(jié),共16×8=128個點組成,屏上64×16個顯示單元與顯示RAM區(qū)1024字節(jié)相對應(yīng),每一字節(jié)的內(nèi)容和顯示屏上相應(yīng)位置的亮暗對應(yīng)。例如屏的第一行的亮暗由RAM區(qū)的000H——00FH的16字節(jié)的內(nèi)容決定,當(000H)=FFH時,則屏幕的左上角顯示一條短亮線,長度為8個點;當(3FFH)=FFH時,則屏幕的右下角顯示一條短亮線;當(000H)=FFH,(001H)=00H,(002H)=00H,……(00EH)=00H,(00FH)=00H時,則在屏幕的頂部顯示一條由8段亮線和8條暗線組成的虛線。這就是LCD顯示的基本原理。
2)
字符的顯示
用LCD顯示一個字符時比較復雜,因為一個字符由6×8或8×8點陣組成,既要找到和顯示屏幕上某幾個位置對應(yīng)的顯示RAM區(qū)的8字節(jié),還要使每字節(jié)的不同位為“1”,其它的為“0”,為“1”的點亮,為“0”的不亮。這樣一來就組成某個字符。但由于內(nèi)帶字符發(fā)生器的控制器來說,顯示字符就比較簡單了,可以讓控制器工作在文本方式,根據(jù)在LCD上開始顯示的行列號及每行的列數(shù)找出顯示RAM對應(yīng)的地址,設(shè)立光標,在此送上該字符對應(yīng)的代碼即可。
(3)
漢字的顯示
漢字的顯示一般采用圖形的方式,事先從微機中提取要顯示的漢字的點陣碼(一般用字模提取軟件),每個漢字占32B,分左右兩半,各占16B,左邊為1、3、5……右邊為2、4、6……根據(jù)在LCD上開始顯示的行列號及每行的列數(shù)可找出顯示RAM對應(yīng)的地址,設(shè)立光標,送上要顯示的漢字的第一字節(jié),光標位置加1,送第二個字節(jié),換行按列對齊,送第三個字節(jié)……直到32B顯示完就可以LCD上得到一個完整漢字。
液晶顯示電路如圖2.8所示:圖2.8液晶顯示電路本系統(tǒng)顯示是采用液晶顯示器LM016L進行顯示,
LM016L的功能、顯示原
理以及使用方法將會在后文中介紹,P0口是一個地址/數(shù)據(jù)復用的雙向I/O口,當使用P0口訪問外部存儲器和數(shù)據(jù)存儲器時,P0口內(nèi)部已有上拉電阻,當P0口作程序檢驗,輸出指令字節(jié)時,必須外接上拉電阻。LM016L的控制信號RS、
RW、E分別接到單片機的P2.0、P2.1、P2.2。2.2.8程序存儲器擴展電路本系統(tǒng)是采用了一個74LS373鎖存器和一個27512程序存儲器外部擴展組成,其主要的功能就是為了在外部擴展單片機內(nèi)存,使它有足夠的空間存放系統(tǒng)中的程序,而達到使它實現(xiàn)所要得到的功能和應(yīng)用的領(lǐng)域,電路圖如2.9所示:圖2.9程序存儲器擴展電路2.2.9DS18B20溫度傳感器電路圖2.10溫度傳感器電路2.2.10DH11溫濕度傳感器電路圖2.11溫濕度傳感器電路3開發(fā)系統(tǒng)的應(yīng)用3.1LED數(shù)碼管顯示實驗設(shè)計3.1.1硬件電路原理基于電路中C3﹑R1組成復位電路,它的作用是將單片機內(nèi)部特殊的功能寄存器和端口寄存器恢復到原始狀態(tài),和計算機按下重啟鍵的作用是同等的,目的是將所有的程序結(jié)束,使其恢復到初始狀態(tài)。在此,C3﹑R1組成的是上電復位電路,在上電的瞬間是單片機恢復到初始狀態(tài),從內(nèi)部FLASH存儲器的初始狀態(tài)開始執(zhí)行,也就是從程序的0000H位置開始執(zhí)行。EA接Vcc電源,目的是使程序從內(nèi)部FLASH的程序開始執(zhí)行,如果EA引腳接Vss(電源地),則不能先執(zhí)行內(nèi)部FLASH的程序,而先執(zhí)行外外部存儲器的程序,由程序調(diào)用才能訪問內(nèi)部FLASH。X1﹑C1﹑C2組成震蕩電路,和內(nèi)部的震蕩電路共同構(gòu)成單片機工作基準時鐘電路。它含有單片機的數(shù)字電路系統(tǒng)的工作基準,為數(shù)字電路系統(tǒng)穩(wěn)定的時鐘信號。X1為晶振,它的標稱頻率越高,數(shù)字電路系統(tǒng)的工作頻率也就越高。ABCDEFG為7段LED的輸入端口,DP為小數(shù)點,123456為片先信號,當1為高電平時則選中第一個數(shù)碼管,2為高電平時則選中第二個數(shù)碼管,以此類推。利用51最小系統(tǒng),然后用P1.0到P1.5的6個引腳輸出片選信號,P2.0到P2.6的7個引腳輸出數(shù)據(jù)。3.1.2軟件程序設(shè)計LEDBUFEQU30H;為顯示數(shù)據(jù)開辟內(nèi)存單元ORG0000HLJMPMAINORG000BHLJMPTIME0ORG0030HTABLE:DB0C0H,0F9H,0A4H,0B0H,99HDB92H,82H,0F8H,80H,90H;7段數(shù)碼管譯碼表MAIN:MOVSP,#70H ;初始化堆棧MOVLEDBUF,#2 MOVLEDBUF+1,#0 MOVLEDBUF+2,#1 MOVLEDBUF+3,#4 MOVLEDBUF+4,#6 MOVLEDBUF+5,#7 MOVLEDBUF+6,#7 ;寫入要顯示的數(shù)字MOVR0,#LEDBUF ;將ledbuf的首地址給R0MOVDPTR,#TABLE ;將TABLE的首是址給DPTR MOVR2,#06H ;R2作為循環(huán)次數(shù)寄存器 MOVR1,#01H ;R1中放片選信號MOVTMOD,#01H ;定時器0工作在方式1 MOVTH0,#0DFH MOVTL0,#0B0H ;初始代定時器0 SETBTR0 ;開定時器0 SETBEA ;開總中斷 SETBET0 ;開定時器0中斷 SJMP$ ;動態(tài)停機TIME0:DJNZR2,LOOP1 ;循環(huán)6次后回到初始值繼續(xù)循環(huán),小于6次跳到LOOP1 MOVR2,#06H MOVR1,#01H MOVR0,#LEDBUF ;初始化數(shù)據(jù)LOOP1:MOVTH0,#0DFHMOVTL0,#0B0H ;初始化定時器0 MOVA,R1 MOVP1,A RLA MOVR1,A ;將R1中片選信號輸入P1并且使其數(shù)據(jù)左移一位 MOVA,@R0 MOVCA,@A+DPTR MOVP2,A INCR0 ;通過查表將ledbuf中數(shù)據(jù)送往P2 RETI END3.2流水燈開關(guān)控制設(shè)計3.2.1硬件電路原理電路中C3﹑R1組成復位電路,它的作用是將單片機內(nèi)部特殊的功能寄存器和端口寄存器恢復到原始狀態(tài),和計算機按下重啟鍵的作用是同等的,目的是將所有的程序結(jié)束,使其恢復到初始狀態(tài)。在此,C3﹑R1組成的是上電復位電路,在上電的瞬間是單片機恢復到初始狀態(tài),從內(nèi)部FLASH存儲器的初始狀態(tài)開始執(zhí)行,也就是從程序的0000H位置開始執(zhí)行。EA接Vcc電源,目的是使程序從內(nèi)部FLASH的程序開始執(zhí)行,如果EA引腳接Vss(電源地),則不能先執(zhí)行內(nèi)部FLASH的程序,而先執(zhí)行外外部存儲器的程序,由程序調(diào)用才能訪問內(nèi)部FLASH。X1﹑C1﹑C2組成震蕩電路,和內(nèi)部的震蕩電路共同構(gòu)成單片機工作基準時鐘電路。它含有單片機的數(shù)字電路系統(tǒng)的工作基準,為數(shù)字電路系統(tǒng)穩(wěn)定的時鐘信號。X1為晶振,它的標稱頻率越高,數(shù)字電路系統(tǒng)的工作頻率也就越高。如圖2-8所示流水燈模塊包含8個LED燈接P2口,采用低電平有效,共陽極連接,為防止二極管擊穿,在每個二極管中串接了1K的限流電阻。因此,LED燈低電平點亮。P1口接8個SW開關(guān)控制8個流水燈。在編程軟件的配合下,要求實現(xiàn)如下指示燈/控制功能:程序啟動后,8個發(fā)光二極管先整體閃爍3次(即亮-暗-亮-暗-亮-暗-亮-暗,間隔時間以肉眼可觀察到為準),然后根據(jù)開關(guān)狀態(tài)控制對應(yīng)發(fā)光二極管發(fā)亮燈狀態(tài),即開關(guān)閉合相應(yīng)燈亮,開關(guān)斷開相應(yīng)燈滅,直至停止程序運行。3.2.2軟件程序設(shè)計(1)軟件編程原理為:1)8只發(fā)光二極管整體閃爍3次亮燈:向P2口送入數(shù)值0;滅燈:向P2口送入數(shù)值0FFH;閃爍3次:循環(huán)3次;閃爍快慢:由軟件延時時間決定。2)根據(jù)開關(guān)狀態(tài)控制燈亮和燈滅開關(guān)控制燈:將P1口(即開關(guān)狀態(tài))內(nèi)容送入P2口;無限持續(xù):無條件循環(huán)。(2)流程圖如下圖所示:圖3.1主程序圖3.2延時子程序程序編碼:MOVR5,#3LOOP1:MOVP2,#0ACALLDELAYMOVP2,#0FFHACALLDELAYDJNZR5,LOOP1LOOP2:MOVP2,P1SJMPLOOP2DELAY:MOVR0,#100DEL0:MOVR1,#50DEL1:MOVR2,#25DEL2:DJNZR2,DEL2DJNZR1,DEL1DJNZR0,DEL0RETEND3.3可控制數(shù)字音樂盒設(shè)計主要由單片機控制系統(tǒng)、行列式鍵盤、液晶顯示屏、內(nèi)存外部擴充電路、復位電路等組成。
單片機AT89S51是本系統(tǒng)的核心,它主要負責控制各個部分協(xié)調(diào)工作。在其外圍接上:復位電路、數(shù)碼管、按鈕及揚聲器。元件為:晶振X1、電容、電阻、揚聲器、4*4行列式鍵盤、74LS373鎖存器、27C512外部程序存儲器擴展、LM016L液晶顯示屏。硬件電路中用P1.0~P1.7控制按鍵,其中P1.0~P1.3掃描行,P1.4~P1.7掃描列,用P2.0~P2.2作為LCD的RS,R/W,E的控制信號。用P0.0~P0.7作為LCD的D0~D7的控制信號。用P3.7口控制蜂鳴器,電路為12MHZ晶振頻率工作,起振電路中C1,C2均為30pf。將P0口作為74LS373鎖存器的輸入以及27C512的數(shù)據(jù)輸入口,鎖存器輸出至27C512的低八位地址口,將P2口作為27C512高八位地址口,27C512的控制信號OE/VPP接至單片機的PSEN,實現(xiàn)片外ROM的讀寫控制。
3.3.1硬件電路原理本音樂發(fā)生器是用單片機來設(shè)計制作完成,其功能的實現(xiàn)主要通過軟件編程來完成,
AT89C51單片機片內(nèi)帶有4KB和外部程序存儲器擴展的256K的內(nèi)存,并且允許在系統(tǒng)內(nèi)改寫或用編程器編程。該音樂發(fā)生器的效率較高,其誤差主要由晶振自身的誤差所造成。存儲歌曲是采用的外部擴展,4*4行列式鍵盤來實現(xiàn)的,按鍵將單片機I/0
口的電平拉低,單片機檢測到I/O口電平為0時,判斷并存儲鍵值。并自動跳轉(zhuǎn)至相應(yīng)曲號的標號處執(zhí)行代碼。顯示采用的是液晶顯示屏LM016L,顯示穩(wěn)定清晰,并且能顯示多個信息,當片內(nèi)4K的程序存儲器存滿后,自動跳轉(zhuǎn)到片外256K程序存儲器繼續(xù)存儲。
3.3.2播放音樂的原理發(fā)音原理:播放一段音樂需要的是兩個元素,一個是音調(diào),另一個是音符。首先要了解對應(yīng)的音調(diào),音調(diào)主要由聲音的頻率決定,同時也與聲音強度有關(guān)。對一定強度的純音,音調(diào)隨頻率的升降而升降;對一定頻率的純音、低頻純音的音調(diào)隨聲強增加而下降,高頻純音的音調(diào)卻隨強度增加而上升。另外,音符的頻率有所不同?;谏厦娴膬?nèi)容,這樣就對發(fā)音的原理有了一些初步的了解。
音符的發(fā)音主要靠不同的音頻脈沖。利用單片機的內(nèi)部定時器/計數(shù)器0,使其工作在模式1,定時中斷,然后控制P3.0引腳的輸出音樂。只要算出某一音頻的周期(1/頻率),然后將此周期除以2,即為半周期的時間,利用定時器計時這個半周期時間,每當計時到后就將輸出脈沖的I/O反相,然后重復計時此半周期時間再對I/O反相,就可在I/O腳上得到此頻率的脈沖。
3.3.3音符頻率的產(chǎn)生
(1)音符及定時器初始值:
例如:中音1(do)的音頻=523HZ,周期T=1/523s=1912s
定時器/計數(shù)器0的定時時間為:T/2=1912/2s=956s
定時器956s的計數(shù)值=定時時間/機器周期=956s/1s=956(時鐘頻率=12MHZ)
裝入T0計數(shù)器初值為65536-956=64580
表3.3
C調(diào)各音符頻率與計數(shù)初值T的對照表
音符頻率(HZ)/初值(us)音符頻率(HZ)/初值(us)低1DO262/63627中1DO523/64580高1DO1042/65056低2RE294/63835中2RE589/64687高2RE1245/65134低3M330/64021中3M661/64780高3M1318/65157低4FA350/64107中4FA700/64822高4FA1397/65178低5SO393/64264中5SO786/64900高5SO1568/65217低6LA441/64402中6LA882/64969高6LS1760/65252低7SI495/64526中7SI990/65031高7SI1967/65282將64580裝入T0寄存器中,啟動T0工作后,每計數(shù)956次時將產(chǎn)生溢出中斷,進入中斷服務(wù)時,每次對P3.0引腳的輸出值進行取反,就可得到中音DO(523HZ)的音符音頻。將51單片機內(nèi)部定時器工作在計數(shù)器模式1下,改變計數(shù)初值TH0,TL0以產(chǎn)生不同的頻率。表3.3是C調(diào)各音符頻率與計數(shù)初值T的對照表。(2)音符、音符編碼及定時器初始值:
為了產(chǎn)生音符,必須求出音符低音5—高音5的計數(shù)初值。例如C調(diào)的低1DO的THTL=65536-50000/262=63627,中音DO的THTL=65536-500000/523=64580,高音DO的THTL=65536-500000/1042=65056。為了方便寫譜,對其進行簡單的編碼,在編程時,根據(jù)音符編碼查找對應(yīng)的計數(shù)初值。比如說音樂是C調(diào)的,那么出現(xiàn)低音的5SO,直接將代碼寫為1;出現(xiàn)低音6LA,直接寫一個2的代碼;出現(xiàn)低音7SI,直接寫一個3代碼。表3.4是音符編碼表音符音符編碼音符音符編碼不發(fā)音0低5SO1低6LA2低7SI3中1DO4中2RE5中3M6中4FA7中5SO8中6LA9中7SIA高1DOB高2REC高3MD高4FAE高5SOF高6LAG(3)節(jié)拍頻率的產(chǎn)生
音樂中的節(jié)拍用延時時間產(chǎn)生。例如,1拍=0.4s,1/4拍=0.1s,以此類推。假設(shè)1/4拍執(zhí)行一次延時程序,則1/2拍就執(zhí)行兩次延時程序,所以只要求出1/4拍的延時時間,其余節(jié)拍就是它的倍數(shù)。為了方便,將節(jié)拍數(shù)也進行了編碼,并且計算了樂譜節(jié)拍編程時的延時時間,如表3.5和表3.6所示。表3.5節(jié)拍數(shù)編碼表按1/4拍為一個延時時間的節(jié)拍編碼與節(jié)拍對應(yīng)的表按與節(jié)拍對應(yīng)的表1/8拍為一個延時時間的節(jié)拍編碼節(jié)拍編碼節(jié)拍節(jié)拍編碼節(jié)拍節(jié)拍編碼節(jié)拍節(jié)拍編碼節(jié)拍11/466/411/866/822/488/422/888/833/4A10/433/8A10/844/4C12/444/8C12/855/4F15/455/8
表3.6樂譜節(jié)拍編程時的時間延時表
樂譜節(jié)拍1/4拍的延時時間樂譜節(jié)拍1/8拍的延時時間4/4125ms4/462ms3/4187ms3/494ms2/4250ms2/4125ms音符編碼和節(jié)拍編碼完成后,在編程時,每個音符占一個字節(jié),高四位是音符編碼,低四位是節(jié)拍編碼。
3.3.4
軟件程序設(shè)計
本設(shè)計采用了自定下下的設(shè)計流程,即在編制一個程序時,先考慮程序的總體結(jié)構(gòu)而忽略一些細節(jié)問題,然后逐步的一步一步的細化,直至用程序語言完全描述每一個細節(jié)為止。主要程序流程有:主程序、判斷有無按鍵子程序、鍵盤掃描子程序、顯示鍵號/歌曲號子程序、開機畫面子程序、按鍵值播放歌曲子程序、播放時間初始化子程序、液晶顯示屏寫指令子程序、液晶顯示屏寫數(shù)據(jù)、字符串顯示子程序播放時間顯示子程序、播放歌曲子程序、播放時間更新子程序。程序中使用了兩個定時中斷,定時中斷0用于產(chǎn)生整個音程的頻率,以便驅(qū)動揚聲器。定時器T1用于刷新播放時間,當發(fā)生一秒定時中斷時,將秒加一,達到60秒時,將分加一,達到60分時,將時加一。程序設(shè)置了溢出處理,即當時間為23:59:59時,自動將時間更新為00:00:00。程序的總體流程是當P1由按鍵按下時,讀鍵盤,并儲存鍵值,若為F鍵則通過查表的方式,調(diào)用字符串顯示子程序顯示開機畫面,同時用查表的方式求出鍵號的ASCII值,并調(diào)用顯示鍵號/曲號自稱序,將鍵號顯示出來。若為1-A,程序根據(jù)儲存的鍵號,將相應(yīng)歌曲的表頭地址賦給DPTR,取出曲譜,判斷是否為休止符,通過查表的方式將表中的定時器初值裝入定時器T0,在定時中斷0里面,重裝初值,將輸出口取反,完成發(fā)聲。本設(shè)計中,每發(fā)一個調(diào),調(diào)用一個30MS的延時,一次當做曲譜的節(jié)拍碼。在此過程中若有功能鍵按下,將當前歌曲的表頭地址加513/減513或等待。于此同時調(diào)用播放時間初始化子程序,顯示00:00:00,裝定時器T1的初值,準備更新播放時間。程序流程圖如圖3.7和3.8所示:3.8音樂子程序圖圖3.7音樂盒主程序流程圖3.4太陽能水溫水位控制設(shè)計3.4.1硬件電路原理本實驗利用單片機采集溫度,溫度值精確到小數(shù)點一位,用4位數(shù)碼管顯示溫度值,設(shè)置三個按鍵調(diào)整報警溫度值,當溫度超出所設(shè)定的上下限范圍時,蜂鳴器開始報警。單單片機復位電路報警電路時鐘振蕩溫度傳感器LED顯示蜂鳴器報警水位傳感器按鍵電路圖3.9總體設(shè)計框圖(1)單片機最小系統(tǒng)電路圖3.10單片機最小系統(tǒng)1)單片機9腳接復位電路,可按復位按鈕S1給單片機復位。2)晶振采用12MHZ。3)由于單片機只訪問片內(nèi)FlashROM并執(zhí)行內(nèi)部程序存儲器中的指令,因此單片機的31腳接高電平VCC。(2)DS18B20測溫電路圖3.11DS18B20電路DS18B20的1腳接地,2腳數(shù)據(jù)端接單片機的P3.4,3腳接VCC,為了確保DS18B20工作可靠,2腳要接10K的上拉電阻。(3)報警電路圖3.12蜂鳴器電路本實驗中采用蜂鳴器報警,由于單片機輸出電流較小,所以用三極管9013驅(qū)動蜂鳴器發(fā)出聲音。(4)四位數(shù)碼管顯示電路圖3.13數(shù)碼管顯示電路4位數(shù)碼管為共陽管,由于單片機輸出電流比較小,故用4個PNP型的三極管9015來驅(qū)動數(shù)碼管。單片機輸出低電平時三極管導通,使數(shù)碼管的4各公共端1、4、5和12腳為高電平,此時數(shù)碼管的數(shù)據(jù)端輸入低電平后數(shù)碼管被點亮,120歐電阻R12到R19為三極管的限流電阻。(5)報警溫度設(shè)定按鍵電路圖3.14按鍵電路報警溫度用按鍵S2,S3,S4來設(shè)置,S2為調(diào)整鍵,按一次可調(diào)整報警上限溫度值,按兩次可調(diào)整報警下限溫度值,按三次數(shù)碼管恢復到正常溫度顯示。S5是緊急呼叫按鍵。(6)水位監(jiān)測電路圖3.14水位監(jiān)測電路水位用三根導線,一個是電源負極,當導線接觸到水后,由于水的導電性,使得兩外兩根導線也是低電平,從而使三極管9012導通,P1.3和P1.4是低電平,當兩根導線不接觸水的時候,輸出是高電平。(7)水位報警電路圖3.15水位報警電路當水位比較低的時候,紅燈亮,水位在中間的時候,紅燈和黃燈亮,當水位慢的時候三個燈都亮,出故障的時候三個燈閃。3.4.2軟件程序設(shè)計為了保證實驗的正常運行,當系統(tǒng)開機后,即單片機上電復位開始運行后,需要對硬件各部分進行自動檢查,如果正常,系統(tǒng)就可以繼續(xù)往下執(zhí)行,如果不正常就必須出錯報警,以便人工修正,為實驗的正常運行作好準備。主程序流程圖如3.16:圖3.16主程序流程圖圖3.17讀溫度流程圖3.5室內(nèi)溫濕度測量3.5.1硬件電路原理主要由4個大的模塊構(gòu)成,分別是主控模塊、傳感器模塊、LCD液晶顯示模塊及報警模塊,其中主控模塊是此次畢業(yè)設(shè)計的核心模塊,主要是指STC89C52芯片,它控制整個系統(tǒng)的運行,利用其各個口分別控制其他模塊,使其他模塊能夠成為一個整體,實現(xiàn)功能的需要;報警模塊主要指將蜂鳴器接入單片機電路。通過對時時溫度的檢測,并給定所需要的溫度區(qū)間,即給定上下限值,實現(xiàn)越限報警;傳感器模塊用于實驗室實時溫濕度的檢測、由于DHT11的數(shù)字一體性,集成了模數(shù)轉(zhuǎn)換等模塊。直接接單片機即可。LCD液晶顯示模塊同樣接入單片機,完成對單片機處理后的數(shù)據(jù)進行顯示。圖3.18整體原理圖3.5.2軟件程序設(shè)計本次實驗主要是能夠?qū)崟r顯示出當前確切的溫濕度,并且在高于預(yù)設(shè)值的時候能夠發(fā)出蜂鳴。一旦接通電源,工作指示燈常亮,蜂鳴器首先蜂鳴,表示系統(tǒng)正常運行。接著LCD初始化,采用八位的數(shù)據(jù)端口,兩行顯示,其中第一行顯示的濕度預(yù)設(shè)值,根據(jù)鍵盤我們可以加減數(shù)值,第二行顯示的是實時的溫濕度值,在程序設(shè)計中,分別定義溫濕度參數(shù),根據(jù)數(shù)據(jù)轉(zhuǎn)換過來的數(shù)值,判斷是否超過了預(yù)設(shè)值,1602顯示當前的溫濕度值,傳輸數(shù)據(jù)正常,再次循環(huán)判斷,如果沒有超過預(yù)設(shè)值,蜂鳴器不會蜂鳴,1602正常顯示,也同樣再次循環(huán)。
按鍵說明:從左邊第一個起,減鍵、加鍵、設(shè)置鍵。報警方式:蜂鳴器和發(fā)光二極管產(chǎn)生聲光報警。(1)當DHT11測出來的溫度大于設(shè)定的溫度上限值或小于溫度下限值時,蜂鳴器發(fā)出報警聲同時紅色的指示燈也會產(chǎn)生光報警并LCD1602液晶顯示溫度報警信息,當DHT11測出來的濕度大于設(shè)定的濕度上限值或小于濕度下限值時會產(chǎn)生聲光報警并LCD1602液晶顯示溫度報警信息。(2)可通過按鍵設(shè)置溫度的上下限報警值、濕度的上下限報警值,并具有掉電保存功能。(3)第一次按鍵下設(shè)置鍵是設(shè)置溫度上限報警值,第二次按鍵下設(shè)置鍵是設(shè)置溫度下限報警值,第三次按鍵下設(shè)置鍵是設(shè)置濕度上限報警值,第四次按鍵下設(shè)置鍵是設(shè)置濕度下限報警值,再按加減鍵可以設(shè)置當前的參數(shù)。程序流程圖:圖3.19主程序流程圖3.6交通燈設(shè)計3.6.1硬件電路原理交通燈硬件電路如圖3.10所示。本電路主要由單片機系統(tǒng)、紅外監(jiān)視電路、報警電路及LED數(shù)碼管、發(fā)光二極管顯示電路組成。這個交通燈電路在普通交通燈電路的基礎(chǔ)上,增加了車流量(人流量)檢測電路。F1、J1組成的紅外檢測電路為南、北方向的車流量(人流量)檢測,F(xiàn)2、J2為東、西方向車流量(人流量)檢測。LED數(shù)碼管U1為流量記錄。當東、西方向為綠燈,南、北方向為紅燈時,如果有車(人)經(jīng)過F2、J2組成的紅外檢測電路前方,紅外接收管J2接收到折射回來的紅外光,使89C51的P3.2口成為低電位,這時,在數(shù)碼管U1上就會增加一個流量記錄。若此時有車(人)要南、北方向通過,經(jīng)過F1、J1組成的紅外檢測電路前方時,報警電路就會發(fā)出警報聲,提示車輛(行人)此時禁止通行。圖3.20電路原理圖3.6.2軟件程序設(shè)計由軟件設(shè)置交通燈的初始時間,南北方向通行30秒,東西方向通行20秒,數(shù)碼管采用動態(tài)顯示,P0口送字形碼,P2口送字位選通信號,通過單片機的P1口控制各種信號燈的燃亮與熄滅。采用中斷方式實現(xiàn)按鍵的功能。程序流程圖如圖3.21所示:圖3.21程序流程圖4Dreamweaver軟件4.1Dreamweaver軟件介紹Dreamweaver是Macromedia公司發(fā)布的集網(wǎng)頁設(shè)計、代碼開發(fā)、網(wǎng)站創(chuàng)建和管理于一體的軟件,是當前最流行的網(wǎng)頁設(shè)計軟件。它與同為Macromedia公司出品的Fireworks和Flash一道,被譽為網(wǎng)頁制作三劍客。Dreamweaver與其它同類軟件相比主要有以下優(yōu)點:不生成冗余代碼、方便的代碼編輯、強大的動態(tài)頁面支持、操作簡便、優(yōu)秀的網(wǎng)站管理功能、便于擴展、控制能力強、網(wǎng)站管理制作效率高。(1)不生成冗余代碼??梢暬木W(wǎng)頁編輯器,都要把使用者的操作轉(zhuǎn)換成html代碼。一般的編輯器都會生成大量的冗余代碼,給網(wǎng)頁以后的修改帶來了極大的不方便,同時還增加了網(wǎng)頁文件的大小。Dreamweaver則在使用時完全不生成冗余代碼,避免了諸多麻煩。而且,通過設(shè)置,還可用Dreamweaver清除掉網(wǎng)頁文件原有的冗余代碼。(2)方便的代碼編輯可視化編輯和源代碼編輯都有其長處和短處。有時候,直接用源代碼編輯會很有效。Dreamweaver提供了html快速編輯器和自建的html編輯器,能方便自如的在可視化編輯狀態(tài)和源代碼編輯狀態(tài)間切換。(3)強大的動態(tài)頁面支持Dreamweaver的Behavior能在使用者不懂javascript的情況下,往網(wǎng)頁中加入豐富的動態(tài)效果。Dreamweaver還可精確的對層進行定位,再加上timeline功能,可生成動感十足的動態(tài)層效果。(4)操作簡便(5)優(yōu)秀的網(wǎng)站管理功能在定義的本地站點中,改變文件的名稱、位置,Dreamweaver會自動更新相應(yīng)的超級鏈接。Checkin和Checkout功能可協(xié)調(diào)多個使用者對遠程站點的管理。(6)便于擴展(7)制作效率高(8)網(wǎng)站管理便捷(9)控制能力強不足之處,比如1.效果難一致,難以精確達到與瀏覽器完全一致的顯示效果也就是說您在所見即所得網(wǎng)頁編輯器中制作的網(wǎng)頁放到瀏覽器中是很難完全達到您真正想要的效果,這一點在結(jié)構(gòu)復雜一些的網(wǎng)頁(如分幀結(jié)構(gòu)、動態(tài)網(wǎng)頁結(jié)構(gòu))中便可以體現(xiàn)出來;2.代碼難控制,因為Dreamweaver采用的是非可見代碼編輯器,所以所作出的代碼難以控制。4.2利用Dreamweaver實現(xiàn)實驗系統(tǒng)4.2.1定義本地站點(1)打開Dreamweaver軟件找到管理站點如圖4.1所示:圖4.1步驟1打開管理站點,點擊新建,如圖4.2所示:圖4.2步驟2選擇站點進入界如圖4.3所示:圖4.3步驟3給站點命名,如圖4.4所示:圖4.4步驟4點擊下一步,進入下圖4.5頁面,選擇否,再點擊下一步:圖4.5步驟5遠程服務(wù)器選擇無,再點擊下一步,如圖4.6所示:圖4.6步驟6(7)點選第一項,然后選擇保存位置,再點擊下一步,如圖4.7所示:圖4.7步驟7出現(xiàn)下圖4.8頁面,點擊完成:圖4.8步驟8出現(xiàn)下圖頁面,點擊完成,如圖4.9所示:圖4.9步驟94.2.2搭建站點在定義站點下新建需要的文件夾,在文件家中中新建HTMl頁面。這樣就基本上把站點搭建起來了,如下圖4.10所示:圖4.10步驟104.2.3設(shè)計網(wǎng)頁首先,設(shè)計網(wǎng)頁顯示的框架,構(gòu)思每個頁面放置的內(nèi)容,分析需要的材料。其次,下載需要的材料,合理保存資料,完善站點內(nèi)的文件夾與HTmL文件。然后,逐次設(shè)計每個網(wǎng)頁,在頁面中添加要顯示的內(nèi)容如圖4.11所示,每添加一步按Ctrl—S保存,再按F12網(wǎng)頁顯示,觀察效果。最后,創(chuàng)建連接,使頁面連接在一起,成為一個整體。圖4.11步驟11參考文獻[1]陳大欽.模擬電子技術(shù)基礎(chǔ)(第二版)[M].高等教育出版社
[2]閻石.數(shù)字電子技術(shù)基礎(chǔ)(第五版)[M].高等教育出版社[3]楊志忠.數(shù)字電子技術(shù).高等教育出版社(第二版)[M].2003年
[3]譚浩強.MCS-51單片機應(yīng)用教程[M].清華大學出版社
[4]何立民.MCS-51系列單片機應(yīng)用系統(tǒng)設(shè)計[M].北京:北京航空航天大學出版社,1990.
[5]張友德.單片微型機原理、應(yīng)用與實驗[M].上海:復旦大學出版社,2000.
[6]何立民.單片機應(yīng)用技術(shù)選編(1)[M].北京:北京航空航天大學出版社,1992.
[7]周復三.音樂基礎(chǔ)理論教程[M].山東大學出版社
[8]李軍.單片機高級實例開發(fā)指南[M].北京航空航天大學出版社
[9]歐偉明.單片機原理與應(yīng)用系統(tǒng)設(shè)計[M].電子工業(yè)出版社
[10]江世明.基于proteus的單片機應(yīng)用技術(shù)[M].電子工業(yè)出版社
[11]高麟.單片機語音電路的設(shè)計[J].電子與自動化
,
1995,
05
[12]張毅剛.單片微機原理及應(yīng)用[M].西安電子科技大
[13]何為民.低功耗單片微機系統(tǒng)設(shè)計[M].北京航空航天大學出版社,1994
[14]王瑩.中國單片機市場的理想與現(xiàn)實[J].
電子產(chǎn)品世界
,
1997,
09
[15]馬堅.單片機應(yīng)用開發(fā)中的一個問題──看國外單片機新技術(shù)[J].
電腦開發(fā)與應(yīng)用
,
1995,
(02)
[16]馬殿閣.“單片機網(wǎng)”的設(shè)計[J].微型機與應(yīng)用
,
1991,
12
[17]梁麗潔.馬興兵.基于單片機的簡單數(shù)字采集系統(tǒng)的設(shè)計[J].河北理工大學學報
,
2007,01
[18]清源科技.PROTEL
DXP電路設(shè)計及應(yīng)用教程(第一版)[M].機械工業(yè)出版社.2003.
[19]
MartinPBates.Programming
8-bit
PIC
Microcontrollers
in
C:
with
Interactive
Hardware
Simulation
[M].Newnes,2008
[20]康華光.電子技術(shù)基礎(chǔ)模擬部分(第五版)[M].北京:高等教育出版社,2006.[21]張毅剛,彭喜元.單片機原理及應(yīng)用[M].北京:高等教育出版社,2010.[22]樓順天,周佳社.微機原理與接口技術(shù)[M].北京:科學出版社,2006.[23]康華光.電子技術(shù)基礎(chǔ)數(shù)字部分(第五版)[M].北京:高等教育出版社,2006.[24]王雷,鐘愛琴.AT89系列單片機原理與接口技術(shù).北京航空航天大學,2004.[25]周航慈.單片機程序設(shè)計基礎(chǔ).北京航空航天大學,2003.[26]先鋒工作室.單片機程序設(shè)計實例.清華大學出版社,2003。[27]張友德.單片微型機原理、應(yīng)用與實驗.復旦大學出版社,2000.[28]付家才.單片機控制工程實踐技術(shù).化學工業(yè)出版社,2004.[29]潘永雄.新編單片機原理與應(yīng)用.西安電子科技大學出版社,2003.結(jié)束語通過這幾個月的努力,在以S51單片機為核心控制器的基礎(chǔ)上,對外圍電路進行了設(shè)計,包括液晶顯示模塊、鍵盤模塊、流水燈模塊、蜂鳴器模塊、外部程序存儲器擴展模塊等。針對各個功能模塊開發(fā)相應(yīng)的實驗,通過仿真運行效果正確。由于該系統(tǒng)可以完成單片機各類通用實驗以及各種軟硬件測試,且具有操作簡單,易于讓學生感興趣的特點,在Proteus和Keil組成的虛擬實驗室,可以完成教學課程中的實驗,還能開發(fā)各類電路實驗,激起學生的學習興趣,因此對教學具有一定的實用價值和現(xiàn)實意義。自學可視化的網(wǎng)頁制作,最終可以完成基本的制作,實現(xiàn)實驗系統(tǒng),這個過程讓我深深的體會到,自己會的東西很少,要不斷的學習知識,不斷的充實自己。致謝本論文的選題及研究是在老師的關(guān)懷和指導下完成的。嚴謹?shù)闹螌W態(tài)度,精益求精的工作作風,深深地感染和激勵著我。從最初論文題目的選擇到最終論文的完成老師都始終給予我細心的指導和不懈的支持。在這數(shù)月的時間中,老師不僅在學業(yè)上給我以精心指導,同時還在思想、生活上給我以無微不至的關(guān)懷,在此謹向老師致以誠摯的謝意。感謝在我遇到困難時為我提供幫助的所有同學,正是由于你們的支持,我才能克服一個又一個的困難,直至本文的順利完成,他們對本課題做了不少工作,提出了許多寶貴的建議。感謝學校給我提供的良好的學習環(huán)境,并且提供了充足的圖書資源及電子資源,為我們更好的完成畢業(yè)設(shè)計提供了極大的幫助。最后,向各位悉心指導,認真評閱的老師們致以最崇高的敬意和衷心的感謝。附錄一LED數(shù)碼管顯示仿真圖附錄二流水燈控制仿真圖附錄三音樂盒仿真圖附錄四太陽能水位溫度控制仿真圖附錄五室內(nèi)溫濕度測量仿真圖附錄六交通燈仿真圖附錄六網(wǎng)頁展示圖附錄七程序音樂盒程序RSBITP2.0RWBITP2.1EBITP2.2;********************************************L50MSEQU60HL1MSEQU61HL250MSEQU62HSECEQU65HMINEQU64HHOUEQU63H;*******************************************org0000hljmpmainORG000BHLJMPTT0ORG001BHLJMPT1INTorg1000hmain:;;液晶初始化MOVSP,#70HMOVP0,#01H;清屏CALLENABLEMOVP0,#38H;8位,2行顯示lCALLENABLEMOVP0,#0FH;屏顯on,光標on,閃爍onlCALLENABLEMOVP0,#06H;計數(shù)地址加1,顯示幕onlCALLENABLE;內(nèi)存初始化lcallinitil;key1:lcallkeylcallmoddljmpkey1;鍵盤掃描key:nopnoplcallksjnzk1;有按鍵轉(zhuǎn)到K1lcallkaijilcallSOPxn:ljmpkeyk1:lcallmoddlcallmoddlcallksjnzk2Ljmpkeyk2:movR2,#0feh;讀鍵盤movR4,#00hk3:movA,R2movP1,AmovA,P1JBACC.4,L1;為1跳轉(zhuǎn),第一行無按鍵mova,#00hLJMPlkL1:jbacc.5,L2mova,#04hljmplkL2:JbACC.6,L3MOVA,#08hljmplkL3:jbACC.7,next1mova,#0ch;lk:adda,R4pushacck4:lcalldelay1;若同時有其他按鍵,則等待lcallksjnzk4;movr3,#07hclramovr0,#30hmovr1,#31hmm1:mova,@r1mov@r0,aincr0incr1djnzr3,mm1popaccmov@r0,aRET;next1:incR4;列掃描mova,R2JNBacc.3,n2ljmpn1n2:ljmpkeyn1:rlamovR2,aljmpk3;ks:mova,#0f0h;判斷P1口movP1,anopnopmova,P1cplaanla,#0f0hRET;jnzk2Ljmpkeyk2:movR2,#0fehmovR4,#00hk3:movA,R2movP1,AmovA,P1JBACC.4,L1mova,#00hLJMPlkL1:jbacc.5,L2mova,#04hljmplkL2:JbACC.6,L3MOVA,#08hljmplkL3:jbACC.7,next1mova,#0chlk:adda,R4pushacck4:lcalldelay1lcallksjnzk4movr3,#07hclramovr0,#30hmovr1,#31hmm1:mova,@r1mov@r0,aincr0incr1djnzr3,mm1popaccmov@r0,a;;30H-37H初值為零;initil:movr3,#08hmovr0,#30hm1:mov@r0,#00hincr0djnzr3,m1RET;;顯示;modd:MOVP0,#8EHCALLENABLEmovA,37HmovDPTR,#TABLE3MOVCA,@A+DPTRCALLWRITE2RET;;開機提示字;kaiji:mova,37hcjnea,#0fh,DFFMOVP0,#80H;設(shè)光標地址CALLENABLEMOVDPTR,#TABLE1;寫數(shù)據(jù)CALLWRITE1CALLDELAY10CALLDELAY10CALLDELAY10CALLDELAY10CALLDELAY10mova,37hcjnea,#0fh,DFFMOVP0,#80H;設(shè)光標地址CALLENABLEMOVDPTR,#TABLE5;寫數(shù)據(jù)CALLWRITE1CALLDELAY10CALLDELAY10CALLDELAY10CALLDELAY10CALLDELAY10DFF:RET;;按鍵值播放歌曲;SOP:mova,37hcjnea,#01h,A11LCALLMODDMOV52H,#HIGHTABLE10MOV53H,#LOWTABLE10LCALLINITILE2lcallMAIN0A11:CJNEA,#02H,A22LCALLMODDMOV52H,#HIGHTABLE20MOV53H,#LOWTABLE20LCALLINITILE2lcallMAIN0A22:CJNEA,#03H,A33LCALLMODDMOV52H,#HIGHTABLE30MOV53H,#LOWTABLE30LCALLINITILE2lcallMAIN0A33:CJNEA,#04H,A44LCALLMODDMOV52H,#HIGHTABLE40MOV53H,#LOWTABLE40LCALLINITILE2lcallMAIN0A44:CJNEA,#05H,A55LCALLMODDMOV52H,#HIGHTABLE50 MOV53H,#LOWTABLE50LCALLINITILE2LCALLMAIN0A55:CJNEA,#06H,A66LCALLMODDMOV52H,#HIGHTABLE60MOV53H,#LOWTABLE60LCALLINITILE2lcallMAIN0A66:CJNEA,#07H,AAALCALLMODDMOV52H,#HIGHTABLE70 MOV53H,#LOWTABLE70LCALLINITILE2lcallMAIN0AAA:RET;******************************************INITILE2:MOVL50MS,#20MOVL1MS,#00HMOVL250MS,#00HMOVSEC,#00HMOVMIN,#00HMOVHOU,#00HMOVA,HOUMOVB,#10DIVABADDA,#30H;將BCD嗎轉(zhuǎn)化為ASIIC碼MOVP0,#0C8H;顯示小時十位CALLENABLECALLWRITE2MOVA,BADDA,#30HMOVP0,#0C9H;顯示小時個位CALLENABLECALLWRITE2MOVA,#3AHMOVP0,#0DH;顯示冒號CALLENABLECALLWRITE2MOVA,MINMOVB,#10DIVABADDA,#30HMOVP0,#0CBH;顯示分十位CALLENABLECALLWRITE2MOVA,BADDA,#30HMOVP0,#0CCH;顯示分個位CALLENABLECALLWRITE2MOVA,#3AHMOVP0,#0CDH;顯示冒號CALLENABLECALLWRITE2MOVA,SECMOVB,#10DIVABADDA,#30HMOVP0,#0CEH;顯示秒十位CALLENABLECALLWRITE2MOVA,BADDA,#30HMOVP0,#0CFH;顯示秒個位CALLENABLECALLWRITE2MOVP0,#0C0H;INITILE2:MOVL50MS,#20MOVL1MS,#00HMOVL250MS,#00HMOVSEC,#00HMOVMIN,#00HMOVHOU,#00HMOVA,HOUMOVB,#10DIVABADDA,#30HMOVP0,#0C8HCALLENABLECALLWRITE2MOVA,BADDA,#30HMOVP0,#0C9HCALLENABLECALLWRITE2MOVA,#3AHMOVP0,#0DHCALLENABLECALLWRITE2MOVA,MINMOVB,#10DIVABADDA,#30HMOVP0,#0CBHCALLENABLECALLWRITE2MOVA,BADDA,#30HMOVP0,#0CCH;顯示分個位;顯示冒號;顯示秒十位C;顯示秒個位;設(shè)光標地址;寫數(shù)據(jù)設(shè)光標地址;寫數(shù)據(jù);*********************************************寫指令;**********************************************寫數(shù)據(jù);未到字符串末尾繼續(xù);**********************************************;TABCALLENABLECALLWRITE2MOVA,#3AHMOVA,52HINCAMOV52H,AMOVA,53HINCAMOV53H,AMOVA,36HINCAMOV37H,ALJMPTTM2TTM14:CJNEA,#0DH,TTM2MOVA,52HDECAMOV52H,AMOVA,53H DECAMOV53H,AMOVA,36HDECAMOV37H,A;TTM2:RET;***************************************************;定時器中斷子程序0;***************************************************;***************************************************;定時器中斷子程序1;***************************************************;****************每秒種時鐘刷新秒顯示一次;顯示秒十位;顯示秒個位;*************************************每分鐘刷新分顯示一次;顯示分十位;顯示分個位;**************************************每小時刷新小時顯示一次;將嗎轉(zhuǎn)化為碼;顯示小時十位;顯示小時個位;*************************************溢出處理TT0:PUSHACCPUSHPSWMOVTL0,20HMOVTH0,21HCPLP3.7POPPSWPOPACCRETIT1INT:MOVTH1,#3cHMOVTL1,#0b0HDJNZL50MS,X4MOVL50MS,#20SECSET:MOVA,SECMOVB,#10MOVL1MS,#00HMOVL250MS,#00HMOVSEC,#00HMOVMIN,#00HMOVHOU,#00HRETIDELAY30:MOVR7,#2W2:MOVR4,#125W3:MOVR3,#248DJNZR3,$DJNZR4,W3DJNZR7,W2DJNZR1,DELAY30RETDELAY10:SETBRS1MOVR4,#125CYS:MOVR3,#248DJNZR3,$DJNZR4,CYSRETTABLE00:DW64580,64684,64777,64820DW64898,64968,65030,64260DW64400,64524,65058,63835,64021;;第一首《精忠報國》;TABLE10:DB66H,52H,36H,22H,12H,12H,22H,32H,98H,84H,82H,92H,14H,12H,22HDB32H,52H,22H,42H,38H,66H,52H,36H,22H,12H,22H,22H,32H,98HDB24H,22H,32H,54H,52H,32H,92H,12H,92H,82H,98H,66H,52H,36H,22HDB12H,12H,22H,32H,98H,84H,82H,92H,14H,12H,22H,32H,52H,22H,42H,38HDB66H,52H,36H,22H,12H,22H,22H,32H,98H,24H,22H,32H,54H,52H,32HDB22H,12H,92H,82H,98H,14H,24H,34H,44H,64H,0B4H,64H,32H,52HDB62H,0B2H,62H,52H,38H,24H,22H,32H,54H,52H,62H,52H,32H,32H,22H,38HDB64H,0B4H,64H,32H,52H,62H,0B2H,62H,52H,38H,22H,22H,22H,32H,52H,52HDB52H,62H,7FH,74H,04H,58H,6FHDB00;;第二首《月亮代表我的心》;TABLE20:DB02H,82HDB16H,32H,54H,02H,52HDB0A6H,32H,54H,02H,52H DB64H,74H,0B6H,64HDB52H,5CH,32H,22H DB16H,12H,14H,32H,22HDB16H,12H,14H,22H,32HDB26H,12H,94H,22H,32HDB2CHDB32H,52HDB36H,22H,14H,54HDB0ACH,92H,0A2HDB96H,0A2H,96H,82HDB3CH,54HDB36H,22H,14H,54HDB0ACH,92H,0A2HDB16H,12H,14H,22H,32HDB2CH,02H,82HDB16H,32H,56H,12HDB0A6H,32H,56H,52HDB66H,72H,0B6H,62HDB62H,52H,58H,32H,22HDB16H,12H,14H,32H,22HDB16H,12H,14H,22H,32HDB26H,92H,0A4H,12H,22HDB1CHDB00;;第三首《看我七十二變》;TABLE30:DB0d4H,84H,94H,82H,92HDB12H,22H,82H,92H,02H,92H,82H,0d2HDB82H,92H,14H,84H,02H,0d1H,0d1HDB0c2H,0d2H,84H,0d2H,0d2H,82H,82HDB84H,82H,82H,94H,82H,0d2HDB82H,82H,82H,92H,02H,82H,82H,0d2HDB0c4H,84H,0d4H,92H,0d2HDB82H,0d2H,82H,92H,98HDB04H,94H,88HDB04H,94H,88HDB04H,94H,88HDB04H,94H,88H,04HDB32H,32H,22H,12H,02H,92H,12H,92HDB32H,32H,22H,12H,02H,9
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年金蔥燈項目商業(yè)計劃書
- 2025-2030年金工用研磨砂帶項目投資價值分析報告
- 2025-2030年車用電泵項目投資價值分析報告
- 2024年心理咨詢師備考心理狀態(tài)試題及答案
- 2025-2030年超市自選陳列柜項目投資價值分析報告
- 政策動態(tài)解讀心理咨詢師試題及答案
- 2024年心理咨詢師考試調(diào)適策略試題及答案
- 2025-2030年計算器文具盒項目商業(yè)計劃書
- 理療師臨床技能考題及答案
- 心理咨詢師考試口頭表達技巧試題及答案
- 涉農(nóng)(農(nóng)、林、水)地方標準宣貫推廣實施方案(試行)
- 新版2023年國家GCP考試題200道含答案
- 幼兒園優(yōu)質(zhì)公開課:小班數(shù)學游戲《過生日》課件
- 《刷子李》基于標準的教學設(shè)計
- 不同碳源發(fā)酵紅茶菌飲料的研究
- 成人霧化吸入護理-2023中華護理學會團體標準
- 2023年新版新漢語水平考試五級HSK真題
- 小學體育《飲水有益健康》教學課件1
- 小學英語三年級英語繪本閱讀公開課Dear-zoo優(yōu)質(zhì)課件
- JJG 141-2013工作用貴金屬熱電偶
- GB/T 30799-2014食品用洗滌劑試驗方法重金屬的測定
評論
0/150
提交評論