數字時鐘基于AT89C51和DS1302_LED—12864
1.畢業設計(論文)題目:數字時鐘制作 2.應完成的項目:設計一個數字溫度計,要求如下: (1)設計一個能動態顯示時分秒的數字時鐘 (2)可以調節小時和分鐘 (3)有鬧鐘功能,并且可以自行設定鬧鐘的時間 (4)要有完整的設計思路,包括硬件電路設計、軟件設計、源程序和仿真結果,或者實物演示。 3.參考資料以及說明: [1] 李朝青. 單片機原理及接口技術(簡明修訂版). 杭州; 北京航空航天大學出版社,1998 [2] 李廣弟. 單片機基礎[M]. 北京; 北京航空航天大學出版社,1994 [3] 閻石. 數字電子技術基礎(第三版). 北京; 高等教育出版社,1989 [4] 廖常初. 現場總線概述[J]. 電工技術,1999. [5] 高衛東,辛友順,韓彥征. 51單片機原理與實踐[M]. 北京; 北京航空航天大學出版社,2008 4.本畢業設計(論文)任務書于2011年11月7日發出,應于2011 年12月7日前完成,然后提交畢業考試委員會進行答辯。 畢業設計(論文)評語: (應包括平時表現、論文質量、答辯表現等內容) 畢業設計(論文)總評成績: 畢業設計(論文)答辯負責人簽字: 年 月 日
摘要 本文介紹了一款基于AT89C51單片機數字時鐘的設計,闡述了多功能數字時鐘的設計思路,詳細敘述了系統硬件、軟件設計的具體過程。本設計用AT89C51作為主控器件,用DS1302作為時間的計數,用LED—12864為顯示器件。通過DS1302直接讀取時間、日期,進行數據轉換,該器件的物理化學性穩定,線性度較好,能自動計算年、月、日、時、分、秒、和星期,能自動計算閏年。該器件可直接向單片機傳送數字信號,便于單片機控制和處理。而LCD—12864是常用的液晶顯示器件,其顯示的分辨率為128*64,可以顯示8*4行16*16點陣的漢字,也可以完成圖形顯示,低電壓功耗是其又一個顯著特點。在設計中還采用了單片機常用的匯編語言進行編寫。在實際的仿真調試過程中,通過與實際時鐘進行對比,查找誤差的根源,確定調整誤差的方法,盡量減少誤差。使系統可以達到與實際時間一致的高精度準確性。 關鍵詞:數字時鐘,AT89C51,DS1302,LED—12864 Abstract Thispaper introduces a digital clock based on AT89C51 design, this paper expounds the multi-functiondigital clock design ideas, and this paper describes the system hardware andsoftware design of the specific process. This design is use AT89C51 for Master control device, useDS1302 for times count and use LED-12864 for shows.Through the DS1302 directly read time, date, carries on the data transfer, thisdevice of physical chemical stability, linearity is good, can automaticallycalculate date and time, minutes and seconds, and week, can automaticallycalculate a leap year. This device can be sent directly to the single chipmicrocomputer digital signal, facilitate single-chip microcomputer control andprocessing. And LCD-12864 is commonly used liquid crystal display device, itsthe resolution of the display for 128 * 64, can display 8 * 4 line 16 * 16 dotmatrix characters, also can be finished graphic display, low voltage powerconsumption is its and a notable features. In the design of the single chipcomputer is also used in the assembly languages used to write. In the actualsimulation debugging process, through comparing with actual clock, find thesource of the error, determine the arithmetic and try to minimize the error.The system can be achieved with the actual time consistent high precisionaccuracy. Keyword: Digital clock, AT89C51, DS1302, LED-12864
第一章 諸論
1.1設計背景
隨著“信息時代”的到來,我們的生活也趨向于數字化,信息化。“時間”是生活、工作都必不可少的信息。所以數字時鐘是當今社會集信息化與數字化一身的設計。而作為今次設計主要的控制器件——單片機更是現代化的器件。單片機作為微型計算機的一個分支,產生于20世紀70年代,經過二三十年的發展,在各行各業中都已廣泛應用。單片機體積小,重量輕,抗干擾能力強,對環境要求不高,價格低廉,可靠性高,靈活性好。
美國DALLAS公司推出的具有涓細電流充電能的低功耗實時時鐘電路DS1302。它可以對年、月、日、周日、時、分、秒進行時,還具有閏年補償等多種功能,而且DS1302的使用壽命長,誤差小。對于數字電子萬年歷采用直觀的數字顯示,可以同時顯示年、月、日、周日、時、分、秒和溫度等信息,還具有時間校準等功能。該電路采用AT89C51單片機為核心,功耗小,能在3V的低壓工作,電壓可選用3V電壓供電。
LCD—12864是常用的液晶顯示器件,其顯示的分辨率為128*64,可以顯示8*4行16*16點陣的漢字,也可以完成圖形顯示,低電壓功耗是其又一個顯著特點。
綜上所述萬年歷具有讀取方便、顯示直觀、功能多樣、電路簡潔、成本低廉等諸多優點,符合電子儀器儀表的發展趨勢,具有廣闊的市場前景。
1.2 數字時鐘設計方案論證
1.2.1 方案一
可以利用單片機內部的定時器作為秒的計算,再用不同的地址單元記錄時、分。再用LCD12864顯示時間。這種設計誤差較大,因為單片機的讀取程序的時間會產生誤差,其二程序編寫也較為復雜。
1.2.2 方案二
采用數字芯片DS1302計算日期,輸出信號全數字化。由數字計數芯片DS1302和AT89C51單片機構成的數字時鐘裝置,它直接輸出日歷數字信號,也可直接與計算機連接。采用AT89C51單片機控制,軟件編程的自由度大,可通過編程實現各種各樣的算術算法和邏輯控制,而且體積小,硬件實現簡單,安裝方便。再用低功耗的LCD12864液晶顯示芯片進行顯示。
從以上兩種方案很容易看出,采用方案二,電路比較清晰簡單,軟件設計也比較簡單,日期計算精確。所以我選擇采用方案二。
1.3 方案二的總體設計框圖
數字時鐘的電路設計總體方框圖如圖1-1所示,控制器用的是單片機AT89C51,時間計數器件采用DS1302,用液晶LCD—12864顯示:
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image002.jpg
圖1-1 總體設計方框圖
第二章 主要元器件介紹
2.1 AT89C51的性能介紹
AT89C51是一種帶4K字節FLASH存儲器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低電壓、高性能CMOS 8位微處理器,俗稱單片機。AT89C2051是一種帶2K字節閃存可編程可擦除只讀存儲器的單片機。單片機的可擦除只讀存儲器可以反復擦除1000次。該器件采用ATMEL高密度非易失存儲器制造技術制造,與工業標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡版本。AT89C單片機為很多嵌入式控制系統提供了一種靈活性高且價廉的方案。
2.1.1 AT89C51的主要特性
●與MCS-51 兼容
●4K字節可編程閃爍存儲器
壽命:1000寫/擦循環
數據保留時間:10年
●全靜態工作:0Hz-24Hz
●三級程序存儲器鎖定
●128*8位內部RAM
●32可編程I/O線
●兩個16位定時器/計數器
●5個中斷源
●可編程串行通道
●低功耗的閑置和掉電模式
●片內振蕩器和時鐘電路
2.1.2管腳說明
VCC:供電電壓。
GND:接地。
P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當P0口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數據存儲器,它可以被定義為數據/地址的第八位。在FIASH編程時,P0 口作為原碼輸入口,當FIASH進行校驗時,P0輸出原碼,此時P0外部必須被拉高。
P1口:P1口是一個內部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。
P2口:P2口為一個內部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當P2口被寫“1”時,其管腳被內部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內部上拉的緣故。P2口當用于外部程序存儲器或16位地址外部數據存儲器進行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內部上拉優勢,當對外部八位地址數據存儲器進行讀寫時,P2口輸出其特殊功能寄存器的內容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。
P3口:P3口管腳是8個帶內部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當P3口寫入“1”后,它們被內部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。
P3口也可作為AT89C51的一些特殊功能口,如下表所示:
口管腳 備選功能
P3.0 RXD(串行輸入口)
P3.1 TXD(串行輸出口)
P3.2 /INT0(外部中斷0)
P3.3 /INT1(外部中斷1)
P3.4 T0(記時器0外部輸入)
P3.5 T1(記時器1外部輸入)
P3.6 /WR(外部數據存儲器寫選通)
P3.7 /RD(外部數據存儲器讀選通)
P3口同時為閃爍編程和編程校驗接收一些控制信號。
RST:復位輸入。當振蕩器復位器件時,要保持RST腳兩個機器周期的高電平時間。
ALE/PROG:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數據存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時, ALE只有在執行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執行狀態ALE禁止,置位無效。
/PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。但在訪問外部數據存儲器時,這兩次有效的/PSEN信號將不出現。
/EA/VPP:當/EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內部程序存儲器。注意加密方式1時,/EA將內部鎖定為RESET;當/EA端保持高電平時,此間內部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。
XTAL1:反向振蕩放大器的輸入及內部時鐘工作電路的輸入。
XTAL2:來自反向振蕩器的輸出。
2.1.3振蕩器特性
XTAL1和XTAL2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時鐘源驅動器件,XTAL2應不接。有余輸入至內部時鐘信號要通過一個二分頻觸發器,因此對外部時鐘信號的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度。
2.2 DS1302概述
2.2.1 DS1302的基本情況
紹美國DALLAS公司推出的具有涓細電流充電能力的低功耗實時時鐘電路DS1302的結構、工作原理及其在實時顯示時間中的應用。它可以對年、月、日、周、日、時、分、秒進行計時,且具有閏年補償等多種功能。給出DS1302在讀寫中的C51程序及流程圖,以及在調試過程中的注意事項。
2.2.2 DS1302的結構及工作原理
DS1302 是美國DALLAS公司推出的一種高性能、低功耗、帶RAM的實時時鐘電路,它可以對年、月、日、周日、時、分、秒進行計時,具有閏年補償功能,工作電壓為2.5V~5.5V。采用三線接口與CPU進行同步通信,并可采用突發方式一次傳送多個字節的時鐘信號或RAM數據。DS1302內部有一個31×8的用于臨時性存放數據的RAM寄存器。DS1302是DS1202的升級產品,與DS1202兼容,但增加了主電源/后備電源雙電源引腳,同時提供了對后備電源進行涓細電流充電的能力。
2.2.3 引腳功能及結構
DS1302的引腳排列,其中Vcc1為后備電源,VCC2為主電源。在主電源關閉的情況下,也能保持時鐘的連續運行。DS1302由Vcc1或Vcc2兩者中的較大者供電。當Vcc2大于Vcc1+0.2V時,Vcc2給DS1302供電。當Vcc2小于Vcc1時,DS1302由Vcc1供電。X1和X2是振蕩源,外接32.768kHz晶振。RST是復位/片選線,通過把RST輸入驅動置高電平來啟動所有的數據傳送。RST輸入有兩種功能:首先,RST接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,RST提供終止單字節或多字節數據的傳送手段。當RST為高電平時,所有的數據傳送被初始化,允許對DS1302進行操作。如果在傳送過程中RST置為低電平,則會終止此次數據傳送,I/O引腳變為高阻態。上電運行時,在Vcc>2.0V之前,RST必須保持低電平。只有在SCLK為低電平時,才能將RST置為高電平。I/O為串行數據輸入輸出端(雙向),后面有詳細說明。SCLK為時鐘輸入端。 下圖為DS1302的引腳功能圖:
2—3 DS1302封裝圖
2.2.4 DS1302的控制字節
DS1302 的控制字如圖2所示。控制字節的最高有效位(位7)必須是邏輯1,如果它為0,則不能把數據寫入DS1302中,位6如果為0,則表示存取日歷時鐘數據,為1表示存取RAM數據;位5至位1指示操作單元的地址;最低有效位(位0)如為0表示要進行寫操作,為1表示進行讀操作,控制字節總是從最低位開始輸出。
2.2.5 數據輸入輸出(I/O)
在控制指令字輸入后的下一個SCLK時鐘的上升沿時,數據被寫入DS1302,數據輸入從低位即位0開始。同樣,在緊跟8位的控制指令字后的下一個SCLK脈沖的下降沿讀出DS1302的數據,讀出數據時從低位0位到高位7。
2.2.6DS1302的寄存器
DS1302有12個寄存器,其中有7個寄存器與日歷、時鐘相關,存放的數據位為BCD碼形式,其日歷、時間寄存器及其控制字見表1。
此外,DS1302 還有年份寄存器、控制寄存器、充電寄存器、時鐘突發寄存器及與RAM相關的寄存器等。時鐘突發寄存器可一次性順序讀寫除充電寄存器外的所有寄存器內容。 DS1302與RAM相關的寄存器分為兩類:一類是單個RAM單元,共31個,每個單元組態為一個8位的字節,其命令控制字為C0H~FDH,其中奇數為讀操作,偶數為寫操作;另一類為突發方式下的RAM寄存器,此方式下可一次性讀寫所有的RAM的31個字節,命令控制字為FEH(寫)、FFH(讀)。
2.2.7DS1302實時顯示時間的軟硬件
DS1302與CPU的連接需要三條線,即SCLK(7)、I/O(6)、RST(5)。圖3示出DS1302與89C2051的連接圖,其中,時鐘的顯示用LCD。
2.2.8 DS1302與CPU的連接
實際上,在調試程序時可以不加電容器,只加一個32.768kHz 的晶振即可。只是選擇晶振時,不同的晶振,誤差也較大。另外,還可以在上面的電路中加入DS18B20,同時顯示實時溫度。只要占用CPU一個口線即可。 LCD還可以換成LED,還可以使用北京衛信杰科技發展有限公司生產的10位多功能8段液晶顯示模塊LCM101,內含看門狗(WDT)/時鐘發生器及兩種頻率的蜂鳴器驅動電路,并有內置顯示RAM,可顯示任意字段筆劃,具有3-4線串行接口,可與任何單片機、IC接口。功耗低,顯示狀態時電流為2μA (典型值),省電模式時小于1μA,工作電壓為2.4V~3.3V,顯示清晰。
第三章 硬件設計
系統整體硬件電路包括,按鍵模塊,振蕩電路,復位電路,DS1302與單片機接口電路和顯示電路,下面分別是各個電路圖。
3.1 單片機最小系統設計
3.1.1 按鍵模塊
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image007.jpg
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image009.jpg
圖3-1按鍵模塊連接
3.1.2 振蕩電路和復位電路
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image011.jpgfile:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image013.jpg
圖3-2 振蕩電路
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image015.jpgfile:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image017.jpg
圖3-3 復位電路
3.2 DS1302與單片機的接口電路
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image019.jpgfile:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image021.jpg
圖3-4 DS18B20與AT89C51的接口電路
3.3 顯示電路
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image023.jpgfile:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image025.jpg
圖3-5 顯示電路
第四章 軟件設計
按照系統設計要求,在硬件電路的基礎上,進行軟件設計,為增加程序可讀性,可分為以下幾個功能模塊:
1、主程序。主程序流程圖如圖4-1所示。
2、DS1302復位子程序。復位子程序流程圖如圖4-2所示。
3、DS18B20讀溫度子程序。讀溫度子程序流程圖如圖4-3所示。
4、DS18B20數據處理子程序。數據處理子程序流程圖如圖4-4所示。
4.1 主程序流程圖
主程序的主要功能是負責時間的實時顯示、讀出并處理DS1302的計數的當前時間值,每40ms讀一次DS1302的時間。其程序流程見圖4-1所示。
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image027.jpg
圖4-1 主程序流程圖
4.2 各子程序流程圖
4.2.1 DS1302實時時間流程
所有操作都必須初始化,這里設置了DS1302,和介紹了如何實時讀取DS1302的時間數據。
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image029.jpg
圖4-2 DS1302實時時間流程圖
4.2.2 LCD12864流程圖
LCD12864的驅動是初始化,清屏。然后打開左半屏,輸入左半屏的內容。關掉左半屏,打開右半屏,輸入右半屏的內容。
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image031.jpg
圖4-3 LCD12864流程圖
第五章 仿真軟件
5.1 PROTEUS仿真軟件介紹
Proteus軟件是英國Labcenter electronics公司出版的EDA工具軟件(該軟件中國總代理為廣州風標電子技術有限公司)。它不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機及外圍器件。它是目前最好的仿真單片機及外圍器件的工具。雖然目前國內推廣剛起步,但已受到單片機愛好者、從事單片機教學的教師、致力于單片機開發應用的科技工作者的青睞。Proteus是世界上著名的EDA工具(仿真軟件),從原理圖布圖、代碼調試到單片機與外圍電路協同仿真,一鍵切換到PCB設計,真正實現了從概念到產品的完整設計。是目前世界上唯一將電路仿真軟件、PCB設計軟件和虛擬模型仿真軟件三合一的設計平臺,其處理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即將增加Cortex和DSP系列處理器,并持續增加其他系列處理器模型。在編譯方面,它也支持IAR、Keil和MPLAB等多種編譯器。
5.1.1功能特點
Proteus軟件具有其它EDA工具軟件(例:multisim)的功能。這些功能是:
1.原理布圖
2.PCB自動或人工布線
3.SPICE電路仿真
革命性的特點
1.互動的電路仿真
用戶甚至可以實時采用諸如RAM,ROM,鍵盤,馬達,LED,LCD,AD/DA,部分SPI器件,部分IIC器件。
2.仿真處理器及其外圍電路
可以仿真51系列、AVR、PIC、ARM、等常用主流單片機。還可以直接在基于原理圖的虛擬原型
上編程,再配合顯示及輸出,能看到運行后輸入輸出的效果。配合系統配置的虛擬邏輯分析儀、示波器等,Proteus建立了完備的電子設計開發環境。
5.1.2 Proteus ISIS的基本操作
1、選擇元件:P按鈕
常用元件所在庫及名稱
名稱 所在庫名 元件名
51單片機 MicroprocessorAT89C51
電阻Resistors
排阻Resistors RESPACK
電容Capacitors
晶振Miscellaneous CRYSTAL
繼電器Switches&Relays G2R
三級管Transistors
7段數碼管 Optoelectronics7SEG-COM-AN(共陽)
7SEG-COM-CAT(共陰)
LED 同上 LED-BLUE/GREEN
兩位、四位數碼管 同上7SEG-MPX2/MPX4
2、選擇要使用的元件
在PickDevice窗口雙擊相應元件名稱,即可將元件添加到主界面左側的列表中
3、放置元件到繪圖區
單擊列表中的元件,然后在右側的繪圖區單擊,即可將元件放置到繪圖區。(每單擊一次鼠標就繪制一個元件,在繪圖區空白處單擊右鍵結束這種狀態)
4、刪除元件
右擊元件一次表示選中(被選中的元件呈紅色),選中后再一次右擊則是刪除。
5、移動元件
右擊選中,然后用左鍵拖動。
6、旋轉元件
左下角旋轉工具欄
7、元件連線
在引腳上鼠標指針變成X狀,單擊,移動到目的引腳,再次單擊。
8、刪除連線
同刪除元件
9、繪制電源和地
單擊工具欄上的左起第8個工具(Inter-SheetTerminal),左側工具欄顯示TERMINALS,可在其中選擇POWER或GROUND,像放置元件一樣放置到繪圖區。
5.1.3功能模塊
(1)智能原理圖設計(ISIS)
豐富的器件庫:超過27000種元器件,可方便地創建新元件;
智能的器件搜索:通過模糊搜索可以快速定位所需要的器件;
智能化的連線功能:自動連線功能使連接導線簡單快捷,大大縮短繪圖時間;
支持總線結構:使用總線器件和總線布線使電路設計簡明清晰;
可輸出高質量圖紙:通過個性化設置,可以生成印刷質量的BMP圖紙,可以方便地供WORD、POWERPOINT等多種文檔使用。
(2)完善的電路仿真功能(Prospice)
ProSPICE混合仿真:基于工業標準SPICE3F5,實現數字/模擬電路的混合仿真;
超過27000個仿真器件:可以通過內部原型或使用廠家的SPICE文件自行設計仿真器件,Labcenter也在不斷地發布新的仿真器件,還可導入第三方發布的仿真器件;
多樣的激勵源:包括直流、正弦、脈沖、分段線性脈沖、音頻(使用wav文件)、指數信號、單頻FM、數字時鐘和碼流,還支持文件形式的信號輸入;
豐富的虛擬儀器:13種虛擬儀器,面板操作逼真,如示波器、邏輯分析儀、信號發生器、直流電壓/電流表、交流電壓/電流表、數字圖案發生器、頻率計/計數器、邏輯探頭、虛擬終端、SPI調試器、I2C調試器等;
生動的仿真顯示:用色點顯示引腳的數字電平,導線以不同顏色表示其對地電壓大小,結合動態器件(如電機、顯示器件、按鈕)的使用可以使仿真更加直觀、生動;
高級圖形仿真功能(ASF):基于圖標的分析可以精確分析電路的多項指標,包括工作點、瞬態特性、頻率特性、傳輸特性、噪聲、失真、傅立葉頻譜分析等,還可以進行一致性分析;
(3)獨特的單片機協同仿真功能(VSM)
支持主流的CPU類型:如ARM7、8051/52、AVR、PIC10/12、PIC16、PIC18、PIC24、dsPIC33、HC11、BasicStamp、8086、MSP430等,CPU類型隨著版本升級還在繼續增加,如即將支持CORTEX、DSP處理器;
支持通用外設模型:如字符LCD模塊、圖形LCD模塊、LED點陣、LED七段顯示模塊、鍵盤/按鍵、直流/步進/伺服電機、RS232虛擬終端、電子溫度計等等,其COMPIM(COM口物理接口模型)還可以使仿真電路通過PC機串口和外部電路實現雙向異步串行通信;
實時仿真:支持UART/USART/EUSARTs仿真、中斷仿真、SPI/I2C仿真、MSSP仿真、PSP仿真、RTC仿真、ADC仿真、CCP/ECCP仿真;
編譯及調試:支持單片機匯編語言的編輯/編譯/源碼級仿真,內帶8051、AVR、PIC的匯編編譯器,也可以與第三方集成編譯環境(如IAR、Keil和Hitech)結合,進行高級語言的源碼級仿真和調試;
(4)實用的PCB設計平臺
原理圖到PCB的快速通道: 原理圖設計完成后,一鍵便可進入ARES的PCB設計環境,實現從概念到產品的完整設計;
先進的自動布局/布線功能:支持器件的自動/人工布局;支持無網格自動布線或人工布線;支持引腳交換/門交換功能使PCB設計更為合理;
完整的PCB設計功能:最多可設計16個銅箔層,2個絲印層,4個機械層(含板邊),靈活的布線策略供用戶設置,自動設計規則檢查,3D 可視化預覽;
多種輸出格式的支持:可以輸出多種格式文件,包括Gerber文件的導入或導出,便利與其它PCB設計工具的互轉(如protel)和PCB板的設計和加工。
5.1.4資源豐富
1.Proteus可提供的仿真元器件資源:仿真數字和模擬、交流和直流等數千種元器件,有30多個元件庫。
2.Proteus可提供的仿真儀表資源 :示波器、邏輯分析儀、虛擬終端、SPI調試器、I2C調試器、信號發生器、模式發生器、交直流電壓表、交直流電流表。理論上同一種儀器可以在一個電路中隨意的調用。
3.除了現實存在的儀器外,Proteus還提供了一個圖形顯示功能,可以將線路上變化的信號,以圖形的方式實時地顯示出來,其作用與示波器相似,但功能更多。這些虛擬儀器儀表具有理想的參數指標,例如極高的輸入阻抗、極低的輸出阻抗。這些都盡可能減少了儀器對測量結果的影響。
4.Proteus可提供的調試手段Proteus提供了比較豐富的測試信號用于電路的測試。這些測試信號包括模擬信號和數字信號。
5.1.4電路仿真
在PROTEUS繪制好原理圖后,調入已編譯好的目標代碼文件:*.HEX,可以在PROTEUS的原理圖中看到模擬的實物運行狀態和過程。
PROTEUS是單片機課堂教學的先進助手。
PROTEUS不僅可將許多單片機實例功能形象化,也可將許多單片機實例運行過程形象化。前者可在相當程度上得到實物演示實驗的效果,后者則是實物演示實驗難以達到的效果。
它的元器件、連接線路等卻和傳統的單片機實驗硬件高度對應。這在相當程度上替代了傳統的單片機實驗教學的功能,例:元器件選擇、電路連接、電路檢測、電路修改、軟件調試、運行結果等。
課程設計、畢業設計是學生走向就業的重要實踐環節。由于PROTEUS提供了實驗室無法相比的大量的元器件庫,提供了修改電路設計的靈活性、提供了實驗室在數量、質量上難以相比的虛擬儀器、儀表,因而也提供了培養學生實踐精神、創造精神的平臺
隨著科技的發展,“計算機仿真技術”已成為許多設計部門重要的前期設計手段。它具有設計靈活,結果、過程的統一的特點。可使設計時間大為縮短、耗資大為減少,也可降低工程制造的風險。相信在單片機開發應用中PROTEUS也能茯得愈來愈廣泛的應用。
使用Proteus軟件進行單片機系統仿真設計,是虛擬仿真技術和計算機多媒體技術相結合的綜合運用,有利于培養學生的電路設計能力及仿真軟件的操作能力;在單片機課程設計和全國大學生電子設計競賽中,我們使用Proteus 開發環境對學生進行培訓,在不需要硬件投入的條件下,學生普遍反映,對單片機的學習比單純學習書本知識更容易接受,更容易提高。實踐證明,在使用Proteus 進行系統仿真開發成功之后再進行實際制作,能極大提高單片機系統設計效率。因此,Proteus有較高的推廣利用價值。
目前Proteus的最新版為7.9,今年將推出8.0版本,增加DSP系列及ARMcortex處理器。
第六章 仿真調試與系統測試
6.1 仿真調試
6.1.1 繪制仿真原理圖如6-1所示:
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image033.jpg
圖6-1 仿真原理圖
6.1.2 系統調試
雙擊單片機出現下圖所示畫面圖,在Program File一欄中選取仿真項目的源程序代碼,點擊OK。
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image035.jpg
圖6-2 加載源程序示意效果圖
6.1.3 開始仿真
1.現在時間
單擊Play按鈕,進入仿真狀態,出現下圖4.5所示:
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image037.jpg
圖6-3—1.1 仿真結果—現在時間(1)
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image039.jpg
圖6-3—1.2 仿真結果—現在時間(2)
2.設定時間
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image041.jpg
圖6-3—2.1 仿真結果—設定時間(1)
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image043.jpg
圖6-3—2.2 仿真結果—設定時間(2)
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image045.jpg
圖6-3-2.3 仿真結果—設定時間(3)
3.鬧鐘設定
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image047.jpg
圖6-3-3.1 仿真結果—鬧鐘設定(1)
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image049.jpg
圖6-3-3.2 仿真結果—鬧鐘設定(2)
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image051.jpg
圖6-3-3.3 仿真結果—鬧鐘設定(3)
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image053.jpg
圖6-3-3.4 仿真結果—鬧鐘設定(4)
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image055.jpg
圖6-3-3.5 仿真結果—鬧鐘設定(5)
結束語
經過將近幾周的畢業設計,終于完成了我的數字時鐘設計,從開始接到任務書到論文題目到設定方案的確定,再到今天完成論文文章,每走一步對于我來說都是新的嘗試和新的挑戰。這也是我在大學期間獨立完成的一個大項目。在這段時間里,我查閱了許許多多的相關資料和書籍。從中我學到很多相關知識,每學到一個我都進行實踐調試。讓自己能深刻理解每一個關鍵點,從而為自己的設計完成墊下扎實的基礎。通過這些資料讓自己頭腦逐漸清晰,使自己的設計逐步完善起來,每一次改進都使我收益頗豐。
雖然我的設計不是很成熟,還有很多不足的地方,但是我付出了自己的勞動,這是我引以自豪的地方,我相信只有經歷過的人才會明白其中的酸甜苦辣。
這次設計經歷讓我終生收益,也為我自己增強了自信。沒有學習就不可能有研究的能力,對自己的研究就不會有所突破,那也就不叫設計,希望這次經歷讓我以后的學習提供更多幫助。
參考文獻
[1] 李朝青. 單片機原理及接口技術(簡明修訂版). 杭州; 北京航空航天大學出版社,1998
[2] 李廣弟. 單片機基礎[M]. 北京; 北京航空航天大學出版社,1994
[3] 閻石. 數字電子技術基礎(第三版).北京; 高等教育出版社,1989
[4] 廖常初. 現場總線概述[J]. 電工技術,1999.
[5] 高衛東,辛友順,韓彥征. 51單片機原理與實踐[M]. 北京; 北京航空航天大學出版社,2008
致 謝
非常感謝XXX老師、鄭譽煌老師在我大學的最后學習階段——畢業設計階 段給自己的指導,從最初的定題,到資料收集,到寫作、修改,到論文定稿,她 們給了我耐心的指導和無私的幫助。為了指導我們的畢業論文,她們放棄了自己 的休息時間,她們的這種無私奉獻的敬業精神令人欽佩,在此我向她們表示我誠 摯的謝意。 同時, 感謝所有任課老師和所有同學在這四年來給自己的指導和幫助, 是他們教會了我專業知識,教會了我如何學習,教會了我如何做人。正是由于他 們,我才能在各方面取得顯著的進步,在此向他們表示我由衷的謝意,并祝所有 的老師培養出越來越多的優秀人才,桃李滿天下!
附錄1 元器件清單
物質名稱
芯片
芯片
液晶顯示
電解電容
瓷片電容
按鍵
芯片
排阻
電阻
電阻
晶振
滑阻
蜂鳴器
附錄2 核心代碼
;**********************
從DS1302讀取時間
;**********************
GET1302:
MOV R0,#SECOND
MOV R1,#81H ;DS1302中讀時間的首地址
MOV R7,#7
GETLOOP:
CLR T_RST
nop
CLR T_CLK
nop
SETB T_RST
nop
LCALL INPUTBYTE ;寫命令字
LCALL OUTPUTBYTE ;讀時間
MOV @R0,A ;將從DS1302中讀取的時間從內存中保存
INC R0 ;修改地址指針
INC R1
INC R1
SETB T_CLK
nop
CLR T_RST
nop
DJNZ R7,GETLOOP
RET
;-------------------------------------------------------
;向DS1302寫一個字節
--------------------------------------------
NPUTBYTE:
MOV R4,#8
INPUTLOOP:
MOV A,B
RRC A
MOV B,A
MOV T_IO,C
SETB T_CLK
NOP
;NOP
;NOP
CLR T_CLK
DJNZ R4,INPUTLOOP
RET
;-------------------------------------------------------
;從DS1302讀一個字節
--------------------------------------------
OUTPUTBYTE:
clr a
clr c
MOV R4,#8
OUTPUTLOOP:
NOP
;NOP
MOV C,T_IO
RRC A
SETB T_CLK
NOP
;NOP
;NOP
CLR T_CLK
DJNZ R4,OUTPUTLOOP
RET
|