單片機課程設計--花樣流水燈設計_第1頁
已閱讀1頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p><b>  課程設計任務書</b></p><p>  題 目: 花樣流水燈設計 </p><p>  主要內容、基本要求、主要參考資料等:</p><p><b>  主要內容:</b></p><p>  利用單片機控制16個發(fā)

2、光二極管模擬的彩燈按照一定的規(guī)律點亮、熄滅、閃爍。</p><p><b>  基本要求:</b></p><p>  1.實現(xiàn)發(fā)光二極管的多樣化顯示;</p><p>  2.利用proteus軟件完成設計電路和仿真;</p><p>  3.掌握相關芯片和電子元件的使用方法;</p><p>

3、  4.通過此次設計將單片機軟硬件結合起來對程序進行編輯、校驗,鍛煉實踐能力和理論聯(lián)系實際的能力。</p><p><b>  主要參考資料:</b></p><p>  [1]李全利,單片機原理及接口技術[M],高等教育出版社</p><p>  [2]王文杰,單片機應用技術[M],冶金工業(yè)出版社</p><p>  

4、[3]朱清慧,PROTEUS教程——電子線路設計、制版與仿真[M],清華大學出版社</p><p>  [4]單片機實驗指導書,天煌教儀</p><p>  [5]彭偉,單片機C語言程序設計實訓100例[M],電子工業(yè)出版社</p><p>  完 成 期 限: </p><p>  指導教師簽名:

5、 </p><p>  課程負責人簽名: </p><p>  年 月 日</p><p><b>  課程設計說明書</b></p><p>  題目: 花樣流水燈設計 </p><p>  姓 名:

6、 </p><p>  院 (系): 機電工程學院 </p><p>  專業(yè)班級:11電氣工程及其自動化(1)班 </p><p>  學 號: </p><p>  指導教師: </p><p>  成 績:

7、 </p><p>  時間:2013年12月17日至 2013年12月28日</p><p><b>  目錄</b></p><p><b>  摘要1</b></p><p><b>  summary2</b></p><p>  1

8、課程設計的目的和要求3</p><p>  1.1 設計目的3</p><p>  1.2 設計要求3</p><p><b>  2 總體設計3</b></p><p>  2.1 硬件總體設計3</p><p>  2.1.1 設計思想3</p><p> 

9、 2.1.2 原件清單4</p><p>  2.1.3 模塊分析4</p><p>  2.2軟件總體設計5</p><p><b>  3 硬件設計6</b></p><p>  3.1 AT89C51單片機的硬件結構6</p><p>  3.1.1主要特性7</p>

10、<p>  3.1.2主要引腳功能7</p><p>  3.1.3外部總線結構9</p><p>  3.1.4振蕩器特性10</p><p>  3.1.5芯片擦除11</p><p>  3.2硬件電路設計11</p><p>  3.2.1復位電路11</p><p

11、>  3.2.2震蕩電路12</p><p>  3.2.3 LED電路顯示15</p><p><b>  4 軟件設計15</b></p><p>  4.1主程序設計15</p><p>  4.2子程序設計16</p><p>  4.3流水燈控制碼程序設計16</

12、p><p>  4.4程序流程圖18</p><p>  5使用keil,proteus軟件調試仿真說明18</p><p>  5.1 Proteus的介紹18</p><p>  5.2 Proteus的特點18</p><p>  5.3 Proteus的使用方法19</p><p>

13、;  5.4電路原理圖的設計方法20</p><p>  5.5仿真過程21</p><p><b>  6測試數(shù)據(jù)22</b></p><p><b>  7附錄23</b></p><p>  7.1花樣流水燈程序23</p><p>  7.2花樣流水燈總線路

14、圖24</p><p><b>  結束語25</b></p><p><b>  參考文獻25</b></p><p><b>  摘要</b></p><p>  隨著人們生活環(huán)境的不斷改善和美化,在許多場合可以看到彩色霓虹燈不斷變化閃爍。LED燈由于其豐富的燈光色彩

15、,低廉的造價以及控制簡單等特點而得到了廣泛的應用,用彩燈來裝飾街道和城市建筑物已經成為一種時尚。但目前市場上各式樣的LED燈控制器大多數(shù)用全硬件電路實現(xiàn),電路結構復雜、功能單一,這樣一旦制作成品只能按照固定的模式閃亮,不能根據(jù)不同場合、不同時間段的需要來調節(jié)亮燈時間、模式、閃爍頻率等動態(tài)參數(shù)。這種彩燈控制器結構往往有芯片過多、電路復雜、功率損耗大等缺點。此外從功能效果上看,亮燈模式少而且樣式單調,缺乏用戶可操作性,影響亮燈效果。因此有必

16、要對現(xiàn)有的彩燈控制器進行改進。</p><p>  流水燈是一串按一定的規(guī)律像流水一樣連續(xù)閃亮。流水燈控制是可編程控制器的一個應用,其控制思想在工業(yè)控制技術領域也同樣適用。流水燈控制可用多種方法實現(xiàn),但對現(xiàn)代可編程控制器而言,利用移位寄存器實現(xiàn)最為便利。通常用左移寄存器實現(xiàn)燈的單方向移動;用雙向移位寄存器實現(xiàn)燈的雙向移動。本案例利用價格低廉的AT89C51系列單片機控制基色LED燈泡從而實現(xiàn)豐富的變化。</

17、p><p>  關鍵詞:AT89C51,LED燈,單片機,花樣流水燈</p><p><b>  Summary </b></p><p>  With the continuous improvement of people's living environment and landscaping, in many cases you c

18、an see the changing color neon lights flashing. LED lamp lighting because of its rich color, low cost and simple control features and has been widely used to decorate the streets with lights and city buildings has become

19、 a fashion. However, LED light controller on the market most of each design with full hardware circuit, the circuit structure is complex, single function, so that once the productio</p><p>  Is a series of l

20、ight water according to certain rules like water continuously flashing. Light water control is an application of the programmable controller, which controls the thinking in the field of industrial control technology is a

21、lso applicable. Light water control a variety of methods are available, but the modern programmable controller, the use of shift registers to achieve the most convenient. Usually registers in one direction left to move t

22、he lamp; achieve two-way mobile lamps with b</p><p>  Keywords: AT89C51, LED lights, microcontroller, synchronized light water </p><p>  1 課程設計的目的和要求</p><p><b>  1.1 設計目的</

23、b></p><p>  近年來隨著科技的發(fā)展,單片機的應用正在不斷走向深入,同時帶動傳統(tǒng)控制檢測日新月異更新,在實時檢測和自動控制的單片機應用系統(tǒng)中,單片機往往是作為一個核心部件來使用,單片機方面知識是不夠的,還應根據(jù)具體硬件結構,以及針對具體應用對象點的軟件結合,加以完善。流水燈,可以更簡單、方便的使用。通過本課程設計使學生進一步鞏固單片機原理及應用的基本概念、基本理論,分析問題的基本方法,增強系統(tǒng)地運

24、用已學的理論知識解決實際問題的能力和查閱資料的能力。培養(yǎng)一定的自學能力和獨立分析問題、解決問題的能力,能通過獨立思考、查閱工具書、參考文獻,尋找解決方案。</p><p><b>  1.2 設計要求</b></p><p>  設計流水燈的基本要求:設計一個流水燈,應用AT89C51試驗系統(tǒng),電路開啟后紅、綠兩種顏色的燈在時鐘信號作用下按一定規(guī)律轉換狀態(tài)。</

25、p><p><b>  2 總體設計</b></p><p>  2.1 硬件總體設計</p><p>  2.1.1 設計思想</p><p>  整個系統(tǒng)工作由軟件程序控制運行,根據(jù)需要,可以上電后系統(tǒng)經過初始化,進入用戶設定模式狀態(tài)?;贏T89C51單片機的彩燈控制方案,實現(xiàn)對LED彩燈的控制。本方案以AT89C5

26、1單片機作為主控核心,與驅動等模塊組成核心主控制模塊。在主控模塊上設有晶振電路和16個LED顯示二極管,根據(jù)需要編寫若干種亮燈模式,根據(jù)各種亮燈時間的不同需要,在不同時刻輸出燈亮或燈滅的控制信號。</p><p>  2.1.2 原件清單</p><p>  2.1.3 模塊分析</p><p><b>  (1)核心部件</b></p&

27、gt;<p>  89C51單片機是整個彩燈循環(huán)系統(tǒng)的核心是控制彩燈循環(huán)閃爍等等一切功能的部件;其中內部有ROM、有RAM、有并行I/O口等,在51單片機內部有一個CPU用來運算、控制,有四個并行I/O口,分別是P0、P1、P2、P3,有ROM,用來存放程序,有RAM,用來存放中間結果,此外還有定時/計數(shù)器,串行I/O口,中斷系統(tǒng),以及一個內部的時鐘電路。</p><p><b> ?。?

28、)復位系統(tǒng)</b></p><p>  電路中C1、R2……組成復位電路,它的作用是將單片機內部特殊功能寄存器和端口寄存器恢復到初始狀態(tài),從內部FLASH存儲器的初始狀態(tài)開始執(zhí)行</p><p><b> ?。?)震蕩系統(tǒng)</b></p><p>  單片機本身如同一個復雜的同步時序電路,為了保證同步工作,電路應在唯一的時鐘信號控制

29、下,嚴格地按規(guī)定時序工作。而時鐘電路就用于產生單片機工作所需要的時鐘信號。</p><p><b> ?。?)閃爍系統(tǒng)</b></p><p>  利用單片機的P口控制:LED的發(fā)光閃爍,再利用編程實現(xiàn)流水燈的電路,用軟件來實現(xiàn)對LED的控制,每個LED接一個限流電阻,來控制流入LED發(fā)光管的電流。</p><p>  圖2-1 硬件系統(tǒng)方框圖

30、</p><p><b>  2.2軟件總體設計</b></p><p>  用查表的方法控制點亮流水燈,即移位的思想</p><p>  0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff;//左邊單個點亮</p><p>  0x7f,0x3f,0x1f,0x0f,0x07,0x

31、03,0x01,0x00;//右邊逐個點亮</p><p>  0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff;//左邊逐個熄滅</p><p>  0x7f,0x8f,0xdf,0xef,0xf7,0xf8,0xfd,0xfe,0xff;//右邊單個點亮</p><p>  0xfe,0xfc,0xf8,0xf0,0xe0,0xc0

32、,0x80,0x00;//左邊逐個點亮</p><p>  0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff;//右邊逐個熄滅</p><p>  0xfc,0xf9,0xf3,0xef,0xcf,0x9f,0x3f,0xff;//左邊逐兩個點亮</p><p>  0x3f,0x9f,0xcf,0xe7,0xf3,0xf9,0xfc,

33、0xff;//右邊逐兩個點亮</p><p>  0xf8,0xf1,0xe3,0x07,0x8f,0x1f,0xff;//左邊逐三個亮</p><p>  0x1f,0x8f,0x07,0xe3,0xf1,0xf8,0xff;//右邊逐三個亮</p><p><b>  3 硬件設計</b></p><p>  3.1

34、 AT89C51單片機的硬件結構</p><p>  由圖3-1可以看出,單片機內部主要包含下列幾個部件:</p><p>  ?       一個8位CPU; </p><p>  ?       一個時鐘電路; </p><

35、p>  ?       4Kbyte程序存儲器; </p><p>  ?       128byte數(shù)據(jù)存儲器; </p><p>  ?       兩個16位定時/計數(shù)器; </p>&

36、lt;p>  ?       64Kbyte擴展總線控制電路; </p><p>  ?       四個8-bit并行I/O端口; </p><p>  ?       一個可編程串行接口; </p

37、><p>  ?       五個中斷源,其中包括兩個優(yōu)先級嵌套中斷。</p><p>  圖3-1 AT89C51硬件結構框圖</p><p><b>  3.1.1主要特性</b></p><p>  AT89C51是一種低功耗/低電壓、高性能的八位CMOS單片

38、機,片內有一個4KB的FLASH可編程可擦除只讀存儲器(FPEROM—Flash Programmable and Erasable Read Only Memory),它采用了CMOS工藝和ATMEL公司的高密度非易失性存儲器技術,而且其輸出引腳和指令系統(tǒng)都與MSC—51兼容。片內置通用8位中央處理器(CPU)和FLASH存儲單元,片內的存儲器允許在系統(tǒng)內改編程序或用常規(guī)的非易失性存儲器編程。因此,AT89C51是一種功能強、靈活性高

39、且價格合理的單片機,可方便的應用于各種控制領域。</p><p>  3.1.2主要引腳功能</p><p>  1.電源引腳Vcc和Vss </p><p>  Vcc:電源端,接+5V。 </p><p><b>  Vss:接地端。 </b></p><p>  通常在Vcc和Vss引腳之間

40、接0.1μ高頻濾波電容。 </p><p>  2.時鐘電路引腳XTAL1和XTAL2 </p><p>  XTAL1:接外部晶振和微調電容的一端,在片內它是振蕩器倒相放大器的輸入,若使用外部TTL時鐘時,該引腳必須接地。 </p><p>  XTAL2:接外部晶振和微調電容的另一端,在片內它是振蕩器倒相放大器的輸出,若使用外部TTL時鐘時,該引腳為外部時鐘的輸

41、入端。 </p><p>  3.地址鎖存允許ALE </p><p>  在系統(tǒng)擴展時,ALE用于控制地址鎖存器鎖存P0口輸出的低8位地址,從而實現(xiàn)數(shù)據(jù)與低位地址的復用。當單片機上電正常工作后,ALE端就周期性地以時鐘頻率的1/6的固定頻率向外輸出正脈沖信號,ALE的負載能力為8個LSTTL器件。 </p><p>  4.外部程序存儲器讀選通信號 </p&

42、gt;<p>  是讀外部程序存儲器的選通信號,低電平有效。CPU從外部存儲器取指令時,它在每個機器周期中兩次有效。 </p><p>  5.程序存儲器地址允許輸入端 /VPP </p><p>  當 為高電平時,CPU執(zhí)行片內程序存儲器指令,但當PC中的值超過0FFFH時,將自動轉向執(zhí)行片外程序存儲器指令。當 為低電平時,CPU只執(zhí)行片外程序存儲器指令。對于8031,由

43、于其無片內ROM,故 必須接低電平。 </p><p>  6.復位信號RST </p><p>  該信號高電平有效,在輸入端保持兩個機器周期的高電平后,就可以完成復位操作。此外,該引腳還有掉電保護功能,若在該端接+5V備用電源,在使用中若Vcc掉電,可保護片內RAM中信息不丟失。 </p><p>  7.輸入/輸出口引腳P0、P1、P2和P3 </p&g

44、t;<p>  P0口(P0.0~P0.7):該端口為漏極開路的8位準雙向口,負載能力位8高LSTTL負載,它為8位地址線和8位數(shù)據(jù)線的復用端口。 </p><p>  P1口(P1.0~P1.7):它是一個內部帶上拉電阻的8位準雙向I/O口,P1口的驅動能力為4個LSTTL負載。 </p><p>  P2口(P2.0~P2.7):它為一個內部帶上拉電阻的8位準雙向I/O口

45、,P2口的驅動能力也為4個LSTTL負載。在訪問外部程序存儲器時,它作存儲器的高8位地址線。 </p><p>  P3口(P3.0~P3.7):P3口同樣是內部帶上拉電阻的8位準雙向I/O口,P3口除了作為一般的I/O口使用之外,其還具有特殊功能。</p><p>  3.1.3外部總線結構</p><p>  所謂總線,就是連接單片機與各外部器件的一組公共的信號

46、線。當系統(tǒng)要求擴展時,單片機要與一定數(shù)量的外部器件和外圍設備連接。如果各部件及每一種外圍設備都分別用各自的一組線路與CPU直接連接,那么連線將會錯綜復雜,甚至難以實現(xiàn)。為了簡化硬件電路的設計和系統(tǒng)結構,常用一組線路,并配以適當?shù)慕涌陔娐穪砼c各個外部器件和外圍設備連接,這組共用的連接線路就是總線。采用總線結構便于擴展外部器件和外圍設備,而統(tǒng)一的總線標準則使不同設備間的互連更容易實現(xiàn)。</p><p>  利用片外引

47、腳可以構造MCS-51系列單片機的三總線結構。單片機的引腳除了電源端VCC、接地端VSS、復位端RST、晶振接入端XTAL1和XTAL2、通用I/O口的P1.0~P1.7以外,其余的引腳都是為實現(xiàn)系統(tǒng)擴展而設置的。用這些引腳構造的單片機系統(tǒng)的三總線結構如圖3-2所示。</p><p>  圖3-2 MCS-51系列單片機片外三總線結構</p><p> ?。?)地址總線(Address B

48、us,AB):MCS-51系列單片機總共有16根地址線A15~ A0,片外存儲器可尋址范圍達64KB(216=65536字節(jié)),由P2口直接提供高8位地址A15~ A8,P0口經地址鎖存器提供低8位地址A7~ A0。</p><p> ?。?)數(shù)據(jù)總線(Data Bus,DB):MCS-51系列單片機總共有8根數(shù)據(jù)線D7~D0,全由P0口提供。由于P0口是分時復用總線,分時輸送低8位地址(通過地址鎖存器鎖存)和高

49、8位數(shù)據(jù)信息。 </p><p>  (3)控制總線(Control Bus,CB):控制總線由P3口的第二功能(P3.6)、(P3.7)和3根獨立的控制線、ALE、組成。</p><p>  3.1.4振蕩器特性</p><p>  XTAL1和XTAL2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時鐘源

50、驅動器件,XTAL2應不接。有余輸入至內部時鐘信號要通過一個二分頻觸發(fā)器,因此對外部時鐘信號的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度</p><p><b>  3.1.5芯片擦除</b></p><p>  AT89C51設有穩(wěn)態(tài)邏輯,可以在低到零頻率的條件下靜態(tài)邏輯,支持兩種軟件可選的掉電模式。在閑置模式下,CPU停止工作。但RAM,定時器,計數(shù)器,串

51、口和中斷系統(tǒng)仍在工作。在掉電模式下,保存RAM的內容并且凍結振蕩器,禁止所用其他芯片功能,直到下一個硬件復位為止。</p><p><b>  3.2硬件電路設計</b></p><p><b>  3.2.1復位電路</b></p><p>  如圖3-2所示,當要對晶片重置時,只要按此開關就能完成LED和開關的重置。復

52、位是單片機的初始化操作,其主要功能是把PC初始化為0000H,使單片機從0000H單元開始執(zhí)行程序。單片機的RST管腳為主機提供了一個外部復位信號輸入口。復位信號是高電平有效,高電平有效的持續(xù)時間為2個機器周期以上。單片機的復位方式可由手動復位方式完成。</p><p>  RST引腳是復位信號輸入端,復位信號為高電平有效,其有效時間應持續(xù)24個振蕩周期以上才能完成復位操作,若使用6MHz晶振,則需持續(xù)4μS以上

53、才能完成復位操作。圖2.10中,在通電瞬間,由于RC的充電過程,在RST端出現(xiàn)一定寬度的正脈沖,只要該正脈沖保持10ms以上,就能使單片機自動復位</p><p>  圖3-3 復位信號輸入端</p><p>  CPU在第二個機器周期內執(zhí)行內部復位操作,以后每個機器周期重復一次,直至RST端電平變低。在單片機復位期間,AlE和 信號都不產生。復位操作將對部分專用寄存器產生影響,復位后,這

54、些內部寄存器狀態(tài)如表3-1。</p><p>  表3-1部分專用寄存器復位狀態(tài)</p><p>  上電瞬間由于電容C上無儲能,其端電壓近似為零,RST獲得高電平,隨著電容器C的充電,RST引腳上的高電平將逐漸下降,當RST引腳上的電壓小于某一數(shù)值后,單片機就脫離復位狀態(tài),進入正常工作模式。只要高電平能保持復位所需要的時間(約兩個機器周期),單片機就能實現(xiàn)復位。</p>&

55、lt;p><b>  3.2.2震蕩電路</b></p><p>  為彩燈循環(huán)系統(tǒng)提供穩(wěn)定頻率波在由多片單片機組成的系統(tǒng)中,為了各單片機之間時鐘信號的同步,引入唯一的外部脈沖信號作為各單片機的振蕩脈沖。這時外部的脈沖信號是經單片機89C51的XTAL2引腳注入的;在MCS-51單片機片內有一個高增益的反相放大器,反相放大器的輸入端為XTAL1,輸出端為XTAL2,在芯片的外部通過這兩

56、個引腳跨接晶體振蕩器和微調電容C1、C2形成反饋電路,可構成穩(wěn)定的自激振蕩器,振蕩頻率范圍通常是1.2~12MHz。晶體振蕩頻率高,則系統(tǒng)的時鐘頻率也高,單片機的運行速度也就快。</p><p>  由該放大器構成的振蕩電路和時鐘電路一起構成了單片機的時鐘方式。如圖3-3所示 </p><p><b>  圖3-4 震蕩電路</b></p><p&

57、gt;  晶體振蕩器的振蕩信號從XTAL2端送入內部時鐘電路,它將該振蕩信號二分頻,產生一個兩相時鐘信號P1和P2供單片機使用。時鐘信號的周期稱為狀態(tài)時間S,它是振蕩周期的2倍,P1信號在每個狀態(tài)的前半周期有效,在每個狀態(tài)的后半周期P2信號有效。CPU就是以兩相時鐘P1和P2為基本節(jié)拍協(xié)調單片機各部分有效工作的。 MCS-51單片機時鐘電路示意圖如圖4所示。</p><p>  圖3-5 MCS-51單片機時鐘

58、振蕩電路示意圖</p><p>  振蕩電路產生的振蕩脈沖并不直接使用,而是經分頻后再為系統(tǒng)所用。振蕩脈沖在片內通過一個時鐘發(fā)生電路二分頻后才作為系統(tǒng)的時鐘信號。片內時鐘發(fā)生電路實質上是一個二分頻的觸發(fā)器,其輸入來自振蕩器,輸出為二相時鐘信號,即狀態(tài)時鐘信號,其頻率為fosc/2;狀態(tài)時鐘三分頻后為ALE信號,其頻率為fosc/6;狀態(tài)時鐘六分頻后為機器周期,其頻率為fosc/12。</p><

59、;p>  在圖3-4中,使用晶體振蕩器時,C1、C2取值30±10pF;使用陶瓷振蕩器時,C1、C2取值40±10pF。C1、C2的取值雖然沒有嚴格的要求,但電容的大小影響振蕩電路的穩(wěn)定性和快速性,通常取值20~30pF。在設計印制電路板時,晶振和電容等應盡可能靠近芯片,以減少分布電容,保證振蕩器振蕩的穩(wěn)定性。</p><p>  也可以由外部時鐘電路向片內輸入脈沖信號作為單片機的振蕩脈

60、沖。這時外部脈沖信號是經XTAL1引腳引入的,而XTAL2引腳懸空或接地。對外部信號的占空比沒有要求,但高低電平持續(xù)的時間不應小于20ns。這種方式常用于多塊芯片同時工作,便于同步。其外部脈沖接入方式如圖3-6所示。</p><p>  圖3-6 MCS-51單片機外部時鐘輸入接線圖</p><p>  所謂時序,是指在指令執(zhí)行過程中,CPU的控制器所發(fā)出的一系列特定的控制信號在時間上的先

61、后關系。CPU發(fā)出的控制信號有兩類:一類是用于單片機內部的,用戶不能直接接觸此類信號,不必對它作過多了解;另一類是通過控制總線送到片外的,人們通常以時序圖的形式來表示相關信號的波形及出現(xiàn)的先后次序。為了說明信號的時間關系,需要定義時序單位。89C51的時序單位共有四個,從小到大依次是拍節(jié)、狀態(tài)、機器周期和指令周期。如圖3-4所示。</p><p>  3.2.3 LED電路顯示</p><p&

62、gt;  如圖所示,P0口控制LED燈D1~D8的顯示,P2口控制LED燈D10~D17的顯示。限流電阻為470歐姆,經過的電流大概為10mA。</p><p><b>  4 軟件設計</b></p><p><b>  4.1主程序設計</b></p><p>  void main() </p><

63、;p><b>  { </b></p><p>  uchar i; //定義一個無符號字符型局部變量 i </p><p><b>  while(1) </b></p><p>  { //從數(shù)組中讀取數(shù)據(jù)送至 P0 和 P2 口顯示 </p><p>  for(i=0;i<1

64、36;i++) //加入 for循環(huán),共136個流水燈控制碼,大括號中的程序循環(huán)執(zhí)行136次</p><p><b>  { </b></p><p>  P0=Pattern_P0[i]; //數(shù)組控制流水燈亮暗</p><p>  P2=Pattern_P2[i]; </p><p>  DelayMS

65、(100); //延時以便能觀察到燈亮移動,自己可以調整時間,由晶振和實參決定</p><p><b>  } </b></p><p><b>  } </b></p><p><b>  4.2子程序設計</b></p><p><b>  //延時 </

66、b></p><p>  void DelayMS(uint x) </p><p><b>  { </b></p><p><b>  uchar i; </b></p><p>  while(x--) </p><p><b>  { </b&g

67、t;</p><p>  for(i=0;i<120;i++); </p><p><b>  } }</b></p><p>  4.3流水燈控制碼程序設計</p><p>  設計兩個數(shù)組分別存儲紅燈和綠燈的流水燈控制碼,讓后用查表的方式點亮流水燈,主要代碼如下:</p><p>  u

68、char code Pattern_P0[]= </p><p><b>  { </b></p><p>  0xfc,0xf9,0xf3,0xe7,0xcf,0x9f,0x3f,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe7,0xdb,0xbd,0x7e,0xbd,0xdb,0xe7,0xff,0xe7,0xc3

69、,0x81,0x00,0x81,0xc3,0xe7,0xff,0xaa,0x55,0x18,0xff,0xf0,0x0f,0x00,0xff,0xf8,0xf1,0xe3,0xc7,0x8f,0x1f,0x3f,0x7f,0x7f,0x3f,0x1f,0x8f,0xc7,0xe3,0xf1,0xf8,0xff,0x00,0x00,0xff,0xff,0x0f,0xf0,0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf

70、,0xbf,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0xfe,0xfc,0xf8,0xf0,</p><p><b>  }; </b></p><p>  u

71、char code Pattern_P2[]= </p><p><b>  {</b></p><p>  0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfc,0xf9,0xf3,0xe7,0xcf,0x9f,0x3f,0xff,0xe7,0xdb,0xbd,0x7e,0xbd,0xdb,0xe7,0xff,0xe7,0xc3,

72、0x81,0x00,0x81,0xc3,0xe7,0xff,0xaa,0x55,0x18,0xff,0xf0,0x0f,0x00,0xff,0xf8,0xf1,0xe3,0xc7,0x8f,0x1f,0x3f,0x7f,0x7f,0x3f,0x1f,0x8f,0xc7,0xe3,0xf1,0xf8,0xff,0x00,0x00,0xff,0xff,0x0f,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

73、0xff,0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,</p><p><b>  }; </b></p><p>  在仿

74、真中可以看到led燈有規(guī)律的一個一個的點亮如此循環(huán)。</p><p><b>  4.4程序流程圖</b></p><p><b>  圖4-1程序流程圖</b></p><p>  5使用keil,proteus軟件調試仿真說明</p><p>  5.1 Proteus的介紹</p>

75、<p>  Proteus軟件由ISIS和ARES兩部分構成,其中ISIS是一款便捷的電子系統(tǒng)原理設計和仿真平臺軟件,ARES是一款高級的PCB布線編輯軟件。Proteus是目前最好的模擬單片機外圍器件的工具,與其他單片機仿真軟件不同的是,它不僅能仿真單片機CPU的工作情況,也能仿真單片機外圍電路或沒有單片機參與的其他電路的工作情況。因此在仿真和調試程序時,關心的不再是某些語句執(zhí)行時單片機寄存器和存儲器內容的改變,而是從工

76、程的角度直接看程序運行和電路工作的過程和結果。對于這樣的仿真實驗,從某種意義上講,解決了實驗和工程應用間脫節(jié)的矛盾。</p><p>  5.2 Proteus的特點</p><p>  實現(xiàn)了單片機仿真和SPICE電路仿真的結合。具有模擬電路仿真、數(shù)字電路仿真、單片機及其外圍電路組成的系統(tǒng)仿真、RS232動態(tài)仿真、I2C調試器、SPI調試器、鍵盤和LCD系統(tǒng)仿真等功能;有各種虛擬儀器,如

77、示波器、邏輯分析儀、信號發(fā)生器等。具有強大的原理圖繪制功能。提供軟件調試功能。在硬件仿真系統(tǒng)中具有全速、單步、設置斷點等調試功能,同時可以觀察各個變量、寄存器等的當前狀態(tài),因此在該軟件仿真系統(tǒng)中,也必須具有這些功能;同時支持第三方的軟件編譯和調試環(huán)境,如Keil C51 uVision2等軟件。</p><p>  5.3 Proteus的使用方法</p><p>  點狀的柵格區(qū)域為編輯

78、窗口,左上方為預覽窗口,左下方為元器件列表區(qū),即對象選擇器 </p><p>  編輯窗口用于放置元器件,進行連線,繪制原理圖。預覽窗口可以顯示全部原理圖。在預覽窗口中,有兩個框,藍框表示當前頁的邊界,綠框表示當前編輯窗口顯示的區(qū)域。當從對象選擇器中選中一個新的對象時,預覽窗口可以預覽選中的對象。在預覽窗口上單擊,Proteus ISIS將會以單擊位置為中心刷新編輯窗口。其他情況下,預覽窗口顯示將要放置的對象。&

79、lt;/p><p>  5.4電路原理圖的設計方法</p><p>  原理圖的具體設計步驟如下: </p><p>  (1) 新建設計文檔。在進入原理圖設計之前,首先要構思好原理圖,即必須知道所設計的項目需要哪些電路來完成,用何種模板;然后在Proteus ISIS編輯環(huán)境中畫出電路原理圖 。</p><p>  (2) 設置工作環(huán)境。根據(jù)實

80、際電路的復雜程度來設置圖紙的大小等。在電路圖設計的整個過程中,圖紙的大小可以不斷地調整。設置合適的圖紙大小是完成原理圖設計的第一步。</p><p>  (3) 放置元器件。首先從添加元器件對話框中選取需要添加的元器件,將其布置到圖紙的合適位置,并對元器件的名稱、標注進行設定;再根據(jù)元器件之間的走線等聯(lián)系對元器件在工作平面上的位置進行調整和修改,使得原理圖美觀、易懂。

81、 </p><p> ?。?)對原理圖進行布線。根據(jù)實際電路的需要,利用Proteus ISIS編輯環(huán)境所提供的各種工具、命令進行布線,將工作平面上的元器件用導線連接起來,構成一幅完整的電路原理圖</p><p>  (5) 建立網(wǎng)絡表。在完成上述步驟之后,即可看到一張完整的電路

82、圖,但要完成印制版電路的設計,還需要生成一個網(wǎng)絡表文件。網(wǎng)絡表是印制版電路與電路原理圖之間的紐帶 </p><p>  (6) 原理圖的電氣規(guī)則檢查。當完成原理圖布線后,利用Proteus ISIS編輯環(huán)境所提供的電氣規(guī)則檢查命令對設計進行檢查,并根據(jù)系統(tǒng)提示的錯誤檢查報告修改原理圖 </p><p>  (7) 調整。如果原理圖已通過電氣規(guī)則檢查,那么原理圖的設計就完成了,但是對于一般電

83、路設計而言,尤其是較大的項目,通常需要對電路進行多次修改才能通過電氣規(guī)則檢查 </p><p>  (8) 存盤和輸出報表。Proteus ISIS提供了多種報表輸出格式,同時可以對設計好的原理圖和報表進行存盤和輸出打印 </p><p><b>  5.5仿真過程</b></p><p>  Proteus仿真時,單片機需要加載程序,加載程序

84、為.HEX文件。本設計利用Keil μVision3, 在新建Keil項目時選擇AT89C51單片機作為CPU,將C語言源程序導入,在“Options For Target”對話窗口中,選中“Output”選項中的“Create HEX File”,編譯鏈接后就可以生成.HEX文件。在Proteus ISIS中,選中AT89C52并單擊鼠標左鍵,對AT89C52進行設置,設置單片機時鐘頻率為12MHz,按照正確的文件路徑加載.HEX文件

85、。對單片機設置完畢后就可以開始仿真了。</p><p><b>  6測試數(shù)據(jù)</b></p><p>  通過程序可以實現(xiàn)花樣流水燈的不同形式變換,如圖是流水燈的依次點亮</p><p>  圖6-1 花樣流水燈依次點亮</p><p>  圖6-2keil軟件模擬程序</p><p><

86、b>  7附錄</b></p><p>  7.1花樣流水燈程序</p><p>  #include <reg52.h></p><p>  #define uchar unsigned char</p><p>  #define uint unsigned int</p><p> 

87、 uchar code Pattern_P0[]=</p><p><b>  {</b></p><p>  0xfc,0xf9,0xf3,0xe7,0xcf,0x9f</p><p><b>  };</b></p><p>  uchar code Pattern_P2[]=</p>

88、;<p><b>  {</b></p><p>  0xf5,0xf6,0xfe,0x54,0x56,0x76,0xd7,0x49,0xa9,0xe4,0xc6</p><p><b>  };</b></p><p>  void DelayMS(uint x)</p><p>&

89、lt;b>  {</b></p><p><b>  uchar t;</b></p><p>  while(x--)</p><p><b>  {</b></p><p>  for(t=120;t>0;t--);</p><p><b&g

90、t;  }</b></p><p><b>  }</b></p><p>  void main()</p><p><b>  {</b></p><p><b>  uchar i;</b></p><p><b>  whi

91、le(1)</b></p><p><b>  {</b></p><p>  for(i=136;i>0;i--)</p><p><b>  {</b></p><p>  P0=Pattern_P0[i];</p><p>  P2=Pattern_P

92、2[i];</p><p>  DelayMS(150);</p><p><b>  } </b></p><p><b>  }</b></p><p><b>  }</b></p><p>  7.2花樣流水燈總線路圖</p&g

93、t;<p><b>  結束語</b></p><p>  通過這次課程設計我學到了很多東西,我更加體會到理論知識與動手能力相結合的重要性,而且設計過程中使我懂得在設計程序之前,務必要對所用單片機的內部結構有一個系統(tǒng)的了解,知道該單片機內有哪些資源:懂得設計的關鍵是要有一個清晰的思路和一個完整的軟件流程圖。在設計程序時,不能妄想一次就將整個程序設計好,“反復修改,不斷改進”是程

94、序設計的必經之路。要養(yǎng)成注釋程序的好習慣,一個程序的完美與否不僅僅是實現(xiàn)功能,而應該讓人一看就能明白你思路,這樣也為資料的保存和交流提供了方便。整個設計的過程中,還是碰到了一些問題 。比如,對于鍵盤的延時防抖問題不能較好的解決;對于編程的順序及各模塊程序調用掌握得還不夠好;對于一些相關的應用軟件沒能熟練掌握。通過這幾天的反復思考,以及參考網(wǎng)上的程序,最終還是完成了設計。設計中我最大的收獲就是自己的動手能力和獨立解決問題的能力得到了很大的

95、提高,在動手的過程中,不僅能增強實踐能力,而且在理論上可以有更深的認識</p><p><b>  參考文獻</b></p><p>  [1]李全利,單片機原理及接口技術[M],高等教育出版社</p><p>  [2]王文杰,單片機應用技術[M],冶金工業(yè)出版社</p><p>  [3]朱清慧,PROTEUS教程—

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論