版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 單片機技術課程設計說明書</p><p><b> 數字電子鐘</b></p><p><b> 摘 要:</b></p><p> AT89C52 ATMEL公司生產的低電壓,高性能CMOS 8位單片機.片內含8K byTES的可反復擦寫的只讀程序存儲器(PEROM)和256 byTES 。
2、的隨機存取數據存儲器(RAM),器件采用ATMEL公司的高密度、非易失性存儲技術生產,與標準MCS-51指令系統(tǒng)及8052 產品引腳兼容,片內置通用8位中央處理器(CPU )和FLASH由存儲單元,功能強大AT89C52單片適用于許多較為復雜控制應用場合。</p><p><b> 主要性能參數:</b></p><p> 與Mcs-51產品指令和引腳完全兼容。
3、8字節(jié)可重擦寫FLASH閃速存儲器1000 次擦寫周期全靜態(tài)操作:0HZ-24MHZ三級加密程序存儲器256X8字節(jié)內部RAM32個可編程I/0口線3個16 位定時/計數器8個中斷源可編程串行UART通道低功耗空閑和掉電模式</p><p> 電子鐘是一種用電子電路技術實現時、分、秒計時的裝置,與機械式時鐘相比具有更高的準確性和直觀性,且無機械裝置,具有更更長的使用壽命,因此得到了廣泛的使用。
4、</p><p> 電子鐘從原理上講是一種典型的電子電路,其中包括了組合邏輯電路和時序電路。目前,電子鐘的功能越來越強,并且有多種專門的大規(guī)模集成電路可供選擇。</p><p> 從有利于學習的角度考慮,這里主要介紹以中小規(guī)模集成電路設計電子鐘的方法。</p><p> 經過了電子電路設計這門課程的系統(tǒng)學習,特別經過了關于組合邏輯電路與時序邏輯電路部分的學習,
5、我們已經具備了設計小規(guī)模集成電路的能力,借由本次設計的機會,充分將所學的知識運用到實際中去。本次課程設計要求設計一個電子鐘,基本要求為電子鐘的時間周期為24小時,電子鐘顯示時、分、秒,電子鐘的時間基準一秒對應現實生活中的時鐘的一秒。因此,研究電子鐘,有著非?,F實的意義。</p><p><b> 目 錄</b></p><p> 摘要……………………………………
6、………………………………………2</p><p> 第一章 系統(tǒng)的組成及工作原理……………………………………………4</p><p> 1.1 設計要求………………………………………………………………4</p><p> 1.2 系統(tǒng)的組成……………………………………………………………4</p><p> 1.3 系統(tǒng)的工作原理…
7、……………………………………………………4</p><p> 第二章 系統(tǒng)硬件電路方案設計……………………………………………7</p><p> 2.1 電子時鐘方案…………………………………………………………7</p><p> 2.2 數碼顯示方案…………………………………………………………7 </p><p> 2.
8、3 單元電路設計…………………………………………………………8</p><p> 2.2.1 晶體振蕩電路……………………………………………………8</p><p> 2.2.2 復位電路…………………………………………………………8</p><p> 2.2.3 顯示電路…………………………………………………………9</p><p
9、> 2.2.4 鍵盤電路…………………………………………………………9</p><p> 第三章 系統(tǒng)的軟件設計……………………………………………………10</p><p> 3.1 程序流程圖……………………………………………………………10</p><p> 3.2 源程序…………………………………………………………………11</p&g
10、t;<p> 第四章 系統(tǒng)調試……………………………………………………………17</p><p> 4.1 軟件調試………………………………………………………………17</p><p> 4.2 硬件調試………………………………………………………………17</p><p> 第五章 設計體會和結論……………………………………………………18
11、</p><p> 參考文獻………………………………………………………………………19</p><p> 致謝……………………………………………………………………………20 </p><p> 附錄一:電路原理圖…………………………………………………………21</p><p> 附錄二:PCB圖……………………………………………………
12、…………22</p><p> 附錄三:數碼管元件清單……………………………………………………23</p><p> 第一章 系統(tǒng)組成及工作原理</p><p> 1.1 系統(tǒng)設計要求</p><p> 設計一個具有特定功能的電子鐘。該電子鐘上電或按鍵復位后能自動顯示系統(tǒng)提示符“P.”, 進入時鐘準備狀態(tài);第一次按電子鐘啟動/調整鍵,
13、電子鐘從0時0分0秒開始運行,進入時鐘運行狀態(tài);再次按電子鐘啟動/調整鍵,則電子鐘進入時鐘調整狀態(tài),此時可利用各調整鍵調整時間,調整結束后可按啟動/調整鍵再次進入時鐘運行狀態(tài)。</p><p><b> 1.2 系統(tǒng)的組成</b></p><p> 數字鐘實際上是一個對標準頻率(1HZ)進行計數的計數電路.由于計數的起始時間不可能與標準時間一致,故需要在電路上加一
14、個校時電路,同時標準的1MHZ時間信號必須做到準確穩(wěn)定.通常使用石英晶體振蕩器電路構成數字鐘. </p><p> 晶體振蕩器 晶體振蕩器給數字鐘提供一個頻率穩(wěn)定準確的11.0592MHz的方波信號,可保證數字鐘的走時準確及穩(wěn)定.不管是指針式的電子鐘還是數字顯示的電子鐘都使用了晶體振蕩器。</p><p> 復位電路 時間計數電路由秒個位和秒十位計數器,分個位和分十
15、位計數器,時個位和時十位電路構成,秒個位和秒十位計數器,分個位和分十位計數器為60進制計數器,時個位和時十位計數器為24進制計數器。</p><p> 數碼管 數碼管通常有發(fā)光二極管(LED)數碼管和液晶(LCD)數碼管,本設計提供的為LED數碼管。</p><p><b> 鍵盤</b></p><p> 鍵盤是控制和修改時鐘
16、的重要輸入模塊,通過鍵盤可以修改時間,修改年月日,修改鬧鐘時間,控制顯示等。</p><p> 1.3 系統(tǒng)工作原理</p><p> VCC:供電電壓。 GND:接地。 P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當P1口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數據存儲器,它可以被定
17、義為數據/地址的第八位。在FIASH編程時,P0 口作為原碼輸入口,當FIASH進行校驗時,P0輸出原碼,此時P0外部必須被拉高。 P1口:P1口是一個內部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。
18、160; P2口:P2口為一個內部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當P2口被寫“1”時,其管腳被內部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內部上拉的緣故。P2口當用于外部程序存儲器或16位地址外部數據存儲器進行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內部上拉優(yōu)勢,當對外部八位地址數</p><p> RST
19、:復位輸入。當振蕩器復位器件時,要保持RST腳兩個機器周期的高電平時間。 ALE/PROG:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微
20、處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。 </p><p> PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。但在訪問外部數據存儲器時,這兩次有效的/PSEN信號將不出現。 EA/VPP:當/EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內部程序存儲器。注意加密方式1時,/
21、EA將內部鎖定為RESET;當/EA端保持高電平時,此間內部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。 XTAL1:反向振蕩放大器的輸入及內部時鐘工作電路的輸入。 XTAL2:來自反向振蕩器的輸出。數據存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時, ALE</p><p> 第二章
22、系統(tǒng)硬件電路方案設計</p><p> 2.1 電子時鐘方案</p><p> 電子時鐘是本設計的最主要的部分。根據需要,可利用兩種方案實現。</p><p> 方案一:本方案采用Dallas公司的專用時鐘芯片DS12887A。該芯片內部采用石英晶體振蕩器,其芯片精度不大于10ms/年,且具有完備的時鐘鬧鐘功能,因此,可直接對其以用于顯示或設置,使得軟件編程相
23、對簡單。為保證時鐘在電網電壓不足或突然掉電等突發(fā)情況下仍能正常工作,芯片內部包含鋰電池。當電網電壓不足或突然掉電時,系統(tǒng)自動轉換到內部鋰電池供電系統(tǒng)。而且即使系統(tǒng)不上電,程序不執(zhí)行時,鋰電池也能保證芯片的正常運行,以備隨時提供正確的時間。</p><p> 方案二:本方案完全用軟件實現數字時鐘。原理為:在單片機內部存儲器設6個字節(jié)分別存放時鐘的時、分、秒信息。利用定時器與軟件結合實現1秒定時中斷,每產生一次中斷
24、,存儲器內相應的秒值加1;若秒值達到60,則將其清零,并將相應的分字節(jié)值加1;若分值達到60,則清零分字節(jié),并將時字節(jié)值加1;若時值達到24,則將十字節(jié)清零。該方案具有硬件電路簡單的特點。但由于每次執(zhí)行程序時,定時器都要重新賦初值,所以該時鐘精度不高。而且,由于是軟件實現,當單片機不上電,程序不執(zhí)行時,時鐘將不工作。</p><p> 基于硬件電路的考慮,本設計采用方案二完成數字時鐘的功能。</p>
25、<p> 2.2 數碼管顯示方案</p><p> 方案一:靜態(tài)顯示。所謂靜態(tài)顯示,就是當顯示器顯示某一字符時,相應的發(fā)光二極管恒定的導通或截止。該方式每一位都需要一個8 位輸出口控制。靜態(tài)顯示時較小的電流能獲得較高的亮度,且字符不閃爍。但當所顯示的位數較多時,靜態(tài)顯示所需的I/O口太多,造成了資源的浪費。</p><p> 方案二:動態(tài)顯示。所謂動態(tài)顯示就是一位一位的
26、輪流點亮各個位,對于顯示器的每一位來說,每隔一段時間點亮一次。利用人的視覺暫留功能可以看到整個顯示,但必須保證掃描速度足夠快,字符才不閃爍。顯示器的亮度既與導通電流有關,也于點亮時間與間隔時間的比例有關。調整參數可以實現較高穩(wěn)定度的顯示。動態(tài)顯示節(jié)省了I/O口,降低了能耗。</p><p> 從節(jié)省I/O口和降低能耗出發(fā),本設計采用方案二。</p><p> 2.3 單元電路設計<
27、;/p><p> 2.3.1 晶體振蕩電路</p><p> 時鐘電路原理圖。如圖2.1所示,在AT89S51芯片內部有一個高增益反相放大器,其輸入端為芯片引腳XTAL1,輸出端為引腳XTAL2。而在芯片內部,XTAL1和XTAL2之間跨接晶體振蕩器和微調電容,從而構成一個穩(wěn)定的自激振蕩器。時鐘電路產生的振蕩脈沖經 過觸發(fā)器進行二分頻之后,才成為單片機的時鐘脈沖信號。</p>
28、<p> 圖2.1 晶體振蕩電路</p><p> 2.3.2 復位電路</p><p> 單片機復位的條件是:必須使RST/VPD 或RST引腳加上持續(xù)兩個機器周期(即24個振蕩周期)的高電平。例如,若時鐘頻率為12 MHz,每機器周期為1μs,則只需2μs以上時間的高電平,在RST引腳出現高電平后的第二個機器周期執(zhí)行復位。單片機常見的復位如圖2.2所示。電路為上電復
29、位電路,它是利用電容充電來實現的。在接電瞬間,RESET端的電位與VCC相同,隨著充電電流的減少,RESET的電位逐漸下降。只要保證RESET為高電平的時間大于兩個機器周期,便能正常復位。 該電路除具有上電復位功能外,若要復位,只需按圖中的RESET鍵,此時電源VCC經電阻R1、R2分壓,在RESET端產生一個復位高電平。</p><p><b> 圖2.2 復位電路</b></p&
30、gt;<p> 2.3.3 顯示電路</p><p> 系統(tǒng)采用動態(tài)顯示方式,用P0口來控制LED數碼管的段控線,而用P2口來控制其位控線。如圖2.3所示。動態(tài)顯示通常都是采用動態(tài)掃描的方法進行顯示,即循環(huán)點亮每一個數碼管,這樣雖然在任何時刻都只有一位數碼管被點亮,但由于人眼存在視覺殘留效應,只要每位數碼管間隔時間足夠短,就可以給人以同時顯示的感覺。</p><p>
31、圖2.3 數碼管電路</p><p> 2.3.4 鍵盤電路</p><p> 鍵盤的操作,無論是按鍵或鍵盤都是利用機械觸點的合、斷作用。一個電壓信號通過機械觸點的閉合、斷開過程。由于機械觸點的彈性作用,在閉合及斷開瞬間均有抖動過程,會出現一系列負脈沖。抖動時間的長短,與開關的機械特性有關,一般為5—10ms。 </p><p> 圖2
32、.4 獨立式鍵盤 </p><p> 第三章 系統(tǒng)軟件設計</p><p><b> 3.1程序流程圖</b></p><p> 數字電子鐘主要包括初始化程序,中斷服務程序和鍵處理程序。程序流程圖如圖3.1,圖3.2,圖3.3,圖3.4所示。</p><p> 圖3.3定時1服務中斷程序</p>&
33、lt;p> 圖3.4 鍵處理程序</p><p><b> 3.2源程序</b></p><p> ;偽指令定義區(qū) </p><p> SECLEQU30H</p><p> SECHEQU31H</p><p> MINUTELEQU32H<
34、/p><p> MINUTEHEQU33H</p><p> HOURLEQU34H</p><p> HOURHEQU35H</p><p> S2BZBIT2FH.0</p><p> S3BZBIT2FH.1</p><p> S4BZBI
35、T2FH.2</p><p> S5BZBIT2FH.3</p><p> S6BZBIT2FH.4</p><p> ;**********************************************************;</p><p><b> ;起始程序</b><
36、;/p><p><b> ORG0000H</b></p><p> START:LJMPMAIN</p><p><b> ORG000BH</b></p><p> LJMPTC0</p><p> ;************************
37、**********************************;</p><p><b> ;監(jiān)控程序</b></p><p> ORG0030H </p><p> MAIN:MOVSP,#7FH;堆棧初始化</p><p> MOVPSW,#00H;當前通用寄存器組初
38、始化</p><p> MOVR0,#20H;</p><p> MOVR2,#96;循環(huán)次數,用戶RAM單元個數</p><p> CL:MOV@R0,#00H;清零</p><p> INCR0;</p><p> DJNZR2,CL;用戶RA
39、M ,20H-7FH清零</p><p> MOVTMOD,#01H;定時器0方式1工作</p><p> MOVTH0,#3CH</p><p> MOVTL0,#0B0H ;定時器初始化 定時50ms</p><p><b> SETBEA</b></p><p
40、><b> SETBET0</b></p><p> MOV40H, #20</p><p> TCC:MOVDPTR,#DISBH ;系統(tǒng)初始化后‘P.’字符代碼首地址</p><p> MOVR0,#78H ;顯示子程序入口首地址</p><p> MOVR5,
41、#8H ;8位數碼管,故需要循環(huán)8次</p><p><b> CLRA</b></p><p> DISPTSF:PUSHACC ;保護A</p><p> MOVCA,@A+DPTR </p><p> MOV@R0,A ;將P.字符代碼送入顯示緩沖區(qū)</
42、p><p> POPACC ;恢復A</p><p> INCA </p><p> INCR0 ;為送下一個字符代碼序號做準備</p><p> DJNZR5,DISPTSF </p><p> ML0:LCALLDISP ;調用顯示子程
43、序</p><p><b> LCALLKEY</b></p><p> KEY0:JB20H.0,S2FUNCTION</p><p> JB20H.1,S3FUNCTION</p><p> JB20H.2,S4FUNCTION</p><p> J
44、B20H.3,S5FUNCTION</p><p><b> LJMPML0</b></p><p> ;**********************************************************;</p><p><b> ;鍵功能程序;</b></p><p
45、> S2FUNCTION:CPLS2BZ;1代表開始</p><p> JBS2BZ,STARTTIME1</p><p><b> CLRTR0</b></p><p><b> LJMPUP1</b></p><p> STARTTIME1:SETB
46、TR0 ;開始計時</p><p> UP1:LCALLUPDATE</p><p> LCALLDISP</p><p><b> LJMPML0</b></p><p> S3FUNCTION:JBTR0,ML0;判斷時鐘停止后進行調整</p><
47、;p> MOVR0,#SECH;入口為秒位</p><p> SSSS: LCALLDAAD1;秒加1</p><p> MOVA,R2;判斷秒是否計滿到60</p><p> XRLA,#60H</p><p> JNZTTTT;沒滿則轉移更新顯緩</p>
48、<p> LCALLCLR0;滿則清零</p><p> TTTT:LCALLUPDATE</p><p><b> LJMPML0</b></p><p> S4FUNCTION:JBTR0,ML0 ;判斷時鐘停止后進行調整</p><p> MOVR0,
49、#MINUTEH ;入口為分位</p><p><b> LJMPSSSS</b></p><p> S5FUNCTION:JBTR0,ML0 ;判斷時鐘停止后進行調整</p><p> MOVR0,#HOURH ;入口為時位</p><p> FFFF: LCALLD
50、AAD1</p><p> MOVA,R2</p><p> XRLA,#24H ;判斷時是否計滿到24</p><p> JNZTTTT ;沒滿則轉移更新顯緩</p><p> LCALLCLR0 ;滿則清零</p><p>
51、; ;**********************************************************;</p><p><b> ;中斷服務程序;</b></p><p> TC0:PUSHPSW</p><p><b> PUSHACC</b></p><p>
52、<b> SETBRS1</b></p><p><b> SETBRS0</b></p><p> MOVTH0,#3CH ;定時器初值重裝 定時50ms</p><p> MOVTL0,#0B0H</p><p> MOVA,40H</p>
53、<p><b> DECA</b></p><p> MOV40H,A ;</p><p> JNZRET0 ;不為0則轉移</p><p> MOV40H, #20 ;為零則1S到,秒加一</p><p>
54、 MOVR0,#SECH ;秒位送加一子程序入口</p><p> LCALLDAAD1 ;</p><p> MOVA,R2 ;</p><p> XRLA,#60H ;判斷秒位是否到60</p><p> JNZRET0
55、 ;沒到則更新顯緩</p><p> LCALLCLR0 ;到了則清零顯緩</p><p> MOVR0,#MINUTEH ;同時分為也該加一</p><p> LCALLDAAD1</p><p> MOVA,R2</p><p> XRLA,#60H
56、 ;判斷分位是否到60</p><p> JNZRET0 ;沒到則更新顯緩</p><p> LCALLCLR0 ;到了則清零顯緩</p><p> MOVR0,#HOURH ;同時時為也該加一</p><p> LCALLDAAD1</p&
57、gt;<p> MOVA,R2</p><p> XRLA,#24H ;判斷分位是否到24</p><p> JNZRET0 ;沒到則更新顯緩</p><p> LCALLCLR0 ;到了則清零顯緩</p><p> RET0:L
58、CALLUPDATE ;更新顯緩</p><p><b> POPACC</b></p><p><b> POP PSW</b></p><p><b> RETI</b></p><p> ;**********************
59、************************************;</p><p><b> ;常數表格區(qū)</b></p><p> ;系統(tǒng)初始化后1-8字符代碼表</p><p> DISBH: DB 10H,10H,10H,10H,10H,10H,10H,11H </p><p> ;
60、提示符“P.”字符序號</p><p> ;顯示字符段選碼表(共陽極代碼)</p><p> TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H ;0-8 DB 90H,88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH ,0BFH </p><p>
61、 ;9,A,B,C,D,E,F,滅,p. ,-</p><p> ;**********************************************************;</p><p> ;加1子程序 由R0進入</p><p><b> DAAD1:</b></p><p> MOVA
62、,@R0</p><p> DECR0 ;指向個位</p><p> SWAPA ;個位互換到第四位</p><p> ORLA,@R0 ;合字</p><p> ADDA,#01H</p><p> DAA ;加一并調整</p&g
63、t;<p> MOVR2,A ;保存數值到R2</p><p> ANLA,#0FH ;屏蔽高4位</p><p> MOV@R0,A ;此時R0指向個位顯緩 </p><p> INCR0 ;指向十位</p><p> MOVA, R
64、2 ;將數值重新取出</p><p> ANLA,#0F0H ;屏蔽低4位</p><p> SWAPA ;壓縮為BCD碼</p><p> MOV@R0,A ;此時R0指向十位顯緩</p><p><b> RET</b></p><p> ;清
65、零子程序 由R0進入</p><p> CLR0:CLRA</p><p> MOV@R0,A ;此時R0指向十位顯緩清零</p><p><b> DECR0</b></p><p> MOV@R0,A ;此時R0指向個位顯緩清零</p><p
66、><b> RET</b></p><p> ;更新顯示緩沖區(qū)子程序</p><p> UPDATE:MOV78H, SECL</p><p> MOV79H, SECH</p><p> MOV7AH,#12H</p><p> MOV7BH
67、,MINUTEL</p><p> MOV7CH,MINUTEH</p><p> MOV7DH,#12H</p><p> MOV7EH,HOURL</p><p> MOV7FH,HOURH</p><p><b> RET</b></p>
68、<p><b> ;鍵掃描子程序</b></p><p> KEY: LCALL KEYCHULI;調P1口數據處理子程序</p><p> JZ EXIT1;沒有鍵按下,轉返回</p><p> LCALL DISP;調顯示子程序去抖動</p><p> L
69、CALL DISP</p><p> LCALL KEYCHULI;調P1口數據處理子程序</p><p> JZ EXIT1;沒有鍵按下,轉返回</p><p> MOV B,20H ;保存取反后的鍵值</p><p> KEYSF: LCALL KEYCHULI;調P1口數據處理
70、子程序</p><p> JZ KEY1;鍵釋放,轉恢復鍵值</p><p> LCALL DISP;調顯示子程序延時</p><p> LJMP KEYSF;等待釋放</p><p> KEY1:MOV 20H,B;鍵值送20H保存</p><p> EXIT1
71、:RET</p><p> ;P1口數據處理子程序</p><p> KEYCHULI:PUSH PSW;保護現場</p><p> CLRRS1;改變當前寄存器組為組1</p><p><b> SETBRS0</b></p><p> MOVP1,
72、#0FFH;先向P1口寫1</p><p> MOV A,P1;讀P1口數據</p><p> CPLA;P1口數據取反</p><p> MOV20H,A ;保存取反后的鍵值</p><p> CLRRS1;恢復當前寄存器組為組0</p><p> CLR
73、 RS0</p><p> POPPSW ;恢復現場</p><p> RET ;子程序返回</p><p> ;數碼管顯示子程序DISP</p><p> 入口:7FH,7EH,7DH,7CH,7BH,7AH,79H,78H(LED7---LED0)</p><p>
74、 DISP:PUSHDPH</p><p><b> PUSHDPL</b></p><p><b> PUSHACC</b></p><p><b> PUSHPSW</b></p><p><b> CLRRS1</b><
75、/p><p> SETBRS0;改變當前通用寄存器組為1</p><p> MOVR1,#78H;顯示緩沖存取單元首地址</p><p> MOVR2,#0FEH;從右至左顯示(11111110B)</p><p> MOVR5,#8H;循環(huán)次數,即為數碼管的個數</p><
76、p> DISP1:MOVA,@R1;</p><p> MOVDPTR,#TAB;</p><p> MOVC A,@A+DPTR;</p><p> MOVP0,A;送段控</p><p> MOVP2,R2;送位控</p><p> LCALL
77、DL;延時1ms</p><p> MOV A,R2;送位控碼</p><p> RLA;獲得新的位控碼</p><p> MOVR2,A;保存新的位控碼</p><p> INCR1;獲得新的現實緩沖單元地址</p><p> DJNZR5
78、,DISP1;循環(huán)沒有結束則繼續(xù)</p><p> DISP2:POPPSW ;恢復當前通用寄存器組序號</p><p> POPACC</p><p> POPDPL</p><p> POPDPH ;恢復現場</p><p> RET
79、</p><p> ;**********************************************************;</p><p> ;延時1ms子程序(晶振頻率12MHz)DL</p><p> DL:MOVR7, #02H</p><p> DL1:MOVR6, #
80、0FFH</p><p> DL2:DJNZR6, DL2</p><p> DJNZR7, DL1</p><p><b> RET</b></p><p><b> END</b></p><p><b> 第四章 系統(tǒng)調試&l
81、t;/b></p><p><b> 4.1軟件調試步驟</b></p><p> 1、打開軟件后,在Project菜單中選擇New Project命令,打開一個新項目。保存此項目,輸入工程文件名后,并保存工程文件的目錄。</p><p> 2、為項目文件選擇一個目標器件,即選擇8051的類型。在Data base 列表框中選擇“A
82、TML 89C52”,確定。</p><p> 3、上述設置好后,創(chuàng)建源程序文件并輸入程序代碼。輸入好代碼后點擊“文件/保存”。</p><p> 4、把源文件添加到項目中,用鼠標指在目標工作區(qū)的目標1,點擊右鍵在彈出的菜單中選擇添加文件到源代碼組,在彈出的添加文件框中,選擇需要添加到項目中的文件。</p><p> 5、開始編譯,對項目文件進行編譯。若沒有錯
83、誤后進行硬件調試</p><p><b> 4.2硬件調試</b></p><p> 按照此次課程設計的要求調試過程如下:按鍵KEY0,KEY1,KEY2,KEY3分別對應LED流水燈,,數碼管,音樂三個功能。</p><p> 1、LED流水燈測試</p><p> 通過按按鍵KEY0,觀察到LED流水燈顯示,
84、并循環(huán)2次;與相應的程序代碼相比較,結果正確。</p><p><b> 2、數碼管測試</b></p><p> 通過按按鍵KEY2,觀察到數碼管從“1000” 開始計時,依次顯示“1001” ,“1002” ,“1003” …… ;與相應的程序代碼相比較,結果正確。</p><p><b> 3、溫度傳感器測試</b
85、></p><p> 通過連接短路帽2,觀察到數碼管顯示溫度,比較幾次;與相應的程序代碼相比較,聯系18B20附近溫度.結果。</p><p> 第五章 設計體會和結論</p><p> 在硬件電路制作階段,我到圖書館、網上查閱各種資料,在電腦上使用 PROTEL99SE 進行以及相關的繪圖軟件,使自己在理論分析設計和動手操作能 力等各方面得到了極大提高
86、。我通過對設計任務書的具體要求分析思考,再加 上以前在學校進行的各種相關實踐和實習積累的經驗,首次完成了硬件電路板 的制作,雖然在初次制板時,其中在鉆孔時,看著別人鉆好簡單,自己一試, 也不是一件容易的事,不僅看得你眼花繚亂,還一不小心,鉆頭就斷了,鉆孔 那天我組就弄斷了好幾個。后來隨著動作越來越熟練,速度也越來越快。盡管 板面沒買得好看,但那也是我們的成果,還有因不細心、不熟習制作流程,還 有打印的時候由于油墨的質量不行且不夠濃,導致
87、第一塊電路板有很多的斷線 而報廢,但經過反復檢驗和飛線,總算成功,但是還有很多地方 要改進才行,以后做板子的時候要特別注意。硬件電路板制好后,在利用 ASM51 軟件編寫程序調試時,遇到了不少困難,這使我學會了耐心分析問題,并進一 步鍛煉自己去攻破難題的能力。</p><p> 這次課程設計整體來說是成功的,但我也發(fā)現了自己許多錯漏和不足之 處。譬如,最簡單的程序沒寫好就想著寫更復雜的程序,做事還是缺乏耐性和
88、細心,當有時遇到問題時,總覺得無從下手,對于課本上的知識不能很好的組 織起來。以后會更認真的學習相關內容。</p><p><b> 參考文獻</b></p><p> 【1】 陳石勝,單片機 技術應用 . 廣東: 廣東省技師學院電氣自動化專業(yè)教改教材,2007</p><p> 【2】 李廣第,單片機基礎 . 北京: 北京航空航天大
89、學出版社, 2001</p><p> 【3】求是科技編著,單片機典型模塊設計實例導航.北京:人民郵電出版社,2004</p><p> 【4】孫涵芳,MCS-51系列單片機原理及應用 .北京:北京航空航天大學出版社.1996-4</p><p> 【5】于海生,微型計算機控制技術 .北京:清華大學出版社.1999-6</p><p>
90、;<b> 致謝</b></p><p> 最后,感謝老師的悉心指導,感謝同學在我遇到麻煩時幫忙排解困難,經過近兩周時間,終于完成了這次課程設計。從中鍛煉了自己,再次知道在困難面前只要你堅持就能排除任何難題。今后,我將更努力、更認真的學習單片機技術,力求自己在這門學科上取得更大的進步。謝謝大家!</p><p><b> 附錄一:電路原理圖</b
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《單片機技術》電子鐘課程設計---數字電子鐘
- 單片機電子鐘課程設計
- 單片機電子鐘課程設計報告
- 電子鐘課程設計--基于單片機的電子鐘設計
- 單片機課程設計--數字鐘電子鐘
- 單片機課程設計——數字電子鐘
- 單片機課程設計--數字電子鐘
- 單片機課程設計--數字電子鐘
- 單片機電子鐘課程設計報告
- 電子鐘課程設計----數字電子鐘的設計
- 單片機數字電子鐘課程設計
- 單片機課程設計--數字電子鐘
- 單片機課程設計--數字電子鐘設計
- 電子鐘單片機課程設計
- 單片機課程設計數字電子鐘
- 單片機課程設計--電子鐘
- 單片機課程設計(電子鐘)
- 單片機課程設計---數字電子鐘的設計
- 電子時鐘數字電子鐘單片機課程設計
- 數字電子鐘課程設計
評論
0/150
提交評論