版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> ** 學(xué) 院</b></p><p> 課 程 設(shè) 計(jì) 報(bào) 告 </p><p> 課程名稱 單片機(jī)原理與應(yīng)用 </p><p> 設(shè)計(jì)題目 基于STC單片機(jī)的實(shí)驗(yàn)板開發(fā)與設(shè)計(jì) </p><p> 專 業(yè)
2、 ** </p><p> 班 級(jí) * </p><p> 學(xué) 號(hào) ** </p><p> 姓 名 * <
3、;/p><p> 完成日期 2** </p><p> 基于STC單片機(jī)的實(shí)驗(yàn)系統(tǒng)開發(fā)與設(shè)計(jì)</p><p><b> 摘 要</b></p><p> STC89C52是STC公司生產(chǎn)的一種低功耗、高性能CMOS8位微控制器,具有8K在系統(tǒng)可編程Flash存儲(chǔ)器。
4、STC89C52使用經(jīng)典的MCS-51內(nèi)核,但做了很多的改進(jìn)使得芯片具有傳統(tǒng)51單片機(jī)不具備的功能。在單芯片上,擁有靈巧的8位CPU和在系統(tǒng)可編程Flash,使得STC89C52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。具有以下標(biāo)準(zhǔn)功能:8k字節(jié)Flash,512字節(jié)RAM,32位I/O口線,看門狗定時(shí)器,內(nèi)置4KBEEPROM,MAX810復(fù)位電路,3個(gè)16位定時(shí)器/計(jì)數(shù)器,4個(gè)外部中斷,一個(gè)7向量4級(jí)中斷結(jié)構(gòu)(兼容傳統(tǒng)5
5、1的5向量2級(jí)中斷結(jié)構(gòu)),全雙共串口。另外STC89C52可降至0Hz靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU停止工作,允許RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。最高運(yùn)作頻率35MHz,6T/12T可選。</p><p> 利用STC89C52單片機(jī)作為微控制器開發(fā)一套軟、硬件相結(jié)合的單片
6、機(jī)實(shí)驗(yàn)平臺(tái),在KeilC環(huán)境下進(jìn)行軟件設(shè)計(jì),主要包括流水燈、數(shù)碼管顯示以及LCD顯示模塊,在Protues中仿真成功,下載到電路板中驗(yàn)證成功。實(shí)現(xiàn)流水燈的跳轉(zhuǎn)顯示流動(dòng),應(yīng)用中斷實(shí)現(xiàn)數(shù)碼管60之內(nèi)計(jì)數(shù)以及LCD顯示不同字符的功能。</p><p> 關(guān)鍵詞: STC單片機(jī),實(shí)驗(yàn)板,數(shù)碼管,流水燈,串行通信</p><p> Experiment Platform Development
7、Design Based on</p><p> STC Microcontroller</p><p><b> ABSTRACT</b></p><p> The STC89C52 is a low power,high performance CMOS8
8、;produced STC,with 8K in system programmable Flash memory.STC89C52 sing classic MCS-51 kernel,but made a lot of improvements make-the
9、160;chip with raditional 51 SCM features not available.In asingle chip,with 8 CPU dexterous and in-system programmable Flash,the STC89C
10、52 offers solutions for high flexibility, super efficient for many embedded control applications. Has the standard features: 8K by
11、tes of Flash, 512 bytes of RAM,32 I/O lines,the watchdo</p><p> KEYWORDS: STC microcontroller, Experimental plate, Digital tube, Running light, Serial communicat
12、ion </p><p><b> 目 錄</b></p><p><b> 前 言1</b></p><p> 第1章實(shí)驗(yàn)系統(tǒng)概述2</p><p> 1.1設(shè)計(jì)題目2</p><p> 1.2系統(tǒng)設(shè)計(jì)目的和內(nèi)容2</p><p
13、> 1.2.1設(shè)計(jì)目的2</p><p> 1.2.2設(shè)計(jì)內(nèi)容2</p><p> 1.2.3設(shè)計(jì)要求2</p><p> 1.2.4設(shè)計(jì)步驟2</p><p> 第2章整體設(shè)計(jì)方案3</p><p> 2.1開發(fā)板整體外觀3</p><p> 2.2
14、整板電路PROTUES仿真電路4</p><p> 2.3軟件功能描述4</p><p> 2.4仿真軟件PROTUES中的效果圖5</p><p> 第3章硬件電路設(shè)計(jì)6</p><p> 3.1兩位一體共陰數(shù)碼管6</p><p> 3.1.1數(shù)碼管概述6</p>&l
15、t;p> 3.1.2數(shù)碼管內(nèi)部結(jié)構(gòu)7</p><p> 3.1.3兩位一體共陰數(shù)碼管和74LS373鎖存器接口電路9</p><p> 3.2LCD1602液晶9</p><p> 3.2.1LCD1602液晶簡(jiǎn)介9</p><p> 3.2.2LCD1602液晶引腳介紹10</p><
16、p> 3.2.3LCD1602液晶外圍接口電路10</p><p> 3.3 串口通信11</p><p> 3.3.1串口通訊概述11</p><p> 3.3.2MAX232接口電路11</p><p> 第4章軟件設(shè)計(jì)12</p><p> 4.1程序整體流程圖12</
17、p><p> 4.2程序清單13</p><p> 第5章調(diào)試及故障分析18</p><p> 5.1 焊接準(zhǔn)備階段元器件測(cè)試、電路原理圖故障分析18</p><p> 5.2 電路焊接過程中的故障分析18</p><p> 5.3 程序編寫過程中的故障分析18</p><p>
18、; 5.4 實(shí)物演示效果19</p><p><b> 結(jié)論21</b></p><p><b> 謝辭22</b></p><p><b> 參考文獻(xiàn)23</b></p><p><b> 附 錄24</b></p>&
19、lt;p><b> 前 言</b></p><p> 市場(chǎng)上現(xiàn)存的單片機(jī)開發(fā)板很多,因此,要求設(shè)計(jì)盡量能夠達(dá)到資源豐富、易用性好、設(shè)計(jì)美觀等特點(diǎn)。而STC89C52是STC公司生產(chǎn)的一種低功耗、高性能CMOS8位微控制器,具有8K在系統(tǒng)可編程Flash存儲(chǔ)器。STC89C52使用經(jīng)典的MCS-51內(nèi)核,但做了很多的改進(jìn)使得芯片具有傳統(tǒng)51單片機(jī)不具備的功能。在單芯片上,擁有靈巧的8
20、位CPU和在系統(tǒng)可編程Flash,使得STC89C52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。1976年,Intel公司推出MCS-48系列單片機(jī),以體積小、功能全、低格低等優(yōu)點(diǎn),得到廣泛的應(yīng)用,成為單片機(jī)發(fā)展過程中的一片重要標(biāo)志。單片機(jī)系列及單片機(jī)應(yīng)用技術(shù)迅速發(fā)展?! ∧壳盀橹梗澜绺鞯貜S商已經(jīng)相繼研制出大約50個(gè)系列300多個(gè)品種的單片機(jī)產(chǎn)品。所以單片機(jī)應(yīng)用領(lǐng)域不斷擴(kuò)大,除了在工業(yè)行貨控制、能儀器儀表、信設(shè)備、家用電
21、器等領(lǐng)域都得到了應(yīng)用。而且未來的智能化世界里,單片機(jī)將更加發(fā)揮的重大作用。 自單片機(jī)問世情迷,經(jīng)過30多年的發(fā)展,已從最初的4位發(fā)展到32位機(jī),同時(shí)體積更小,集成度更高 ,功能更強(qiáng)大。如今,單片機(jī)正朝多功能、多選擇、高速度</p><p> ?。ǎ保└呒啥取纹瑱C(jī)儒將各種功能的I/O口和一些典型的外圍電路集成在芯片內(nèi),使其功能更加強(qiáng)大。</p><p> (2)高性能
22、。單片機(jī)從單CPU向多CPU方向發(fā)展,因而有了并行處理的能力。它的運(yùn)算速度和執(zhí)行效率會(huì)有很大提高。</p><p> ?。ǎ常┑凸摹D壳笆袌?chǎng)上有二分之一的單片機(jī)產(chǎn)品已CHMOS化,這類單片機(jī)具有功耗小的優(yōu)點(diǎn)。</p><p> ?。ǎ矗└咝詢r(jià)比。隨著單片機(jī)的應(yīng)用越來越廣泛,各單片機(jī)廠家公進(jìn)一步改進(jìn)單片機(jī)的性能,從而增強(qiáng)產(chǎn)品的競(jìng)爭(zhēng)力。</p><p><b&g
23、t; 實(shí)驗(yàn)系統(tǒng)概述</b></p><p><b> 設(shè)計(jì)題目</b></p><p> 基于STC單片機(jī)的實(shí)驗(yàn)平臺(tái)開發(fā)設(shè)計(jì)</p><p><b> 系統(tǒng)設(shè)計(jì)目的和內(nèi)容</b></p><p><b> 設(shè)計(jì)目的</b></p><p
24、> 利用STC89C52作為微控制器開發(fā)一套軟、硬件相結(jié)合的單片機(jī)實(shí)驗(yàn)平臺(tái)。實(shí)現(xiàn)對(duì)數(shù)碼管、LCD顯示器、流水燈的操作,鍛煉學(xué)生的設(shè)計(jì)思維和動(dòng)手能力,使其具備獨(dú)立完成設(shè)計(jì)的能力,也讓學(xué)生更好的了解課本內(nèi)容。</p><p><b> 設(shè)計(jì)內(nèi)容</b></p><p> (a)電路原理圖設(shè)計(jì),主要包括集LCD顯示模塊、串口通信模塊、數(shù)碼管顯示模塊、LED發(fā)光二
25、極管、鍵盤等接口電路的設(shè)計(jì);(b)學(xué)習(xí)集成電路等芯片的焊接方法與技巧,進(jìn)行實(shí)際元器件的識(shí)別,進(jìn)行電路板焊接;(c)在Keil C環(huán)境下,進(jìn)行軟件設(shè)計(jì)。主要包括流水燈、計(jì)數(shù)器、定時(shí)器、LCD字符顯示、鍵盤的控制等功能程序設(shè)計(jì);(d)針對(duì)所開發(fā)的實(shí)驗(yàn)板,結(jié)合器件選擇、原理圖設(shè)計(jì)、硬件焊接、軟件編程調(diào)試、軟硬件聯(lián)調(diào)等方面寫出課程設(shè)計(jì)報(bào)告。</p><p><b> 設(shè)計(jì)要求</b>
26、;</p><p> ?。╝)完成綜合實(shí)驗(yàn)平臺(tái)的電路結(jié)構(gòu)分析,進(jìn)行模塊分解,掌握各部分電路的工作原理;(b)獨(dú)立完成電路板的焊接,掌握故障排除方法,完成實(shí)驗(yàn)平臺(tái)的硬件設(shè)計(jì)及開發(fā);(c)結(jié)合Keil C軟件在焊接無誤的單片機(jī)實(shí)驗(yàn)平臺(tái)上開發(fā)出流水燈、LCD顯示模塊,通信模塊等程序設(shè)計(jì);(d)按照要求撰寫課程設(shè)計(jì)論文。</p><p><b> 設(shè)計(jì)步驟</b&
27、gt;</p><p> 1.學(xué)習(xí)紙質(zhì)的模擬電路圖,弄清楚各個(gè)元件的工作原理;2.Proteus軟件仿真電路圖的繪制;3.根據(jù)模擬電路圖開發(fā)板上設(shè)計(jì)走線,和焊接;4.編寫的各模塊程序經(jīng)調(diào)試無誤后,下載到單片機(jī)中,查看實(shí)際運(yùn)行效果;5.根據(jù)課程設(shè)計(jì)要求寫出設(shè)計(jì)報(bào)告。</p><p><b> 整體設(shè)計(jì)方案</b></p><p>&l
28、t;b> 開發(fā)板整體外觀</b></p><p> 圖2.1.1開發(fā)板正面圖</p><p> 圖2.1.2 開發(fā)板背面圖</p><p> 整板電路PROTUES仿真電路</p><p> 圖2.2.1 仿真原理圖</p><p><b> 軟件功能描述</b>&l
29、t;/p><p> 隨著科技的發(fā)展,“計(jì)算機(jī)仿真技術(shù)”已成為許多設(shè)計(jì)部門重要的前期設(shè)計(jì)手段。它具有設(shè)計(jì)靈活,結(jié)果、過程的統(tǒng)一的特點(diǎn)??墒乖O(shè)計(jì)時(shí)間大為縮短、耗資大為減少,也可降低工程制造的風(fēng)險(xiǎn)。相信在單片機(jī)開發(fā)應(yīng)用中PROTEUS也能茯得愈來愈廣泛的應(yīng)用。使用Proteus 軟件進(jìn)行單片機(jī)系統(tǒng)仿真設(shè)計(jì),是虛擬仿真技術(shù)和計(jì)算機(jī)多媒體技術(shù)相結(jié)合的綜合運(yùn)用,有利于培養(yǎng)學(xué)生的電路設(shè)計(jì)能力及仿真軟件的操作能力;在單片
30、機(jī)課程設(shè)計(jì)和全國(guó)大學(xué)生電子設(shè)計(jì)競(jìng)賽中,我們使用 Proteus 開發(fā)環(huán)境對(duì)學(xué)生進(jìn)行培訓(xùn),在不需要硬件投入的條件下,學(xué)生普遍反映,對(duì)單片機(jī)的學(xué)習(xí)比單純學(xué)習(xí)書本知識(shí)更容易接受,更容易提高。實(shí)踐證明,在使用 Proteus 進(jìn)行系統(tǒng)仿真開發(fā)成功之后再進(jìn)行實(shí)際制作,能極大提高單片機(jī)系統(tǒng)設(shè)計(jì)效率。因此,Proteus 有較高的推廣利用價(jià)值。目前Proteus的最新版為8.0,ARM co
31、rtex處理器被增加,在7.10中已經(jīng)增加DSP系列(TMS320)。</p><p> Keil C51 C51工具包的整體結(jié)構(gòu),如圖(1)所示,其中uVision與Ishell分別是C51 for Windows和for Dos的集成開發(fā)環(huán)境(IDE),可以完成編輯、編譯、連接、調(diào)試、仿真等整個(gè)開發(fā)流程。開發(fā)人員可用IDE本身或其它編輯器編輯C或匯編源文件。然后分別由C
32、51及A51編譯器編譯生成目標(biāo)文件(.OBJ)。目標(biāo)文件可由LIB51創(chuàng)建生成庫(kù)文件,也可以與庫(kù)文件一起經(jīng)L51連接定位生成絕對(duì)目標(biāo)文件(.ABS)。ABS文件由OH51轉(zhuǎn)換成標(biāo)準(zhǔn)的Hex文件,以供調(diào)試器dScope51或tScope51使用進(jìn)行源代碼級(jí)調(diào)試,也可由仿真器使用直接對(duì)目標(biāo)板進(jìn)行調(diào)試,也可以直接寫入程序存貯器如EPROM中?! ∈褂锚?dú)立的Keil仿真器時(shí),注意事項(xiàng) * 仿真器標(biāo)配11.0592MHz的晶振,但
33、用戶可以在仿真器上的晶振插孔中換插其他頻率的晶振。 * 仿真器上的復(fù)位按鈕只復(fù)位仿真芯片,不復(fù)位目標(biāo)系統(tǒng)。 * 仿真芯片的31腳(/EA)已接至高電平,所以仿真時(shí)只能使用片內(nèi)ROM,不能使用片外ROM;但仿真器外引插針中的31腳并不與仿真芯片的31腳相連,故該</p><p> 仿真軟件PROTUES中的效果圖 </p><p>
34、 圖2.4.1 仿真效果圖</p><p> 圖2.4.2 仿真效果圖</p><p><b> 硬件電路設(shè)計(jì)</b></p><p> 3.1兩位一體共陰數(shù)碼管</p><p><b> 數(shù)碼管概述</b></p><p> 數(shù)碼管是一種半導(dǎo)體發(fā)光器件,其基本單元
35、是發(fā)光二極管。數(shù)碼管按段數(shù)分為七段數(shù)碼管和八段數(shù)碼管,按發(fā)光二極管單元連接方式分為共陽極數(shù)碼管和共陰極數(shù)碼管。而共陰數(shù)碼管是指將所有發(fā)光二極管的陰極接到一起形成公共陰極(COM)的數(shù)碼管,共陰數(shù)碼管在應(yīng)用時(shí)應(yīng)將公共極COM接到地線GND上,當(dāng)某一字段發(fā)光二極管的陽極為高電平時(shí),相應(yīng)字段就點(diǎn)亮,當(dāng)某一字段的陽極為低電平時(shí),相應(yīng)字段就不亮。同時(shí)數(shù)碼管要正常顯示,就要用驅(qū)動(dòng)電路來驅(qū)動(dòng)數(shù)碼管的各個(gè)段碼,從而顯示出我們要的數(shù)字。</p>
36、;<p><b> 數(shù)碼管內(nèi)部結(jié)構(gòu)</b></p><p> 圖3.1.1 數(shù)碼管內(nèi)部結(jié)構(gòu)</p><p> 表3.1.1 共陽極數(shù)碼管字母表</p><p> 表3.1.2 共陰極數(shù)碼管字母表</p><p> 圖3.1.3 LED數(shù)碼管引腳定義 </p><p> l
37、ed數(shù)碼管(LED Segment Displays)是由多個(gè)發(fā)光二極管封裝在一起組成“8”字型的器件,引線已在內(nèi)部連接完成,只需引出它們的各個(gè)筆劃,公共電極。led數(shù)碼管常用段數(shù)一般為7段有的另加一個(gè)小數(shù)點(diǎn),還有一種是類似于3位“+1”型。位數(shù)有半位,1,2,3,4,5,6,8,10位等等,led數(shù)碼管根據(jù)LED的接法不同分為共陰和共陽兩類,了解LED的這些特性,對(duì)編程是很重要的,因?yàn)椴煌愋偷臄?shù)碼管,除了它們的硬
38、件電路有差異外,編程方法也是不同的。圖2是共陰和共陽極數(shù)碼管的內(nèi)部電路,它們的發(fā)光原理是一樣的,只是它們的電源極性不同而已。顏色有紅,綠,藍(lán),黃等幾種。led數(shù)碼管廣泛用于儀表,時(shí)鐘,車站,家電等場(chǎng)合。選用時(shí)要注意產(chǎn)品尺寸顏色,功耗,亮度,波長(zhǎng)等。下面將介紹常用LED數(shù)碼管內(nèi)部引腳圖片。</p><p> LED數(shù)碼管通過7個(gè)發(fā)光二極管亮暗的不同組合可以顯示各種數(shù)字,另外一個(gè)圓的型發(fā)光二級(jí)管顯示小數(shù)點(diǎn)。只要為L(zhǎng)
39、ED數(shù)碼管提供了段碼就可以顯示不同的符號(hào)和數(shù)字。LED數(shù)碼管共計(jì)8段。正好是一個(gè)字節(jié)。習(xí)慣上是以“a”段對(duì)應(yīng)段碼字節(jié)的最低位。各段與字節(jié)中各位對(duì)應(yīng)關(guān)系如表3所示。</p><p> 表3.1.3 段碼與字節(jié)中各位對(duì)應(yīng)關(guān)系</p><p> 按照表3-1中的格式,顯示各種字符的8段LED數(shù)碼管的段碼如表4所示(以共陰極為例)。</p><p> 表3.1.4 數(shù)
40、碼管段碼 </p><p> 兩位一體共陰數(shù)碼管和74LS373鎖存器接口電路</p><p> 圖3.1.4 兩位一體共陰數(shù)碼管和74LS373鎖存器接口電路</p><p><b> LCD1602液晶</b></p><p> LCD1602液晶簡(jiǎn)介</p><p> 工業(yè)字符型
41、液晶,能夠同時(shí)顯示16x02即32個(gè)字符。(16列2行)1602液晶也叫1602字符型液晶,它是一種專門用來顯示字母、數(shù)字、符號(hào)等的點(diǎn)陣型液晶模塊。它由若干個(gè)5X7或者5X11等點(diǎn)陣字符位組成,每個(gè)點(diǎn)陣字符位都可以顯示一個(gè)字符,每位之間有一個(gè)點(diǎn)距的間隔,每行之間也有間隔,起到了字符間距和行間距的作用,正因?yàn)槿绱怂运荒芎芎玫仫@示圖形(用自定義CGRAM,顯示效果也不好)。1602LCD是指顯示的內(nèi)容為16X2,即可以顯示兩行,每行
42、16個(gè)字符液晶模塊(顯示字符和數(shù)字)。其特性:(a)3.3V或5V工作電壓,對(duì)比度可調(diào)(b)內(nèi)含復(fù)位電路(c)提供各種控制命令,如:清屏、字符閃爍、光標(biāo)閃爍、顯示移位等多種功能(d)有80字節(jié)顯示數(shù)據(jù)存儲(chǔ)器DDRAM(e)內(nèi)建有192個(gè)5X7點(diǎn)陣的字型的字符發(fā)生器CGROM(f)8個(gè)可由用戶自定義的5X7的字符發(fā)生器CGRAM</p><p> LCD1602液晶引腳介紹</p>&l
43、t;p> 圖2.2.1 LCD1602液晶引腳圖</p><p> 第1腳:VSS為電源地第2腳:VCC接5V電源正極第3腳:V0為液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地電源時(shí)對(duì) 比度最高(對(duì)比度過高時(shí)會(huì) 產(chǎn)生“鬼影”,使用時(shí)可以通過一個(gè)10K的電位器調(diào)整對(duì)比度)。第4腳:RS為寄存器選擇,高電平1時(shí)選擇數(shù)據(jù)寄存器、低電平0時(shí)選擇指令寄存器。第5腳:RW為
44、讀寫信號(hào)線,高電平(1)時(shí)進(jìn)行讀操作,低電平(0)時(shí)進(jìn)行寫操作。第6腳:E(或EN)端為使能(enable)端。第7~14腳:D0~D7為8位雙向數(shù)據(jù)端。 第15~16腳:空腳或背燈電源。15腳背光正極,16腳背光負(fù)極。</p><p> 表2.2.1 讀寫操作選擇</p><p> LCD1602液晶外圍接口電路 </p><p> 圖2.2.2 LC
45、D1602液晶外圍接口</p><p><b> 3.3 串口通信</b></p><p><b> 串口通訊概述</b></p><p> 串行通信是指計(jì)算機(jī)主機(jī)與外設(shè)之間以及主機(jī)系統(tǒng)與主機(jī)系統(tǒng)之間數(shù)據(jù)的串行傳送。使用一條數(shù)據(jù)線,將數(shù)據(jù)一位一位地依次傳輸,每一位數(shù)據(jù)占據(jù)一個(gè)固定的時(shí)間長(zhǎng)度。其只需要少數(shù)幾條線就可以在
46、系統(tǒng)間交換信息,特別適用于計(jì)算機(jī)與計(jì)算機(jī)、計(jì)算機(jī)與外設(shè)之間的遠(yuǎn)距離通信。如圖9所示:</p><p> 圖3.3.1 串口通信</p><p> 串口通信時(shí),發(fā)送和接收到的每一個(gè)字符實(shí)際上都是一次一位的傳送的,每一位為1或者為0。串行通信按信息的格式可分為異步通信和同步通信兩種方式;根據(jù)信息傳送的方向,串行通信可以分為單工、半雙工和全雙工3種,如圖10所示。</p>&
47、lt;p> 圖3.3.2 串行通信的3種傳輸形式</p><p> 同步通信是一種連續(xù)串行傳送數(shù)據(jù)的通信方式,一次通信只傳送一幀信息。異步通信中,在異步通信中有兩個(gè)比較重要的指標(biāo):字符幀格式和波特率。數(shù)據(jù)通常以字符或者字節(jié)為單位組成字符幀傳送。字符幀由發(fā)送端逐幀發(fā)送,通過傳輸線被接收設(shè)備逐幀接收。發(fā)送端和接收端可以由各自的時(shí)鐘來控制數(shù)據(jù)的發(fā)送和接收,這兩個(gè)時(shí)鐘源彼此獨(dú)立,互不同步。</p>
48、<p> MAX232接口電路</p><p> 圖3.3.3 MAX232接口電路</p><p><b> 軟件設(shè)計(jì)</b></p><p> 4.1程序整體流程圖</p><p><b> 4.2程序清單 </b></p><p> #inclu
49、de <reg52.h></p><p> #include <intrins.h></p><p> #define uchar unsigned char</p><p> #define uint unsigned int</p><p> uchar code table[]={0x3f,0x06,0x
50、5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};</p><p> uchar temp;</p><p> uint count=0,ff=0,aa=0;</p><p> uint j,flag;</p><p> sbit RS=P1^6;</p><p> sbit RW
51、=P1^7;</p><p> sbit E=P1^5;</p><p> sbit P32=P3^2;</p><p> sbit P33=P3^3;</p><p> sbit P34=P3^4;</p><p> sbit P35=P3^5;</p><p> void ini
52、t();</p><p> void writestr(char *str);</p><p> void writechar(uchar ch);</p><p> void write_com(uchar cmd);</p><p> void delay(uchar z);</p><p> void
53、main()</p><p><b> {</b></p><p><b> w=0;</b></p><p> P0=table[0];</p><p> TMOD=0x16;</p><p> TH1=(65536-50000)/256;</p>
54、<p> TL1=(65536-50000)%256;</p><p> TH0=TL0=0xff;</p><p><b> EA=1;</b></p><p> EX0=1;//外部中斷0</p><p><b> IT0=1;</b></p><p&g
55、t; EX1=1;//外部中斷1</p><p><b> IT1=1;</b></p><p><b> PX1=1;</b></p><p><b> PT0=1;</b></p><p> ET0=1;//定時(shí)0</p><p>&l
56、t;b> TR0=1;</b></p><p> ET1=1; //啟動(dòng)定時(shí)1</p><p><b> while(1)</b></p><p><b> {</b></p><p> if(P35==0)</p><p><b&g
57、t; TR1=1;</b></p><p><b> if(flag)</b></p><p><b> {</b></p><p><b> flag=0;</b></p><p><b> aa++;</b></p>
58、<p> if(aa==60)</p><p><b> aa=0;</b></p><p><b> w=0;</b></p><p> P0=table[aa/10];</p><p><b> E=1;</b></p><p>
59、; P2=0x00;</p><p> P0=table[aa%10];</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> void led() inte
60、rrupt 0</p><p><b> {</b></p><p> //uint j;</p><p> //uchar temp;</p><p><b> while(1)</b></p><p><b> {</b></p&
61、gt;<p> temp=0xfe; </p><p> for(j=0;j<=7;j++)</p><p><b> {</b></p><p> P2=temp; </p><p> delay(100); </p>&l
62、t;p> temp=_crol_(temp,1);</p><p><b> }</b></p><p> if((P34==0)||(P35==0)) break;</p><p> temp=0x7f;</p><p> for(j=0;j<=7;j++)</p><p>
63、;<b> {</b></p><p><b> P2=temp;</b></p><p> delay(100);</p><p> temp=cror_(temp,1); </p><p><b> }</b></p><p> if(
64、(P34==0)||(P35==0)) break;</p><p><b> }</b></p><p><b> }</b></p><p> void lcd() interrupt 2</p><p><b> {</b></p><p>
65、;<b> init();</b></p><p> write_com(0x80);</p><p> writestr("******");</p><p> write_com(0xc0);</p><p> writestr("****2");</p>
66、<p> delay(100);</p><p> write_com(0x01);</p><p> write_com(0x80);</p><p> writestr("*********");</p><p> write_com(0xc0);</p><p> w
67、ritestr("******3");</p><p> delay(100);</p><p> write_com(0x01);</p><p> write_com(0x80);</p><p> writestr(" ***");</p><p> write
68、_com(0xc0);</p><p> writestr(" **1**5");</p><p> delay(100);</p><p> write_com(0x01);</p><p><b> }</b></p><p> void sum() interr
69、upt 1</p><p><b> {</b></p><p><b> TR1=0;</b></p><p><b> P2=0x00;</b></p><p> if(P34==0)</p><p><b> count++;&
70、lt;/b></p><p> if(count==100)</p><p><b> count=0;</b></p><p><b> E=0;</b></p><p> P0=table[count/10];</p><p><b> E=1;
71、</b></p><p><b> P2=0x00;</b></p><p> P0=table[count%10];</p><p><b> }</b></p><p> void dingshi() interrupt 3</p><p><b
72、> {</b></p><p> TH1=(65536-50000)/256;</p><p> TL1=(65536-50000)%256;</p><p><b> ff++;</b></p><p> if(ff==20)</p><p><b> {
73、</b></p><p><b> ff=0;</b></p><p><b> flag=1;</b></p><p><b> }</b></p><p><b> }</b></p><p> vo
74、id delay(uchar z)</p><p><b> {</b></p><p> uchar i,j;</p><p> for(i=z;i>0;i++)</p><p> for(j=110;j>0;j++);</p><p><b> }</b&
75、gt;</p><p><b> /*</b></p><p> bit LCD_Busy() </p><p><b> {</b></p><p> bit result;</p><p><b> RS=0;</b></p>
76、<p><b> RW=1;</b></p><p><b> P2=0x40;</b></p><p><b> E=1;</b></p><p><b> delay(1);</b></p><p> result=(bit)(P
77、0&0x80);</p><p><b> E=0;</b></p><p> return(result);</p><p><b> }</b></p><p><b> */</b></p><p> void write_c
78、om(uchar cmd)</p><p><b> {</b></p><p> //while(LCD_Busy());</p><p><b> RS=0;</b></p><p><b> RW=0;</b></p><p><b
79、> P2=0x40;</b></p><p><b> P0=cmd;</b></p><p><b> //E=0;</b></p><p> //delay(1);</p><p><b> E=1;</b></p><p
80、><b> delay(1);</b></p><p><b> E=0;</b></p><p><b> }</b></p><p> void write_dat(uchar dat)</p><p><b> {</b></p
81、><p> //while(LCD_Busy());</p><p><b> RS=1;</b></p><p><b> RW=0;</b></p><p><b> P2=0x40;</b></p><p><b> P0=dat
82、;</b></p><p><b> //E=0;</b></p><p> //delay(1);</p><p><b> E=1;</b></p><p><b> delay(1);</b></p><p><b&g
83、t; E=0;</b></p><p><b> }</b></p><p> void init()</p><p><b> { </b></p><p> write_com(0x38); //設(shè)置</p><p> write_
84、com(0x02); //光標(biāo)復(fù)位到地址原點(diǎn)</p><p> write_com(0x0c); //開顯示,顯示光標(biāo),光標(biāo)閃爍</p><p> write_com(0x01); //清屏</p><p> write_com(0x06); //地址加1,當(dāng)寫入數(shù)據(jù)時(shí)光標(biāo)右移</p><p><b> }</
85、b></p><p> void writestr(char *str)</p><p><b> {</b></p><p> uchar len = 0;</p><p> uchar i = 0;</p><p> len = strlen(str);</p>
86、<p> for(i = 0; i<len; i++)</p><p><b> {</b></p><p> write_dat(str[i]);</p><p><b> }</b></p><p><b> }</b></p>&
87、lt;p> void writechar(uchar ch)</p><p><b> {</b></p><p> write_dat(ch);</p><p><b> }</b></p><p><b> 調(diào)試及故障分析</b></p>&l
88、t;p> 5.1 焊接準(zhǔn)備階段元器件測(cè)試、電路原理圖故障分析</p><p> 1.檢測(cè)各器件是否完好,包括二極管、數(shù)碼管、單片機(jī)、LED、電容等 2.將一定值的器件擺放在應(yīng)在的位置 3.按照所給的電路圖正確焊接 4.利用萬用表進(jìn)行測(cè)試,找到短路、短路的地方進(jìn)行修改</p><p> 5.2 電路焊接過程中的故障分析</p><p&g
89、t; 1.焊接過程中焊接不完善,導(dǎo)致斷路,不能導(dǎo)通 2.電容、LED正負(fù)極接反,導(dǎo)致燈不會(huì)亮,也影響整體電路 3.芯片插槽接反,將導(dǎo)致整體電路不能執(zhí)行功能 4.焊接過程中造成短路,將導(dǎo)致整體電路不能執(zhí)行功能 5.將電阻排接反,也不能得到預(yù)期的效果</p><p> 5.3 程序編寫過程中的故障分析</p><p> 在編寫程序的時(shí)候,總會(huì)出現(xiàn)一些這樣那
90、樣的錯(cuò)誤,例如:在編寫完成后,不能完成預(yù)期的功能,那么就需要對(duì)其進(jìn)一步的修改直到可以實(shí)現(xiàn)功能為止,完成后,流水燈不會(huì)亮,經(jīng)過檢查后,原來是設(shè)置值的時(shí)候沒有設(shè)置對(duì)。</p><p> 5.4 實(shí)物演示效果</p><p><b> 圖1 整體演示效果</b></p><p> 圖2 流水燈效果展示</p><p>
91、 圖3 液晶顯示效果圖</p><p> 圖4 數(shù)碼管效果顯示</p><p><b> 結(jié)論</b></p><p> 經(jīng)過了一個(gè)學(xué)期的單片機(jī)的學(xué)習(xí),我們的課程設(shè)計(jì)在本周來開帷幕。我們的 </p><p><b> 謝辭</b></p><p> 本次實(shí)習(xí)是在**
92、老師指導(dǎo)下完成的。感謝老師能百忙之中抽出時(shí)間給我們指導(dǎo)這次的課程設(shè)計(jì)。我們有疑惑時(shí)老師給我們解答,有困難給我們解決,并且細(xì)心地給我們講解這次設(shè)計(jì)的原理,讓我們了解到了單片機(jī)的真正魅力。</p><p><b> 參考文獻(xiàn)</b></p><p> 李蒙,毛建東. 單片機(jī)原理及應(yīng)用[M]. 北京:中國(guó)輕工業(yè)出版社, 2010</p><p>
93、 唐繼賢.51單片機(jī)工程應(yīng)用實(shí)例.北京航天航空大學(xué)出版社,2009.1</p><p> 李勛.單片機(jī)使用教程.北京航天航空大學(xué)出版社,2000</p><p> 譚浩強(qiáng). C程序設(shè)計(jì)(第三版).清華大學(xué)出版社. 2005</p><p> 林立 張俊亮編 單片機(jī)原理及應(yīng)用 北京:電子工業(yè)出版社 2
94、012</p><p> 馬忠梅.單片機(jī)的C語言應(yīng)用程序設(shè)計(jì).北京航天航空大學(xué)出版社,1999</p><p><b> 附 錄 </b></p><p><b> 表1 元器件清單</b></p><p><b> 圖1 原理圖1</b></p>&l
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機(jī)課程設(shè)計(jì)---stc51系列單片機(jī)的實(shí)驗(yàn)平臺(tái)開發(fā)設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)報(bào)告--基于stc89c52單片機(jī)的實(shí)驗(yàn)平臺(tái)開發(fā)設(shè)計(jì)
- 單片機(jī)原理與應(yīng)用課程設(shè)計(jì)---stc51系列單片機(jī)的實(shí)驗(yàn)平臺(tái)開發(fā)設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)報(bào)告--基于stc89c52單片機(jī)的實(shí)驗(yàn)平臺(tái)開發(fā)設(shè)計(jì)
- 基于單片機(jī)的秒表設(shè)計(jì)單片機(jī)課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)報(bào)告--單片機(jī)學(xué)習(xí)板的設(shè)計(jì)與制作
- 單片機(jī)課程設(shè)計(jì)--基于單片機(jī)的數(shù)字時(shí)鐘設(shè)計(jì)
- 課程設(shè)計(jì)-單片機(jī)基于單片機(jī)的數(shù)字時(shí)鐘設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--基于stc90c51單片機(jī)的電子跑表
- 單片機(jī)課程設(shè)計(jì)--基于單片機(jī)的秒表系統(tǒng)設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--單片機(jī)串行通訊
- 單片機(jī)秒表單片機(jī)課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---基于單片機(jī)溫度測(cè)量系統(tǒng)設(shè)計(jì)
- 51單片機(jī)課程設(shè)計(jì)--基于51單片機(jī)開發(fā)系統(tǒng)的pcb電路板
- 單片機(jī)課程設(shè)計(jì)-基于單片機(jī)的數(shù)字秒表的設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---單片機(jī)數(shù)字時(shí)鐘
- 單片機(jī)課程設(shè)計(jì)-單片機(jī)課程設(shè)計(jì)---電子時(shí)鐘
- 單片機(jī)課程設(shè)計(jì)--基于單片機(jī)的交通燈設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---基于單片機(jī)的電子琴設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--基于51單片機(jī)的定時(shí)鬧鐘設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論