單片機課程設計.doc
《單片機課程設計.doc》由會員分享,可在線閱讀,更多相關《單片機課程設計.doc(30頁珍藏版)》請在裝配圖網上搜索。
1、 單片機電子時鐘 摘要:在日常生活中,電子時鐘與我們密切相關,在很多地方都會用到電子時鐘。除了專用的時鐘、計時顯示牌外,許多應用系統(tǒng)常常也帶有實時時鐘顯示,如各種智能化儀器儀表、工業(yè)過程控制系統(tǒng)以及家用電器等。實現電子時鐘的方法有多種,通過前面我們對單片機基本理論及相關知識的學習,在這里,要求用單片機為主控制芯片設計一簡單的單片機電子時鐘。近年來隨著計算機在社會領域的滲透和大規(guī)模集成電路的發(fā)展,單片機的應用正在不斷地走向深入,由于它具有功能強,體積小,功耗低,價格便宜,工作可靠,使用方便等特點,因此特別適合于與控制有關的系統(tǒng),越來越廣泛地應用于自動控制,智能化儀器,儀表,數據采集,軍工
2、產品以及家用電器等各個領域,單片機往往是作為一個核心部件來使用,在根據具體硬件結構,以及針對具體應用對象特點的軟件結合,以作完善。 關鍵詞:電子時鐘;單片機;計時 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 ma
3、ny 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, th
4、e 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 consu
5、mption, 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, accord
6、ing to the specific hardware and software for application-specific object characteristics combined to make perfect. Keywords: electronic clock; microcontroller; timing 目錄 第一章 引言 1 1.1課程設計的目的 1 1.2課程設計內容 1 第二章 總體方案設計 2 2.1 總體思想--方案論證 2 2.2方案的選擇 2 第三章 硬件系統(tǒng)設計 4 3.1總電路設計 4
7、3.2器件的介紹 4 3.3單元模塊設計 6 第四章 軟件系統(tǒng)設計 9 4.1軟件程序思想 9 4.2主程序及流程圖 9 4.3子程序及流程圖 12 第五章 系統(tǒng)仿真 16 5.1 KEIL 51介紹 16 5.2 PROTEUS介紹 20 5.3仿真過程及仿真結果 28 第六章 結束語 29 致謝 30 參考文獻 31 II 第一章 引言 1.1課程設計的目的 本次設計中以單片機的發(fā)展過程和發(fā)展方向為背景,介紹了單片機的輸入輸出的工作原理和操作方法,中斷的工作原理和操作方法,74L
8、S164譯碼器的工作原理和與LED連接的方法。通過它可以進一步學習與掌握單片機原理與使用方法。目前,單片機正朝著高性能和多品種方向發(fā)展趨勢將是進一步向著CMOS化、低功耗、小體積、大容量、高性能、低價格和外圍電路內裝化等幾個方面發(fā)展。下面是單片機的主要發(fā)展趨勢。單片機應用的重要意義還在于,它從根本上改變了傳統(tǒng)的控制系統(tǒng)設計思想和設計方法。從前必須由模擬電路或數字電路實現的大部分功能,現在已能用單片機通過軟件方法來實現了。這種軟件代替硬件的控制技術也稱為微控制技術,是傳統(tǒng)控制技術的一次革命。單片機模塊中最常見的是數字鐘,數字鐘是一種用數字電路技術實現時、分、秒計時的裝置,與機械式時鐘相比具有更高
9、的準確性和直觀性,且無機械裝置,具有更更長的使用壽命,因此得到了廣泛的使用。時間對人們來說總是那么寶貴,工作的忙碌性和繁雜性容易使人忘記當前的時間。忘記了要做的事情,當事情不是很重要的時候,這種遺忘無傷大雅。但是,一旦重要事情,一時的耽誤可能釀成大禍。 數字鐘是采用數字電路實現對.時,分,秒.數字顯示的計時裝置,廣泛用于個人家庭,車站, 碼頭辦公室等公共場所,成為人們日常生活中不可少的必需品,由于數字集成電路的發(fā)展和石英晶體振蕩器的廣泛應用,使得數字鐘的精度,遠遠超過老式鐘表, 鐘表的數字化給人們生產生活帶來了極大的方便,而且大大地擴展了鐘表原先的報時功能。諸如定時自動報警、按時自動打鈴、時
10、間程序自動控制、定時廣播、自動起閉路燈、定時開關烘箱、通斷動力設備、甚至各種定時電氣的自動啟用等,所有這些,都是以鐘表數字化為基礎的。因此,研究數字鐘及擴大其應用,有著非?,F實的意義。 1.2課程設計內容 本次做的數字鐘是以單片機(AT89C51)為核心,結合相關的元器件(共陰極LED數碼顯示器、數碼管驅動器74LS164等),再配以相應的軟件,是它具有星期,時,分,秒顯示的功能,并且時,分,秒還可以調整。此次設計電子數字鐘是為了了解電子數字鐘的原理,從而學會制作電子數字鐘。而且通過電子數字鐘的制作進一步的了解各種在制作中用到的中小規(guī)模集成電路的作用及實用方法。 第二
11、章 總體方案設計 2.1 總體思想--方案論證 1.計時方案 單片機電子時鐘計時有兩種方法:第一種是通過單片機內部的定時器/計數器,采用軟件編程來實現時鐘計時,這種實現的時鐘一般稱為軟時鐘,這種方法的硬件線路簡單,系統(tǒng)的功能一般與軟件設計相關,通常用在對時間精度要求不高的場合;第二種是采用專用的硬件時鐘芯片計時,這種實現的時鐘一般稱為硬時鐘。專用的時鐘芯片功能比較強大,除了自動實現基本計時外,一般還具有日歷和閏年補償等功能,計時準確,軟件編程簡單,但硬件成本相對較高,通常用在對時鐘精度要求較高的場合。 2.顯示方案 對于電子時鐘而言,顯示是另一個重要的環(huán)節(jié)。顯示通常采用兩種方式
12、:LED數碼管顯示和LCD液晶顯示。其中LED數碼管顯示亮度高,顯示內容清晢,根據具體的連接方式可分為靜態(tài)顯示和動態(tài)顯示,在多個數碼管時一般采用動態(tài)顯示,動態(tài)顯示時須要占用CPU的大量時間來執(zhí)行動態(tài)顯示程序,顯示效果往往和顯示程序的執(zhí)行相關。LCD液晶顯示一般能顯示的信息多,顯示效果好,而且液晶顯示器一般都帶控制器,顯示過程由自帶的控制器控制,不須要CPU參與,但液晶顯示器造價相對較高。 為了便于比較與學習,這里給出兩種設計方案,一種是軟件計時LED數碼管顯示的單片機電子時鐘,另一種是硬件定時LCD液晶顯示的單片機電子時鐘。軟件計時LED數碼管顯示的單片機電子時鐘總體設計框圖如圖2-1所示。
13、硬件定時LCD液晶顯示的單片機電子時鐘總體設計框圖如圖2-2所示。 51單片機 時鐘電路 復位電路 LED 按鍵 51單片機 時鐘電路 復位電路 LCD 按鍵 時鐘芯片 圖2-1 軟件計時LED顯示時鐘總體框圖 圖2-2硬件定時LCD顯示時鐘總體框圖 2.2方案的選擇 對于電子時鐘而言,顯示是另一個重要的環(huán)節(jié)。顯示通常采用兩種方式:LED數碼管顯示和LCD液晶顯示。其中LED數碼管顯示亮度高,顯示內容清晢,根據具體的連接方式可分為靜態(tài)顯示和動態(tài)顯示,在多個數碼管時一般采用動態(tài)顯示,動態(tài)顯示時須要占用CPU的大量時間來執(zhí)行動態(tài)顯示程序
14、,顯示效果往往和顯示程序的執(zhí)行相關。LCD液晶顯示一般能顯示的信息多,顯示效果好,而且液晶顯示器一般都帶控制器,顯示過程由自帶的控制器控制,不須要CPU參與,但液晶顯示器造價相對較高。 掌握單片機最小系統(tǒng)的電路原理圖;硬件的焊接、連接;獨立編輯、編譯軟件;上電以后自動進入計時狀態(tài),起始于00:00:00。設計鍵盤調整時間,完成時間設計。定時時間為1/20秒,采用定時器實現。采用LED數碼管顯示,時、分,秒采用數字顯示。采用24小時制,具有方便的時間調校功能。
15、 第三章 硬件系統(tǒng)設計 3.1總電路設計 軟件計時LED數碼管顯示的時鐘的具體硬件電路如圖3-1所示,其中單片機采用應用廣泛的AT89C51,系統(tǒng)時鐘采用12MHz的晶振,8個數碼管顯示,小時與分鐘、分鐘與秒鐘之間用短橫線間隔,采用共陽極七段式數碼管,由于并口上沒有連接其它的硬件電路,所以P0口直接作段選碼輸出端,P2口作位選碼輸出端。采用簡化按鍵方式,只設定3個開關K0、K1和K2,通過P1口低3位相連。其中K0鍵為調時模式選擇鍵,K1為加1鍵,K2為減1健。 圖3-1 軟件計時LED顯示時鐘硬件電路圖 3.2器件的介紹 定時計數器:定時/計數技術在計算機系統(tǒng)
16、中具有極其重要的作用。計算機系統(tǒng)都需要為CPU和外部設備提供定時控制或對外部事件進行計數。例如,分時系統(tǒng)的程序切換,向外部設備輸出周期性定時控制信號,對外部事件個數統(tǒng)計等。另外,在檢測、控制和智能儀器等設備中也經常會涉及到定時。因此,計算機系統(tǒng)必須有定時和計數技術。 定時/計數的本質是計數,對周期性信號計數就實現定時。通常,實現定時的方法有三種:軟件定時、硬件定時、可編程定時。軟件定時是利用CPU執(zhí)行指令需要若干指令周期的原理,運用軟件編程,然后循環(huán)執(zhí)行一段程序而產生延時,再配合簡單輸出接口可以向外送出定時控制信號。這種方法的優(yōu)點是不需要增加硬件或硬件很簡單,只需要編制相應的延時程序以備調用
17、。缺點是執(zhí)行延時程序占用了CPU時間,所以定時的時間不宜太長,且在某些惰況下不宜使用。硬件定時是通過硬件電路(多偕振蕩器件或單穩(wěn)器件)實現定時,故定時參數的調整不靈活,使用不方便,其成本較低。可編程定時結合了軟件定時使用靈活和硬件定時獨立的特點,它以大規(guī)模集成電路為基礎,通過編程即可改變定時時間或工作方式,又不占用CPU的執(zhí)行時間。在計算機系統(tǒng)中通常用到的是可編程定時,51單片機內部就集成了可編程的定時/計數器,它是51單片機中使用非常頻繁的重要功能模塊。 LED顯示器:LED數碼管顯示器是由發(fā)光二極管按一定的結構組合起來的顯示器件。在單片機應用系統(tǒng)中通常使用的是7段或8段式LED數碼管顯示
18、器,8段式比7段式多一個小數點。這里以8段式來介紹,單個8段式LED數碼管顯示器的外觀與引腳如圖3-2所示,其中a,b,c,d,e,f,g和小數點dp為8段發(fā)光二極管,位置如圖中所示,組成一個“”形狀。 (a) 引腳圖 (b) 共陰極 (c) 共陽極 圖3-2 8段式LED數碼管引腳與結構 8段發(fā)光二極管的連接有兩種結構:共陰極和共陽極。如圖3-2所示。其中,圖(b)為共陰極結構,8段發(fā)光二極管的陰極端連接在一起,陽極端分開控制,使用時公共端接地,要使哪根發(fā)光二極管亮,則對應的陽極端接高電平;圖(b)為共陽極結構,8段發(fā)光二極
19、管的陽極端連接在一起,陰極端分開控制,使用時公共端接電源,要使哪根發(fā)光二極管亮,則對應的陰極端接地。 LED數碼管顯示器顯示時,公共端首先要保證有效,即共陰極結構公共端接低電平,共陽極結構公共端接高電平,這個過程我們稱為選通數碼管。再在另外一端送要顯示數字的編碼,這個編碼稱為字段碼,8位數碼管字段碼為8位,從高位到低位的順序依次為dp、g、f、e、d、c、b、a。如:共陰極數碼管數字“0”的字段碼為00111111B(3FH),共陽極數碼管數字“1”的字段碼為11111001B(F9H),不同數字或字符其字段碼不一樣,對于同一個數字或字符,共陰極結構和共陽極結構的字段碼也不一樣,共陰極和共陽
20、極的字段碼互為反碼。 MCS-51:MCS-51系列單片機是美國Intel公司在1980年推出的高性能8位單片機,它包含51和52 兩個子系列。 對于51子系列,主要有8031、8051、8751 三種機型,它們的指令系統(tǒng)與芯片引腳完全兼容,僅片內程序存儲器有所不同,8031芯片不帶ROM,8051芯片帶4KB的ROM,8751芯片帶4KB的EPROM。51子系列單片機的主要特點如下。 l 8位CPU。 l 片內帶振蕩器,頻率范圍1.2 MHz~12MHz。 l 片內帶128B的數據存儲器。 l 片內帶4KB的程序存儲器。 l 程序存儲器的尋址空間為64KB。 l 片外數據存儲
21、器的尋址空間為64KB。 l 128個用戶位尋址空間。 l 21個字節(jié)特殊功能寄存器。 l 4個8位的并行I/O接口:P0、P1、P2、P3。 l 兩個16位定時/計數器。 l 兩個優(yōu)先級別的5個中斷源。 l 1個全雙工的串行I/O接口,可多機通信。 l 111條指令,含乘法指令和除法指令。 l 片內采用單總線結構。 l 有較強的位處理能力。 l 采用單一+5V電源。 對于52子系列,有8032、8052、8752 三種機型。52子系列與51子系列相比大部分相同,不同之處在于:片內數據存儲器增至256B;8032芯片不帶ROM,8052芯片帶8KB的ROM,8752芯片帶
22、8KB的EPROM;有3個16位定時器/計數器;6個中斷源。本書以51子系列的8051為例來介紹MCS-51單片機的基本原理。 雖然MCS-51系列單片機的芯片有多種類型,但它們的基本組成相同。MCS-51單片機的基本結構如圖3-3所示。 圖3-3 MCS-51的基本結構 3.3單元模塊設計 51系列單片機是美國Intel公司在1980年推出的高性能8位單片機,它包含51和52 兩個子系列。 51單片機集成了中央處理器(CPU)、存儲器系統(tǒng)(RAM和ROM)、定時/計數器、并行接口、串行接口、中斷系統(tǒng)及一些特殊功能寄存器(SFR),它們通過內部總線緊密的聯(lián)系在一起。 51單片
23、機有40個引腳,在本次設計當中有很多口都沒有使用,我們下面介紹的就是對本次設計最為重要的4個8位的并行I/O接口。 表3-1 P3口的第二功能 P3口 第二功能 P3.0 RXD 串行口輸入端 P3.1 TXD 串行口輸出端 P3.2 INT0 外部中斷0請求輸入端,低電平有效 P3.3 INT1 外部中斷1請求輸入端,低電平有效 P3.4 T0 定時/計數器0外部計數脈沖輸入端 P3.5 T1 定時/計數器0外部計數脈沖輸入端 P3.6 WR 外部數據存儲器寫信號,低電平有效 P3.7 RD 外
24、部數據存儲器讀信號,低電平有效 51系列單片機有4個8位的并行I/O接口:P0、P1、P2和P3口。它們是特殊功能寄存器中的4個。這4個口,既可以作輸入,也可以作輸出,既可按8位處理,也可按位方式使用。輸出時具有鎖存能力,輸入時具有緩沖功能。每個口的具體功能有所不同。P0口是一個三態(tài)雙向口,可作為地址/數據分時復用口,也可作為通用的I/O接口。它包括一個輸出鎖存器、兩個三態(tài)緩沖器、輸出驅動電路和輸出控制電路組成。P1口只作通用I/O接口使用。P1口具有驅動4個LSTTL負載的能力。P2口有兩種用途:通用I/O接口和高8位地址線。P3口除了作為通用I/O口使用外,它的每一根線還具有第二種功能,
25、見表3-1。 當P3口作為通用I/O接口時,第二功能輸出線為高電平。當P3口作為第二功能時,鎖存器的輸出端必須為高電平,P3口的狀態(tài)取決于第二功能輸出線的狀態(tài)。單片機復位時,鎖存器的輸出端為高電平。 復位與復位電路 復位是單片機的初始化操作,以便使CPU和系統(tǒng)中其他部件都處于一個確定的狀態(tài),并從這個狀態(tài)開始工作。 當單片機系統(tǒng)在運行出錯或操作錯誤使系統(tǒng)處于死鎖存時,也可按復位鍵重新啟動。 單片機復位后,PC內容初始化為0000H,那么單片機就從0000H單元開始執(zhí)行程序。片內RAM為隨機值,運行中的復位操作不改變片內RAM的內容。 RST引腳是復位信號的輸入端,復位信號是高電平有效
26、,其有效時間應持續(xù)2個機器周期以上。 按下復位按鈕時,電源對外接電容器充電,使RST為高電平,復位按鈕松開后,電容通過內部下拉電阻放電,逐漸使RST端恢復低電平。 時鐘信號有外部引入方式和內部振蕩器方式兩種方式。下面就來對兩種方式進行簡單地介紹: 內部振蕩方式 51單片機內部有一個高增益的反相放大器,其輸入端為引腳XTAL1,輸出端為引腳XTAL2,用于外接石英晶體振蕩器或陶瓷諧振器和微調電容,構成穩(wěn)定的自激振蕩器,其發(fā)出的脈沖直接送入內部的時鐘電路。 外部引入方式常用于多片單片機組成的系統(tǒng)中,以便各單元之間的時鐘信號同步運行。 LED數碼管是由發(fā)光二極管構成的,亦稱半導體數碼管
27、。將條狀發(fā)光二極管按照共陰極(負極)或共陽極(正極)的方法連接,組成“8”字,再把發(fā)光二極管另一電極作筆段電極,就構成了LED數碼管。若按規(guī)定使某些筆段上的發(fā)光二極管發(fā)光,就能顯示從0~9的…系列數字。同熒光數碼管(VFD)、輝光數碼管(NRT)相比,它具有:體積小、功耗低、耐震動、壽命長、亮度高、單色性好、發(fā)光響應的時間短,能與TTL、CMOS電路兼容等的數顯器件。+、-分別表示公共陽極和公共陰極。 a~g是7個筆段電極,DP為小數點。另有一種字高為7.6mm的超小型LED數碼管,管腳從左右兩排引出,小數點則是獨立的。
28、本系統(tǒng)利用6位LED數碼管顯示時間,共陰極結構。LED數碼管由7段發(fā)光二極管組成,當要顯示某個數字時只要將數字所對應的引腳送入低電平。 本設計中主要有三個控制按鍵,按鍵功能為: (1)P3.2為調時間模式,長按P3.2進入調分狀態(tài):分單元閃爍,按P3.2加1,按P3.3減1.再長按P3.2進入時調整狀態(tài),時單元閃爍,加減調整同調分.按長按退出調整狀態(tài)。 (2)按下P3.4進入秒表狀態(tài):再按P3.4秒表又啟動,按P3.4暫停,再按P3.4秒表清零,按P3.4退出秒表回到時鐘狀態(tài)。 第四章
29、 軟件系統(tǒng)設計 4.1軟件程序思想 軟件系統(tǒng)程序由主程序和子程序組成,主程序包含初始化參數設置、按鍵處理、數碼管顯示模塊等,在設計時各個模塊都采用子程序結構設計,在主程序中調用。時鐘由定時/計數器0產生,采用中斷方式工作,因此還要編寫定時/計數器0中斷服務子程序,在定時/計數器0中斷服務程序中形成時鐘關系。 1.主程序 主程序先對顯示單元和定時器/計數器初始化,然后重復調用數碼管顯示模塊和按鍵處理模塊,當有鍵按下時,則轉入相應的功能程序。 2.數碼管顯示模塊 本系統(tǒng)共用8個數碼管,從左到右依次顯示時十位、時個位、橫線、分十位、分個位、橫線、秒十位和秒個位。數碼管顯示的信息用8
30、個內存單元存放,這8個內存單元稱為顯示緩沖區(qū),其中秒個位和秒十位、分個位和分十位、時個位和時十位分別由秒數據、分數據和小時數據分拆得到。在本系統(tǒng)中數碼管顯示采用軟件譯碼動態(tài)顯示。在存儲器中首先建立一張顯示信息的字段碼表,顯示時,先在P2口送出位選碼,選中顯示的數碼管,然后從顯示緩沖區(qū)中取出當前顯示的信息,查表在字段碼表中查出所顯示的信息的字段碼,從P0口輸出,就能在相應的數碼管上顯示顯示緩沖區(qū)的內容。 3.定時器/計數器T0中斷服務程序 計時選擇定時器/計數器T0。具體處理如下:定時器/計數器T0選擇方式1,重復定時,定時時間設為50ms,定時時間到則中斷,在中斷服務程序中用一個計數器對5
31、0ms計數,計20次則對秒單元加1,秒單元加到60則對分單元加1,同時秒單元清0;分單元加到60則對時單元加1,同時分單元清0;時單元加到24則對時單元清0,標志一天時間計滿,這樣就形成了時鐘關系。在對各單元計數的同時,把它們的值放到存儲單元的指定位置。 4.按鍵處理模塊 按鍵處理設置為:如沒有按鍵,則時鐘正常走時。當按K0鍵一次,時鐘暫停走動進入調小時狀態(tài),再按K0鍵一次,進入調分狀態(tài),再按K0鍵一次,回到正常走時;對于K1和K2按鍵,如果是正常走時,按K1和K2不起作用,如果進入調時或調分狀態(tài),按K1可對時或分進行加1操作,小時加到24則回到0,分加到60則回到0;按K2可對時或分進行
32、減1操作,小時減到負則回到23,分減到負則回到59。 4.2主程序及流程圖 使用AT89C51單片機,12MHz晶振,P0輸出字段碼,P2口輸出位選碼 用共陽LED數碼管,P1.0為調時模式按鍵,P1.1為加1鍵,P1.2為減1鍵 片內RAM的70H到77H單元為LED數碼管的顯示緩沖區(qū) 78H,79H,7AH分別為秒、分、小時計數單元 7BH為50ms計數器,7CH為調時模式計數器 圖4-1 主程序流程圖 ORG 0000H LJMP START ORG 000BH ;定時器/計數器T0中斷程序入口 LJ
33、MP 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
34、 SJMP START1 ;延時1MS子程序 DL1MS: MOV R6,#14H DL1: MOV R7,#19H DL2: DJNZ R7,DL2 DJNZ R6,DL1 RET ;延時20MS子程序 DL20MS: ACALL SCAN ACALL SCAN ACALL SCAN RET ;數碼管顯示程序 SCAN: MOV A,78H ;將小時、分鐘和秒拆分成十位和個位 MOV B,#0AH ;存入顯示緩沖區(qū)的相應
35、位置 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
36、 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
37、.3子程序及流程圖 圖4-2 定時器/計數器T0中斷服務程序流程圖 定時器/計數器T0中斷服務程序 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
38、,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
39、 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
40、 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
41、 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
42、 KEYOUT END 第五章 系統(tǒng)仿真 5.1 KEIL 51介紹 1、Keil的使用 通過用Project菜單下的New Project命令建立項目文件,過程如下。 (1) 選擇Project菜單下的New Project命令,彈出如圖5-1所示的Create new Project對話框。 圖5-1 Create New Project對話框 (2) 在Create New Project對話框中選擇新建項目文件的位置,輸入新建項目文件的名稱,例如,項目文件名為IO,單擊【保存】按鈕將彈出如圖5-2所示的Select
43、 Device for Target Target 1對話框,用戶可以根據使用情況選擇單片機型號。Keil Vision IDE幾乎支持所有的51核心的單片機,并以列表的形式給出。選中芯片后,在右邊的描述框中將同時顯示選中的芯片的相關信息以供用戶參考。 圖5-2 Select Device for Target Target 1對話框 (3) 選擇Atmel公司的AT89C52。單擊【確定】按鈕,這時彈出如圖5-3所示的Copy Standard 8051 Startup Code to Project Folder and Add File to Project確認框,C語言開發(fā)選
44、擇【是】,匯編語言開發(fā)選擇【否】。單擊后,項目文件就創(chuàng)建好了。項目文件創(chuàng)建后,這時只有一個框架,緊接著需向項目文件中添加程序文件內容。 圖5-3 確認框 當項目文件建立好后,就可以給項目文件加入程序文件了,Keil Vision 支持C語言程序,也支持匯編語言程序。這些程序文件可以是已經建立好了的程序文件,也可以是新建的程序文件,如果是建立好了的程序文件,則直接用后面的方法添加;如果是新建立的程序文件,最好是先將程序文件用.asm或.C存盤后再添加,這樣程序文件中的關鍵字才能夠被認識。 程序文件的添加過程如下。 (1) 在項目管理器窗口中,展開Target1項,可以看到Sourc
45、e Group1子項。 (2) 右擊Source Group1,在出現如圖5-4所示的菜單中選擇Add Files to Group Source Group1命令。 圖5-4 選擇Add Files to Group Source Group1’命令 (3) 彈出如圖5-5所示的Add Files to Group SourceGroup1對話框。在對話框中選擇需要添加的程序文件,單擊Add按鈕,把所選文件添加到項目文件中,注意文件類型默認為C,如果是匯編程序則應選擇文件類型為*.a*。一次可連續(xù)添加多個文件,添加的文件在項目管理器的Source Group1下面可以看見。當不再
46、添加時,單擊Close按鈕,結束添加程序文件。如果文件添加得不對,則先選中對應的文件,用右鍵菜單中的Remove File命令把它移出去。 (4) 如果是已有的程序文件,則添加結束后,就可以做下一步的編譯、連接工作;如果是新文件,則應先用File菜單下的New命令建立程序文件,輸入文件內容,存盤(注意匯編程序擴展名為.ASM,C語言程序擴展名為.C),然后再添加到項目中。 圖5-5 Add Files to Group SourceGroup1對話框 當把程序文件添加到項目文件中,并且程序文件已經建立好存盤后,就可以進行編譯、連接,形成目標文件。編譯、連接用Project菜單下的B
47、uilt Target命令(或快捷鍵F7),如圖5-6所示。 編譯、連接時,如果程序有錯,則編譯不成功,并在下面的信息窗口給出相應的出錯提示信息,以便用戶進行修改,修改后再編譯、連接,這個過程可能會重復多次。如果沒有錯誤,則編譯、連接成功,并且在信息窗口給出提示信息。 圖5-6 編譯、連接后的顯示圖 2、調試 當項目編譯、連接成功后,就可以運行它來觀察結果,運行調試過程如下。 (1) 先用Debug菜單下的Start/Stop Debug Session命令(快捷鍵Ctrl+F5)啟動調試過程,結果如圖5-7所示。 圖5-7 啟動調試過程結果圖 (2) 用Debug菜單
48、下的Go連續(xù)運行。 (3) 用Debug菜單下的Step單步運行。子函數中也要一步一步地運行。 (4) 用Debug菜單下的Step Over單步運行。子函數體一步直接完成。 (5) 用Debug菜單下的Stop running命令停止運行。 (6) 用View菜單調出各種輸出窗口觀察結果,用Peripherals菜單觀察51單片機內部資源。圖5-8為調出Peripherals菜單下的P2口調試的結果。 (7) 運行調試完畢,先用Stop running命令停止運行,再用Debug菜單下的Start/Stop Debug Session命令結束運行調試過程。 圖5-8 Ser
49、ial Windows #1窗口 5.2 PROTEUS介紹 在80C51單片機系統(tǒng)的P2口連接8個發(fā)光二極管指示燈,編程實現流水燈的控制,從低位到高位輪流點亮指示燈,一直重復。在KEIL 51中編程序,形成HEX文件,在PROTEUS中設計硬件,下載程序,運行看結果。Proteus ISIS處理過程一般如下: (1) PROTEUS ISIS軟件打開后,系統(tǒng)默認新建一個名為UNTITLED(沒有存盤的文件)的原理圖文件,如圖5-9所示。用戶要存盤,則可用File菜單下的Save或Save as命令,這里設文件保存到D:\IO文件夾下面(最好與KEIL 51編寫的程序放在同一文件夾,
50、這樣使用方便),文件基本名為io,擴展名默認。 圖5-9 PROTEUS ISIS窗口圖 (2) 在主要模型下選擇component mode選擇元件工具,然后再選擇圖5-9的按鈕P,打開元件選擇對話框,如圖5-10所示。 圖5-10 元件選擇窗口 (3) 在元件選擇對話框的keywords窗口中輸入元件關鍵字搜索元件,找到元件后,雙擊元件則可選中元件,添加元件device元件列表欄。本實例中,需要的元件依次為:單片機80c51、電阻RES、電容CAP、按鍵BUTTON、晶振CRYSTAL、發(fā)光二極管LED-RED。添加后如圖5-11所示,選擇了的元件列于device元件
51、列表欄。 圖5-11 添加元件到device元件列表欄 放置元件過程如下: (1) 選擇component mode工具,這時devices元件列表將出現元件列表單,如圖5-11所示。 (2) 用鼠標左鍵單擊devices元件列表中的元件名稱選中元件,這時在預覽窗口將出現該元件的形狀,移動鼠標到編輯窗口,單擊左鍵,在鼠標指針處會出現元件形狀,再移動鼠標,把元件移動到合適的位置,單擊左鍵,元件就被放在相應的位置上。通過相同的方法把所有元件放置到編輯窗口相應位置,電源和地是在配件的終端接口中。本實例放置情況如圖5-12所示。 圖5-12 放置元件圖 元件放置后,如果元件位置不合適或不對
52、,可通過移動、旋轉、刪除、屬性修改等操作對元件編輯。 對元件編輯時首先要選中元件,元件的選擇分以下幾種:①鼠標左鍵單擊選擇;②對于活動元件,如開關BUTTON等,通過用鼠標左鍵拖動選擇;③對于一組元件的選擇,可以通過鼠標左鍵拖動選擇框內的所有元件,也可按住Ctrl鍵再用鼠標左鍵依次單擊要選擇的元件。 選中元件后,如果要移動元件,則用鼠標左鍵拖動所選元件即可;如要刪除元件,按鍵盤的Delete刪除鍵,或者在選中的元件上單擊鼠標右鍵,在彈出的菜單中選擇Delete Object選項;如果要旋轉,則在右鍵菜單中選擇相應的旋轉選項。如果修改屬性,則在右鍵菜單下選擇Edit Properties選項
53、,不同的元件,元件的屬性不同,出現的元件屬性對話框也不一樣。 通過導線把電路圖中放置的元件連接起來,形成電路圖。在PROTEUS中元件引腳間的連接一般有兩種方式:導線方式和總線方式。導線連接簡單,但電路復雜時連接不方便,總線方式連接較復雜,但連接的電路美觀,特別是適合連線較多的時候。 1. 導線連接方式 導線連接方式過程如下: 1) 把鼠標指針移動到第一個元件的連接點,鼠標指針前會出現“”形狀,單擊左鍵,這時會從連接點引出一條導線。 2) 移動鼠標指針到第二個元件的連接點,在第二個元件的連接點時,鼠標指針前也會出現 “”形狀,單擊左鍵,則在兩個元件連接上導線,這時導線的走線方式
54、是系統(tǒng)自動的而且是走直線,如果用戶要控制走線路徑,只須在相應的拐點處單擊左鍵,如圖5-13所示。 (a) 導線起點 (b) 導線終點 (c) 手動走線 圖5-13導線連接 用戶也可用工具(Tools)菜單下面的自動走線命令(Wire Auto Router)取消自動走線,這時連接形成的就是直接從起點到終點的導線。另外,如果沒有到第二個元件的連接點就雙擊左鍵,則從第一個元件的連接點引出一段導線。 3) 導線加標簽 對于導線的連接,也可通過加標簽的方法,給導線加標簽用主要模型中的放置線標簽工具。處
55、理過程如下:單擊放置線標簽按鈕,移動鼠標到需要加標簽的導線上,這時鼠標指針前會出現“”形狀,單擊左鍵,彈出編輯線標簽窗口,如圖5-14所示。在String窗口中輸入線標簽名。 圖5-14 編輯線標簽窗口 在一個電路圖中,標簽名相同的導線在邏輯上是連接在一起的。 2. 總線方式 總線用于元件中間段的連接,便于減少電路導線的連接,而元件引腳端的連接必須用一般的導線。因此,使用總線時主要涉及繪制總線和導線與總線的連接。 1) 繪制總線 繪制總線通過用主要模型中的繪制總線(Buses Mode)工具。選中該工具后,移動鼠標到編輯窗口,在需要繪制總線的開始位置單擊左鍵,移動鼠標,的結束
56、位置再單擊左鍵,便可繪制出一條總線。 2) 導線與總線的連接 導線與總線的連接一般是從導線向總線方向連線,連接時一般有直線和斜線兩種,如圖5-15所示,斜線連接時一般要取消自動走線。 (a) 直線連接 (b) 斜線連接 圖5-15 導線與總線的連接 總線繪制好后,也可用放置線標簽工具給總線加標簽,給總線加標簽時,可同時給總線中的一組信號線加標簽,處理過程與導線一樣,只是標簽用成A[0..7]的形式,這時就給總線中的8根信號線加了標簽,8根信號線的標簽名分別為A0
57、,A1…到A7。連接在總線上的導線,標簽名相同,則它們在邏輯關系上是連接在一起的,如圖5-16所示。 圖5-16 總線上信號線的連接 在這個實例中,線路比較簡單,我們用導線方式連接,連接圖如圖5-17所示。 圖5-17 實例導線連接圖 當硬件線路連接,元件屬性調整好后,就可以給單片機加載程序,加載的程序只能是HEX文件,可以在Keil 51軟件中來設計,形成HEX文件。處理時軟件程序文件最好與硬件電路文件保存在一個文件夾下面,在實例中,我們都保存在e:\IO文件夾下面。軟件源程序如下。 ORG 0000H LJMP MAIN ORG 0100H MAIN:MOV A,#
58、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中我們已經編譯形成了名為IO.hex的十六進制文件,則加載過程如下:在PROTEUS電路圖中,左鍵單擊單片機80C51芯片,選中,再次左鍵單擊(或左鍵單擊選擇Edit Properties命令),打開單片機80C51的屬性對話
59、框,在屬性對話框中的program file框中選擇加載到80C51芯片中的程序。這里是同一個文件夾下面的IO.hex文件。如圖5-18所示。 圖5-18 加載程序到單片機 程序加載以后,就可以通過仿真工具中的運行按鈕在51單片機中運行程序,運行后可以在PROTEUS ISIS中看到運行的結果。本實例結果如圖5-19所示。如果要看51單片機的特殊功能寄存器、存儲器中的內容,則可用暫停按鈕使程序暫停下來,然后通過Debug(調試)菜單下面的相應命令打開特殊功能寄存器窗口或存儲器窗口查看。 圖5-19 仿真結果圖 最后說明一下,在仿真調試時,如果因為程序有錯,仿真不能得到相應的結果,則要在Keil uVision IDE中修改程序,程序修改后再對程序進行重新編譯連接形成HEX文件,但在PROTEUS中不用再重新加載,因為前面以經加載了,直接運行即可,非常方便。因而現在使用Keil uVision IDE和PROTEUS仿真單片機應用系統(tǒng)非常廣泛。 5.3仿真過程及仿真結果 按照線路圖連接好線路后,下載程序,點擊運行按鈕,結果如 圖5-20仿真結果
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
5. 裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年防凍教育安全教育班會全文PPT
- 2025年寒假安全教育班會全文PPT
- 初中2025年冬季防溺水安全教育全文PPT
- 初中臘八節(jié)2024年專題PPT
- 主播直播培訓提升人氣的方法正確的直播方式如何留住游客
- XX地區(qū)機關工委2024年度年終黨建工作總結述職匯報
- 心肺復蘇培訓(心臟驟停的臨床表現與診斷)
- 我的大學生活介紹
- XX單位2024年終專題組織生活會理論學習理論學習強黨性凝心聚力建新功
- 2024年XX單位個人述職述廉報告
- 一文解讀2025中央經濟工作會議精神(使社會信心有效提振經濟明顯回升)
- 2025職業(yè)生涯規(guī)劃報告自我評估職業(yè)探索目標設定發(fā)展策略
- 2024年度XX縣縣委書記個人述職報告及2025年工作計劃
- 寒假計劃中學生寒假計劃安排表(規(guī)劃好寒假的每個階段)
- 中央經濟工作會議九大看點學思想強黨性重實踐建新功