單片機(jī)課程設(shè)計(jì).doc
《單片機(jī)課程設(shè)計(jì).doc》由會(huì)員分享,可在線閱讀,更多相關(guān)《單片機(jī)課程設(shè)計(jì).doc(30頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
單片機(jī)電子時(shí)鐘 摘要:在日常生活中,電子時(shí)鐘與我們密切相關(guān),在很多地方都會(huì)用到電子時(shí)鐘。除了專用的時(shí)鐘、計(jì)時(shí)顯示牌外,許多應(yīng)用系統(tǒng)常常也帶有實(shí)時(shí)時(shí)鐘顯示,如各種智能化儀器儀表、工業(yè)過程控制系統(tǒng)以及家用電器等。實(shí)現(xiàn)電子時(shí)鐘的方法有多種,通過前面我們對(duì)單片機(jī)基本理論及相關(guān)知識(shí)的學(xué)習(xí),在這里,要求用單片機(jī)為主控制芯片設(shè)計(jì)一簡(jiǎn)單的單片機(jī)電子時(shí)鐘。近年來隨著計(jì)算機(jī)在社會(huì)領(lǐng)域的滲透和大規(guī)模集成電路的發(fā)展,單片機(jī)的應(yīng)用正在不斷地走向深入,由于它具有功能強(qiáng),體積小,功耗低,價(jià)格便宜,工作可靠,使用方便等特點(diǎn),因此特別適合于與控制有關(guān)的系統(tǒng),越來越廣泛地應(yīng)用于自動(dòng)控制,智能化儀器,儀表,數(shù)據(jù)采集,軍工產(chǎn)品以及家用電器等各個(gè)領(lǐng)域,單片機(jī)往往是作為一個(gè)核心部件來使用,在根據(jù)具體硬件結(jié)構(gòu),以及針對(duì)具體應(yīng)用對(duì)象特點(diǎn)的軟件結(jié)合,以作完善。 關(guān)鍵詞:電子時(shí)鐘;單片機(jī);計(jì)時(shí) SCM Electronic Clock Abstract:In our daily life, the electronic clock is closely related to the electronic clock which will be used in many places. In addition to a dedicated clock, timing licenses, there are many applications which often with real-time clock display, such as a variety of intelligent instrumentation, industrial process control systems and home appliances. There are many ways to realize the Electronic clock, through the front of learning our SCM basic theory and related knowledge, here, the microcontroller-based control chip design a simple single-chip electronic clock. With the development of computer penetration in the social field and LSI in recent years, the using of microcontroller applications is constantly go deeper, because it has the features of a small size, low power consumption, cheap, reliable, easy to use. Therefore it is particularly suitable for the control of the system, more and more widely used in automatic control, Intelligent instruments, data acquisition, and military products and home appliances, SCM often used as a core component in the structure, according to the specific hardware and software for application-specific object characteristics combined to make perfect. Keywords: electronic clock; microcontroller; timing 目錄 第一章 引言 1 1.1課程設(shè)計(jì)的目的 1 1.2課程設(shè)計(jì)內(nèi)容 1 第二章 總體方案設(shè)計(jì) 2 2.1 總體思想--方案論證 2 2.2方案的選擇 2 第三章 硬件系統(tǒng)設(shè)計(jì) 4 3.1總電路設(shè)計(jì) 4 3.2器件的介紹 4 3.3單元模塊設(shè)計(jì) 6 第四章 軟件系統(tǒng)設(shè)計(jì) 9 4.1軟件程序思想 9 4.2主程序及流程圖 9 4.3子程序及流程圖 12 第五章 系統(tǒng)仿真 16 5.1 KEIL 51介紹 16 5.2 PROTEUS介紹 20 5.3仿真過程及仿真結(jié)果 28 第六章 結(jié)束語 29 致謝 30 參考文獻(xiàn) 31 第一章 引言 1.1課程設(shè)計(jì)的目的 本次設(shè)計(jì)中以單片機(jī)的發(fā)展過程和發(fā)展方向?yàn)楸尘?,介紹了單片機(jī)的輸入輸出的工作原理和操作方法,中斷的工作原理和操作方法,74LS164譯碼器的工作原理和與LED連接的方法。通過它可以進(jìn)一步學(xué)習(xí)與掌握單片機(jī)原理與使用方法。目前,單片機(jī)正朝著高性能和多品種方向發(fā)展趨勢(shì)將是進(jìn)一步向著CMOS化、低功耗、小體積、大容量、高性能、低價(jià)格和外圍電路內(nèi)裝化等幾個(gè)方面發(fā)展。下面是單片機(jī)的主要發(fā)展趨勢(shì)。單片機(jī)應(yīng)用的重要意義還在于,它從根本上改變了傳統(tǒng)的控制系統(tǒng)設(shè)計(jì)思想和設(shè)計(jì)方法。從前必須由模擬電路或數(shù)字電路實(shí)現(xiàn)的大部分功能,現(xiàn)在已能用單片機(jī)通過軟件方法來實(shí)現(xiàn)了。這種軟件代替硬件的控制技術(shù)也稱為微控制技術(shù),是傳統(tǒng)控制技術(shù)的一次革命。單片機(jī)模塊中最常見的是數(shù)字鐘,數(shù)字鐘是一種用數(shù)字電路技術(shù)實(shí)現(xiàn)時(shí)、分、秒計(jì)時(shí)的裝置,與機(jī)械式時(shí)鐘相比具有更高的準(zhǔn)確性和直觀性,且無機(jī)械裝置,具有更更長(zhǎng)的使用壽命,因此得到了廣泛的使用。時(shí)間對(duì)人們來說總是那么寶貴,工作的忙碌性和繁雜性容易使人忘記當(dāng)前的時(shí)間。忘記了要做的事情,當(dāng)事情不是很重要的時(shí)候,這種遺忘無傷大雅。但是,一旦重要事情,一時(shí)的耽誤可能釀成大禍。 數(shù)字鐘是采用數(shù)字電路實(shí)現(xiàn)對(duì).時(shí),分,秒.數(shù)字顯示的計(jì)時(shí)裝置,廣泛用于個(gè)人家庭,車站, 碼頭辦公室等公共場(chǎng)所,成為人們?nèi)粘I钪胁豢缮俚谋匦杵?由于數(shù)字集成電路的發(fā)展和石英晶體振蕩器的廣泛應(yīng)用,使得數(shù)字鐘的精度,遠(yuǎn)遠(yuǎn)超過老式鐘表, 鐘表的數(shù)字化給人們生產(chǎn)生活帶來了極大的方便,而且大大地?cái)U(kuò)展了鐘表原先的報(bào)時(shí)功能。諸如定時(shí)自動(dòng)報(bào)警、按時(shí)自動(dòng)打鈴、時(shí)間程序自動(dòng)控制、定時(shí)廣播、自動(dòng)起閉路燈、定時(shí)開關(guān)烘箱、通斷動(dòng)力設(shè)備、甚至各種定時(shí)電氣的自動(dòng)啟用等,所有這些,都是以鐘表數(shù)字化為基礎(chǔ)的。因此,研究數(shù)字鐘及擴(kuò)大其應(yīng)用,有著非?,F(xiàn)實(shí)的意義。 1.2課程設(shè)計(jì)內(nèi)容 本次做的數(shù)字鐘是以單片機(jī)(AT89C51)為核心,結(jié)合相關(guān)的元器件(共陰極LED數(shù)碼顯示器、數(shù)碼管驅(qū)動(dòng)器74LS164等),再配以相應(yīng)的軟件,是它具有星期,時(shí),分,秒顯示的功能,并且時(shí),分,秒還可以調(diào)整。此次設(shè)計(jì)電子數(shù)字鐘是為了了解電子數(shù)字鐘的原理,從而學(xué)會(huì)制作電子數(shù)字鐘。而且通過電子數(shù)字鐘的制作進(jìn)一步的了解各種在制作中用到的中小規(guī)模集成電路的作用及實(shí)用方法。 第二章 總體方案設(shè)計(jì) 2.1 總體思想--方案論證 1.計(jì)時(shí)方案 單片機(jī)電子時(shí)鐘計(jì)時(shí)有兩種方法:第一種是通過單片機(jī)內(nèi)部的定時(shí)器/計(jì)數(shù)器,采用軟件編程來實(shí)現(xiàn)時(shí)鐘計(jì)時(shí),這種實(shí)現(xiàn)的時(shí)鐘一般稱為軟時(shí)鐘,這種方法的硬件線路簡(jiǎn)單,系統(tǒng)的功能一般與軟件設(shè)計(jì)相關(guān),通常用在對(duì)時(shí)間精度要求不高的場(chǎng)合;第二種是采用專用的硬件時(shí)鐘芯片計(jì)時(shí),這種實(shí)現(xiàn)的時(shí)鐘一般稱為硬時(shí)鐘。專用的時(shí)鐘芯片功能比較強(qiáng)大,除了自動(dòng)實(shí)現(xiàn)基本計(jì)時(shí)外,一般還具有日歷和閏年補(bǔ)償?shù)裙δ?,?jì)時(shí)準(zhǔn)確,軟件編程簡(jiǎn)單,但硬件成本相對(duì)較高,通常用在對(duì)時(shí)鐘精度要求較高的場(chǎng)合。 2.顯示方案 對(duì)于電子時(shí)鐘而言,顯示是另一個(gè)重要的環(huán)節(jié)。顯示通常采用兩種方式:LED數(shù)碼管顯示和LCD液晶顯示。其中LED數(shù)碼管顯示亮度高,顯示內(nèi)容清晢,根據(jù)具體的連接方式可分為靜態(tài)顯示和動(dòng)態(tài)顯示,在多個(gè)數(shù)碼管時(shí)一般采用動(dòng)態(tài)顯示,動(dòng)態(tài)顯示時(shí)須要占用CPU的大量時(shí)間來執(zhí)行動(dòng)態(tài)顯示程序,顯示效果往往和顯示程序的執(zhí)行相關(guān)。LCD液晶顯示一般能顯示的信息多,顯示效果好,而且液晶顯示器一般都帶控制器,顯示過程由自帶的控制器控制,不須要CPU參與,但液晶顯示器造價(jià)相對(duì)較高。 為了便于比較與學(xué)習(xí),這里給出兩種設(shè)計(jì)方案,一種是軟件計(jì)時(shí)LED數(shù)碼管顯示的單片機(jī)電子時(shí)鐘,另一種是硬件定時(shí)LCD液晶顯示的單片機(jī)電子時(shí)鐘。軟件計(jì)時(shí)LED數(shù)碼管顯示的單片機(jī)電子時(shí)鐘總體設(shè)計(jì)框圖如圖2-1所示。硬件定時(shí)LCD液晶顯示的單片機(jī)電子時(shí)鐘總體設(shè)計(jì)框圖如圖2-2所示。 51單片機(jī) 時(shí)鐘電路 復(fù)位電路 LED 按鍵 51單片機(jī) 時(shí)鐘電路 復(fù)位電路 LCD 按鍵 時(shí)鐘芯片 圖2-1 軟件計(jì)時(shí)LED顯示時(shí)鐘總體框圖 圖2-2硬件定時(shí)LCD顯示時(shí)鐘總體框圖 2.2方案的選擇 對(duì)于電子時(shí)鐘而言,顯示是另一個(gè)重要的環(huán)節(jié)。顯示通常采用兩種方式:LED數(shù)碼管顯示和LCD液晶顯示。其中LED數(shù)碼管顯示亮度高,顯示內(nèi)容清晢,根據(jù)具體的連接方式可分為靜態(tài)顯示和動(dòng)態(tài)顯示,在多個(gè)數(shù)碼管時(shí)一般采用動(dòng)態(tài)顯示,動(dòng)態(tài)顯示時(shí)須要占用CPU的大量時(shí)間來執(zhí)行動(dòng)態(tài)顯示程序,顯示效果往往和顯示程序的執(zhí)行相關(guān)。LCD液晶顯示一般能顯示的信息多,顯示效果好,而且液晶顯示器一般都帶控制器,顯示過程由自帶的控制器控制,不須要CPU參與,但液晶顯示器造價(jià)相對(duì)較高。 掌握單片機(jī)最小系統(tǒng)的電路原理圖;硬件的焊接、連接;獨(dú)立編輯、編譯軟件;上電以后自動(dòng)進(jìn)入計(jì)時(shí)狀態(tài),起始于00:00:00。設(shè)計(jì)鍵盤調(diào)整時(shí)間,完成時(shí)間設(shè)計(jì)。定時(shí)時(shí)間為1/20秒,采用定時(shí)器實(shí)現(xiàn)。采用LED數(shù)碼管顯示,時(shí)、分,秒采用數(shù)字顯示。采用24小時(shí)制,具有方便的時(shí)間調(diào)校功能。 第三章 硬件系統(tǒng)設(shè)計(jì) 3.1總電路設(shè)計(jì) 軟件計(jì)時(shí)LED數(shù)碼管顯示的時(shí)鐘的具體硬件電路如圖3-1所示,其中單片機(jī)采用應(yīng)用廣泛的AT89C51,系統(tǒng)時(shí)鐘采用12MHz的晶振,8個(gè)數(shù)碼管顯示,小時(shí)與分鐘、分鐘與秒鐘之間用短橫線間隔,采用共陽極七段式數(shù)碼管,由于并口上沒有連接其它的硬件電路,所以P0口直接作段選碼輸出端,P2口作位選碼輸出端。采用簡(jiǎn)化按鍵方式,只設(shè)定3個(gè)開關(guān)K0、K1和K2,通過P1口低3位相連。其中K0鍵為調(diào)時(shí)模式選擇鍵,K1為加1鍵,K2為減1健。 圖3-1 軟件計(jì)時(shí)LED顯示時(shí)鐘硬件電路圖 3.2器件的介紹 定時(shí)計(jì)數(shù)器:定時(shí)/計(jì)數(shù)技術(shù)在計(jì)算機(jī)系統(tǒng)中具有極其重要的作用。計(jì)算機(jī)系統(tǒng)都需要為CPU和外部設(shè)備提供定時(shí)控制或?qū)ν獠渴录M(jìn)行計(jì)數(shù)。例如,分時(shí)系統(tǒng)的程序切換,向外部設(shè)備輸出周期性定時(shí)控制信號(hào),對(duì)外部事件個(gè)數(shù)統(tǒng)計(jì)等。另外,在檢測(cè)、控制和智能儀器等設(shè)備中也經(jīng)常會(huì)涉及到定時(shí)。因此,計(jì)算機(jī)系統(tǒng)必須有定時(shí)和計(jì)數(shù)技術(shù)。 定時(shí)/計(jì)數(shù)的本質(zhì)是計(jì)數(shù),對(duì)周期性信號(hào)計(jì)數(shù)就實(shí)現(xiàn)定時(shí)。通常,實(shí)現(xiàn)定時(shí)的方法有三種:軟件定時(shí)、硬件定時(shí)、可編程定時(shí)。軟件定時(shí)是利用CPU執(zhí)行指令需要若干指令周期的原理,運(yùn)用軟件編程,然后循環(huán)執(zhí)行一段程序而產(chǎn)生延時(shí),再配合簡(jiǎn)單輸出接口可以向外送出定時(shí)控制信號(hào)。這種方法的優(yōu)點(diǎn)是不需要增加硬件或硬件很簡(jiǎn)單,只需要編制相應(yīng)的延時(shí)程序以備調(diào)用。缺點(diǎn)是執(zhí)行延時(shí)程序占用了CPU時(shí)間,所以定時(shí)的時(shí)間不宜太長(zhǎng),且在某些惰況下不宜使用。硬件定時(shí)是通過硬件電路(多偕振蕩器件或單穩(wěn)器件)實(shí)現(xiàn)定時(shí),故定時(shí)參數(shù)的調(diào)整不靈活,使用不方便,其成本較低。可編程定時(shí)結(jié)合了軟件定時(shí)使用靈活和硬件定時(shí)獨(dú)立的特點(diǎn),它以大規(guī)模集成電路為基礎(chǔ),通過編程即可改變定時(shí)時(shí)間或工作方式,又不占用CPU的執(zhí)行時(shí)間。在計(jì)算機(jī)系統(tǒng)中通常用到的是可編程定時(shí),51單片機(jī)內(nèi)部就集成了可編程的定時(shí)/計(jì)數(shù)器,它是51單片機(jī)中使用非常頻繁的重要功能模塊。 LED顯示器:LED數(shù)碼管顯示器是由發(fā)光二極管按一定的結(jié)構(gòu)組合起來的顯示器件。在單片機(jī)應(yīng)用系統(tǒng)中通常使用的是7段或8段式LED數(shù)碼管顯示器,8段式比7段式多一個(gè)小數(shù)點(diǎn)。這里以8段式來介紹,單個(gè)8段式LED數(shù)碼管顯示器的外觀與引腳如圖3-2所示,其中a,b,c,d,e,f,g和小數(shù)點(diǎn)dp為8段發(fā)光二極管,位置如圖中所示,組成一個(gè)“”形狀。 (a) 引腳圖 (b) 共陰極 (c) 共陽極 圖3-2 8段式LED數(shù)碼管引腳與結(jié)構(gòu) 8段發(fā)光二極管的連接有兩種結(jié)構(gòu):共陰極和共陽極。如圖3-2所示。其中,圖(b)為共陰極結(jié)構(gòu),8段發(fā)光二極管的陰極端連接在一起,陽極端分開控制,使用時(shí)公共端接地,要使哪根發(fā)光二極管亮,則對(duì)應(yīng)的陽極端接高電平;圖(b)為共陽極結(jié)構(gòu),8段發(fā)光二極管的陽極端連接在一起,陰極端分開控制,使用時(shí)公共端接電源,要使哪根發(fā)光二極管亮,則對(duì)應(yīng)的陰極端接地。 LED數(shù)碼管顯示器顯示時(shí),公共端首先要保證有效,即共陰極結(jié)構(gòu)公共端接低電平,共陽極結(jié)構(gòu)公共端接高電平,這個(gè)過程我們稱為選通數(shù)碼管。再在另外一端送要顯示數(shù)字的編碼,這個(gè)編碼稱為字段碼,8位數(shù)碼管字段碼為8位,從高位到低位的順序依次為dp、g、f、e、d、c、b、a。如:共陰極數(shù)碼管數(shù)字“0”的字段碼為00111111B(3FH),共陽極數(shù)碼管數(shù)字“1”的字段碼為11111001B(F9H),不同數(shù)字或字符其字段碼不一樣,對(duì)于同一個(gè)數(shù)字或字符,共陰極結(jié)構(gòu)和共陽極結(jié)構(gòu)的字段碼也不一樣,共陰極和共陽極的字段碼互為反碼。 MCS-51:MCS-51系列單片機(jī)是美國(guó)Intel公司在1980年推出的高性能8位單片機(jī),它包含51和52 兩個(gè)子系列。 對(duì)于51子系列,主要有8031、8051、8751 三種機(jī)型,它們的指令系統(tǒng)與芯片引腳完全兼容,僅片內(nèi)程序存儲(chǔ)器有所不同,8031芯片不帶ROM,8051芯片帶4KB的ROM,8751芯片帶4KB的EPROM。51子系列單片機(jī)的主要特點(diǎn)如下。 l 8位CPU。 l 片內(nèi)帶振蕩器,頻率范圍1.2 MHz~12MHz。 l 片內(nèi)帶128B的數(shù)據(jù)存儲(chǔ)器。 l 片內(nèi)帶4KB的程序存儲(chǔ)器。 l 程序存儲(chǔ)器的尋址空間為64KB。 l 片外數(shù)據(jù)存儲(chǔ)器的尋址空間為64KB。 l 128個(gè)用戶位尋址空間。 l 21個(gè)字節(jié)特殊功能寄存器。 l 4個(gè)8位的并行I/O接口:P0、P1、P2、P3。 l 兩個(gè)16位定時(shí)/計(jì)數(shù)器。 l 兩個(gè)優(yōu)先級(jí)別的5個(gè)中斷源。 l 1個(gè)全雙工的串行I/O接口,可多機(jī)通信。 l 111條指令,含乘法指令和除法指令。 l 片內(nèi)采用單總線結(jié)構(gòu)。 l 有較強(qiáng)的位處理能力。 l 采用單一+5V電源。 對(duì)于52子系列,有8032、8052、8752 三種機(jī)型。52子系列與51子系列相比大部分相同,不同之處在于:片內(nèi)數(shù)據(jù)存儲(chǔ)器增至256B;8032芯片不帶ROM,8052芯片帶8KB的ROM,8752芯片帶8KB的EPROM;有3個(gè)16位定時(shí)器/計(jì)數(shù)器;6個(gè)中斷源。本書以51子系列的8051為例來介紹MCS-51單片機(jī)的基本原理。 雖然MCS-51系列單片機(jī)的芯片有多種類型,但它們的基本組成相同。MCS-51單片機(jī)的基本結(jié)構(gòu)如圖3-3所示。 圖3-3 MCS-51的基本結(jié)構(gòu) 3.3單元模塊設(shè)計(jì) 51系列單片機(jī)是美國(guó)Intel公司在1980年推出的高性能8位單片機(jī),它包含51和52 兩個(gè)子系列。 51單片機(jī)集成了中央處理器(CPU)、存儲(chǔ)器系統(tǒng)(RAM和ROM)、定時(shí)/計(jì)數(shù)器、并行接口、串行接口、中斷系統(tǒng)及一些特殊功能寄存器(SFR),它們通過內(nèi)部總線緊密的聯(lián)系在一起。 51單片機(jī)有40個(gè)引腳,在本次設(shè)計(jì)當(dāng)中有很多口都沒有使用,我們下面介紹的就是對(duì)本次設(shè)計(jì)最為重要的4個(gè)8位的并行I/O接口。 表3-1 P3口的第二功能 P3口 第二功能 P3.0 RXD 串行口輸入端 P3.1 TXD 串行口輸出端 P3.2 INT0 外部中斷0請(qǐng)求輸入端,低電平有效 P3.3 INT1 外部中斷1請(qǐng)求輸入端,低電平有效 P3.4 T0 定時(shí)/計(jì)數(shù)器0外部計(jì)數(shù)脈沖輸入端 P3.5 T1 定時(shí)/計(jì)數(shù)器0外部計(jì)數(shù)脈沖輸入端 P3.6 WR 外部數(shù)據(jù)存儲(chǔ)器寫信號(hào),低電平有效 P3.7 RD 外部數(shù)據(jù)存儲(chǔ)器讀信號(hào),低電平有效 51系列單片機(jī)有4個(gè)8位的并行I/O接口:P0、P1、P2和P3口。它們是特殊功能寄存器中的4個(gè)。這4個(gè)口,既可以作輸入,也可以作輸出,既可按8位處理,也可按位方式使用。輸出時(shí)具有鎖存能力,輸入時(shí)具有緩沖功能。每個(gè)口的具體功能有所不同。P0口是一個(gè)三態(tài)雙向口,可作為地址/數(shù)據(jù)分時(shí)復(fù)用口,也可作為通用的I/O接口。它包括一個(gè)輸出鎖存器、兩個(gè)三態(tài)緩沖器、輸出驅(qū)動(dòng)電路和輸出控制電路組成。P1口只作通用I/O接口使用。P1口具有驅(qū)動(dòng)4個(gè)LSTTL負(fù)載的能力。P2口有兩種用途:通用I/O接口和高8位地址線。P3口除了作為通用I/O口使用外,它的每一根線還具有第二種功能,見表3-1。 當(dāng)P3口作為通用I/O接口時(shí),第二功能輸出線為高電平。當(dāng)P3口作為第二功能時(shí),鎖存器的輸出端必須為高電平,P3口的狀態(tài)取決于第二功能輸出線的狀態(tài)。單片機(jī)復(fù)位時(shí),鎖存器的輸出端為高電平。 復(fù)位與復(fù)位電路 復(fù)位是單片機(jī)的初始化操作,以便使CPU和系統(tǒng)中其他部件都處于一個(gè)確定的狀態(tài),并從這個(gè)狀態(tài)開始工作。 當(dāng)單片機(jī)系統(tǒng)在運(yùn)行出錯(cuò)或操作錯(cuò)誤使系統(tǒng)處于死鎖存時(shí),也可按復(fù)位鍵重新啟動(dòng)。 單片機(jī)復(fù)位后,PC內(nèi)容初始化為0000H,那么單片機(jī)就從0000H單元開始執(zhí)行程序。片內(nèi)RAM為隨機(jī)值,運(yùn)行中的復(fù)位操作不改變片內(nèi)RAM的內(nèi)容。 RST引腳是復(fù)位信號(hào)的輸入端,復(fù)位信號(hào)是高電平有效,其有效時(shí)間應(yīng)持續(xù)2個(gè)機(jī)器周期以上。 按下復(fù)位按鈕時(shí),電源對(duì)外接電容器充電,使RST為高電平,復(fù)位按鈕松開后,電容通過內(nèi)部下拉電阻放電,逐漸使RST端恢復(fù)低電平。 時(shí)鐘信號(hào)有外部引入方式和內(nèi)部振蕩器方式兩種方式。下面就來對(duì)兩種方式進(jìn)行簡(jiǎn)單地介紹: 內(nèi)部振蕩方式 51單片機(jī)內(nèi)部有一個(gè)高增益的反相放大器,其輸入端為引腳XTAL1,輸出端為引腳XTAL2,用于外接石英晶體振蕩器或陶瓷諧振器和微調(diào)電容,構(gòu)成穩(wěn)定的自激振蕩器,其發(fā)出的脈沖直接送入內(nèi)部的時(shí)鐘電路。 外部引入方式常用于多片單片機(jī)組成的系統(tǒng)中,以便各單元之間的時(shí)鐘信號(hào)同步運(yùn)行。 LED數(shù)碼管是由發(fā)光二極管構(gòu)成的,亦稱半導(dǎo)體數(shù)碼管。將條狀發(fā)光二極管按照共陰極(負(fù)極)或共陽極(正極)的方法連接,組成“8”字,再把發(fā)光二極管另一電極作筆段電極,就構(gòu)成了LED數(shù)碼管。若按規(guī)定使某些筆段上的發(fā)光二極管發(fā)光,就能顯示從0~9的…系列數(shù)字。同熒光數(shù)碼管(VFD)、輝光數(shù)碼管(NRT)相比,它具有:體積小、功耗低、耐震動(dòng)、壽命長(zhǎng)、亮度高、單色性好、發(fā)光響應(yīng)的時(shí)間短,能與TTL、CMOS電路兼容等的數(shù)顯器件。+、-分別表示公共陽極和公共陰極。 a~g是7個(gè)筆段電極,DP為小數(shù)點(diǎn)。另有一種字高為7.6mm的超小型LED數(shù)碼管,管腳從左右兩排引出,小數(shù)點(diǎn)則是獨(dú)立的。 本系統(tǒng)利用6位LED數(shù)碼管顯示時(shí)間,共陰極結(jié)構(gòu)。LED數(shù)碼管由7段發(fā)光二極管組成,當(dāng)要顯示某個(gè)數(shù)字時(shí)只要將數(shù)字所對(duì)應(yīng)的引腳送入低電平。 本設(shè)計(jì)中主要有三個(gè)控制按鍵,按鍵功能為: (1)P3.2為調(diào)時(shí)間模式,長(zhǎng)按P3.2進(jìn)入調(diào)分狀態(tài):分單元閃爍,按P3.2加1,按P3.3減1.再長(zhǎng)按P3.2進(jìn)入時(shí)調(diào)整狀態(tài),時(shí)單元閃爍,加減調(diào)整同調(diào)分.按長(zhǎng)按退出調(diào)整狀態(tài)。 (2)按下P3.4進(jìn)入秒表狀態(tài):再按P3.4秒表又啟動(dòng),按P3.4暫停,再按P3.4秒表清零,按P3.4退出秒表回到時(shí)鐘狀態(tài)。 第四章 軟件系統(tǒng)設(shè)計(jì) 4.1軟件程序思想 軟件系統(tǒng)程序由主程序和子程序組成,主程序包含初始化參數(shù)設(shè)置、按鍵處理、數(shù)碼管顯示模塊等,在設(shè)計(jì)時(shí)各個(gè)模塊都采用子程序結(jié)構(gòu)設(shè)計(jì),在主程序中調(diào)用。時(shí)鐘由定時(shí)/計(jì)數(shù)器0產(chǎn)生,采用中斷方式工作,因此還要編寫定時(shí)/計(jì)數(shù)器0中斷服務(wù)子程序,在定時(shí)/計(jì)數(shù)器0中斷服務(wù)程序中形成時(shí)鐘關(guān)系。 1.主程序 主程序先對(duì)顯示單元和定時(shí)器/計(jì)數(shù)器初始化,然后重復(fù)調(diào)用數(shù)碼管顯示模塊和按鍵處理模塊,當(dāng)有鍵按下時(shí),則轉(zhuǎn)入相應(yīng)的功能程序。 2.?dāng)?shù)碼管顯示模塊 本系統(tǒng)共用8個(gè)數(shù)碼管,從左到右依次顯示時(shí)十位、時(shí)個(gè)位、橫線、分十位、分個(gè)位、橫線、秒十位和秒個(gè)位。數(shù)碼管顯示的信息用8個(gè)內(nèi)存單元存放,這8個(gè)內(nèi)存單元稱為顯示緩沖區(qū),其中秒個(gè)位和秒十位、分個(gè)位和分十位、時(shí)個(gè)位和時(shí)十位分別由秒數(shù)據(jù)、分?jǐn)?shù)據(jù)和小時(shí)數(shù)據(jù)分拆得到。在本系統(tǒng)中數(shù)碼管顯示采用軟件譯碼動(dòng)態(tài)顯示。在存儲(chǔ)器中首先建立一張顯示信息的字段碼表,顯示時(shí),先在P2口送出位選碼,選中顯示的數(shù)碼管,然后從顯示緩沖區(qū)中取出當(dāng)前顯示的信息,查表在字段碼表中查出所顯示的信息的字段碼,從P0口輸出,就能在相應(yīng)的數(shù)碼管上顯示顯示緩沖區(qū)的內(nèi)容。 3.定時(shí)器/計(jì)數(shù)器T0中斷服務(wù)程序 計(jì)時(shí)選擇定時(shí)器/計(jì)數(shù)器T0。具體處理如下:定時(shí)器/計(jì)數(shù)器T0選擇方式1,重復(fù)定時(shí),定時(shí)時(shí)間設(shè)為50ms,定時(shí)時(shí)間到則中斷,在中斷服務(wù)程序中用一個(gè)計(jì)數(shù)器對(duì)50ms計(jì)數(shù),計(jì)20次則對(duì)秒單元加1,秒單元加到60則對(duì)分單元加1,同時(shí)秒單元清0;分單元加到60則對(duì)時(shí)單元加1,同時(shí)分單元清0;時(shí)單元加到24則對(duì)時(shí)單元清0,標(biāo)志一天時(shí)間計(jì)滿,這樣就形成了時(shí)鐘關(guān)系。在對(duì)各單元計(jì)數(shù)的同時(shí),把它們的值放到存儲(chǔ)單元的指定位置。 4.按鍵處理模塊 按鍵處理設(shè)置為:如沒有按鍵,則時(shí)鐘正常走時(shí)。當(dāng)按K0鍵一次,時(shí)鐘暫停走動(dòng)進(jìn)入調(diào)小時(shí)狀態(tài),再按K0鍵一次,進(jìn)入調(diào)分狀態(tài),再按K0鍵一次,回到正常走時(shí);對(duì)于K1和K2按鍵,如果是正常走時(shí),按K1和K2不起作用,如果進(jìn)入調(diào)時(shí)或調(diào)分狀態(tài),按K1可對(duì)時(shí)或分進(jìn)行加1操作,小時(shí)加到24則回到0,分加到60則回到0;按K2可對(duì)時(shí)或分進(jìn)行減1操作,小時(shí)減到負(fù)則回到23,分減到負(fù)則回到59。 4.2主程序及流程圖 使用AT89C51單片機(jī),12MHz晶振,P0輸出字段碼,P2口輸出位選碼 用共陽LED數(shù)碼管,P1.0為調(diào)時(shí)模式按鍵,P1.1為加1鍵,P1.2為減1鍵 片內(nèi)RAM的70H到77H單元為L(zhǎng)ED數(shù)碼管的顯示緩沖區(qū) 78H,79H,7AH分別為秒、分、小時(shí)計(jì)數(shù)單元 7BH為50ms計(jì)數(shù)器,7CH為調(diào)時(shí)模式計(jì)數(shù)器 圖4-1 主程序流程圖 ORG 0000H LJMP START ORG 000BH ;定時(shí)器/計(jì)數(shù)器T0中斷程序入口 LJMP INTT0 主程序 START: MOV R0,#70H MOV R7,#0CH INIT: MOV @R0,#00H INC R0 DJNZ R7,INIT MOV 72H,#10 MOV 75H,#10 MOV TMOD,#01H MOV TL0,#0B0H MOV TH0,#03CH SETB EA SETB ET0 SETB TR0 START1: LCALL SCAN LCALL KEYSCAN SJMP START1 ;延時(shí)1MS子程序 DL1MS: MOV R6,#14H DL1: MOV R7,#19H DL2: DJNZ R7,DL2 DJNZ R6,DL1 RET ;延時(shí)20MS子程序 DL20MS: ACALL SCAN ACALL SCAN ACALL SCAN RET ;數(shù)碼管顯示程序 SCAN: MOV A,78H ;將小時(shí)、分鐘和秒拆分成十位和個(gè)位 MOV B,#0AH ;存入顯示緩沖區(qū)的相應(yīng)位置 DIV AB MOV 71H,A MOV 70H,B MOV A,79H MOV B,#0AH DIV AB MOV 74H,A MOV 73H,B MOV A,7AH MOV B,#0AH DIV AB MOV 77H,A MOV 76H,B MOV R1,#70H ;循環(huán)掃描顯示 MOV R5,#0FEH MOV R3,#08H SCAN1: MOV A,R5 MOV P2,A MOV A,@R1 MOV DPTR,#TAB MOVC A,@A+DPTR MOV P0,A MOV A,R5 LCALL DL1MS INC R1 MOV A,R5 RL A MOV R5,A DJNZ R3,SCAN1 MOV P2,#0FFH MOV P0,#0FFH RET TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0BFH 4.3子程序及流程圖 圖4-2 定時(shí)器/計(jì)數(shù)器T0中斷服務(wù)程序流程圖 定時(shí)器/計(jì)數(shù)器T0中斷服務(wù)程序 INTT0: PUSH ACC PUSH PSW CLR ET0 CLR TR0 MOV TL0,#0B0H MOV TH0,#03CH SETB TR0 INC 7BH MOV A,7BH CJNE A,#14H,OUTT0 MOV 7BH,#00 INC 78H MOV A,78H CJNE A,#3CH,OUTT0 MOV 78H,#00 INC 79H MOV A,79H CJNE A,#3CH,OUTT0 MOV 79H,#00 INC 7AH MOV A,7AH CJNE A,#18H,OUTT0 MOV 7AH,#00 OUTT0: SETB ET0 POP PSW POP ACC RETI 圖4-3 按鍵處理模塊流程圖 按鍵處理程序 KEYSCAN: CLR EA JNB P1.0,KEYSCAN0 JNB P1.1,KEYSCAN1 JNB P1.2,KEYSCAN2 KEYOUT: SETB EA RET KEYSCAN0: LCALL DL20MS JB P1.0,KEYOUT WAIT0: JNB P1.0,WAIT0 INC 7CH MOV A,7CH CLR ET0 CLR TR0 CJNE A,#03H,KEYOUT MOV 7CH,#00 SETB ET0 SETB TR0 SJMP KEYOUT KEYSCAN1:LCALL DL20MS JB P1.1,KEYOUT WAIT1: JNB P1.1,WAIT1 MOV A,7CH CJNE A,#02H,KSCAN11 INC 79H MOV A,79H CJNE A,#3CH,KEYOUT MOV 79H,#00 SJMP KEYOUT KSCAN11: INC 7AH MOV A,7AH CJNE A,#18H,KEYOUT MOV 7AH,#00 SJMP KEYOUT KEYSCAN2:LCALL DL20MS JB P1.2,KEYOUT WAIT2: JNB P1.2,WAIT2 MOV A,7CH CJNE A,#02H,KSCAN21 DEC 79H MOV A,79H CJNE A,#0FFH,KEYOUT MOV 79H,#3BH SJMP KEYOUT KSCAN21: DEC 7AH MOV A,7AH CJNE A,#0FFH,KEYOUT MOV 7AH,#17H SJMP KEYOUT END 第五章 系統(tǒng)仿真 5.1 KEIL 51介紹 1、Keil的使用 通過用Project菜單下的New Project命令建立項(xiàng)目文件,過程如下。 (1) 選擇Project菜單下的New Project命令,彈出如圖5-1所示的Create new Project對(duì)話框。 圖5-1 Create New Project對(duì)話框 (2) 在Create New Project對(duì)話框中選擇新建項(xiàng)目文件的位置,輸入新建項(xiàng)目文件的名稱,例如,項(xiàng)目文件名為IO,單擊【保存】按鈕將彈出如圖5-2所示的Select Device for Target Target 1對(duì)話框,用戶可以根據(jù)使用情況選擇單片機(jī)型號(hào)。Keil Vision IDE幾乎支持所有的51核心的單片機(jī),并以列表的形式給出。選中芯片后,在右邊的描述框中將同時(shí)顯示選中的芯片的相關(guān)信息以供用戶參考。 圖5-2 Select Device for Target Target 1對(duì)話框 (3) 選擇Atmel公司的AT89C52。單擊【確定】按鈕,這時(shí)彈出如圖5-3所示的Copy Standard 8051 Startup Code to Project Folder and Add File to Project確認(rèn)框,C語言開發(fā)選擇【是】,匯編語言開發(fā)選擇【否】。單擊后,項(xiàng)目文件就創(chuàng)建好了。項(xiàng)目文件創(chuàng)建后,這時(shí)只有一個(gè)框架,緊接著需向項(xiàng)目文件中添加程序文件內(nèi)容。 圖5-3 確認(rèn)框 當(dāng)項(xiàng)目文件建立好后,就可以給項(xiàng)目文件加入程序文件了,Keil Vision 支持C語言程序,也支持匯編語言程序。這些程序文件可以是已經(jīng)建立好了的程序文件,也可以是新建的程序文件,如果是建立好了的程序文件,則直接用后面的方法添加;如果是新建立的程序文件,最好是先將程序文件用.asm或.C存盤后再添加,這樣程序文件中的關(guān)鍵字才能夠被認(rèn)識(shí)。 程序文件的添加過程如下。 (1) 在項(xiàng)目管理器窗口中,展開Target1項(xiàng),可以看到Source Group1子項(xiàng)。 (2) 右擊Source Group1,在出現(xiàn)如圖5-4所示的菜單中選擇Add Files to Group Source Group1命令。 圖5-4 選擇Add Files to Group Source Group1’命令 (3) 彈出如圖5-5所示的Add Files to Group SourceGroup1對(duì)話框。在對(duì)話框中選擇需要添加的程序文件,單擊Add按鈕,把所選文件添加到項(xiàng)目文件中,注意文件類型默認(rèn)為C,如果是匯編程序則應(yīng)選擇文件類型為*.a*。一次可連續(xù)添加多個(gè)文件,添加的文件在項(xiàng)目管理器的Source Group1下面可以看見。當(dāng)不再添加時(shí),單擊Close按鈕,結(jié)束添加程序文件。如果文件添加得不對(duì),則先選中對(duì)應(yīng)的文件,用右鍵菜單中的Remove File命令把它移出去。 (4) 如果是已有的程序文件,則添加結(jié)束后,就可以做下一步的編譯、連接工作;如果是新文件,則應(yīng)先用File菜單下的New命令建立程序文件,輸入文件內(nèi)容,存盤(注意匯編程序擴(kuò)展名為.ASM,C語言程序擴(kuò)展名為.C),然后再添加到項(xiàng)目中。 圖5-5 Add Files to Group SourceGroup1對(duì)話框 當(dāng)把程序文件添加到項(xiàng)目文件中,并且程序文件已經(jīng)建立好存盤后,就可以進(jìn)行編譯、連接,形成目標(biāo)文件。編譯、連接用Project菜單下的Built Target命令(或快捷鍵F7),如圖5-6所示。 編譯、連接時(shí),如果程序有錯(cuò),則編譯不成功,并在下面的信息窗口給出相應(yīng)的出錯(cuò)提示信息,以便用戶進(jìn)行修改,修改后再編譯、連接,這個(gè)過程可能會(huì)重復(fù)多次。如果沒有錯(cuò)誤,則編譯、連接成功,并且在信息窗口給出提示信息。 圖5-6 編譯、連接后的顯示圖 2、調(diào)試 當(dāng)項(xiàng)目編譯、連接成功后,就可以運(yùn)行它來觀察結(jié)果,運(yùn)行調(diào)試過程如下。 (1) 先用Debug菜單下的Start/Stop Debug Session命令(快捷鍵Ctrl+F5)啟動(dòng)調(diào)試過程,結(jié)果如圖5-7所示。 圖5-7 啟動(dòng)調(diào)試過程結(jié)果圖 (2) 用Debug菜單下的Go連續(xù)運(yùn)行。 (3) 用Debug菜單下的Step單步運(yùn)行。子函數(shù)中也要一步一步地運(yùn)行。 (4) 用Debug菜單下的Step Over單步運(yùn)行。子函數(shù)體一步直接完成。 (5) 用Debug菜單下的Stop running命令停止運(yùn)行。 (6) 用View菜單調(diào)出各種輸出窗口觀察結(jié)果,用Peripherals菜單觀察51單片機(jī)內(nèi)部資源。圖5-8為調(diào)出Peripherals菜單下的P2口調(diào)試的結(jié)果。 (7) 運(yùn)行調(diào)試完畢,先用Stop running命令停止運(yùn)行,再用Debug菜單下的Start/Stop Debug Session命令結(jié)束運(yùn)行調(diào)試過程。 圖5-8 Serial Windows #1窗口 5.2 PROTEUS介紹 在80C51單片機(jī)系統(tǒng)的P2口連接8個(gè)發(fā)光二極管指示燈,編程實(shí)現(xiàn)流水燈的控制,從低位到高位輪流點(diǎn)亮指示燈,一直重復(fù)。在KEIL 51中編程序,形成HEX文件,在PROTEUS中設(shè)計(jì)硬件,下載程序,運(yùn)行看結(jié)果。Proteus ISIS處理過程一般如下: (1) PROTEUS ISIS軟件打開后,系統(tǒng)默認(rèn)新建一個(gè)名為UNTITLED(沒有存盤的文件)的原理圖文件,如圖5-9所示。用戶要存盤,則可用File菜單下的Save或Save as命令,這里設(shè)文件保存到D:\IO文件夾下面(最好與KEIL 51編寫的程序放在同一文件夾,這樣使用方便),文件基本名為io,擴(kuò)展名默認(rèn)。 圖5-9 PROTEUS ISIS窗口圖 (2) 在主要模型下選擇component mode選擇元件工具,然后再選擇圖5-9的按鈕P,打開元件選擇對(duì)話框,如圖5-10所示。 圖5-10 元件選擇窗口 (3) 在元件選擇對(duì)話框的keywords窗口中輸入元件關(guān)鍵字搜索元件,找到元件后,雙擊元件則可選中元件,添加元件device元件列表欄。本實(shí)例中,需要的元件依次為:?jiǎn)纹瑱C(jī)80c51、電阻RES、電容CAP、按鍵BUTTON、晶振CRYSTAL、發(fā)光二極管LED-RED。添加后如圖5-11所示,選擇了的元件列于device元件列表欄。 圖5-11 添加元件到device元件列表欄 放置元件過程如下: (1) 選擇component mode工具,這時(shí)devices元件列表將出現(xiàn)元件列表單,如圖5-11所示。 (2) 用鼠標(biāo)左鍵單擊devices元件列表中的元件名稱選中元件,這時(shí)在預(yù)覽窗口將出現(xiàn)該元件的形狀,移動(dòng)鼠標(biāo)到編輯窗口,單擊左鍵,在鼠標(biāo)指針處會(huì)出現(xiàn)元件形狀,再移動(dòng)鼠標(biāo),把元件移動(dòng)到合適的位置,單擊左鍵,元件就被放在相應(yīng)的位置上。通過相同的方法把所有元件放置到編輯窗口相應(yīng)位置,電源和地是在配件的終端接口中。本實(shí)例放置情況如圖5-12所示。 圖5-12 放置元件圖 元件放置后,如果元件位置不合適或不對(duì),可通過移動(dòng)、旋轉(zhuǎn)、刪除、屬性修改等操作對(duì)元件編輯。 對(duì)元件編輯時(shí)首先要選中元件,元件的選擇分以下幾種:①鼠標(biāo)左鍵單擊選擇;②對(duì)于活動(dòng)元件,如開關(guān)BUTTON等,通過用鼠標(biāo)左鍵拖動(dòng)選擇;③對(duì)于一組元件的選擇,可以通過鼠標(biāo)左鍵拖動(dòng)選擇框內(nèi)的所有元件,也可按住Ctrl鍵再用鼠標(biāo)左鍵依次單擊要選擇的元件。 選中元件后,如果要移動(dòng)元件,則用鼠標(biāo)左鍵拖動(dòng)所選元件即可;如要?jiǎng)h除元件,按鍵盤的Delete刪除鍵,或者在選中的元件上單擊鼠標(biāo)右鍵,在彈出的菜單中選擇Delete Object選項(xiàng);如果要旋轉(zhuǎn),則在右鍵菜單中選擇相應(yīng)的旋轉(zhuǎn)選項(xiàng)。如果修改屬性,則在右鍵菜單下選擇Edit Properties選項(xiàng),不同的元件,元件的屬性不同,出現(xiàn)的元件屬性對(duì)話框也不一樣。 通過導(dǎo)線把電路圖中放置的元件連接起來,形成電路圖。在PROTEUS中元件引腳間的連接一般有兩種方式:導(dǎo)線方式和總線方式。導(dǎo)線連接簡(jiǎn)單,但電路復(fù)雜時(shí)連接不方便,總線方式連接較復(fù)雜,但連接的電路美觀,特別是適合連線較多的時(shí)候。 1. 導(dǎo)線連接方式 導(dǎo)線連接方式過程如下: 1) 把鼠標(biāo)指針移動(dòng)到第一個(gè)元件的連接點(diǎn),鼠標(biāo)指針前會(huì)出現(xiàn)“”形狀,單擊左鍵,這時(shí)會(huì)從連接點(diǎn)引出一條導(dǎo)線。 2) 移動(dòng)鼠標(biāo)指針到第二個(gè)元件的連接點(diǎn),在第二個(gè)元件的連接點(diǎn)時(shí),鼠標(biāo)指針前也會(huì)出現(xiàn) “”形狀,單擊左鍵,則在兩個(gè)元件連接上導(dǎo)線,這時(shí)導(dǎo)線的走線方式是系統(tǒng)自動(dòng)的而且是走直線,如果用戶要控制走線路徑,只須在相應(yīng)的拐點(diǎn)處單擊左鍵,如圖5-13所示。 (a) 導(dǎo)線起點(diǎn) (b) 導(dǎo)線終點(diǎn) (c) 手動(dòng)走線 圖5-13導(dǎo)線連接 用戶也可用工具(Tools)菜單下面的自動(dòng)走線命令(Wire Auto Router)取消自動(dòng)走線,這時(shí)連接形成的就是直接從起點(diǎn)到終點(diǎn)的導(dǎo)線。另外,如果沒有到第二個(gè)元件的連接點(diǎn)就雙擊左鍵,則從第一個(gè)元件的連接點(diǎn)引出一段導(dǎo)線。 3) 導(dǎo)線加標(biāo)簽 對(duì)于導(dǎo)線的連接,也可通過加標(biāo)簽的方法,給導(dǎo)線加標(biāo)簽用主要模型中的放置線標(biāo)簽工具。處理過程如下:?jiǎn)螕舴胖镁€標(biāo)簽按鈕,移動(dòng)鼠標(biāo)到需要加標(biāo)簽的導(dǎo)線上,這時(shí)鼠標(biāo)指針前會(huì)出現(xiàn)“”形狀,單擊左鍵,彈出編輯線標(biāo)簽窗口,如圖5-14所示。在String窗口中輸入線標(biāo)簽名。 圖5-14 編輯線標(biāo)簽窗口 在一個(gè)電路圖中,標(biāo)簽名相同的導(dǎo)線在邏輯上是連接在一起的。 2. 總線方式 總線用于元件中間段的連接,便于減少電路導(dǎo)線的連接,而元件引腳端的連接必須用一般的導(dǎo)線。因此,使用總線時(shí)主要涉及繪制總線和導(dǎo)線與總線的連接。 1) 繪制總線 繪制總線通過用主要模型中的繪制總線(Buses Mode)工具。選中該工具后,移動(dòng)鼠標(biāo)到編輯窗口,在需要繪制總線的開始位置單擊左鍵,移動(dòng)鼠標(biāo),的結(jié)束位置再單擊左鍵,便可繪制出一條總線。 2) 導(dǎo)線與總線的連接 導(dǎo)線與總線的連接一般是從導(dǎo)線向總線方向連線,連接時(shí)一般有直線和斜線兩種,如圖5-15所示,斜線連接時(shí)一般要取消自動(dòng)走線。 (a) 直線連接 (b) 斜線連接 圖5-15 導(dǎo)線與總線的連接 總線繪制好后,也可用放置線標(biāo)簽工具給總線加標(biāo)簽,給總線加標(biāo)簽時(shí),可同時(shí)給總線中的一組信號(hào)線加標(biāo)簽,處理過程與導(dǎo)線一樣,只是標(biāo)簽用成A[0..7]的形式,這時(shí)就給總線中的8根信號(hào)線加了標(biāo)簽,8根信號(hào)線的標(biāo)簽名分別為A0,A1…到A7。連接在總線上的導(dǎo)線,標(biāo)簽名相同,則它們?cè)谶壿嬯P(guān)系上是連接在一起的,如圖5-16所示。 圖5-16 總線上信號(hào)線的連接 在這個(gè)實(shí)例中,線路比較簡(jiǎn)單,我們用導(dǎo)線方式連接,連接圖如圖5-17所示。 圖5-17 實(shí)例導(dǎo)線連接圖 當(dāng)硬件線路連接,元件屬性調(diào)整好后,就可以給單片機(jī)加載程序,加載的程序只能是HEX文件,可以在Keil 51軟件中來設(shè)計(jì),形成HEX文件。處理時(shí)軟件程序文件最好與硬件電路文件保存在一個(gè)文件夾下面,在實(shí)例中,我們都保存在e:\IO文件夾下面。軟件源程序如下。 ORG 0000H LJMP MAIN ORG 0100H MAIN:MOV A,#01H LOOP:MOV P2,A LCALL DELAY RL A SJMP LOOP SJMP $ DELAY:MOV R2,#10H DELAY1:MOV R3,#0FFH DJNZ R3,$ DJNZ R2,DELAY1 RET END 假定在Keil 51中我們已經(jīng)編譯形成了名為IO.hex的十六進(jìn)制文件,則加載過程如下:在PROTEUS電路圖中,左鍵單擊單片機(jī)80C51芯片,選中,再次左鍵單擊(或左鍵單擊選擇Edit Properties命令),打開單片機(jī)80C51的屬性對(duì)話框,在屬性對(duì)話框中的program file框中選擇加載到80C51芯片中的程序。這里是同一個(gè)文件夾下面的IO.hex文件。如圖5-18所示。 圖5-18 加載程序到單片機(jī) 程序加載以后,就可以通過仿真工具中的運(yùn)行按鈕在51單片機(jī)中運(yùn)行程序,運(yùn)行后可以在PROTEUS ISIS中看到運(yùn)行的結(jié)果。本實(shí)例結(jié)果如圖5-19所示。如果要看51單片機(jī)的特殊功能寄存器、存儲(chǔ)器中的內(nèi)容,則可用暫停按鈕使程序暫停下來,然后通過Debug(調(diào)試)菜單下面的相應(yīng)命令打開特殊功能寄存器窗口或存儲(chǔ)器窗口查看。 圖5-19 仿真結(jié)果圖 最后說明一下,在仿真調(diào)試時(shí),如果因?yàn)槌绦蛴绣e(cuò),仿真不能得到相應(yīng)的結(jié)果,則要在Keil uVision IDE中修改程序,程序修改后再對(duì)程序進(jìn)行重新編譯連接形成HEX文件,但在PROTEUS中不用再重新加載,因?yàn)榍懊嬉越?jīng)加載了,直接運(yùn)行即可,非常方便。因而現(xiàn)在使用Keil uVision IDE和PROTEUS仿真單片機(jī)應(yīng)用系統(tǒng)非常廣泛。 5.3仿真過程及仿真結(jié)果 按照線路圖連接好線路后,下載程序,點(diǎn)擊運(yùn)行按鈕,結(jié)果如 圖5-20仿真結(jié)果- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 單片機(jī) 課程設(shè)計(jì)
鏈接地址:http://italysoccerbets.com/p-6673356.html