基于單片機(jī)的數(shù)字頻率計(jì)的設(shè)計(jì)課程設(shè)計(jì).doc
《基于單片機(jī)的數(shù)字頻率計(jì)的設(shè)計(jì)課程設(shè)計(jì).doc》由會員分享,可在線閱讀,更多相關(guān)《基于單片機(jī)的數(shù)字頻率計(jì)的設(shè)計(jì)課程設(shè)計(jì).doc(20頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
1、單片機(jī)課程設(shè)計(jì)目錄1頻率計(jì)的概要和發(fā)展動態(tài)12 單片機(jī)介紹12.1單片機(jī)的簡介和發(fā)展12.2 AT89C51的原理22.2.1主要特性32.2.2管腳說明32.2.3振蕩器特性42.2.4芯片擦除43 仿真軟件protuse的介紹54系統(tǒng)模塊設(shè)計(jì)65硬件部分65.1整形電路65.2控制電路75.3顯示電路85.3.1 LCD1602引腳85.3.2 LCD1602的指令介紹85.4總體電路圖96仿真結(jié)果116.1仿真結(jié)果116.2結(jié)果分析117 結(jié)論118參考文獻(xiàn)12附錄121 keil C51軟件介紹122 程序流程圖133系統(tǒng)源程序14191頻率計(jì)的概要和發(fā)展動態(tài)在電子技術(shù)中,頻率作為基本
2、的參數(shù)之一,它與許多電參量的測量方案、測量結(jié)果密切相關(guān),因此,頻率的測量十分的重要。在許多情況下,要對信號的頻率進(jìn)行精確測量,就要用到數(shù)字頻率計(jì)。數(shù)字頻率計(jì)作為一種基礎(chǔ)測量儀器,它被用來測量信號(方波、正弦波、鋸齒波等)頻率,并且用十進(jìn)制顯示測量結(jié)果。它具有測量精度高、測量省時、使用方便等特點(diǎn)。隨著微電子技術(shù)和計(jì)算機(jī)技術(shù)的不斷發(fā)展,單片機(jī)被廣泛應(yīng)用到大規(guī)模集成電路中,使得設(shè)計(jì)具有很高的性價比和可靠性。所以,以單片機(jī)為核心的簡易數(shù)字頻率計(jì)設(shè)計(jì),改善了傳統(tǒng)的頻率計(jì)的不足,充分體現(xiàn)了新一代數(shù)字頻率計(jì)的優(yōu)越性。2 單片機(jī)介紹2.1單片機(jī)的簡介和發(fā)展單片機(jī)微型計(jì)算機(jī)是微型計(jì)算機(jī)的一個重要分支,也是頗具生
3、命力的機(jī)種。單片機(jī)微型計(jì)算機(jī)簡稱單片機(jī),特別適用于控制領(lǐng)域,故又稱為微控制器。 通常,單片機(jī)由單塊集成電路芯片構(gòu)成,內(nèi)部包含有計(jì)算機(jī)的基本功能部件:中央處理器、存儲器和I/O接口電路等。因此,單片機(jī)只需要和適當(dāng)?shù)能浖巴獠吭O(shè)備相結(jié)合,便可成為一個單片機(jī)控制系統(tǒng)。 單片機(jī)經(jīng)過1、2、3、3代的發(fā)展,正朝著多功能、高性能、低電壓、低功耗、低價格、大存儲容量、強(qiáng)I/O功能及較好的結(jié)構(gòu)兼容性方向發(fā)展。其發(fā)展趨勢不外乎以下幾個方面:1、多功能 單片機(jī)中盡可能地把所需要的存儲器和I/O口都集成在一塊芯片上,使得單片機(jī)可以實(shí)現(xiàn)更多的功能。比如A/D、PWM、PCA(可編程計(jì)數(shù)器陣列)、WDT(監(jiān)視定時器-看
4、家狗)、高速I/O口及計(jì)數(shù)器的捕獲/比較邏輯等。 有的單片機(jī)針對某一個應(yīng)用領(lǐng)域,集成了相關(guān)的控制設(shè)備,以減少應(yīng)用系統(tǒng)的芯片數(shù)量。例如,有的芯片以51內(nèi)核為核心,集成了USB控制器、SMART CARD接口、MP3解碼器、CAN或者I*I*C總線控制器等,LED、LCD或VFD顯示驅(qū)動器也開始集成在8位單片機(jī)中。2、高效率和高性能 為了提高執(zhí)行速度和執(zhí)行效率,單片機(jī)開始使用RISC、流水線和DSP的設(shè)計(jì)技術(shù),使單片機(jī)的性能有了明顯的提高,表現(xiàn)為:單片機(jī)的時鐘頻率得到提高;同樣頻率的單片機(jī)運(yùn)行效率也有了很大的提升;由于集成度的提高,單片機(jī)的尋址能力、片內(nèi)ROM(FLASH)和RAM的容量都突破了以
5、往的數(shù)量和限制。 由于系統(tǒng)資源和系統(tǒng)復(fù)雜程度的增加,開始使用高級語言(如C語言)來開發(fā)單片機(jī)的程序。使用高級語言可以降低開發(fā) 難度,縮短開發(fā)周期,增強(qiáng)軟件的可讀性和可移植性,便于改進(jìn)和擴(kuò)充功能。3、低電壓和低功耗 單片機(jī)的嵌入式應(yīng)用決定了低電壓和低功耗的特性十分重要。由于CMOS等工藝的大量采用,很多單片機(jī)可以在更低的電壓下工作(1.2V或0.9V),功耗已經(jīng)降低到uA級。這些特性使得單片機(jī)系統(tǒng)可以在更小電源的支持下工作更長的時間。4、低價格 單片機(jī)應(yīng)用面廣,使用數(shù)量大,帶來的直接好處就是成本的降低。目前世界各大公司為了提高競爭力,在提高單片機(jī)性能的同時,十分注意降低其產(chǎn)品的價格。在國內(nèi),單片
6、機(jī)已普遍的應(yīng)用電子系統(tǒng)的中,其中,以C語言為編程基礎(chǔ),結(jié)合單片機(jī)典型模塊的設(shè)計(jì)已經(jīng)開發(fā)出了許多應(yīng)用系統(tǒng),如單片機(jī)的串口通信、定時/計(jì)數(shù)器、看門狗、中斷、矩陣鍵盤輸入、ADC、DAC、紅外遙控接收、電動機(jī)控制、LED顯示器等。由于單片機(jī)的功能強(qiáng)、體積小、功耗低、價格便宜、工作可靠、使用方便等優(yōu)點(diǎn),使得基于單片機(jī)的數(shù)字頻率計(jì)得到廣泛的應(yīng)用。現(xiàn)在國際國內(nèi)對這類設(shè)計(jì)的開發(fā)與研究具有實(shí)用性,借助軟件程序控制實(shí)現(xiàn),使得頻率計(jì)的硬件結(jié)構(gòu)簡單,具有良好的性價比和可靠性。同時,該設(shè)計(jì)又在不斷地深入與發(fā)展,以適應(yīng)更高進(jìn)度的要求。現(xiàn)在雖然單片機(jī)的品種繁多,各具特色,但仍以MCS-51為核心的單片機(jī)占主流,兼容其結(jié)構(gòu)
7、和指令系統(tǒng)的有PHILIPS公司的產(chǎn)品,ATMEL公司的產(chǎn)品和中國臺灣的WinBond系列單片機(jī)。以8031為核心的單片機(jī)占據(jù)了半壁江山,在一定的時期內(nèi),這種情形將得以延續(xù),將不存在某個單片機(jī)一統(tǒng)天下的壟斷局面,走的是依存互補(bǔ),相輔相成、共同發(fā)展的道路。2.2 AT89C51的原理AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲器(FPEROM-Falsh Programmable and Erasable Read Only Memory)的低電壓,高性能CM0S8處理器,俗稱單片機(jī)。該器件采用ATMEL高精度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由
8、于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。2.2.1主要特性與MCS-51兼容;4K字節(jié)可編程閃爍存儲器;壽命:1000寫擦循環(huán);數(shù)據(jù)保留時間:10年;全靜態(tài)工作:1HZ-24HZ;三級程序存儲器鎖定:128*8位;內(nèi)部RAM;32可編程IO線;兩個16位定時器計(jì)數(shù)器。5個中斷源;可編程串行通道;低功耗的閑置和掉電模式;片內(nèi)振蕩器和時鐘電路2.2.2管腳說明VCC:電源電壓5vGND:接地點(diǎn)P0口:p0口是一組8位漏極開路型雙向I/O口,也即地址/數(shù)據(jù)總線復(fù)用口。作為輸出口用時,每位能驅(qū)動
9、8個TTL邏輯門電路,對端口寫“I”可作為高阻抗輸入端用。在訪問外部數(shù)據(jù)存儲器或程序存儲器時,這組接口線分式轉(zhuǎn)換地址(低8位)和數(shù)據(jù)總線復(fù)用,在訪問期間激活上拉電阻。在Flash編程時,P0口接指令字節(jié),而在程序效驗(yàn)時,要求外接上拉電阻。P1口:P1是一個帶內(nèi)部上拉電阻的8位雙向I/O口,P1的輸出緩沖級可驅(qū)動4個TTL邏輯門電路。對端口寫“I”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時可作輸入口,作輸入口使用時,因?yàn)閮?nèi)部存在上拉電阻把端口拉到高電平,此時可作輸入口。作輸入口使用時,因?yàn)閮?nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流。P2口:P2口為一個內(nèi)部上拉電阻的8位雙向I/O口
10、,P2口緩沖器可接收、輸出4個TTL門電流,當(dāng)P2口被寫成“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進(jìn)行存儲時,P2口輸出地址高8位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢, 當(dāng)對外部八位地址數(shù)據(jù)存儲器進(jìn)行讀寫時,P2 口輸出其特殊功能寄存器的內(nèi)容。 P2 口在 FLASH 編程和校驗(yàn)時接收高八位地址信號和控制信號。P3 口:P3管腳是8個帶內(nèi)部上拉電阻的雙向I/O口,P3 可接收輸出 4 個 TTL 門電流。當(dāng) P3 口寫入“1”后,它們被內(nèi)部上拉為高電平,
11、并用作輸入。作為輸 入,由于外部下拉為低電平,P3 口將輸出電流(ILL)這是由于上拉的緣故。P3.1 TXD(串行輸出口) P3.2 /INT0(外部中斷 0) P3.3 /INT1(外部中斷 1) P3.4 T0(記時器 0 外部輸入) P3.5 T1(記時器 1 外部輸入) P3.6 /WR(外部數(shù)據(jù)存儲器寫選通) P3.7 /RD(外部數(shù)據(jù)存儲器讀選通) P3 口同時為閃爍編程和編程校驗(yàn)接收一些控制信號。RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時,要保持 RST 腳兩個機(jī)器周期的高電 平時間。ALE/PROG:當(dāng)訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在 FLASH
12、編程期間,此引腳用于輸入編程脈沖。在平時,ALE 端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的 1/6。因此它可用作對外部輸 出的脈沖或用于定時目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲器時,將跳 過一個 ALE 脈沖。如想禁止 ALE 的輸出可在 SFR8EH 地址上置 0。此時, ALE 只 有在執(zhí)行 MOVX,MOVC 指令是 ALE 才起作用。另外,該引腳被略微拉高。如果微 處理器在外部執(zhí)行狀態(tài) ALE 禁止,置位無效。:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機(jī) 器周期兩次/PSEN 有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/PSEN 信號 將不出現(xiàn)。
13、: 當(dāng)/EA 保持低電平時, 則在此期間外部程序存儲(0000H-FFFFH) , 不管是否有內(nèi)部程序存儲器。注意加密方式 1 時,/EA 將內(nèi)部鎖定為 RESET;當(dāng) /EA 端保持高電平時,此間內(nèi)部程序存儲器。在 FLASH 編程期間,此引腳也用于 施加 12V 編程電源(VPP)。XTAL1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。 XTAL2:來自反向振蕩器的輸出。2.2.3振蕩器特性XTAL1 和 XTAL2 分別為反向放大器的輸入和輸出。該反向放大器可以配置為 片內(nèi)振蕩器。 石晶振蕩和陶瓷振蕩均可采用。 如采用外部時鐘源驅(qū)動器件, XTAL2 應(yīng)不接。有余輸入至內(nèi)部時鐘信號要
14、通過一個二分頻觸發(fā)器,因此對外部時鐘信 號的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度。2.2.4芯片擦除 整個 PEROM 陣列和三個鎖定位的電擦除可通過正確的控制信號組合, 并保持 ALE 管腳處于低電平 10ms 來完成。在芯片擦操作中,代碼陣列全被寫“1”且在 任何非空存儲字節(jié)被重復(fù)編程以前,該操作必須被執(zhí)行。 此外,AT89C51 設(shè)有穩(wěn)態(tài)邏輯,可以在低到零頻率的條件下靜態(tài)邏輯,支持兩種 軟件可選的掉電模式。在閑置模式下,CPU 停止工作。但 RAM,定時器,計(jì)數(shù)器, 串口和中斷系統(tǒng)仍在工作。在掉電模式下,保存 RAM 的內(nèi)容并且凍結(jié)振蕩器,禁 止所用其他芯片功能,直到下一個
15、硬件復(fù)位為止。 AT89C51單片機(jī)的引腳圖,如圖1所示。圖1 單片機(jī)引腳圖3 仿真軟件protuse的介紹Proteus軟件是英國Labcenter electronics公司出版的EDA工具軟件(該軟件中國總代理為廣州風(fēng)標(biāo)電子技術(shù)有限公司)。它不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機(jī)及外圍器件。它是目前最好的仿真單片機(jī)及外圍器件的工具。雖然目前國內(nèi)推廣剛起步,但已受到單片機(jī)愛好者、從事單片機(jī)教學(xué)的教師、致力于單片機(jī)開發(fā)應(yīng)用的科技工作者的青睞。Proteus是世界上著名的EDA工具(仿真軟件),從原理圖布圖、代碼調(diào)試到單片機(jī)與外圍電路協(xié)同仿真,一鍵切換到PCB設(shè)計(jì),真正實(shí)現(xiàn)了從概
16、念到產(chǎn)品的完整設(shè)計(jì)。是目前世界上唯一將電路仿真軟件、PCB設(shè)計(jì)軟件和虛擬模型仿真軟件三合一的設(shè)計(jì)平臺,其處理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即將增加Cortex和DSP系列處理器,并持續(xù)增加其他系列處理器模型。在編譯方面,它也支持IAR、Keil和MPLAB等多種編譯器。4系統(tǒng)模塊設(shè)計(jì)本設(shè)計(jì)用單片機(jī)STC80C51制作簡易數(shù)字頻率計(jì),先將未知頻率的波形通過整型電路,整形成矩形波,作為單片機(jī)的外部中斷,單片機(jī)將每秒鐘終端的次數(shù)(即待測波形的頻率)進(jìn)行計(jì)數(shù),計(jì)數(shù)值作為信號頻率用顯示器1602
17、顯示,可顯示出測量的結(jié)果??蓽y量正弦波三角波矩形波的頻率。設(shè)計(jì)的原理框圖如圖2所示。 顯示電路主控電路整形電路 圖2 總體設(shè)計(jì)框圖5硬件部分頻率計(jì)設(shè)計(jì)包括三個:整形電路控制電路顯示電路。各模塊如下:5.1整形電路單片機(jī)只能檢測到下降沿或者高低電平的變化。因此,要把未知波形整形成矩形波,可用電壓比較器進(jìn)行整形,運(yùn)算放大器的同相端接模擬地,反相端接輸入信號。當(dāng)波形的電壓為正時,輸出電壓為負(fù);當(dāng)波形電壓為負(fù)時,輸出電壓為正。但是輸出波形和輸入波形的頻率相等,故可以用整形出的波行就可以直接接到單片機(jī)的外部中斷,進(jìn)行下一步操作。這樣不僅降低了系統(tǒng)對待測信號幅度的要求,而且整形電路可以把非方波信號轉(zhuǎn)化成方
18、波信號,滿足測量的要求。如圖3圖3 整形電路5.2控制電路 單片機(jī)接上晶振和復(fù)位后構(gòu)成AT89C51的最小系統(tǒng),可以在此基礎(chǔ)上外接其他的元件。最小系統(tǒng)如圖3所示。圖3 單片機(jī)的最小系統(tǒng)5.3顯示電路5.3.1 LCD1602引腳1602 采用標(biāo)準(zhǔn)的 16 腳接口,其中:第 1 腳:VSS 為地電源第 2 腳:VDD 接 5V 正電源第 3 腳:V0 為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地 電源時對比度最高,對比度過高時會產(chǎn)生鬼影,使用時可以通過一個10K 的電位器調(diào)整對比度第 4 腳:RS 為寄存器選擇,高電平時選擇數(shù)據(jù)寄存器,低電平時選擇指 令寄存器.第 5 腳:為讀寫信號線,
19、 RW 高電平時進(jìn)行讀操作, 低電平時進(jìn)行寫操作. 當(dāng) RS 和 RW 共同為低電平時可以寫入指令或者顯示地址,當(dāng) RS 為低電 平 RW 為高電平時可以讀忙信號,當(dāng) RS 為高電平 RW 為低電平時可以寫入數(shù)據(jù).第 6 腳:E 端為使能端,當(dāng)E端由高電平跳變成低電平時,液晶模塊執(zhí)行命令. 第714腳:D0D7 為8位雙向數(shù)據(jù)線. 第1516腳:空腳 5.3.2 LCD1602的指令介紹1602 液晶模塊內(nèi)部的控制器共有 11 條控制指令, 它的讀寫操作、 屏幕和光標(biāo)操作都是通過指令編程來實(shí)現(xiàn)的。指令 1:清顯示,指令碼 01H,光標(biāo)復(fù)位到地址 00H 位置指令 2:光標(biāo)復(fù)位,光標(biāo)返回到地址
20、00H指令 3:光標(biāo)和顯示模式設(shè)置 I/D:光標(biāo)移動方向,高電平右移,低電 平左移 S:屏幕上所有文字是否左移或者右移.高電平表示有效,低電 平則無效 指令 4:顯示開關(guān)控制. D:控制整體顯示的開與關(guān),高電平表示開顯 示,低電平表示關(guān)顯示 C:控制光標(biāo)的開與關(guān),高電平表示有光標(biāo),低 電平表示無光標(biāo) B:控制光標(biāo)是否閃爍,高電平閃爍,低電平不閃爍 指令 5:光標(biāo)或顯示移位 S/C:高電平時移動顯示的文字,低電平時移動光標(biāo)指令 6:功能設(shè)置命令 DL:高電平時為 4 位總線,低電平時為 8 位總線 N:低電平時為單行顯示,高電平時雙行顯示 F: 低電平時顯示 5x7 的 點(diǎn)陣字符,高電平時顯示
21、5x10 的點(diǎn)陣字符 指令 7:字符發(fā)生器 RAM 地址設(shè)置 指令 8:DDRAM 地址設(shè)置 指令 9:讀忙信號和光標(biāo)地址 BF:為忙標(biāo)志位,高電平表示忙,此時模 塊不能接收命令或者數(shù)據(jù),如果為低電平表示不忙. 指令 10:寫數(shù)據(jù) 指令 11:讀數(shù)據(jù) DM-162 液晶顯示模塊可以和單片機(jī)顯示電路連接用LCD1602顯示器做顯示模塊。將LCD1602的數(shù)據(jù)口接到單片機(jī)的P0,控制線接到P2口。連接好的線路,如圖4圖4 顯示電路5.4總體電路圖總體設(shè)計(jì)框圖如圖5圖5 總體設(shè)計(jì)框圖6仿真結(jié)果6.1仿真結(jié)果接好電路后,用protuse軟件仿真,當(dāng)輸入信號是1000K時,仿真結(jié)果是1001KHZ,如下
22、6圖6 仿真結(jié)果6.2結(jié)果分析仿真結(jié)果和理論結(jié)果有一定誤差,但是誤差在可接受的范圍內(nèi)。分析導(dǎo)致誤差的原因可能是:用C語言編程時,程序占用一定的掃描時間,可能會造成誤差;顯示模塊每秒鐘顯示一次,不能及時觀測頻率,造成誤差;軟件本身的缺陷,造成誤差。改進(jìn)措施如下: 增加分頻電路,可以所測頻率降低,測量結(jié)果更加精確; 采用可變閘門時間,使得在測中低高頻率是采用不同的時間尺度,提高精度; 使用運(yùn)算速度更快的微處理器; 使用頻率更高的晶振;7 結(jié)論本控制系統(tǒng)設(shè)計(jì)充分利用了51單片機(jī)的引腳及其強(qiáng)大的功能,并配合相關(guān)的電路,實(shí)現(xiàn)率對水塔的自動控制。其中,水塔水位的測量是通過自控的開關(guān)傳感器將水位信號傳送給單
23、片機(jī),并對其進(jìn)行分析處理,然后根據(jù)控制要求數(shù)去控制信號,控制水泵工作,進(jìn)而保持水塔有正常的水位。該控制系統(tǒng)設(shè)計(jì)簡單、操作方便、實(shí)用性強(qiáng),有很高的推廣價值。通過這次畢業(yè)設(shè)計(jì),是我具備了使用所學(xué)的專業(yè)知識與技能,進(jìn)行實(shí)用控制電路的實(shí)際與制作的能力。使我在電子電路設(shè)計(jì)方面向前買了一大步,為日后工作打下了良好基礎(chǔ)。最后感謝老師的悉心指導(dǎo),耐心的解答,使得本次課設(shè)圓滿結(jié)束。8參考文獻(xiàn)1 黃仁欣單片機(jī)原理與應(yīng)用技術(shù)第二版北京:清華大學(xué)出版社,20102 趙嘉蔚單片機(jī)原理與接口技術(shù)北京:清華大學(xué)出版社,2010 3 李朝青單片機(jī)原理與接口技術(shù)北京:北京航空航天大學(xué)出版社,20054 童詩白,華成英模擬電子基
24、礎(chǔ)技術(shù)北京:高等教育出版社,20015 鄭峰51單片機(jī)應(yīng)用系統(tǒng)典型模塊開發(fā)大全北京:中國鐵道出版社,20106 賈好來MCS-51單片機(jī)原理及應(yīng)用北京:機(jī)械工業(yè)出版社,20077 龔運(yùn)新單片機(jī)C語言開發(fā)技術(shù)北京:清華大學(xué)出版社,20068 郭天祥新概念51單片機(jī)C語言教程入門、提高、開發(fā)、擴(kuò)展北京:電子工業(yè)出版社,2009附錄1 keil C51軟件介紹Keil C51是美國Keil Software公司出品的51系列兼容單片機(jī)C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢,因而易學(xué)易用。用過匯編語言后再使用C來開發(fā),體會更加深刻。Keil C51軟件提
25、供豐富的庫函數(shù)和功能強(qiáng)大的集成開發(fā)調(diào)試工具,全Windows界面。另外重要的一點(diǎn),只要看一下編譯后生成的匯編代碼,就能體會到Keil C51生成的目標(biāo)代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時更能體現(xiàn)高級語言的優(yōu)勢。單片機(jī)開發(fā)中除必要的硬件外,同樣離不開軟件,我們寫的匯編語言源程序要變?yōu)镃PU可以執(zhí)行的機(jī)器碼有兩種方法,一種Keil軟件圖標(biāo)是手工匯編,另一種是機(jī)器匯編,目前已極少使用手工匯編的方法了。機(jī)器匯編是通過匯編軟件將源程序變?yōu)闄C(jī)器碼,用于MCS-51單片機(jī)的匯編軟件有早期的A51,隨著單片機(jī)開發(fā)技術(shù)的不斷發(fā)展,從普遍使用匯編語言到逐漸使用高級語言開發(fā),單
26、片機(jī)的開發(fā)軟件也在不斷發(fā)展,Keil軟件是目前最流行開發(fā)MCS-51系列單片機(jī)的軟 件,這從近年來各仿真機(jī)廠商紛紛宣布全面支持Keil即可看出。Keil提供了包括C編譯器、宏匯編、連接器、庫管理和一個功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個集成開發(fā)環(huán)境(uVision)將這些部份組合在一起。運(yùn)行Keil軟件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空閑的硬盤空間、WIN98、NT、WIN2000、WINXP等操作系統(tǒng)。掌握這一軟件的使用對于使用51系列單片機(jī)的愛好者來說是十分必要的,如果你使用C語言編程,那么Keil幾乎就是你的不二之選(目前在國內(nèi)你只能買到該
27、軟件、而你買的仿真機(jī)也很可能只支持該軟件),即使不使用C語言而僅用匯編語言編程,其方便易用的集成環(huán)境、強(qiáng)大的軟件仿真調(diào)試工具也會令你事半功倍。2 程序流程圖 開始 初始化 定時器T=1s?否 是 計(jì)數(shù)器TH0,TL0都值轉(zhuǎn)換為頻率圖4 軟件流程圖3系統(tǒng)源程序#includereg51.h #define uchar unsigned char #define uint unsigned int sbit lcd_rs=P25; sbit lcd_rw=P26; sbit lcd_en=P27; /讀寫使能端 sbit ru=P35; void lcd_init(); /lcd初始化 void
28、delay(uint); void write_com(uchar); void write_date(uchar); /讀寫函數(shù) void display(); uchar lang=frequence:; uchar ddate=0,1,2,3,4,5,6,7,8,9; long count;void main(void) uint k; ru=1; TMOD=0X51; / 定時器0為定時, TH0=(65536-50000)/256; TL0=(65536-50000)%256; TH1=0; TL1=0; EA=1; ET0=1; TR0=1; TR1=1; lcd_init();
29、write_com(0 x80+0 x03); /寫第一行 for(k=0;k11;k+) write_date(langk); delay(1); write_com(0 x80+0 x44); write_date(f); write_com(0 x80+0 x45); write_date(=); write_com(0 x80+0 x4c); write_date(H); write_com(0 x80+0 x4d); write_date(z); for(;); void timer0() interrupt 1 uint i;TH0=(65536-50000)/256; TL0=(
30、65536-50000)%256; i+; if(i=20) i=0;TR1=0;count=TH1*256+TL1; TH1=0;TL1=0;display(); count=0;TR1=1; void lcd_init()/lcd的初始化 lcd_en=0; write_com(0 x38); write_com(0 x0c); write_com(0 x06); write_com(0 x01);/ write_com(0 x0f);void delay(uint x) /延時函數(shù) uint i,j; for(i=0;ix;i+) for(j=0;j110;j+); void write
31、_com(uchar com) lcd_rs=0; lcd_rw=0; P0=com; delay(5); lcd_en=1; delay(5); lcd_en=0; void write_date(uchar shuju) lcd_rs=1; lcd_rw=0; P0=shuju; delay(5); lcd_en=1; delay(5); lcd_en=0; void display() write_com(0 x80+0 x46); write_date(0 x30+(count/100000); write_com(0 x80+0 x47); write_date(0 x30+(count%100000)/10000); write_com(0 x80+0 x48); write_date(0 x30+(count%10000)/1000); write_com(0 x80+0 x49); write_date(0 x30+(count%1000)/100); write_com(0 x80+0 x4a); write_date(0 x30+(count%100)/10); write_com(0 x80+0 x4b); write_date(0 x30+(count%10);
- 溫馨提示:
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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 6.煤礦安全生產(chǎn)科普知識競賽題含答案
- 2.煤礦爆破工技能鑒定試題含答案
- 3.爆破工培訓(xùn)考試試題含答案
- 2.煤礦安全監(jiān)察人員模擬考試題庫試卷含答案
- 3.金屬非金屬礦山安全管理人員(地下礦山)安全生產(chǎn)模擬考試題庫試卷含答案
- 4.煤礦特種作業(yè)人員井下電鉗工模擬考試題庫試卷含答案
- 1 煤礦安全生產(chǎn)及管理知識測試題庫及答案
- 2 各種煤礦安全考試試題含答案
- 1 煤礦安全檢查考試題
- 1 井下放炮員練習(xí)題含答案
- 2煤礦安全監(jiān)測工種技術(shù)比武題庫含解析
- 1 礦山應(yīng)急救援安全知識競賽試題
- 1 礦井泵工考試練習(xí)題含答案
- 2煤礦爆破工考試復(fù)習(xí)題含答案
- 1 各種煤礦安全考試試題含答案