畢業(yè)設(shè)計(論文)-基于單片機(jī)的計數(shù)器設(shè)計.doc
第一章 緒論 i 目目 錄錄 第一章第一章 緒緒 論論1 1 1.1 選題背景1 1.1.1 數(shù)字單片機(jī)的技術(shù)發(fā)展1 1.1.2 以單片機(jī)為核心的嵌入式系統(tǒng)3 1.2 本研究課題的發(fā)展趨勢4 1.3 設(shè)計研究的要求及主要內(nèi)容應(yīng)解決的問題5 第二章第二章 整體設(shè)計方案整體設(shè)計方案6 6 2.1 設(shè)計方案選擇6 2.2 設(shè)計原理6 第三章第三章 硬件電路設(shè)計硬件電路設(shè)計8 8 3.1 最小系統(tǒng)設(shè)計8 3.2 原理圖.11 3.3 重要元器件介紹.12 3.3.1 單片機(jī)介紹.12 3.3.2 PCB 版的介紹 .16 3.3.3 數(shù)碼管的介紹.17 3.4 PROTEUS軟件介紹.19 3.5 電路仿真.21 3.6 PCB 圖 .23 第四章第四章 軟件設(shè)計軟件設(shè)計2323 4.1 系統(tǒng)軟件設(shè)計流程圖.24 4.2 C 語言介紹 .24 4.3 程序.25 4.4 KEIL軟件調(diào)試 .28 4.4.1 軟件介紹.28 4.4.2 系統(tǒng)概述.28 第一章 緒論 ii 4.4.3 Keil C51 單片機(jī)軟件開發(fā)系統(tǒng)的整體結(jié)構(gòu) 28 第五章第五章 焊接調(diào)試與功能說明焊接調(diào)試與功能說明3030 5.1 系統(tǒng)性能測試與功能說明.30 5.2 軟件調(diào)試問題及解決.30 結(jié)結(jié) 論論3232 參參 考考 文文 獻(xiàn)獻(xiàn)3434 致致 謝謝3636 附附 錄錄3838 第一章 緒論 1 第一章 緒 論 本章介紹了本研究課題的背景及意義,闡述了其發(fā)展?fàn)顩r。對當(dāng)前各種計數(shù) 器的特點(diǎn)及其計數(shù)器的未來發(fā)展趨勢作了概況。另外,簡要說明了本文所做的工 作。 1.1 選題背景 隨著計數(shù)器技術(shù)的不斷發(fā)展與進(jìn)步,計數(shù)器的種類越來越多,應(yīng)用的范圍越 來越廣,隨之而來的競爭也越來越激烈。過硬的技術(shù)也成為眾多生產(chǎn)廠商競爭的 焦點(diǎn)之一。廠商為了在競爭中處于不敗之地,從而不斷地改進(jìn)技術(shù),增加產(chǎn)品的 種類。 現(xiàn)計數(shù)器的種類以增加到:電磁計數(shù)器、電子計數(shù)器、機(jī)械計數(shù)器(拉動 機(jī)械計數(shù)器、轉(zhuǎn)動機(jī)械計數(shù)器、按動機(jī)械計數(shù)器、測長機(jī)械計數(shù)器) 、液晶計數(shù) 器等。 計數(shù)器的應(yīng)用范圍也遍布印刷、紡織、印染、針織、電纜、電訊、軍工、輕工、 機(jī)械、開關(guān)、斷路器、礦山、實行多班制的紡織行業(yè)的織布機(jī)、織帶機(jī)、制線、 制帶、造紙、制革、薄膜、高壓開關(guān)電器產(chǎn)品、試驗設(shè)備,印刷設(shè)備、短路器、 醫(yī)療、紡織、機(jī)械、倉庫和碼頭的貨運(yùn)、行人及車輛過往的數(shù)量計數(shù)、冶金、食 品、國防、包裝、配料、石油、化工、發(fā)電、機(jī)床、儀表、自動化控制等行業(yè)。 1.1.1 數(shù)字單片機(jī)的技術(shù)發(fā)展 1.內(nèi)部結(jié)構(gòu)的變化 單片機(jī)在內(nèi)部已集成了越來越多的部件,這些部件包括一般常用的電路,例 如:定時器,比較器,A/D 轉(zhuǎn)換器,D /A 轉(zhuǎn)換器,串行通信接口,Watchdog 電路, LCD 控制器等。 有的單片機(jī)為了構(gòu)成控制網(wǎng)絡(luò)或形成局部網(wǎng),內(nèi)部含有局部網(wǎng)絡(luò)控制模塊 CAN。例如,Infineon 公司的 C 505C,C515C,C167CR,C167CS-32FM,81C90。 因此,這類單片機(jī)十分容易構(gòu)成網(wǎng)絡(luò)。特別是在控制,系統(tǒng)較為復(fù)雜時,構(gòu)成一 個控制網(wǎng)絡(luò)十分有用。為了能在變頻控制中方便使用單片機(jī),形成最具經(jīng)濟(jì)效益 第一章 緒論 2 的嵌入式控制系統(tǒng)。有的單片機(jī)內(nèi)部設(shè)置了專門用于變頻控制的脈寬調(diào)制控制電 路, 這些單片機(jī)有 Fujitsu 公司的 MB89850 系列、MB89860 系列;Motorola 公司 的 MC68HC08MR16、MR24 等。在這些單片機(jī)中,脈寬調(diào)制電路有 6 個通道輸出, 可產(chǎn)生三相脈寬調(diào)制交流電壓,并內(nèi)部含死區(qū)控制等功能。 特別引人注目的是:現(xiàn)在有的單片機(jī)已采用所謂的三核(TrCore)結(jié)構(gòu)。這 是一種建立在系統(tǒng)級芯片(System on a chip)概念上的結(jié)構(gòu)。這種單片機(jī)由三 個核組成:一個是微控制器和 DSP 核,一個是數(shù)據(jù)和程序存儲器核,最后一個是 外圍專用集成電路(ASIC) 。這種單片機(jī)的最大特點(diǎn)在于把 DSP 和微控制器同時 做在一個片上。把它和傳統(tǒng)單片機(jī)結(jié)合集成大大提高了單片機(jī)的功能。這是目前 單片機(jī)最大的進(jìn)步之一。這種單片機(jī)最典型的有 Infineon 公司的 TC10GP;Hitachi 公司的 SH7410,SH7612 等。 2.功耗、封裝及電源電壓的發(fā)展 現(xiàn)在新的單片機(jī)的功耗越來越小,特別是很多單片機(jī)都設(shè)置了多種工作方式, 這些工作方式包括等待,暫停,睡眠,空閑,節(jié)電等工作方式。 現(xiàn)在單片機(jī)的封裝水平已大大提高,隨著貼片工藝的出現(xiàn),單片機(jī)也大量采用了 各種合符貼片工藝的封裝方式出現(xiàn),以大量減少體積。擴(kuò)大電源電壓范圍以及在 較低電壓下仍然能工作是今天單片機(jī)發(fā)展的目標(biāo)之一。目前,一般單片機(jī)都可以 在 3.35.5V 的條件下工作。而一些廠家,則生產(chǎn)出可以在 2.26V 的條件下工 作的單片機(jī)。 3.工藝上的發(fā)展 現(xiàn)在的單片機(jī)基本上采用 CMOS 技術(shù),但已經(jīng)大多數(shù)采用了 0.6?m 以上的光 刻工藝,有個別的公司,如 Motorola 公司則已采用 0.35?m 甚至是 0.25?m 技術(shù)。 這些技術(shù)的進(jìn)步大大地提高了單片機(jī)的內(nèi)部密度和可靠性。 1.1.2 以單片機(jī)為核心的嵌入式系統(tǒng) 單片機(jī)的另外一個名稱就是嵌入式微控制器。目前,把單片機(jī)嵌入式系統(tǒng)和 Internet 連接已是一種趨勢。要實現(xiàn)嵌入式設(shè)備和 Internet 連接,就需要把傳 統(tǒng)的 Internet 理論和嵌入式設(shè)備的實踐都顛倒過來。為了使復(fù)雜的或簡單的嵌 M=999 的計數(shù)器的設(shè)計與實現(xiàn) 3 入式設(shè)備,例如單片機(jī)控制的機(jī)床、單片機(jī)控制的門鎖,能切實可行地和 Internet 連接,就要求專門為嵌入式微控制器設(shè)備設(shè)計網(wǎng)絡(luò)服務(wù)器,使嵌入式設(shè) 備可以和 Internet 相連,并通過標(biāo)準(zhǔn)網(wǎng)絡(luò)瀏覽器進(jìn)行過程控制。 EmWare 公司提出嵌入式系統(tǒng)入網(wǎng)的方案-EMIT 技術(shù)。這個技術(shù)包括三個主 要部分:即 emMicro, emGateway 和網(wǎng)絡(luò)瀏覽器。 目前,單片機(jī)應(yīng)用中提出了一個新的問題:這就是如何使 8 位、16 位單片機(jī) 控制的產(chǎn)品,也即嵌入式產(chǎn)品或設(shè)備能實現(xiàn)和互聯(lián)網(wǎng)互連? TASKING 公司目前正在為解決這個問題提供了途徑。該公司已把 emWare 的 EMIT 軟件包和有關(guān)的軟件配套集成,形成一個集成開發(fā)環(huán)境,向用戶提供開發(fā)方 便。嵌入互聯(lián)網(wǎng)聯(lián)盟 ETI(embed the Internet Consortium)正在緊密合作,共 同開發(fā)嵌入式 Internet 的解決方案 。 1.2 本研究課題的發(fā)展趨勢 自單片機(jī)出現(xiàn)至今,單片機(jī)技術(shù)已走過了近 20 年的發(fā)展路程??v觀 20 年來 單片機(jī)發(fā)展歷程可以看出,單片機(jī)技術(shù)的發(fā)展以微處理器(MPU)技術(shù)及超大規(guī)模 集成電路技術(shù)的發(fā) 展為先導(dǎo),以廣泛的應(yīng)用領(lǐng)域拉動,表現(xiàn)出較微處理器更具 個性的發(fā)展趨勢。單片機(jī)的應(yīng)用在后 PC 時代得到了前所未有的發(fā)展,但對處理 器的綜合性能要求也越來越高。綜觀單片機(jī)的發(fā)展,以應(yīng)用需求為目標(biāo),市場越 來越細(xì)化,充分突出以“單片”解決問題,而不像多年前以 MCS51/96 等處理器 為中心,外擴(kuò)各種接口構(gòu)成各種應(yīng)用系統(tǒng)。單片機(jī)系統(tǒng)作為嵌入式系統(tǒng)的一部分, 主要集中在中、低端應(yīng)用領(lǐng)域(嵌入式高端應(yīng)用主要由 DSP、ARM、MIPS 等高性 能處理器構(gòu)成) ,在這些應(yīng)用中,目前也出現(xiàn)了一些新的需求,主要體現(xiàn)在以下 幾個方面: (1)以電池供電的應(yīng)用越來越多,而且由于產(chǎn)品體積的限制,很多是用鈕扣電 池供電,要求系統(tǒng)功耗盡可能低,如手持式儀表、水表、玩具等。 (2)隨著應(yīng)用的復(fù)雜,對處理器的功能和性能要求不斷提高。既要外設(shè)豐富、 功能靈活,又要有一定的運(yùn)算能力,能做一些實時算法,而不僅僅做一些簡單的 控制。 第一章 緒論 4 (3)產(chǎn)品更新速度快,開發(fā)時間短,希望開發(fā)工具簡單、廉價、功能完善。特 別是仿真工具要有延續(xù)性,能適應(yīng)多種 MCU,以免重復(fù)投資,增加開發(fā)費(fèi)用。 (4)產(chǎn)品性能穩(wěn)定,可靠性高,既能加密保護(hù),又能方便升級。 1.3 設(shè)計研究的要求及主要內(nèi)容應(yīng)解決的問題 要求: 1.整個系統(tǒng)有較強(qiáng)的抗干擾能力. 2.計數(shù)范圍:000999. 3.將計數(shù)值準(zhǔn)確顯示出來. 應(yīng)解決問題: 基于單片機(jī)構(gòu)成的產(chǎn)品自動計數(shù)器研究的主要內(nèi)容包括:如果構(gòu)成檢測電路、 MCS-51 單片機(jī)用何種方式對外部計數(shù)脈沖進(jìn)行計數(shù)顯示控制、LED 顯示驅(qū)動模塊 的選擇、MCS-51 單片機(jī)的擴(kuò)展。在這個設(shè)計中主要需要解決的問題便是如何提高 MCS-51 單片機(jī)的抗干擾能力以及穩(wěn)定性。 M=999 的計數(shù)器的設(shè)計與實現(xiàn) 5 第二章 整體設(shè)計方案 2.1 設(shè)計方案選擇 方案一: 采用多種數(shù)字邏輯電路來實現(xiàn)邏輯控制、主門、門控、計數(shù)單元的設(shè)計要求, 這樣設(shè)計的電路整體比較復(fù)雜,而且不宜完成發(fā)揮部分的功能要求。所以方案一 不采用。 方案二: 可以采用 FPGA 來實現(xiàn)邏輯控制、主門、門控、計數(shù)單元的設(shè)計要求,并且 設(shè)計方便,但由于對 FPGA 的技術(shù)原理掌握不夠熟練,所以放棄方案二。 方案三: 系統(tǒng)采用 8051 為核心的單片機(jī)控制系統(tǒng),實現(xiàn)原理圖中的邏輯控制、主門、 門控、計數(shù)的設(shè)計要求 單片機(jī)計數(shù)器的方式控制寄存器 TMOD 中的 GATE 位=1 時,可以很方便的進(jìn) 行 INT0 引腳的外部輸入信號的時間間隔測量。且單片機(jī)的控制電路很容易實現(xiàn) 擴(kuò)展,比如語音模塊、測溫 I2C 模塊、時鐘模塊、A/D 模塊等。故采用方案三。 2.2 設(shè)計原理 利用 AT89S51 單片機(jī)來制作一個手動計數(shù)器,在 AT89S51 單片機(jī)的 P3.7 管 腳接一個輕觸開關(guān),作為手動計數(shù)的按鈕,用單片機(jī)的 P2.0P2.7 接一個共陰 數(shù)碼管,作為 00999 計數(shù)的個位數(shù)顯示,用單片機(jī)的 P0.0P0.7 接一個共陰 數(shù)碼管,作為 00999 計數(shù)的十位數(shù)顯示; 硬件電路圖如圖 2-1 所示: 第二章 整體設(shè)計方案 6 圖 2-1 硬件電路圖 系統(tǒng)板上硬件連線 1)把“單片機(jī)系統(tǒng)”區(qū)域中的 P0.0/AD0P0.7/AD7 端口用 8 芯排線連接到 “四路靜態(tài)數(shù)碼顯示模塊”區(qū)域中的任一個 ah 端口上;要求:P0.0/AD0 對應(yīng) 著 a,P0.1/AD1 對應(yīng)著 b,P0.7/AD7 對應(yīng)著 h。 2)把“單片機(jī)系統(tǒng)”區(qū)域中的 P2.0/A8P2.7/A15 端口用 8 芯排線連接到 “四路靜態(tài)數(shù)碼顯示模塊”區(qū)域中的任一個數(shù)碼管的 ah 端口上; 3)把“單片機(jī)系統(tǒng)”區(qū)域中的 P3.7/RD 端口用導(dǎo)線連接到“獨(dú)立式鍵盤” 區(qū)域中的 SP1 端口上; M=999 的計數(shù)器的設(shè)計與實現(xiàn) 7 第三章 硬件電路設(shè)計 3.1 最小系統(tǒng)設(shè)計 圖 3-1 單片機(jī)最小系統(tǒng)的結(jié)構(gòu)圖 單片機(jī)的最小系統(tǒng)是由電源、復(fù)位、晶振、/EA=1 組成,下面介紹一下每一 個組成部分。 1.電源引腳 Vcc 40 電源端 GND 20 接地端 第三章 硬件電路設(shè)計 8 工作電壓為 5V,另有 AT89LV51 工作電壓則是 2.7-6V,引腳功能一樣。 2.外接晶體引腳 圖 3-2 晶振連接的內(nèi)部、外部方式圖 XTAL1 19 XTAL2 18 XTAL1 是片內(nèi)振蕩器的反相放大器輸入端,XTAL2 則是輸出端,使用外部振 蕩器時,外部振蕩信號應(yīng)直接加到 XTAL1,而 XTAL2 懸空。內(nèi)部方式時,時鐘發(fā) 生器對振蕩脈沖二分頻,如晶振為 12MHz,時鐘頻率就為 6MHz。晶振的頻率可以 在 1MHz-24MHz 內(nèi)選擇。電容取 30PF 左右。系統(tǒng)的時鐘電路設(shè)計是采用的內(nèi)部方 式,即利用芯片內(nèi)部的振蕩電路。AT89 單片機(jī)內(nèi)部有一個用于構(gòu)成振蕩器的高增 益反相放大器。引腳 XTAL1 和 XTAL2 分別是此放大器的輸入端和輸出端。這個放 大器與作為反饋元件的片外晶體諧振器一起構(gòu)成一個自激振蕩器。外接晶體諧振 器以及電容 C1 和 C2 構(gòu)成并聯(lián)諧振電路,接在放大器的反饋回路中。對外接電容 的值雖然沒有嚴(yán)格的要求,但電容的大小會影響震蕩器頻率的高低、震蕩器的穩(wěn) 定性、起振的快速性和溫度的穩(wěn)定性。因此,此系統(tǒng)電路的晶體振蕩器的值為 12MHz,電容應(yīng)盡可能的選擇陶瓷電容,電容值約為 22F。在焊接刷電路板時, 晶體振蕩器和電容應(yīng)盡可能安裝得與單片機(jī)芯片靠近,以減少寄生電容,更好地 保證震蕩器穩(wěn)定和可靠地工作。 3.復(fù)位 RST 9 M=999 的計數(shù)器的設(shè)計與實現(xiàn) 9 在振蕩器運(yùn)行時,有兩個機(jī)器周期(24 個振蕩周期)以上的高電平出現(xiàn)在此 引腿時,將使單片機(jī)復(fù)位,只要這個腳保持高電平,51 芯片便循環(huán)復(fù)位。復(fù)位后 P0P3 口均置 1 引腳表現(xiàn)為高電平,程序計數(shù)器和特殊功能寄存器 SFR 全部清零。 當(dāng)復(fù)位腳由高電平變?yōu)榈碗娖綍r,芯片為 ROM 的 00H 處開始運(yùn)行程序。復(fù)位是由 外部的復(fù)位電路來實現(xiàn)的。片內(nèi)復(fù)位電路是復(fù)位引腳 RST 通過一個斯密特觸 發(fā)器與復(fù)位電路相連,斯密特觸發(fā)器用來抑制噪聲,它的輸出在每個機(jī)器周期的 S5P2,由復(fù)位電路采樣一次。復(fù)位電路通常采用上電自動復(fù)位和按鈕復(fù)位兩種方 式,此電路系統(tǒng)采用的是上電與按鈕復(fù)位電路。當(dāng)時鐘頻率選用 6MHz 時,C 取 22F,Rs 約為 200,Rk 約為 1K。復(fù)位操作不會對內(nèi)部 RAM 有所影響。 常用的復(fù)位電路如下圖所示: 圖 3-3 常用復(fù)位電路圖 4.輸入輸出引腳 (1) P0 端口P0.0-P0.7 P0 是一個 8 位漏極開路型雙向 I/O 端口,端口置 1(對端口寫 1)時作高阻抗輸入端。作為輸出口時能驅(qū)動 8 個 TTL。 對內(nèi)部 Flash 程序存儲器編程時,接收指令字節(jié);校驗程序時輸出指令字節(jié),要 求外接上拉電阻。 在訪問外部程序和外部數(shù)據(jù)存儲器時,P0 口是分時轉(zhuǎn)換的地址(低 8 位)/數(shù) 據(jù)總線,訪問期間內(nèi)部的上拉電阻起作用。 (2) P1 端口P1.0P1.7 P1 是一個帶有內(nèi)部上拉電阻的 8 位雙向 I/0 端口。 第三章 硬件電路設(shè)計 10 輸出時可驅(qū)動 4 個 TTL。端口置 1 時,內(nèi)部上拉電阻將端口拉到高電平,作輸入 用。 對內(nèi)部 Flash 程序存儲器編程時,接收低 8 位地址信息。 (3) P2 端口P2.0P2.7 P2 是一個帶有內(nèi)部上拉電阻的 8 位雙向 I/0 端口。 輸出時可驅(qū)動 4 個 TTL。端口置 1 時,內(nèi)部上拉電阻將端口拉到高電平,作輸入 用。 對內(nèi)部 Flash 程序存儲器編程時,接收高 8 位地址和控制信息。 在訪問外部程序和 16 位外部數(shù)據(jù)存儲器時,P2 口送出高 8 位地址。而在訪 問 8 位地址的外部數(shù)據(jù)存儲器時其引腳上的內(nèi)容在此期間不會改變。 (4) P3 端口P3.0P3.7P2 是一個帶有內(nèi)部上拉電阻的 8 位雙向端口。輸 出時可驅(qū)動 4 個 TTL。端口置 1 時,內(nèi)部上拉電阻將端口拉到高電平,作輸入用。 M=999 的計數(shù)器的設(shè)計與實現(xiàn) 11 3.2 原理圖 圖 3-4 電路總圖 3.3 重要元器件介紹 3.3.1 單片機(jī)介紹 1. MCS-51 系列單片機(jī)簡介 8051 是 MCS-51 系列單片機(jī)的典型產(chǎn)品,以這一代表性的機(jī)型進(jìn)行系統(tǒng)的講 第三章 硬件電路設(shè)計 12 解。 8051 單片機(jī)包含中央處理器、程序存儲器(ROM)、數(shù)據(jù)存儲器(RAM)、定時/ 計數(shù)器、并行接口、串行接口和中斷系統(tǒng)等幾大單元及數(shù)據(jù)總線、地址總線和控 制總線等三大總線,現(xiàn)在我們分別加以說明: 中央處理器: 中央處理器(CPU)是整個單片機(jī)的核心部件,是 8 位數(shù)據(jù)寬度的處理器,能 處理 8 位二進(jìn)制數(shù)據(jù)或代碼,CPU 負(fù)責(zé)控制、指揮和調(diào)度整個單元系統(tǒng)協(xié)調(diào)的工 作,完成運(yùn)算和控制輸入輸出功能等操作。 數(shù)據(jù)存儲器(RAM): 8051 內(nèi)部有 128 個 8 位用戶數(shù)據(jù)存儲單元和 128 個專用寄存器單元,它們是 統(tǒng)一編址的,專用寄存器只能用于存放控制指令數(shù)據(jù),用戶只能訪問,而不能用 于存放用戶數(shù)據(jù),所以,用戶能使用的 RAM 只有 128 個,可存放讀寫的數(shù)據(jù),運(yùn) 算的中間結(jié)果或用戶定義的字型表。 圖 3-5 8051 內(nèi)部結(jié)構(gòu)圖 程序存儲器(ROM): 8051 共有 4096 個 8 位掩膜 ROM,用于存放用戶程序,原始數(shù)據(jù)或表格。 定時/計數(shù)器(ROM): 8051 有兩個 16 位的可編程定時/計數(shù)器,以實現(xiàn)定時或計數(shù)產(chǎn)生中斷用于控 制程序轉(zhuǎn)向。 并行輸入輸出(I/O)口: M=999 的計數(shù)器的設(shè)計與實現(xiàn) 13 8051 共有 4 組 8 位 I/O 口(P0、 P1、P2 或 P3),用于對外部數(shù)據(jù)的傳輸。 全雙工串行口: 8051 內(nèi)置一個全雙工串行通信口,用于與其它設(shè)備間的串行數(shù)據(jù)傳送,該串 行口既可以用作異步通信收發(fā)器,也可以當(dāng)同步移位器使用。 中斷系統(tǒng): 8051 具備較完善的中斷功能,有兩個外中斷、兩個定時/計數(shù)器中斷和一個串 行中斷,可滿足不同的控制要求,并具有 2 級的優(yōu)先級別選擇。 時鐘電路: 8051 內(nèi)置最高頻率達(dá) 12MHz 的時鐘電路,用于產(chǎn)生整個單片機(jī)運(yùn)行的脈沖時 序,但 8051 單片機(jī)需外置振蕩電容。單片機(jī)的結(jié)構(gòu)有兩種類型,一種是程序存 儲器和數(shù)據(jù)存儲器分開的形式,即哈佛(Harvard)結(jié)構(gòu),另一種是采用通用計算 機(jī)廣泛使用的程序存儲器與數(shù)據(jù)存儲器合二為一的結(jié)構(gòu),即普林斯頓(Princeton)結(jié) 構(gòu)。INTEL 的 MCS-51 系列單片機(jī)采用的是哈佛結(jié)構(gòu)的形式,而后續(xù)產(chǎn)品 16 位的 MCS-96 系列單片機(jī)則采用普林斯頓結(jié)構(gòu)。 下圖是 MCS-51 系列單片機(jī)的內(nèi)部結(jié)構(gòu)示意圖 3-6 第三章 硬件電路設(shè)計 14 圖 3-6 MCS-51 結(jié)構(gòu)圖 MCS-51 的引腳說明: MCS-51 系列單片機(jī)中的 8031、8051 及 8751 均采用 40Pin 封裝的雙列直接 DIP 結(jié)構(gòu),右圖是它們的引腳配置,40 個引腳中,正電源和地線兩根,外置石英 振蕩器的時鐘線兩根,4 組 8 位共 32 個 I/O 口,中斷口線與 P3 口線復(fù)用?,F(xiàn)在 我們對這些引腳的功能加以說明: MCS-51 的引腳說明: MCS-51 系列單片機(jī)中的 8031、8051 及 8751 均采用 40Pin 封裝的雙列直接 DIP 結(jié)構(gòu),右圖是它們的引腳配置,40 個引腳中,正電源和地線兩根,外置石英 振蕩器的時鐘線兩根,4 組 8 位共 32 個 I/O 口,中斷口線與 P3 口線復(fù)用。 現(xiàn)在我們對這些引腳的功能加以說明:如圖 3-7 M=999 的計數(shù)器的設(shè)計與實現(xiàn) 15 圖 3-7 雙列直插式封裝引腳圖 Pin9:RESET/Vpd 復(fù)位信號復(fù)用腳,當(dāng) 8051 通電,時鐘電路開始工作,在 RESET 引腳上出現(xiàn) 24 個時鐘周期以上的高電平,系統(tǒng)即初始復(fù)位。初始化后,程 序計數(shù)器 PC 指向 0000H,P0-P3 輸出口全部為高電平,堆棧指針寫入 07H,其它 專用寄存器被清“0” 。RESET 由高電平下降為低電平后,系統(tǒng)即從 0000H 地址開 始執(zhí)行程序。然而,初始復(fù)位不改變 RAM(包括工作寄存器 R0-R7)的狀態(tài), 8051 的初始態(tài)。 8051 的復(fù)位方式可以是自動復(fù)位,也可以是手動復(fù)位。此外,RESET/Vpd 還 是一復(fù)用腳,Vcc 掉電其間,此腳可接上備用電源,以保證單片機(jī)內(nèi)部 RAM 的數(shù) 據(jù)不丟失。 見下圖 3-8 為兩種復(fù)位方式和兩種時鐘方式: 圖 3-8 復(fù)位方式圖與時鐘方式圖 Pin30:ALE/當(dāng)訪問外部程序器時,ALE(地址鎖存)的輸出用于鎖存地址 的低位字節(jié)。而訪問內(nèi)部程序存儲器時,ALE 端將有一個 1/6 時鐘頻率的正脈沖 信號,這個信號可以用于識別單片機(jī)是否工作,也可以當(dāng)作一個時鐘向外輸出。 更有一個特點(diǎn),當(dāng)訪問外部程序存儲器,ALE 會跳過一個脈沖。如果單片機(jī)是 M=999 的計數(shù)器的設(shè)計與實現(xiàn) 16 EPROM,在編程其間,將用于輸入編程脈沖。 Pin29:當(dāng)訪問外部程序存儲器時,此腳輸出負(fù)脈沖選通信號,PC 的 16 位地址數(shù)據(jù)將出現(xiàn)在 P0 和 P2 口上,外部程序存儲器則把指令數(shù)據(jù)放到 P0 口上, 由 CPU 讀入并執(zhí)行。 Pin31:EA/Vpp 程序存儲器的內(nèi)外部選通線,8051 和 8751 單片機(jī),內(nèi)置有 4kB 的程序存儲器,當(dāng) EA 為高電平并且程序地址小于 4kB 時,讀取內(nèi)部程序存儲 器指令數(shù)據(jù),而超過 4kB 地址則讀取外部指令數(shù)據(jù)。如 EA 為低電平,則不管地 址大小,一律讀取外部程序存儲器指令。顯然,對內(nèi)部無程序存儲器的 8031,EA 端必須接地。在編程時,EA/Vpp 腳還需加上 21V 的編程電壓。 3.3.2 PCB 版的介紹 PCB(PrintedCircuitBoard) ,中文名稱為印制電路板,又稱印刷電路板、 印刷線路板,簡單的說就是置有集成電路和其他電子組件的薄板,是重要的電子 部件,是電子元器件的支撐體,是電子元器件電氣連接的提供者,是低能耗、低 污染的,由于它是采用電子印刷術(shù)制作的,故被稱為“印刷”電路板。 印制電路板的設(shè)計是以電路原理圖為根據(jù),實現(xiàn)電路設(shè)計者所需要的功能。 印刷電路板的設(shè)計主要指版圖設(shè)計,需要考慮外部連接的布局、內(nèi)部電子元件的 優(yōu)化布局、金屬連線和通孔的優(yōu)化布局、電磁保護(hù)、熱耗散等各種因素。優(yōu)秀的 版圖設(shè)計可以節(jié)約生產(chǎn)成本,達(dá)到良好的電路性能和散熱性能。簡單的版圖設(shè)計 可以用手工實現(xiàn),復(fù)雜的版圖設(shè)計需要借助計算機(jī)輔助設(shè)計(CAD)實現(xiàn)。 根據(jù)電路層數(shù)分類:分為單面板、雙面板和多層板。常見的多層板一般為 4 層板或 6 層板,復(fù)雜的多層板可達(dá)十幾層。 PCB 板有以下三種主要的劃分類型: 1.單面板 單面板(Single-Sided Boards) 在最基本的 PCB 上,零件集中在其中一面, 導(dǎo)線則集中在另一面上。因為導(dǎo)線只出現(xiàn)在其中一面,所以這種 PCB 叫作單面板 (Single-sided) 。因為單面板在設(shè)計線路上有許多嚴(yán)格的限制(因為只有一面, 布線間不能交叉而必須繞獨(dú)自的路徑) ,所以只有早期的電路才使用這類的板子。 第三章 硬件電路設(shè)計 17 2.雙面板 雙面板(Double-Sided Boards) 這種電路板的兩面都有布線,不過要用上 兩面的導(dǎo)線,必須要在兩面間有適當(dāng)?shù)碾娐愤B接才行。這種電路間的“橋梁” 叫做導(dǎo)孔(via) 。導(dǎo)孔是在 PCB 上,充滿或涂上金屬的小洞,它可以與兩面的導(dǎo) 線相連接。因為雙面板的面積比單面板大了一倍,而且因為布線可以互相交錯 (可以繞到另一面) ,它更適合用在比單面板更復(fù)雜的電路上。 3.多層板 多層板(Multi-Layer Boards) 為了增加可以布線的面積,多層板用上了 更多單或雙面的布線板。用一塊雙面作內(nèi)層、二塊單面作外層或二塊雙面作內(nèi)層、 二塊單面作外層的印刷線路板,通過定位系統(tǒng)及絕緣粘結(jié)材料交替在一起且導(dǎo)電 圖形按設(shè)計要求進(jìn)行互連的印刷線路板就成為四層、六層印刷電路板了,也稱為 多層印刷線路板。板子的層數(shù)就代表了有幾層獨(dú)立的布線層,通常層數(shù)都是偶數(shù), 并且包含最外側(cè)的兩層。大部分的主機(jī)板都是 4 到 8 層的結(jié)構(gòu),不過技術(shù)上理可 以做到近 100 層的 PCB 板。不過因為這類計算機(jī)已經(jīng)可以用許多普通計算機(jī)的集 群代替,超多層板已經(jīng)漸漸不被使用了。因為 PCB 中的各層都緊密的結(jié)合,一般 不太容易看出實際數(shù)目,不過如果仔細(xì)觀察主機(jī)板,還是可以看出來。 3.3.3 數(shù)碼管的介紹 在本任務(wù)中用 3 位數(shù)碼管顯示當(dāng)前數(shù)值的百,十,個,由于數(shù)碼管個數(shù)多, 如采用靜態(tài)顯示方式,則占用單片機(jī)的 I/O 口線太多,如果用定時器/計數(shù)器的 串行移位寄存器工作方式及外接串入并出移位寄存器 74LS164 的方式,則電路復(fù) 雜。所以,在數(shù)碼管個數(shù)較多時,常采用動態(tài)顯示方式。 3 位數(shù)碼管的相同段并聯(lián)在一起,由一個 6 位 I/O(P1 口)輸出字形碼控制 顯示某一字形,每個數(shù)碼管的公共端由另外一個 I/O 口(P0 口)輸出的字位碼控 制,即數(shù)碼管顯示的字形是由單片機(jī) I/O 口輸出的字形碼確定,而哪個數(shù)碼管點(diǎn) 亮是由單片機(jī) I/O 口輸出的字位碼確定的。3 個數(shù)碼管分時輪流循環(huán)點(diǎn)亮,在同 一時刻只有 1 個數(shù)碼管點(diǎn)亮,但由于數(shù)碼管具有余輝特性及人眼具有視覺暫留特 性,所以適當(dāng)?shù)剡x取循環(huán)掃描頻率,看上去所有數(shù)碼管是同時點(diǎn)亮的,察覺不出 閃爍現(xiàn)象。動態(tài)顯示方式所接數(shù)碼管不能太多,否則會因每個數(shù)碼管所分配的實 M=999 的計數(shù)器的設(shè)計與實現(xiàn) 18 際導(dǎo)通時間太少,使得數(shù)碼管的亮度不足。在本任務(wù)中,為了簡便,字形碼和字 位碼都沒由加驅(qū)動電路,在實際應(yīng)用中應(yīng)加驅(qū)動電路。數(shù)碼管有共陰極和共陽極 兩種, 對于共陽數(shù)碼管,字形驅(qū)動輸出 0 有效,字位驅(qū)動輸出 1 有效;而對于共陰 數(shù)碼管則相反,即:字形驅(qū)動輸出 1 有效,字位驅(qū)動輸出 0 有效 顯示器普遍地用于直觀地顯示數(shù)字系統(tǒng)的運(yùn)行狀態(tài)和工作數(shù)據(jù),按照材料及 產(chǎn)品工藝,單片機(jī)應(yīng)用系統(tǒng)中常用的顯示器有: 發(fā)光二極管 LED 顯示器、液晶 LCD 顯示器、CRT 顯示器等。LED 顯示器是現(xiàn)在最常用的顯示器之一, 發(fā)光二極 管(LED)由特殊的半導(dǎo)體材料砷化鎵、磷砷化鎵等制成,可以單獨(dú)使用,也可 以組裝成分段式或點(diǎn)陣式 LED 顯示器件(半導(dǎo)體顯示器) 。分段式顯示器(LED 數(shù) 碼管)由 7 條線段圍成 8 字型,每一段包含一個發(fā)光二極管。外加正向電壓時二 極管導(dǎo)通,發(fā)出清晰的光。只要按規(guī)律控制各發(fā)光段亮、滅,就可以顯示各種字 形或符號。LED 數(shù)碼管有共陽、共陰之分。圖是共陽式、共陰式 LED 數(shù)碼管的原 理圖和符號。 圖 3-9 共陽式、共陰式 LED 數(shù)碼管的原理圖和數(shù)碼管的符號圖 顯示電路顯示模塊需要實時顯示當(dāng)前的時間,即時、分、秒,因此需要 6 個 數(shù)碼管,另需兩個數(shù)碼管來顯示橫。采用動態(tài)顯示方式顯示時間,硬件連接如下 圖所示,時的十位和個位分別顯示在第一個和第二個數(shù)碼管,分的十位和個位分 別顯示在第四個和第五個數(shù)碼管,秒的十位和個位分別顯示在第七個和第八個數(shù) 碼管,其余數(shù)碼管顯示橫線。LED 顯示器的顯示控制方式按驅(qū)動方式可分成靜態(tài) 第三章 硬件設(shè)計電路 19 顯示方式和動態(tài)顯示方式兩種。對于多位 LED 顯示器,通常都是采用動態(tài)掃描的 方法進(jìn)行顯示,其硬件連接方式如下圖所示。 圖 3-10 數(shù)碼管的硬件連接示意圖 數(shù)碼管使用條件: a、使用電壓段:根據(jù)發(fā)光顏色決定; b、小數(shù)點(diǎn):根據(jù)發(fā)光顏色決定 c、使用電流:靜態(tài):總電流 80mA(每段 10mA) ;動態(tài):平均電流 4-5mA 峰值電流 100mA 數(shù)碼管使用注意事項說明: ()數(shù)碼管表面不要用手觸摸,不要用手去弄引角; ()焊接溫度:度;焊接時間:1s ()表面有保護(hù)膜的產(chǎn)品,可以在使用前撕下來。 3.4 proteus 軟件介紹 Proteus 軟件是英國 Labcenter electronics 公司出版的 EDA 工具軟件(該 軟件中國總代理為廣州風(fēng)標(biāo)電子技術(shù)有限公司) 。它不僅具有其它 EDA 工具軟件 的仿真功能,還能仿真單片機(jī)及外圍器件。它是目前最好的仿真單片機(jī)及外圍器 M=999 的計數(shù)器的設(shè)計與實現(xiàn) 20 件的工具。雖然目前國內(nèi)推廣剛起步,但已受到單片機(jī)愛好者、從事單片機(jī)教學(xué) 的教師、致力于單片機(jī)開發(fā)應(yīng)用的科技工作者的青睞。Proteus 是世界上著名的 EDA 工具(仿真軟件),從原理圖布圖、代碼調(diào)試到單片機(jī)與外圍電路協(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 等多種編譯器。 功能特點(diǎn): Proteus 軟件具有其它 EDA 工具軟件(例:multisim)的功能。這些功能是: (1)原理布圖 (2)PCB 自動或人工布線 (3)SPICE 電路仿真 革命性的特點(diǎn): (1)互動的電路仿真 用戶甚至可以實時采用諸如 RAM,ROM,鍵盤,馬達(dá),LED,LCD,AD/DA,部 分 SPI 器件,部分 IIC 器件。 (2)仿真處理器及其外圍電路 可以仿真 51 系列、AVR、PIC、ARM、等常用主流單片機(jī)。還可以直接在基 于原理圖的虛擬原型上編程,再配合顯示及輸出,能看到運(yùn)行后輸入輸出的效果。 配合系統(tǒng)配置的虛擬邏輯分析儀、示波器等,Proteus 建立了完備的電子設(shè)計開 發(fā)環(huán)境。 功能模塊: 能原理圖設(shè)計(ISIS) 豐富的器件庫:超過 27000 種元器件,可方便地創(chuàng)建新元件; 智能的器件搜索:通過模糊搜索可以快速定位所需要的器件; 智能化的連線功能:自動連線功能使連接導(dǎo)線簡單快捷,大大縮短繪圖時間; 支持總線結(jié)構(gòu):使用總線器件和總線布線使電路設(shè)計簡明清晰; 第三章 硬件電路設(shè)計 21 可輸出高質(zhì)量圖紙:通過個性化設(shè)置,可以生成印刷質(zhì)量的 BMP 圖紙,可以 方便地供 WORD、POWERPOINT 等多種文檔使用。 完善的電路仿真功能(Prospice) PROSPICE 混合仿真:基于工業(yè)標(biāo)準(zhǔn) SPICE3F5,實現(xiàn)數(shù)字/模擬電路的混合仿 真; 超過 27000 個仿真器件:可以通過內(nèi)部原型或使用廠家的 SPICE 文件自行設(shè) 計仿真器件,Labcenter 也在不斷地發(fā)布新的仿真器件,還可導(dǎo)入第三方發(fā) 布的仿真器件; 多樣的激勵源:包括直流、正弦、脈沖、分段線性脈沖、音頻(使用 wav 文件) 、指數(shù)信號、單頻 FM、數(shù)字時鐘和碼流,還支持文件形式的信號輸入; 豐富的虛擬儀器:13 種虛擬儀器,面板操作逼真,如示波器、邏輯分析儀、信號 發(fā)生器、直流電壓/電流表、交流電壓/電流表、數(shù)字圖案發(fā)生器、頻率計/計數(shù) 器、邏輯探頭、虛擬終端、SPI 調(diào)試器、I2C 調(diào)試器等; 生動的仿真顯示:用色點(diǎn)顯示引腳的數(shù)字電平,導(dǎo)線以不同顏色表示其對地 電壓大小,結(jié)合動態(tài)器件(如電機(jī)、顯示器件、按鈕)的使用可以使仿真更加直 觀、生動; 高級圖形仿真功能(ASF):基于圖標(biāo)的分析可以精確分析電路的多項指標(biāo), 包括工作點(diǎn)、瞬態(tài)特性、頻率特性、傳輸特性、噪聲、失真、傅立葉頻譜分析等, 還可以進(jìn)行一致性分析; 獨(dú)特的單片機(jī)協(xié)同仿真功能(VSM) 3.5 電路仿真 在 PROTEUS 繪制好原理圖后,調(diào)入已編譯好的目標(biāo)代碼文件:*.HEX,可以 在 PROTEUS 的原理圖中看到模擬的實物運(yùn)行狀態(tài)和過程。 第三章 硬件電路設(shè)計 22 用 PROTUES 軟件,畫出 M=999 的計數(shù)器仿真圖,得到的圖如下所示。 圖 3-11 仿真圖 PROTEUS 是單片機(jī)課堂教學(xué)的先進(jìn)助手。 PROTEUS 不僅可將許多單片機(jī)實例功能形象化,也可將許多單片機(jī)實例運(yùn)行 過程形象化。前者可在相當(dāng)程度上得到實物演示實驗的效果,后者則是實物演示 實驗難以達(dá)到的效果。 它的元器件、連接線路等卻和傳統(tǒng)的單片機(jī)實驗硬件高度對應(yīng)。這在相當(dāng)程 度上替代了傳統(tǒng)的單片機(jī)實驗教學(xué)的功能,例:元器件選擇、電路連接、電路檢 測、電路修改、軟件調(diào)試、運(yùn)行結(jié)果等。 課程設(shè)計、畢業(yè)設(shè)計是學(xué)生走向就業(yè)的重要實踐環(huán)節(jié)。由于 PROTEUS 提供了 第三章 硬件電路設(shè)計 23 實驗室無法相比的大量的元器件庫,提供了修改電路設(shè)計的靈活性、提供了實驗 室在數(shù)量、質(zhì)量上難以相比的虛擬儀器、儀表,因而也提供了培養(yǎng)學(xué)生實踐精神、 創(chuàng)造精神的平臺 隨著科技的發(fā)展, “計算機(jī)仿真技術(shù)”已成為許多設(shè)計部門重要的前期設(shè)計 手段。它具有設(shè)計靈活,結(jié)果、過程的統(tǒng)一的特點(diǎn)??墒乖O(shè)計時間大為縮短、耗 資大為減少,也可降低工程制造的風(fēng)險。相信在單片機(jī)開發(fā)應(yīng)用中 PROTEUS 也能 茯得愈來愈廣泛的應(yīng)用。 使用 Proteus 軟件進(jìn)行單片機(jī)系統(tǒng)仿真設(shè)計, 是虛擬仿真技術(shù)和計算機(jī)多媒 體技術(shù)相結(jié)合的綜合運(yùn)用,有利于培養(yǎng)學(xué)生的電路設(shè)計能力及仿真軟件的操作能 力;在單片機(jī)課程設(shè)計和全國大學(xué)生電子設(shè)計競賽中,我們使用 Proteus 開發(fā) 環(huán)境對學(xué)生進(jìn)行培訓(xùn),在不需要硬件投入的條件下,學(xué)生普遍反映,對單片機(jī)的 學(xué)習(xí)比單純學(xué)習(xí)書本知識更容易接受,更容易提高。實踐證明,在使用 Proteus 進(jìn)行系統(tǒng)仿真開發(fā)成功之后再進(jìn)行實際制作,能極大提高單片機(jī)系統(tǒng)設(shè)計效率。 因此,Proteus 有較高的推廣利用價值。 M=999 的計數(shù)器的設(shè)計與實現(xiàn) 24 3.6 PCB 圖 圖 3-12 PCB 版電路 第四章 軟件設(shè)計 系統(tǒng)的軟件設(shè)計也是工具系統(tǒng)功能的設(shè)計。單片機(jī)軟件的設(shè)計主要包括執(zhí)行 軟件(完成各種實質(zhì)性功能)的設(shè)計和監(jiān)控軟件的設(shè)計。單片機(jī)的軟件設(shè)計通常 要考慮以下幾個方面的問題: (1)根據(jù)軟件功能要求,將系統(tǒng)軟件劃分為若干個相對獨(dú)立的部分,設(shè)計 出合理的總體結(jié)構(gòu),使軟件開發(fā)清晰、簡潔和流程合理; (2)培養(yǎng)良好的編程風(fēng)格,如考慮結(jié)構(gòu)化程序設(shè)計、實行模塊化、子程序 第四章 軟件設(shè)計 25 化。既便于調(diào)試、鏈接,又便于移植和修改; (3)建立正確的數(shù)學(xué)模型,通過仿真提高系統(tǒng)的性能,并選取合適的參數(shù); (4)繪制程序流程圖; (5)合理分配系統(tǒng)資源; (6)為程序加入注釋,提高可讀性,實施軟件工程; (7)注意軟件的抗干擾設(shè)計,提高系統(tǒng)的可靠性。 4.1 系統(tǒng)軟件設(shè)計流程圖 主程序先是開始,然后賦初值,本設(shè)計采用的是動態(tài)顯示,所以在賦玩初值 后顯示程序不斷被調(diào)用。 圖 4-1 主程序流程圖 4.2 C 語言介紹 C 語言是一種面向過程的計算機(jī)程序設(shè)計語言,它是目前眾多計算機(jī)語言中 舉世公認(rèn)的優(yōu)秀的結(jié)構(gòu)程序設(shè)計語言之一。它由美國貝爾研究所的 D.M.Ritchie 于 1972 年推出。1978 后,C 語言已先后被移植到大、中、小及微型機(jī)上。 C 語言發(fā)展如此迅速,而且成為最受歡迎的語言之一,主要因為它具有強(qiáng)大 的功能。許多著名的系統(tǒng)軟件,如 DBASE 都是由 C 語言編寫的。用 C 語言加 M=999 的計數(shù)器的設(shè)計與實現(xiàn) 26 上一些匯編語言子程序,就更能顯示 C 語言的優(yōu)勢了,像 PC- DOS 、WORDSTAR 等就是用這種方法編寫的。 C 語言是一種成功的系統(tǒng)描述語言,用 C 語言開發(fā)的 UNIX 操作系統(tǒng)就是一個 成功的范例;同時 C 語言又是一種通用的程序設(shè)計語言,在國際上廣泛流行。世 界上很多著名的計算公司都成功的開發(fā)了不同版本的 C 語言,很多優(yōu)秀的應(yīng)用程 序也都使用 C 語言開發(fā)的,它是一種很有發(fā)展前途的高級程序設(shè)計語言。 1.C 是中級語言。它把高級語言的基本結(jié)構(gòu)和語句與低級語言的實用性結(jié)合 起來。C 語言可以像匯編語言一樣對位、字節(jié)和地址進(jìn)行操作, 而這三者是計 算機(jī)最基本的工作單元。 2.C 是結(jié)構(gòu)式語言。結(jié)構(gòu)式語言的顯著特點(diǎn)是代碼及數(shù)據(jù)的分隔化,即程序 的各個部分除了必要的信息交流外彼此獨(dú)立。這種結(jié)構(gòu)化方式可使程序?qū)哟吻逦?便于使用、維護(hù)以及調(diào)試。C 語言是以函數(shù)形式提供給用戶的,這些函數(shù)可方便 的調(diào)用,并具有多種循環(huán)、條件語句控制程序流向,從而使程序完全結(jié)構(gòu)化。 3.C 語言功能齊全。具有各種各樣的數(shù)據(jù)類型,并引入了指針概念,可使程 序效率更高。而且計算功能、邏輯判斷功能也比較強(qiáng)大,可以實現(xiàn)決策目的的游 戲。 4.C 語言適用范圍大。適合于多種操作系統(tǒng),如 Windows、DOS、UNIX 等等; 也適用于多種機(jī)型。 C 語言對編寫需要硬件進(jìn)行操作的場合,明顯優(yōu)于其它解釋型高級語言,有 一些大型應(yīng)用軟件也是用 C 語言編寫的。 C 語言具有較好的可移植性,并具備很強(qiáng)的數(shù)據(jù)處理能力,因此適于編寫系 統(tǒng)軟件,三維,二維圖形和動畫。它是數(shù)值計算的高級語言。 4.3 程序 #include code unsigned char tab= 0 x28,0 xEB,0 x32,0 xA2,0 xE1,0 xA4,0 x24,0 xEA,0 x20,0 xA0,0 x60,0 x25,0 x3C,0 第四章 軟件設(shè)計 27 x23,0 x34,0 x74; /共陽數(shù)碼管 0-9 unsigned char Dis_baiwei;/定義十位 unsigned char Dis_shiwei; /定義個位 unsigned char Dis_gewei; void delay(unsigned int cnt) while(-cnt); main() TMOD |=0 x01;/定時器設(shè)置 10ms in 12M crystal TH0=0 xd8; TL0=0 xf0; IE= 0 x82; /打開中斷 TR0=1; while(1) P0=Dis_baiwei;/顯示十位 P2=0 x7f; delay(300);/短暫延時 P0=Dis_shiwei; /顯示個位 P2=0 xbf; delay(300); M=999 的計數(shù)器的設(shè)計與實現(xiàn) 28 P0=Dis_gewei; P2=0 xdf; delay(300); /*/* 定時中斷 */ /*/ void tim(void) interrupt 1 using 1 static unsigned int second,count; TH0=0 xd8;/重新賦值 TL0=0 xf0; count+; if (count=100) count=0; second+;/秒加 1 if(second=1000) second=0; Dis_baiwei=tabsecond/100;/百位顯示值處理 Dis_shiwei=tab(second%100)/10; /十位顯示處理 Dis_gewei=tab(second%100)%10;/各位 4.4 keil 軟件調(diào)試 4.4.1 軟件介紹 Keil 軟件是目前最流行開發(fā) MCS-51 系列單片機(jī)的軟件,這從近年來各仿真 第四章 軟件設(shè)計 29 機(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)你只能買到該軟件、而你買的仿真機(jī)也很可能只支 持該軟件) ,即使不使用 C 語言而僅用匯編語言編程,其方便易用的集成環(huán)境、 強(qiáng)大的軟件仿真調(diào)試工具也會令你事半功倍。 4.4.2 系統(tǒng)概述 目前流行的 51 系列單片機(jī)開發(fā)軟件是德國 Keil 公司推出的 Keil C51 軟件, Keil C51 軟件提供豐富的庫函數(shù)和功能強(qiáng)大的集成開發(fā)調(diào)試工具,全 Windows 界 面。另外重要的一點(diǎn),只要看一下編譯后生成的匯編代碼,就能體會到 Keil C51 生成的目標(biāo)代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在 開發(fā)大型軟件時更能體現(xiàn)高級語言的優(yōu)勢。與匯編相比,C 語言在功能上、結(jié)構(gòu) 性、可讀性、可維護(hù)性上有明顯的優(yōu)勢。下面詳細(xì)介紹 Keil C51 開發(fā)系統(tǒng)各部 分功能和使用。 4.4.3 Keil C51 單片機(jī)軟件開發(fā)系統(tǒng)的整體結(jié)構(gòu) C51 工具包的整體結(jié)構(gòu),uVision 與 Ishell 分別是 C51 for Windows 和 for Dos 的集成開發(fā)環(huán)境(IDE),可以完成編輯、編譯、連接、調(diào)試、仿真等整個開發(fā) 流程。開發(fā)人員可用 IDE 本身或其它編輯器編輯 C 或匯編源文件。然后分別由 C51 及 C51 編譯器編譯生成目標(biāo)文件(.OBJ)。目標(biāo)文件可由 LIB51 創(chuàng)建生成庫文 件,也可以 與庫文件一起經(jīng) L51 連接定位生成絕對目標(biāo)文件(.ABS)。ABS 文件由 OH51 轉(zhuǎn) 換成標(biāo)準(zhǔn)的 Hex 文件,以供調(diào)試器 dScope51 或 tScope51 使用進(jìn)行源代碼級調(diào)試, 也可由仿真器使用直接對目標(biāo)板進(jìn)行調(diào)試,也可以直接寫入程序存貯器如 EPROM 中。 M=999 的計數(shù)器的設(shè)計與實現(xiàn) 30 Keil C51 生成的目標(biāo)代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊, 容易理解。在開發(fā)大型軟件時更能體現(xiàn)高級語言的優(yōu)勢。 第五章 焊接調(diào)試與功能說明 31 第五章 焊接調(diào)試與功能說明 5.1 系統(tǒng)性能測試與功能說明 走時:默認(rèn)為計數(shù)狀態(tài),顯示三位數(shù),時間會按實際時間以秒為最小單位變 化,從 000999 的計數(shù),按復(fù)位鍵,重 000 開始,重新計數(shù)。 5.2 軟件調(diào)試問題及解決 軟件程序的調(diào)試一般可以將重點(diǎn)放在分模塊調(diào)試上,統(tǒng)調(diào)是最后一環(huán)。軟件 調(diào)試可以采取離線調(diào)試和在線調(diào)試兩種方式。前者不需要硬件仿真器,可借助于 軟件仿真器即可;后者一般需要仿真系統(tǒng)的支持。本次課題,Keil 軟件來調(diào)試程 序,通過各個模塊程序的單步或跟蹤調(diào)試,使程序逐漸趨于正確,最后統(tǒng)調(diào)程序。 仿真部分采用 protus 6 professional 軟件,此軟件功能強(qiáng)大且操作較為簡 單,可以很容易的實現(xiàn)各種系統(tǒng)的仿真。 首先打開 protus 6 professional 軟件,在元件庫中找到要選用的所有元件, 然后進(jìn)行原理圖的繪制;繪制好后再選擇 wave6000 已經(jīng)編譯好的*.hex 文件,選 擇運(yùn)行,觀察顯示結(jié)果,根據(jù)顯示的結(jié)果和課題的要求再修改程序,再運(yùn)行查, 直到滿足要求。 M=999 的計數(shù)器的設(shè)計與實現(xiàn) 32 結(jié)論 33 結(jié) 論 這次畢業(yè)設(shè)計讓我受益匪淺。通過這次設(shè)計我對自己在大學(xué)三年時間里所學(xué) 的知識得到了全面的回顧,并充分發(fā)揮對所學(xué)知識的理解和對畢業(yè)設(shè)計的思考及 書面表達(dá)能力,最終完成了這份論文。撰寫論文的過程也是專業(yè)知識的學(xué)習(xí)過程, 它使我運(yùn)用已有的專業(yè)基礎(chǔ)知識,對其進(jìn)行設(shè)計,分析和解決一個理論問題或?qū)?際問題,把知識轉(zhuǎn)化為能力的實際訓(xùn)練。培養(yǎng)了我運(yùn)用所學(xué)知識解決實際問題的 能力。 通過這次畢業(yè)設(shè)計我發(fā)現(xiàn),只有理論水平提高了,才能夠?qū)⒄n本知識與實踐 相整合,理論知識服務(wù)于教學(xué)實踐,以增強(qiáng)自己的動手能力。這個設(shè)計十分有意 義 我獲得很深刻的經(jīng)驗。通過這次畢業(yè)設(shè)計,我們知道了理論和實際的距離, 也知道了理論和實際想結(jié)合的重要性, ,也從中得知了很多書本上無法得知的知 識。 我們的學(xué)習(xí)不但要立足于書本,以解決理論和實際教學(xué)中的實際問題為目的,還 要以實踐相結(jié)合,理論問題即實踐課題,解決問題即課程研究,學(xué)生自己就是一 個專家,通過自己的手來解決問題比用腦子解決問題更加深刻。學(xué)習(xí)就應(yīng)該采取 理論與實踐結(jié)合的方式,理論的問題,也就是實踐性的課題。這種做法既有助于 完成理論知識的鞏固,又有助于帶動實踐,解決實際問題,加強(qiáng)我們的動手能力 和解決問題的能力。 M=999 的計數(shù)器的設(shè)計與實現(xiàn) 34 參考文獻(xiàn) 35 參 考 文 獻(xiàn) 1 單片機(jī)系統(tǒng)設(shè)計及工程應(yīng)用 雷思孝等 西安電子科技大學(xué)出版社 2 電路基礎(chǔ) 吳大正 西安電子科技大學(xué)出版社 3 c+程序與設(shè)計語言 揣錦華等 西安電子科技大學(xué)出版社 4 電子線路 CAD 實用教程 潘永雄等 西安電子科技大學(xué)出版社 5 MCS51/96 系列單片機(jī)原理及應(yīng)用 孫涵芳 北京航空航天大學(xué)出版社 M=999 的計數(shù)器的設(shè)計與實現(xiàn) 36 致謝 37 致 謝 論文的完成標(biāo)志著我的大學(xué)四年即將結(jié)束,也意味著,新的生活又將開始了。 最近的半年則并行著找工作和寫論文。其間的起起伏伏、悲喜得失,今天想來仍 舊唏噓不已。所幸我沒有被失敗擊垮。自信、堅強(qiáng)、樂觀的態(tài)度讓我堅持到了最 后,并且爭取了最好的結(jié)局。 通過幾個月的悉心設(shè)計,在指導(dǎo)教師的耐心指導(dǎo)下,我完成了畢業(yè)設(shè)計的工 作。此次的畢業(yè)設(shè)計是我們四年來專業(yè)知識的綜合運(yùn)用,是對我們能力的綜合考 核。這不僅涉及到對基本原理的理解,也涉及到對問題的分析能力。 通過本次畢業(yè)設(shè)計,讓我對我國電子軟件有了新的認(rèn)識。這也使我認(rèn)識到了 自己知識的匱乏和能力的有限。從而激勵我在今后的學(xué)習(xí)和工作中更要努力的學(xué) 習(xí)和不斷的充實自己。在這里我尤其感謝老師。在他的耐心指導(dǎo)下,我才能成功 的完成這次的畢業(yè)設(shè)計,在寫論文時老師嚴(yán)格的要求我們,培養(yǎng)我們強(qiáng)烈的責(zé)任 心和工作學(xué)習(xí)的積極性,并且耐心的解答論文中出現(xiàn)的問題。他還為我們指明了 論文方向,校定論文方向。在他的要求下,我不僅完成了整個設(shè)計和論文,更重 要的是鍛煉了我分析問題和獨(dú)立思考的能力。 最后,我再一次表達(dá)我對領(lǐng)導(dǎo)以及教過我所有的老師最衷心的感謝,是你們 在我前進(jìn)的道路上給以引導(dǎo),并無私的教給我許多專業(yè)知識以及做人的道理。再 次,讓我對所有的老師及所有幫助過我的同學(xué)們致以最崇高的敬意。 “長風(fēng)破浪會有時,直掛云帆濟(jì)滄海。 ”這是我最喜歡的詩句。就用這話作為這 篇論文的一個結(jié)尾,也是一段生活的結(jié)束。希望自己能夠記取少年時的夢想,永 不放棄。 M=999 的計數(shù)器的設(shè)計與實現(xiàn) 38 附錄 39 附 錄 實物圖: