

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 設計任務書</b></p><p> 學生姓名: 專業(yè)班級: </p><p> 指導教師: 工作單位: 信息工程學院 </p><p> 題 目: 基于C51單片機的實用電子時鐘設計</p><p>&
2、lt;b> 初始條件</b></p><p> 1. 一臺裝有PROTEL軟件或以上版本的電腦及使用PROTEL軟件繪制電路原理圖和印刷電路板的基本技能;</p><p> 2. 模擬、數字、高頻、單片機、或者一個具有完備功能的電子電路系統。</p><p> 要求完成的主要任務:</p><p> 1. 繪制具有
3、一定規(guī)模、一定復雜程度的電路原理圖*.sch(自選)??梢陨婕澳M、數字、高頻、單片機、或者一個具有完備功能的電子電路系統。</p><p> 2. 繪制相應電路原理圖的雙面印刷版圖*.pcb,對電路原理圖進行仿真,給出仿真結果(如波形*.sdf、數據)并說明是否達到設計意圖。</p><p><b> 參考書目:</b></p><p>
4、 1. 謝自美.電子線路設計·實驗·測試(第三版).武漢:華中科技大學出版社</p><p> 2. 康華光. 電子技術基礎模擬部分.高等教育出版社,2005</p><p><b> 時間安排</b></p><p> 查閱資料2天</p><p> Protel
5、設計2天</p><p> 電路仿真 2天</p><p> 報告撰寫 1天</p><p> 指導教師簽名: 2013年 月 日</p><p> 系主任(或責任教師)簽名:
6、 2013年 月 日</p><p><b> 摘 要</b></p><p> Altium Designer 是業(yè)界第一款一體化電子產品設計解決方案,它將設計流程、集成化PCB設計、可編程器件(如FPGA)設計和基于處理器的嵌入式軟件開發(fā)功能整合在一起的產品,是一種能同時進行原理圖、PCB和FPGA設計及嵌入式設計的解決方案,具有將設計方
7、案從概念轉變?yōu)樽罱K產品所需的全部功能。</p><p> 作為電子專業(yè)的學生,掌握EDA軟件是十分重要的,熟練使用各種EDA軟件對以后的學習研究、工作都很有幫助。</p><p> 本次課程設計主要是設計一個基于C51單片機的實用電子時鐘。通過課程設計,掌握Altium Designer的基本使用方法,學會畫原理圖,進行PCB制作,并給予必要的仿真。</p><p&
8、gt; 關鍵詞:Altium Designer;原理圖;PCB制作;電子時鐘</p><p><b> Abstract</b></p><p> Altium Designer is the industry's first unified electronics design solutions that will design flow, inte
9、grated PCB design, programmable devices (eg FPGA) design and processor-based embedded software development capabilities integrated products, is the one kind can simultaneously schematic, PCB and FPGA design and embedded
10、design solutions with the design from concept to final product all the necessary functions.</p><p> As electronics majors, master EDA software is very important, skilled use of a variety of EDA software for
11、 future study and research work are very helpful.</p><p> The course design is to design a practical C51 microcontroller based electronic clock. Through curriculum design, master the basics of using Altium
12、Designer, learn drawing schematics for PCB production and give the necessary simulation.</p><p> Keywords: Altium Designer; schematic; PCB design; Electronic clock.</p><p><b> 目錄</b&g
13、t;</p><p><b> 摘 要I</b></p><p> AbstractII</p><p> 1 Altium Designer簡介1</p><p> 1.1 Altium Designer特性1</p><p> 1.2 Altium Designer的組成
14、1</p><p> 1.3 Altium Designer改進方面2</p><p> 2 電子時鐘系統設計3</p><p> 2.1 MCU控制器簡介3</p><p> 2.2 單片機最小系統4</p><p> 2.3 獨立鍵盤4</p><p> 2.4 LCD
15、1602模塊5</p><p> 2.5 DS12C887時鐘芯片7</p><p> 2.6 電源模塊8</p><p><b> 3 原理圖繪制9</b></p><p> 3.1 創(chuàng)建新的PCB工程文件9</p><p> 3.2 添加新的原理圖空文件9</p&g
16、t;<p> 3.3 安裝元件庫10</p><p> 3.4 放置電路元器件并繪制連線10</p><p> 3.5 完善原理圖11</p><p> 3.6 檢查電路原理圖11</p><p> 3.7 輸出元件清單12</p><p> 4 PCB版圖設計13</p&g
17、t;<p> 4.1 導入原理圖設計數據13</p><p> 4.2 PCB板型設計及元件布局13</p><p> 4.3 PCB網絡布線13</p><p> 4.4 設計規(guī)則DRC檢查14</p><p> 4.5 覆銅編輯及補淚滴處理15</p><p> 4.6 PCB的
18、3D顯示16</p><p><b> 5 仿真分析17</b></p><p><b> 6 小結體會19</b></p><p><b> 參考文獻20</b></p><p> 附錄 部分程序21</p><p> 1 Alti
19、um Designer簡介</p><p> 1.1 Altium Designer特性</p><p> Altium Designer是美國Altium公司開發(fā)的設計電路板軟件Protel的升級版本,其沿襲了Protel以前版本方便易學的特點,內部界面與Protel DXP大體相同,為了適應目前高密度和信號高速度的要求新增加了一些功能模塊。在元件庫中,整合了以前Protel DXP
20、版本和Protel99版本等各個版本的庫文件,使得用戶尤其是初學者使用起來更加方便和容易。</p><p> Altium Designer 6.0是業(yè)界首例將設計流程、集成化PCB設計、可編程邏輯器件(如FPGA)設計和基于處理器設計的嵌入式軟件開發(fā)功能整合在一起的產品,一種同時進行PCB和FPGA設計以及嵌入式設計的解決方案,具有將設計方案從概念轉變?yōu)樽罱K產品所需的全部功能。</p><
21、p> Altium Designer 6.0除了全面繼承包括Protel 2004在內的先前一系列版本的功能和優(yōu)點以外,還增加了許多高端功能。Altium Designer 6.0拓寬了板級設計的傳統界限,全面繼承了FPGA設計功能和SOPC設計實現功能,從而允許工程師能將系統設計中的FPGA與PCB設計以及嵌入式設計集成在一起。</p><p> Altium Designer 6.0以強大的設計輸入
22、功能為特點,在FPGA的板級設計中,同時支持原理圖輸入和VHDL硬件描述輸入模式;同時支持基于VHDL的設計仿真、混合信號電路仿真、布局前后信號完整性分析;Altium Designer 6.0的布局布線采用完全規(guī)則驅動模式,并且在PCB布線中采用了無網絡的SitusTM拓撲邏輯自動布線功能;同時,將完整的CAM輸出功能編輯結合在一起。</p><p> 1.2 Altium Designer的組成</p
23、><p> Altium Designer 6.0提供了一套完全集成的設計,這些工具讓開發(fā)者很容易地將設計從概念形成最終的板設計。</p><p> Altium Designer 6.0主要是由以下四大部分組成。</p><p> 1)原理圖設計系統(schematics):它主要用于電路原理圖的設計,為印制電路板的制作進行前期的準備工作,主要表現了電路的原理鏈
24、接,相對比較直觀。</p><p> 2)印制電路板設計系統(PCB):這部分系統則主要用于印制電路板的設計,印制電路板的生產車間就是根據由它生成的PCB文件進行PCB板的生產的。</p><p> 3)FPGA系統:用戶可以用它進行可編程邏輯器件的設計,將設計完成后生成的熔絲文件燒錄到邏輯器件中,就可以制作具備特定功能的元器件了。</p><p> 4)VH
25、DL系統:主要用來進行硬件的編程工作。</p><p> 1.3 Altium Designer改進方面</p><p> Altium Designer 6.0解決了大量歷史遺留的工具問題。新版本中更關注于改進測試點的分配和管理、精簡嵌入式開發(fā)、軟設計中智能化調試和流暢的License管理功能。增強了圖形化ERC違規(guī)顯示。改進了DirectX圖形重建速度。PCB板機械層設定增加到32
26、層??梢詾镕PGA儀器編寫腳本等等。</p><p> 2 電子時鐘系統設計</p><p> 本次課程設計目的是設計一個電子時鐘,利用廉價的STC89C52作為主控芯片,以Dallas生產的DS12C887作為時鐘芯片,其最大的特點是不需要外接晶振。設計3個獨立按鍵用于設置時間。使用LCD1602作為顯示器顯示時間。電源部分采用LM7805作為穩(wěn)壓源輸出5V電壓,另設一個插座可以從U
27、SB接口供電,實現了兩路供電,加一個開關用于選擇。</p><p> 以下是系統的原理框圖。</p><p><b> 圖1 系統框圖</b></p><p> 2.1 MCU控制器簡介</p><p> STC89C52是一種低功耗、高性能CMOS8位微控制器,具有 8K 在系統可編程Flash存儲器。在單芯片
28、上,擁有靈巧的8 位CPU 和在系統可編程Flash,使得STC89C52為眾多嵌入式控制應用系統提供高靈活、超有效的解決方案。 具有以下標準功能: 8k字節(jié)Flash,512字節(jié)RAM, 32 位I/O 口線,看門狗定時器,內置4KB EEPROM,MAX810復位電路,2個16 位定時器/計數器,一個6向量2級中斷結構,全雙工串行口。另外 STC89X52 可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU
29、停止工作,允許RAM、定時器/計數器、串口、中斷繼續(xù)工作。掉電保護方式下,RAM內容被保存,振蕩器被凍結,單片機一切工作停止,直到下一個中斷或硬件復位為止。最高運作頻率35MHz,6T/12T可選。</p><p> 2.2 單片機最小系統</p><p> 單片機最小系統包括振蕩器電路,復位電路,單片機EA端接高電平(Vcc),P0口需要接上拉電阻(10K)。振蕩器電路選用12MH
30、z晶振,兩個30pf電容,振蕩器電路接單片機XTAL1和XTAL2引腳。</p><p> 單片機最小系統原理圖如下。</p><p> 圖2 單片機最小系統</p><p><b> 2.3 獨立鍵盤</b></p><p> 獨立鍵盤的原理是:單片機的I/O口既可以作為輸出也可以作為輸入使用,當檢測按鍵時用的
31、是它的輸入功能,我們把按鍵的一端接地,另一端與單片機的某個I/O口相連,開始時先給該I/O口賦一高電平,然后讓單片機不斷的檢測該I/O口是否為低電平,當按鍵閉合時,即相當于該I/O口通過按鍵與地相連,變成低電平,程序一旦檢測到I/O口變?yōu)榈蛣t說明按鍵被按下,然后執(zhí)行相應的指令。本次設計采用3個獨立按鍵,分別用來實現設置調節(jié)位數,時間加和時間減三種功能。</p><p><b> 圖3 獨立按鍵<
32、;/b></p><p> 2.4 LCD1602模塊</p><p> 1602液晶也叫1602字符型液晶,它是一種專門用來顯示字母、數字、符號等的點陣型液晶模塊。它由若干個5X7或者5X11等點陣字符位組成,每個點陣字符位都可以顯示一個字符,每位之間有一個點距的間隔,每行之間也有間隔,起到了字符間距和行間距的作用。</p><p> 在單片機系統中應
33、用晶液顯示器作為輸出器件有以下幾個優(yōu)點: </p><p><b> 顯示質量高</b></p><p> 由于液晶顯示器每一個點在收到信號后就一直保持那種色彩和亮度,恒定發(fā)光,而不像陰極射線管顯示器(CRT)那樣需要不斷刷新新亮點。因此,液晶顯示器畫質高且不會閃爍。 </p><p><b> 數字式接口</b>&
34、lt;/p><p> 液晶顯示器都是數字式的,和單片機系統的接口更加簡單可靠,操作更加方便。 </p><p><b> 體積小</b></p><p><b> 重量輕</b></p><p> 液晶顯示器通過顯示屏上的電極控制液晶分子狀態(tài)來達到顯示的目的,在重量上比相同顯示面積的傳統顯示器要
35、輕得多。 </p><p><b> 功耗低</b></p><p> 相對而言,液晶顯示器的功耗主要消耗在其內部的電極和驅動IC上,因而耗電量比其它顯示器要少得多。</p><p> 1602液晶模塊內部的控制器共有11條控制指令,如表1所示:</p><p><b> 表1 控制命令表</b&
36、gt;</p><p> 圖4 LCD1602</p><p> 2.5 DS12C887時鐘芯片</p><p> DS12C887時鐘芯片能夠自動產生世紀、年、月、日、時、分、秒等時間信息,其內部有世紀寄存器,從而利用硬件電路解決“千年”問題。DS12C887中自帶鋰電池,外部掉電時,其內部時間信息還能夠堅持10年之久。對于一天內的時間記錄,有12小時制和
37、24小時制兩種模式。在12小時制模式中,用AM和PM區(qū)分上午和下午;芯片內部時間的存儲方式也有兩種,一種用二進制數表示,另一種是BCD碼表示。DC12C887時鐘芯片中帶有128B RAM,其中11B RAM用來存儲時間信息;4B RAM用來存儲DS12C887的控制信息,稱為控制寄存器;113B通用RAM供用戶使用。此外,用戶還可以對DS12C887進行編程以實現多種方波輸出,并可對其內部的三路中斷通過軟件進行屏蔽。該芯片內部有一個精
38、密的溫度補償電路用來監(jiān)視VCC的狀態(tài),如果檢測到主電源故障,該器件可以自動切換到備用電源供電。Vbackup引腳用于支持可充電電池或超級電容,內部包括一個始終有效的涓流充電器。DS12C887可以通過一個多路復用的單字節(jié)接口訪問,該接口支持Intel模式和Motorola模式。DS12C887將它自己與石英晶體和電</p><p> 圖5 DS12C887芯片</p><p><b
39、> 2.6 電源模塊</b></p><p><b> 圖6 電源電路</b></p><p> 該電路采用變壓器與三端穩(wěn)壓器7805相結合。使220V電壓經220V~12V變壓器變壓,降為12V。經過橋式整流并利用兩個容量較大的電容濾波,從而得到較為穩(wěn)定的直流電壓。通過7805型號的三端穩(wěn)壓器穩(wěn)壓之后,輸出一個電壓為5V的直流穩(wěn)壓電源。<
40、;/p><p><b> 3 原理圖繪制</b></p><p> Altium Designer電路原理圖的設計流程如圖7所示:</p><p><b> 圖7 設計流程</b></p><p> 3.1 創(chuàng)建新的PCB工程文件</p><p> 啟動Altium D
41、esigner,依次執(zhí)行菜單命令【File】、【New】、【Project】、【PCB Project】,新建一個PCB工程文件,單擊保存,命名為“SHIZHONG”,設置合適的保存路徑。</p><p> 3.2 添加新的原理圖空文件</p><p> 依次執(zhí)行菜單命令【File】、【New】、【Schematic】,在項目“SHIZHONG.PrjPCB”中創(chuàng)建一個原理圖空文件。執(zhí)
42、行菜單命令【File】、【Save】,在彈出的保存文件對話框中輸入文件名“shizhong”,點擊保存按鈕。此時工程面板中的“SHIZHONG.PrjPCB”工程下面將出現名稱為“shizhong.SchDoc”的文件。</p><p> 按照類似的方式建立一個PCB文件,文件名為“shizhong.PcbDoc.”。</p><p> 如圖8為Altium Designer項目面板。
43、</p><p><b> 圖8 項目面板</b></p><p><b> 3.3 安裝元件庫</b></p><p> 在原理圖圖紙上放置元件前,必須先打開其所在的元器件庫(也稱為加載元器件庫)。</p><p> 執(zhí)行菜單命令【Design】、【Add Remove Library…】
44、,彈出“Available Library”對話框,點擊“Install”按鈕,添加要添加的庫文件。</p><p><b> 圖9 添加庫文件</b></p><p> 3.4 放置電路元器件并繪制連線</p><p> 點擊右側的“Library”,彈出一個面板,利用庫文件面板放置元器件。搜索需要的元件,選中,拖動到左邊原理圖編輯區(qū)合
45、適的位置,單擊放置。</p><p> 導線是指元器件電氣連接點之間的連線(Wire)。Wire具有電器特性,而繪圖工具中的Line不具有電氣特性,這一點特別重要,不能混淆。下圖為繪制好的電源模塊。</p><p><b> 圖10 繪制原理圖</b></p><p><b> 3.5 完善原理圖</b></p
46、><p> 依次執(zhí)行菜單命令【Tools】、【Annotate Schematics…】、【Schematic】,在彈出的對話框中點擊“Update Changes List”按鈕,彈出“Information”對話框,單擊“OK”確認后,再單擊“Accept Changes (Creat ECO)”創(chuàng)建ECO文件,關閉對話框,所有元件標號完成。</p><p> 3.6 檢查電路原理圖&
47、lt;/p><p> 帶電路原理圖繪制完成后,需要對整個工程進行電器檢查。電器規(guī)則檢查ERC,指利用軟件對用戶設計的電路進行電器檢查。執(zhí)行菜單命令【Project】、【Compile PCB Project】來進行ERC檢測。當完成編譯參數設置后,就可以對項目進行編譯了。編譯后系統都會通過信息面板給出一些錯誤信息或警告。沒有錯誤信息或者是放置了“NO ERC”標志,信息面板是空的。如果出現了錯誤信息,可以通過單擊錯
48、誤信息指針,彈出編譯錯誤面板,雙擊面板上的錯誤選項,系統會自動定位錯誤元件。</p><p> 3.7 輸出元件清單</p><p> 最后可點擊執(zhí)行菜單命令【Reports】、【Bills of Materials】出現“Bills of Materials”對話框,點擊“Export”可以將材料清單輸出成*.xls文件。</p><p><b>
49、 圖11 元件清單</b></p><p> 圖12 完整的電子時鐘原理圖</p><p><b> 4 PCB版圖設計</b></p><p> 4.1 導入原理圖設計數據</p><p> 當設計好原理圖后,打開之前建立好的PCB文件。點擊【Design】、【Import Changes From
50、 shizhong.PrjPcb】。選擇“Validate Changes”,系統會對所有的元件信息和網絡信息進行檢查。</p><p> 點擊“Execute Changes”,如果沒有錯誤,所有的元件和連線會自動加入到PCB文件中的元件空間中。若有錯誤,則需要進行相應的改正。</p><p> 4.2 PCB板型設計及元件布局</p><p> 點擊“Ke
51、ep out layer ”然后用line工具畫一個框,即為電路板的大小。當布線超出這框時,元器件即變?yōu)榫G色,表面違法規(guī)則。</p><p> 把網表和元器件封裝更新到PCB文件上后,所有元器件便全部更新到PCB上了,但是此時元器件分布過密,甚至出現重疊現象。</p><p> 合理的元器件布局是PCB布線的關鍵。元器件布局是將元器件封裝按一定的規(guī)則排列、擺放在電路板中。布局的方式有兩
52、種,一種是交互式布局,另一種是自動布局。一般采用在自動布局的基礎上用交互式布局進行調整。</p><p> 4.3 PCB網絡布線</p><p> 在PCB板上走線的首要任務就是要在PCB板上走通所有的導線,建立起所有需要的電氣連接,這在高密度的PCB設計中很具有挑戰(zhàn)性。在能夠完成所有走線的前提下,布線的要求有:走線長度盡量短和直,在這樣的走線上電信號完整性較好;走線中盡量少地使用過
53、孔;走線的寬度要盡量寬;輸入輸出端的邊線應避免相鄰平行,平行則容易產生耦合。</p><p> 自動布線是一個優(yōu)秀的電路設計輔助軟件所必需的功能之一。對于散熱、電磁干擾及高頻等要求較低的大型電路設計來說,采用自動布線操作可以大大地降低布線的工作量,同時,還能減少布線時的漏洞。如果自動布線不能夠滿足實際工程設計的要求,可以通過手動布線進行調整。</p><p> 完成元件布局后,點擊【A
54、uto Route】,選擇自動布線的策略。對于雙層電路板,單擊“All”進入自動布線狀態(tài),可以看到PCB上自動布線的全過程,同時顯示相應的信息框。制作出的PCB板如下圖。</p><p> 圖13 設計好的PCB</p><p> 4.4 設計規(guī)則DRC檢查</p><p> 點擊【Tools】、【Design Rules Check…】,單擊對話框中的“El
55、ectrical”選項,彈出在線檢查一并檢查對話框。勾選相應的選項,單擊運行,即可進行DRC檢查,其結果或反映在信息面板中。如果選中了生成報告文件,設計檢查結束后,會生成一個有關短路檢測、斷路檢測、安全間距檢測、一般線寬檢測、過孔內徑檢測等項目情況報表。生成報表如下:</p><p> 圖14 設計規(guī)則驗證報告</p><p> 4.5 覆銅編輯及補淚滴處理</p>&l
56、t;p> 為了增強PCB的抗干擾能力,要對各布線層中的底線網絡進行覆銅。在焊盤或過孔與布線的連接處補淚滴,可以有效加大布線和焊盤之間的連接強度。</p><p> 以下是經過覆銅和補淚滴處理的PCB板。</p><p> 圖15 進一步處理后的PCB板</p><p> 4.6 PCB的3D顯示</p><p> 首先按下鍵盤
57、數字鍵“3”,顯示無元件的PCB板。</p><p> 圖16 PCB板3D顯示</p><p> 點擊【View】、【Legacy 3D View】,系統產生一幅帶有元件3D模型的PCB板圖。</p><p> 圖17 完整的3DPCB模型</p><p><b> 5 仿真分析</b></p>
58、<p> Proteus是世界上著名的EDA工具(仿真軟件),它不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機及外圍器件。從原理圖布圖、代碼調試到單片機與外圍電路協同仿真,一鍵切換到PCB設計,真正實現了從概念到產品的完整設計。是目前世界上唯一將電路仿真軟件、PCB設計軟件和虛擬模型仿真軟件三合一的設計平臺,其處理器模型支持8051。在編譯方面,它支持IAR、Keil和MPLAB等多種編譯器。</p>&
59、lt;p><b> 圖18 仿真原理圖</b></p><p> 啟動仿真后,液晶顯示屏出現日期及時間顯示。</p><p><b> 圖19 仿真結果1</b></p><p> 按下第一個按鍵,光標依次在年、月、日、時、分、秒下移動。</p><p><b> 圖20
60、仿真結果2</b></p><p> 按下第二個鍵,光標對應位置的數字增加。</p><p><b> 圖21 仿真結果3</b></p><p> 按下第三個鍵,光標對應位置的數字減小。</p><p><b> 圖22 仿真結果4</b></p><p&g
61、t; 仿真分析:由仿真結果得出,系統設計正確地實現了設定的全部功能。設計是有效的。</p><p><b> 6 小結體會</b></p><p> 作為電子專業(yè)的學生,掌握EDA軟件是十分重要的,熟練使用各種EDA軟件對以后的學習研究、工作都很有幫助。本次課程設計我們重點掌握了Altium Designer的使用方法。之前用Protel時候,感覺可操作性不是那
62、么強悍,換句話說就是有點老,Altium Designer這個軟件應該說是繼承了Protel的許多優(yōu)點,并且擁有更好的人機交互界面。最吸引我的是多種PCB3D顯示,它可以讓我更直觀的看到自己設計的產品。</p><p> 通過一個星期的學習,我基本掌握了原理圖的畫法,掌握了畫元件封裝圖的方法。學會了畫PCB的基本方法以及一些高級技巧。在制作PCB的過程中,通過對布線學習使我認識到PCB雖然可以采用自動布線,但是
63、自動布線有許多缺點,看起來不是太美觀。采用手動布線,不僅使電路美觀了許多,而且也鍛煉了自己的動手能力。由于自己經驗的不足,采用自動布線與手動布線結合的方式。在擺放器件時,使一些插件放在板子邊緣,一些芯片放在板子中間,相應的原件盡量靠近,這樣減少了許多線路,也適用于實際。</p><p> 對我而言,此次課程設計的過程中我遇到了許多挫折,如軟件使用中的很多問題,但我認為挫折是一份財富,經歷是一份擁有。這次課程設計
64、必將成為我人生旅途上一個非常美好的回憶。 </p><p> 此次課程設計也使我懂得了把所學的理論知識與實踐相結合起來,從理論中得出結論,才能真正為社會服務,從而提高自己的實際動手能力和獨立思考的能力。在設計的過程中遇到問題,可以說得是困難重重,難免會遇到過各種各樣的問題,同時在設計的過程中發(fā)現了自己的不足之處,以及其中很多功能應用還未有深刻理解,要通過不斷的實用和查找資料來完善自己此方面的能力。&l
65、t;/p><p><b> 參考文獻</b></p><p> [1] 謝自美.電子線路設計·實驗·測試(第三版).華中科技大學出版社</p><p> [2] 康華光. 電子技術基礎模擬部分.高等教育出版社,2005</p><p> [3] 三恒星科技. Altium Designer6.0易
66、學通.人民郵電出版社,2006</p><p> [4] 穆秀春等.輕松實現從Protel到Altium Designer.電子工業(yè)出版社,2011</p><p> [5] 郭天祥.新概念51單片機C語言教程.電子工業(yè)出版社,2009</p><p> [6] 李群芳.單片微型計算機與接口技術(第4版).電子工業(yè)出版社</p><p>
67、;<b> 附錄 部分程序</b></p><p> DS12C887讀寫子程序</p><p> uchar DS_read(uchar addr)</p><p><b> {</b></p><p> uchar ds_data;</p><p> DS_D
68、S = 1;</p><p> DS_RW = 1;</p><p> DS_AS = 1;</p><p> DS_CS = 0;</p><p> P0 = addr;</p><p> DS_AS = 0;</p><p> P0 = 0xff;</p><
69、p> DS_DS = 0;</p><p> ds_data = P0;</p><p> DS_DS = 1;</p><p> DS_AS = 1;</p><p> DS_CS = 1;</p><p> return ds_data;</p><p><b>
70、 }</b></p><p> void DS_write(uchar addr, uchar Wdata)</p><p><b> {</b></p><p> DS_DS = 1;</p><p> DS_RW = 1;</p><p> DS_AS = 1;<
71、;/p><p> DS_CS = 0;</p><p> P0 = addr;</p><p> DS_AS = 0;</p><p> P0 = Wdata;</p><p> DS_RW = 0;</p><p> DS_RW = 1;</p><p> D
72、S_AS = 1;</p><p> DS_CS = 1;</p><p><b> }</b></p><p><b> LCD顯示程序</b></p><p> #include <reg51.h></p><p> #include "
73、lcd_display.h"</p><p> #include "char_lcd.h"</p><p> uchar code dis4[] = {"0123456789"};</p><p> uchar code initdisp[] = {"Date:2000-00-00 Time:00:0
74、0:00"};</p><p> //uchar code DT_place[] = {7,10,13,21,24,27};</p><p> uchar code DT_lcdplace[] = {0x07,0x0a,0x0d,0x45,0x48,0x4b};</p><p> uchar code DTdata_addr[] = {9,8,7,4
75、,2,0};</p><p> uchar DTdata_tab[] = {0,0,0,0,0,0};</p><p> uchar code chars[8][6] = {{"set "},{" "},</p><p> {" year "},{" month"}
76、,{" day "},</p><p> {" hour "},{"minute"},{"second"}</p><p><b> };</b></p><p> uchar data_h,data_l;</p><p> voi
77、d data_wr()</p><p><b> {</b></p><p><b> uchar i;</b></p><p> for(i=5; i>=0; i--)</p><p><b> {</b></p><p> *(d
78、s_addr+(DTdata_addr[i]))=DTdata_tab[i];</p><p><b> }</b></p><p><b> }</b></p><p> void data_pro()</p><p><b> {</b></p>&l
79、t;p><b> uchar i;</b></p><p> for(i=0; i<6; i++)</p><p><b> {</b></p><p> DTdata_tab[i]=*(ds_addr+DTdata_addr[i]);</p><p><b> }&
80、lt;/b></p><p> data_hl();</p><p><b> }</b></p><p> void data_hl()</p><p><b> {</b></p><p><b> uchar i;</b></
81、p><p> for(i=0; i<6; i++)</p><p><b> {</b></p><p><b> if(i==3)</b></p><p><b> {</b></p><p> if((DTdata_tab[i]&
82、0x80)!=0)</p><p><b> {</b></p><p> DTdata_tab[i]=(DTdata_tab[i]&0x7f)&0x7f;</p><p><b> }</b></p><p><b> }</b></p>
83、<p> data_h=DTdata_tab[i]/16;</p><p> data_l=DTdata_tab[i]%16;</p><p> lcd_pos(DT_lcdplace[i]);</p><p> lcd_wdat(data_h+48);//'0'=48</p><p> lcd_wd
84、at(data_l+48);//'0'=48</p><p><b> }</b></p><p><b> }</b></p><p> void date_init(void)//diaplay date:</p><p><b> {</b>
85、</p><p><b> uchar i;</b></p><p> lcd_pos(0x00);</p><p> for(i=0; i<15; i++)</p><p><b> {</b></p><p> lcd_wdat(initdisp[i])
86、;</p><p><b> }</b></p><p> lcd_pos(0x40);</p><p> for(i=16; i<29; i++)</p><p><b> {</b></p><p> lcd_wdat(initdisp[i]);&l
87、t;/p><p><b> }</b></p><p><b> } </b></p><p><b> 主函數</b></p><p> void main(void)</p><p><b> { </b></p&
88、gt;<p> *(ds_addr+10)=0x20;</p><p> *(ds_addr+11)=0x22;</p><p> lcd_init();</p><p> date_init();</p><p><b> while(1)</b></p><p><
89、;b> {</b></p><p> data_pro();//datapro();</p><p> data_hl();</p><p><b> key();</b></p><p><b> }</b></p><p><
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- c51單片機lcd電子時鐘課程設計
- 課程設計---基于單片機51的電子時鐘設計
- 單片機課程設計-- 基于51單片機的電子時鐘系統
- 單片機應用電子時鐘課程設計
- 基于單片機at89c51的電子時鐘的課程設計
- c51單片機課程設計
- 單片機課程設計-單片機課程設計---電子時鐘
- 單片機課程設計_基于89c51的數字電子時鐘的設計
- 51單片機電子時鐘課程設計
- c51單片機課程設計
- 基于89c51單片機電子時鐘課程設計
- 電子時鐘單片機課程設計
- 單片機課程設計---電子時鐘
- 基于c51單片機的多功能電子時鐘設計完美實現版
- 單片機課程設計——電子時鐘
- 單片機課程設計——電子時鐘
- 基于51單片機的電子時鐘設計
- 單片機課程設計--電子時鐘
- 單片機課程設計-電子時鐘
- 單片機課程設計--電子時鐘
評論
0/150
提交評論