單片機(jī)課程設(shè)計(jì)---單片機(jī)數(shù)字時(shí)鐘_第1頁(yè)
已閱讀1頁(yè),還剩19頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、<p><b>  目 錄</b></p><p><b>  目 錄1</b></p><p>  第一章 課程設(shè)計(jì)內(nèi)容與要求分析1</p><p>  1.1課程設(shè)計(jì)內(nèi)容1</p><p>  1.2課程設(shè)計(jì)要求分析1</p><p>  第二章

2、課程設(shè)計(jì)原理2</p><p>  第三章 課程設(shè)計(jì)步驟3</p><p><b>  課程設(shè)計(jì)總結(jié)15</b></p><p><b>  參考文獻(xiàn)17</b></p><p><b>  評(píng)語(yǔ)及成績(jī)18</b></p><p>  第一章

3、課程設(shè)計(jì)內(nèi)容與要求分析</p><p><b>  課程設(shè)計(jì)內(nèi)容</b></p><p>  該課程設(shè)計(jì)是利用80C51單片機(jī)內(nèi)部的定時(shí)/計(jì)數(shù)器、中斷系統(tǒng)和LED顯示器等部件,設(shè)計(jì)一個(gè)單片機(jī)數(shù)字時(shí)鐘。設(shè)計(jì)的數(shù)字時(shí)鐘通過(guò)數(shù)碼管顯示。</p><p>  采用共陽(yáng)極LED的動(dòng)態(tài)顯示方式,用擴(kuò)展74LS164的并行輸出做段選,74LS164的CLK接

4、P1.3,數(shù)據(jù)輸入端接P1.2,通過(guò)軟件編程,用P1.2、P1.3模擬移位寄存器工作方式。P1.4~P1.7作位選。</p><p>  1.2課程設(shè)計(jì)要求分析</p><p>  功能要求:時(shí)間以24小時(shí)進(jìn)制,時(shí)間誤差小于2秒,保證計(jì)時(shí)的穩(wěn)定及準(zhǔn)確須由晶體振蕩器提供表針時(shí)間基準(zhǔn)信號(hào)。</p><p>  原理及方法:結(jié)合實(shí)驗(yàn)設(shè)備實(shí)現(xiàn)時(shí)硬件電路、原理、方法、說(shuō)明(初

5、始化、存儲(chǔ)分配、工作方式)等。</p><p>  程序設(shè)計(jì):計(jì)時(shí)、比較、顯示。</p><p>  調(diào)試:遇到的問(wèn)題、解決方法。</p><p>  最小計(jì)時(shí)單位是秒,獲得1s的定時(shí)時(shí)間,可設(shè)置定時(shí)器工作在方式1,最大定時(shí)時(shí)間也只能131ms??蓪⒍〞r(shí)器的定時(shí)時(shí)間定為5ms,中斷方式進(jìn)行溢出次數(shù)的累計(jì),計(jì)滿20次,即得秒計(jì)時(shí)。而計(jì)數(shù)20次可用循環(huán)程序的方法實(shí)現(xiàn)。

6、</p><p>  從秒到分,從分到時(shí)是通過(guò)軟件累加并比較來(lái)實(shí)現(xiàn)。要求每滿1秒,則“秒”單元32H中的內(nèi)容加1;“秒”單元滿60,則“分”單元31H中的內(nèi)容加1;“分”單元滿60,則將32H、31H的內(nèi)容全部清“0”。 </p><p>  第二章 課程設(shè)計(jì)原理</p><p>  利用MCS-51系列單片機(jī)的可編程定時(shí)/計(jì)數(shù)器、中斷系統(tǒng)來(lái)實(shí)現(xiàn)時(shí)鐘計(jì)數(shù)。

7、</p><p><b>  計(jì)數(shù)初值計(jì)算:</b></p><p>  把定時(shí)器設(shè)為工作方式1,定時(shí)時(shí)間為5ms,則計(jì)數(shù)溢出20次即得時(shí)鐘計(jì)時(shí)最小單位秒,而20次計(jì)數(shù)可用軟件方法實(shí)現(xiàn)。</p><p>  假設(shè)使用T/C0,方式1,5ms定時(shí),fosc=12MHz。</p><p>  則初值X滿足(65536-X)&

8、#215;12/12MHz×100Ms =55536μs</p><p>  X=55536→1110110101111000→EC78H</p><p>  采用中斷方式進(jìn)行溢出次數(shù)累計(jì),計(jì)滿10次為秒計(jì)時(shí)(1秒);</p><p>  從秒到分和從分到時(shí)的計(jì)時(shí)是通過(guò)累加和數(shù)值比較實(shí)現(xiàn)。</p><p><b>  硬件

9、原理圖</b></p><p>  采用共陽(yáng)極LED的動(dòng)態(tài)顯示方式,用擴(kuò)展74LS164的并行輸出做段選,74LS164的CLK接P1.3,數(shù)據(jù)輸入端接P1.2,通過(guò)軟件編程,用P1.2、P1.3模擬移位寄存器工作方式。P1.4~P1.7作位選。如圖1所示。</p><p><b>  圖1硬件電路原理圖</b></p><p> 

10、 第三章 課程設(shè)計(jì)步驟</p><p><b>  一、設(shè)計(jì)方案的選擇</b></p><p><b>  1.計(jì)時(shí)方案</b></p><p>  方案1:采用實(shí)時(shí)時(shí)鐘芯片</p><p>  現(xiàn)在市場(chǎng)上有很多實(shí)時(shí)時(shí)鐘集成電路,如DS1287、DS12887、DS1302等。這些實(shí)時(shí)時(shí)鐘芯片具備年

11、、月、日、時(shí)、分、秒計(jì)時(shí)功能和多點(diǎn)定時(shí)功能,計(jì)時(shí)數(shù)據(jù)的更新每秒自動(dòng)進(jìn)行一次,不需要程序干預(yù)。因此,在工業(yè)實(shí)時(shí)測(cè)控系統(tǒng)中多采用這一類專用芯片來(lái)實(shí)現(xiàn)實(shí)時(shí)時(shí)鐘功能。</p><p>  方案2:使用單片機(jī)內(nèi)部的可編程定時(shí)器。</p><p>  利用單片機(jī)內(nèi)部的定時(shí)計(jì)數(shù)器進(jìn)行中端定時(shí),配合軟件延時(shí)實(shí)現(xiàn)時(shí)、分、秒的計(jì)時(shí)。該方案節(jié)省硬件成本,但程序設(shè)計(jì)較為復(fù)雜。</p><p&g

12、t;<b>  2.顯示方案</b></p><p>  對(duì)于實(shí)時(shí)時(shí)鐘而言,顯示顯然是另一個(gè)重要的環(huán)節(jié)。通常LED顯示有兩種方式:動(dòng)態(tài)顯示和靜態(tài)顯示。</p><p>  靜態(tài)顯示的優(yōu)點(diǎn)是程序簡(jiǎn)單、顯示亮度有保證、單片機(jī)CPU的開(kāi)銷(xiāo)小,節(jié)約CPU的工作時(shí)間。但占有I/O口線多,每一個(gè)LED都要占有一個(gè)I/O口,硬件開(kāi)銷(xiāo)大,電路復(fù)雜。需要幾個(gè)LED就必須占有幾個(gè)并行口,

13、比較適用于LED數(shù)量較少的場(chǎng)合。當(dāng)然當(dāng)LED數(shù)量較多的時(shí)候,可以使用單片機(jī)的串行口通過(guò)移位寄存器的方式加以解決,但程序編寫(xiě)比較麻煩。</p><p>  LED動(dòng)態(tài)顯示硬件連接簡(jiǎn)單,但動(dòng)態(tài)掃描的顯示方式需要占有CPU較多的時(shí)間,在單片機(jī)沒(méi)有太多實(shí)時(shí)測(cè)控任務(wù)的情況下可以采用。</p><p>  本系統(tǒng)需要采用4位LED數(shù)碼管來(lái)分別顯示分、秒,因數(shù)碼管個(gè)數(shù)較多,故本系統(tǒng)選擇動(dòng)態(tài)顯示方式。&l

14、t;/p><p><b>  二、硬件部分</b></p><p>  1、STC89C51單片機(jī)介紹</p><p>  STC89C51單片機(jī)是由深圳宏晶公司代理銷(xiāo)售的一款MCU,是由美國(guó)設(shè)計(jì)生產(chǎn)的一種低電壓、高性能CMOS 8位單片機(jī),片內(nèi)含8kbytes的可反復(fù)寫(xiě)的FlashROM和128bytes的RAM,2個(gè)16位定時(shí)計(jì)數(shù)器。 <

15、/p><p>  STC89C51單片機(jī)內(nèi)部主要包括累加器ACC(有時(shí)也簡(jiǎn)稱為A)、程序狀態(tài)字PSW、地址指示器DPTR、只讀存儲(chǔ)器ROM、隨機(jī)存取存儲(chǔ)器RAM、寄存器、并行I/O接口P0~P3、定時(shí)器/計(jì)數(shù)器、串行I/O接口以及定時(shí)控制邏輯電路等。這些部件通過(guò)內(nèi)部總線聯(lián)接起來(lái),構(gòu)成一個(gè)完整的微型計(jì)算機(jī)。其管腳圖如圖所示。</p><p>  STC89C51單片機(jī)管腳結(jié)構(gòu)圖</p>

16、;<p><b>  VCC:電源。</b></p><p><b>  GND:接地。</b></p><p>  P0口:P0口為一個(gè)8位漏級(jí)開(kāi)路雙向I/O口,每腳可吸收8TTL門(mén)電流。當(dāng)P1口的管腳第一次寫(xiě)1時(shí),被定義為高阻輸入。P0能夠用于外部程 序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時(shí),P0 口作

17、為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須被拉高。</p><p>  P1口:P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門(mén)電流。P1口管腳寫(xiě)入1后,被內(nèi)部上拉為高,可用作 輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為第八位地址接收。 </p><p>  P2口:P

18、2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門(mén)電流,當(dāng)P2口被寫(xiě)“1”時(shí),其管腳被內(nèi)部上拉電阻 拉高,且作為輸入。并因此作為輸入時(shí),P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存 儲(chǔ)器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫(xiě)時(shí),P2口輸出其特殊功能寄存器 的內(nèi)容。P2口在FL

19、ASH編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。</p><p>  P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門(mén)電流。當(dāng)P3口寫(xiě)入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。</p><p>  P3口也可作為AT89C51的一些特殊功能口,如下表所示:</p>

20、<p><b>  口管腳 備選功能</b></p><p>  P3.0 RXD(串行輸入口)</p><p>  P3.1 TXD(串行輸出口)</p><p>  P3.2 /INT0(外部中斷0)</p><p>  P3.3 /INT1(外部中斷1)</p><p>  P3.

21、4 T0(記時(shí)器0外部輸入)</p><p>  P3.5 T1(記時(shí)器1外部輸入)</p><p>  P3.6 /WR(外部數(shù)據(jù)存儲(chǔ)器寫(xiě)選通)</p><p>  P3.7 /RD(外部數(shù)據(jù)存儲(chǔ)器讀選通)</p><p>  P3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)。</p><p>  RST:復(fù)位輸入。當(dāng)

22、振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。</p><p>  ALE/PROG:當(dāng)訪問(wèn)外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時(shí),ALE 端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此它可用作對(duì)外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器 時(shí),將跳過(guò)一個(gè)ALE脈沖。如想禁止ALE的輸

23、出可在SFR8EH地址上置0。此時(shí), ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無(wú)效。</p><p>  PSEN:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次/PSEN有效。但在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的/PSEN信號(hào)將不出現(xiàn)。</p><p>  EA/VPP:當(dāng)/EA保

24、持低電平時(shí),則在此期間外部程序存儲(chǔ)(0000H-FFFFH),不管是否有內(nèi)部程序存儲(chǔ)器。注意加密方式1時(shí), /EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。</p><p>  2、上電按鈕復(fù)位電路</p><p>  本設(shè)計(jì)采用上電按鈕復(fù)位電路:首先經(jīng)過(guò)上電復(fù)位,當(dāng)按下按鍵時(shí),RST直接與VCC相連

25、,為高電平形成復(fù)位,同時(shí)電解電容被電路放電;按鍵松開(kāi)時(shí),VCC對(duì)電容充電,充電電流在電阻上,RST依然為高電平,仍然是復(fù)位,充電完成后,電容相當(dāng)于開(kāi)路,RST為低電平,單片機(jī)芯片正常工作。其中電阻R2決定了電容充電的時(shí)間,R2越大則充電時(shí)間長(zhǎng),復(fù)位信號(hào)從VCC回落到0V的時(shí)間也長(zhǎng)。</p><p><b>  3、晶振電路</b></p><p>  本設(shè)計(jì)晶振電路采

26、用12M的晶振。晶振的作用是給單片機(jī)正常工作提供穩(wěn)定的時(shí)鐘信號(hào)。單片機(jī)的晶振并不是只能用12M,只要不超過(guò)20M就行,在準(zhǔn)許的范圍內(nèi),晶振越大,單片機(jī)運(yùn)行越快,還有用12M的就是好算時(shí)間,因?yàn)橐粋€(gè)機(jī)器周期為1/12時(shí)鐘周期,所以這樣用12M的話,一個(gè)時(shí)鐘周期為12us,那么定時(shí)器計(jì)一次數(shù)就是1us了,電容范圍在20-40pF之間,這里連接的是30pF的電容。</p><p>  機(jī)器周期=10*晶振周期=12*系

27、統(tǒng)時(shí)鐘周期</p><p><b>  4.下載端口</b></p><p>  設(shè)計(jì)用到的STC89C52單片機(jī)芯片的ISP下載線是通過(guò)單片機(jī)的TXD,RXD引腳把程序燒進(jìn)去的。管腳TXD和RXD用于異步串行通信。其實(shí)STC89C52單片機(jī)的ISP下載線就是一個(gè)max232芯片連接STC和計(jì)算機(jī)的串行通信口。計(jì)算機(jī)把程序從九針串口送到max232芯片,電平轉(zhuǎn)換后送進(jìn)

28、單片機(jī)的串行口,也就是TXD和RXD。然后單片機(jī)的串行模塊把數(shù)據(jù)送到程序區(qū)。</p><p><b>  5、顯示電路 </b></p><p>  就時(shí)鐘而言,通??刹捎靡壕э@示或數(shù)碼管顯示。由于一般的段式液晶屏,需要專門(mén)的驅(qū)動(dòng)電路,而且液晶顯示作為一種被動(dòng)顯示,可視性相對(duì)較差;對(duì)于具有驅(qū)動(dòng)電路和微處理器接口的液晶顯示模塊(字符或點(diǎn)陣),一般多采用并行接口,對(duì)微處理

29、器的接口要求較高,占用資源多。另外,89C2051本身無(wú)專門(mén)的液晶驅(qū)動(dòng)接口,因此,本時(shí)鐘采用數(shù)碼管顯示方式。數(shù)碼管作為一種主動(dòng)顯示器件,具有亮度高、價(jià)格便宜等優(yōu)點(diǎn),而且市場(chǎng)上也有專門(mén)的時(shí)鐘顯示組合數(shù)碼管。</p><p>  對(duì)于實(shí)時(shí)時(shí)鐘而言,顯示顯然是另一個(gè)重要的環(huán)節(jié)。通常LED顯示有兩種方式:動(dòng)態(tài)顯示和靜態(tài)顯示。</p><p>  靜態(tài)顯示的優(yōu)點(diǎn)是程序簡(jiǎn)單、顯示亮度有保證、單片機(jī)CP

30、U的開(kāi)銷(xiāo)小,節(jié)約CPU的工作時(shí)間。但占有I/O口線多,每一個(gè)LED都要占有一個(gè)I/O口,硬件開(kāi)銷(xiāo)大,電路復(fù)雜。需要幾個(gè)LED就必須占有幾個(gè)并行口,比較適用于LED數(shù)量較少的場(chǎng)合。當(dāng)然當(dāng)LED數(shù)量較多的時(shí)候,可以使用單片機(jī)的串行口通過(guò)移位寄存器的方式加以解決,但程序編寫(xiě)比較麻煩。</p><p>  LED動(dòng)態(tài)顯示硬件連接簡(jiǎn)單,但動(dòng)態(tài)掃描的顯示方式需要占有CPU較多的時(shí)間,在單片機(jī)沒(méi)有太多實(shí)時(shí)測(cè)控任務(wù)的情況下可以采

31、用。</p><p>  本系統(tǒng)需要采用4位LED數(shù)碼管來(lái)分別顯示分、秒,因數(shù)碼管個(gè)數(shù)較多,故本系統(tǒng)選擇動(dòng)態(tài)顯示方式。</p><p><b>  三、軟件部分</b></p><p>  軟時(shí)鐘是利用單片機(jī)內(nèi)部的定時(shí)器\計(jì)數(shù)器來(lái)實(shí)現(xiàn)的,它的處理過(guò)程如下:首先設(shè)定單片機(jī)內(nèi)部的一個(gè)定時(shí)器\計(jì)數(shù)器工作于定時(shí)方式,對(duì)機(jī)器周期計(jì)數(shù)形成基準(zhǔn)時(shí)間,然后用另

32、一個(gè)定時(shí)器\計(jì)數(shù)器或軟件計(jì)數(shù)的方法對(duì)基準(zhǔn)時(shí)間計(jì)數(shù)形成秒,秒計(jì)60次形成分,然后通過(guò)數(shù)碼管把它們的內(nèi)容在相應(yīng)位置顯示出來(lái)。</p><p>  數(shù)碼管顯示可以采用靜態(tài)顯示方法或動(dòng)態(tài)顯示方法。靜態(tài)顯示方法需要數(shù)據(jù)鎖存器等硬件,接口復(fù)雜,時(shí)鐘顯示用6個(gè)數(shù)碼管。由于系統(tǒng)沒(méi)有其他的復(fù)雜的任務(wù)處理,而且顯示的時(shí)鐘信息隨時(shí)都可能變化,一般采用動(dòng)態(tài)顯示方式。動(dòng)態(tài)顯示方法線路相對(duì)簡(jiǎn)單,但需動(dòng)態(tài)掃描,掃描頻率要大于人眼視覺(jué)暫留頻率,

33、信息看起來(lái)才穩(wěn)定。譯碼方式可分為軟件譯碼和硬件譯碼,軟件譯碼通過(guò)譯碼程序查得顯示信息的字段碼;硬件譯碼通過(guò)硬件譯碼器得到顯示信息的字段碼,實(shí)際中通常采用軟件譯碼。</p><p>  在具體處理時(shí),定時(shí)器計(jì)數(shù)器采用中斷方式工作,對(duì)時(shí)鐘的形成在中斷服務(wù)程序中實(shí)現(xiàn)。在主程序中只需對(duì)定時(shí)器計(jì)數(shù)器初始化、調(diào)用顯示子程序和控制子程序。</p><p>  根據(jù)上述電子時(shí)鐘的工作流程,軟件設(shè)計(jì)可分為以

34、下幾個(gè)功能模塊:</p><p> ?。?)主程序模塊。主程序主要用于系統(tǒng)初始化:設(shè)置計(jì)時(shí)緩沖區(qū)的位置及初值,設(shè)置定時(shí)器的工作方式和計(jì)數(shù)初值等參數(shù)。</p><p>  (2)計(jì)時(shí)模塊。即定時(shí)器0中斷子程序,完成刷新計(jì)時(shí)緩沖區(qū)的功能。</p><p>  系統(tǒng)使用12MHz的晶振,假設(shè)定時(shí)器0工作在方式1,則定時(shí)器的最大定時(shí)時(shí)間為131ms,這個(gè)值遠(yuǎn)遠(yuǎn)小于1s。因此

35、本系統(tǒng)采用定時(shí)器與軟件循環(huán)相結(jié)合的定時(shí)方法。設(shè)定時(shí)器0工作在方式1,每隔5ms溢出中斷一次,則循環(huán)中斷20次延時(shí)時(shí)間是1s,上述過(guò)程重復(fù)60次為1分。</p><p>  因定時(shí)器0工作在方式1,則100ms定時(shí)對(duì)應(yīng)的定時(shí)器初值為:65536-50ms/1us=55536=EC08H,即TH0=ECH,TH0=08H。</p><p>  但應(yīng)當(dāng)指出:CPU從響應(yīng)T0中斷到完成定時(shí)器初值重

36、裝這段時(shí)間,定時(shí)器T0并不停止工作,而是繼續(xù)計(jì)數(shù)。因此,為了確保T0能準(zhǔn)確定時(shí)100ms,重裝的定時(shí)器初值必須加以修正,修正的定時(shí)器初值必須考慮到從原定時(shí)器初值中扣除計(jì)數(shù)器多計(jì)的脈沖個(gè)數(shù)。由于定時(shí)器計(jì)數(shù)脈沖的周期恰好和機(jī)器周期吻合,因此修正量等于CPU從響應(yīng)中斷到重裝完TL0為止所用的機(jī)器周期數(shù)。CPU響應(yīng)中斷通常要3~8個(gè)機(jī)器周期。經(jīng)過(guò)測(cè)試,定時(shí)器0重裝的計(jì)數(shù)初值設(shè)為3CB0H~3CBFH,可以滿足精度要求。另外,MCS-51單片機(jī)只

37、有二進(jìn)制加法指令,而時(shí)間是按十進(jìn)制遞增,因此用加法指令后必須進(jìn)行二-十進(jìn)制轉(zhuǎn)換。</p><p> ?。?)顯示模塊。該模塊完成時(shí)分秒4位LED的動(dòng)態(tài)顯示。因?yàn)轱@示為4位,二計(jì)時(shí)是4個(gè)字節(jié)單元,為此,必須將4字節(jié)計(jì)時(shí)緩沖區(qū)中的時(shí)分秒壓縮BCD碼拆分為8字節(jié)BCD碼,并送入顯示緩沖區(qū)中。</p><p><b>  程序:</b></p><p>

38、;<b>  ORG 0000H</b></p><p>  AJMP MAIN;上電,跳向主程序</p><p>  ORG 000BH;T0中斷入口</p><p><b>  AJMP T00K</b></p><p><b>  ORG 0030H</b></p&

39、gt;<p>  MAIN:MOV SP,#60H;設(shè)置堆棧指針</p><p>  STRT:MOV P1,#0FFH</p><p>  MOV TMOD,#01H;設(shè)置T0為方式1</p><p>  MOV TH0,#0ECH ;5MS</p><p>  MOV TL0,#78H</p><p&

40、gt;  MOV 14H,#20 ;中斷次數(shù)</p><p>  SETB TR0;開(kāi)啟T0</p><p>  SETB ET0;允許T0申請(qǐng)中斷</p><p>  SETB EA ;總中斷允許</p><p>  MOV 30H,#0 ;顯示緩沖單元</p><p>  MOV 31H,#0</p&g

41、t;<p>  MOV 32H,#0</p><p>  MOV 33H,#0</p><p>  MOV 10H,#0EFH ;記錄顯示位置</p><p>  MOV 11H,#30H ;記錄顯示單元</p><p>  CLR 05H ;交替閃爍標(biāo)志</p><p>  MOV

42、 3CH,#0 ;秒起始值</p><p>  MOV 3DH,#0</p><p>  MOV 41H,3CH ;41H是秒計(jì)數(shù)</p><p>  MOV 42H,3DH ;42H是分計(jì)數(shù)</p><p>  MOV R0,#3CH</p><p>  HH:SJMP HH ;等待中斷,調(diào)用顯示子程序&

43、lt;/p><p>  T00K:PUSH ACC ;T0中斷子程序</p><p>  PUSH PSW;T0中斷程序入口地址,保護(hù)現(xiàn)場(chǎng)</p><p><b>  PUSH 00H</b></p><p><b>  PUSH 01H</b></p><p>  MO

44、V TH0,#0ECH ;定時(shí)中斷,重裝初值</p><p>  MOV TL0,#78H</p><p>  DJNZ 14H,Z1</p><p>  MOV 14H,#20</p><p>  CPL 05H ;05H交替閃爍標(biāo)志</p><p>  SETB 04H

45、 ;1秒鐘到標(biāo)志</p><p>  CPL P1.0 ;秒閃爍</p><p><b>  SJMP Z1</b></p><p><b>  Z1:NOP</b></p><p>  ORL P1,#0F0H ;滅</p><p><b>

46、  MOV A,11H</b></p><p><b>  MOV R0,A</b></p><p><b>  MOV A,@R0</b></p><p>  MOV DPTR,#DDB</p><p>  MOVC A,@A+DPTR ;取段嗎</p><p&g

47、t;  MOV SCON,#00H</p><p>  MOV SBUF,A</p><p>  Z2:JNB TI,Z2</p><p><b>  MOV A,10H</b></p><p><b>  ANL P1,A</b></p><p><b>  RL

48、 A</b></p><p><b>  MOV 10H,A</b></p><p><b>  INC 11H</b></p><p>  JB ACC.0,TK1</p><p>  MOV 10H,#0EFH</p><p>  MOV 11H,#30H&l

49、t;/p><p>  TK1:DEC 13H ;健掃描延時(shí)</p><p>  JNB 04H,RETUN ;1S沒(méi)到,返回</p><p><b>  CLR 04H</b></p><p>  INC 40H ;秒加1</p><p><b>  MOV A,40

50、H</b></p><p>  CJNE A,#10,T01</p><p>  MOV 40H,#00H</p><p><b>  MOV A,41H</b></p><p><b>  ADD A,#1</b></p><p><b>  DA A

51、</b></p><p><b>  MOV 41H,A</b></p><p>  CJNE A,#60H,T01 </p><p>  MOV 41H,#0</p><p><b>  MOV A,42H</b></p><p><b>  AD

52、D A,#1</b></p><p><b>  DA A</b></p><p><b>  MOV 42H,A</b></p><p>  CJNE A,#60H,T01</p><p>  T01:MOV R0,#41H</p><p>  ACALL BC

53、DF</p><p>  RETUN:POP 01H</p><p><b>  POP 00H</b></p><p><b>  POP PSW</b></p><p><b>  POP ACC</b></p><p><b>  RET

54、I</b></p><p>  DDB:DB 0C0H,0F9H,0A4H,0B0H,99H ;段碼表</p><p>  DB 92H,82H,0F8H,80H,90H ;0—9</p><p>  BCDF:MOV A,@R0 ;把41h,42h分解送顯示緩沖區(qū)</p><p>  ANL A,#0FH</p

55、><p><b>  MOV 33H,A</b></p><p><b>  MOV A,@R0</b></p><p><b>  SWAP A</b></p><p>  ANL A,#0FH</p><p><b>  MOV 32H,A&l

56、t;/b></p><p><b>  INC R0</b></p><p><b>  MOV A,@R0</b></p><p>  ANL A,#0FH</p><p><b>  MOV 31H,A</b></p><p><b>

57、;  MOV A,@R0</b></p><p><b>  SWAP A</b></p><p>  ANL A,#0FH</p><p><b>  MOV 30H,A</b></p><p><b>  RET</b></p><p>

58、<b>  課程設(shè)計(jì)總結(jié)</b></p><p>  單片機(jī)課程設(shè)計(jì)是對(duì)單片機(jī)知識(shí)的驗(yàn)證,可以幫助我們理解鞏固所學(xué)知識(shí),激發(fā)我們對(duì)單片機(jī)課程的興趣,更鍛煉了我們獨(dú)立思考、開(kāi)拓創(chuàng)新的能力。對(duì)于單片機(jī)設(shè)計(jì),其硬件電路是比較簡(jiǎn)單的,主要是解決程序設(shè)計(jì)中的問(wèn)題,而程序設(shè)計(jì)是一個(gè)很靈活的東西,它反映了你解決問(wèn)題的邏輯思維和創(chuàng)新能力,它才是一個(gè)設(shè)計(jì)的靈魂所在。因此在整個(gè)設(shè)計(jì)過(guò)程中大部分時(shí)間是用在程序上面

59、的。很多子程序是可以借鑒書(shū)本上的,但怎樣銜接各個(gè)子程序才是關(guān)鍵的問(wèn)題所在,這需要對(duì)單片機(jī)的結(jié)構(gòu)很熟悉。因此可以說(shuō)單片機(jī)的設(shè)計(jì)是軟件和硬件的結(jié)合,二者是密不可分的。</p><p>  這次單片機(jī)課程設(shè)計(jì)不僅鞏固了以前所學(xué)過(guò)的知識(shí),而且學(xué)到了很多在書(shū)本上沒(méi)有學(xué)到過(guò)的知識(shí),掌握了一種系統(tǒng)的研究方法,可以進(jìn)行一些簡(jiǎn)單的編程。通過(guò)這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論

60、知識(shí)與實(shí)踐相結(jié)合起來(lái),從理論中得出結(jié)論,從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。同時(shí)在設(shè)計(jì)的過(guò)程中發(fā)現(xiàn)了自己的不足之處. 這是一個(gè)磨練意志的過(guò)程。從課題的選擇開(kāi)始,計(jì)算器的設(shè)計(jì)、硬件和軟件系統(tǒng)的設(shè)計(jì)、到最后的上機(jī)實(shí)踐,直至報(bào)告完成這其中經(jīng)歷了很多困難,但是更重要的是在這個(gè)過(guò)程中我得到了很大的鍛煉。一方面通過(guò)80C51單片機(jī)等一些器件的設(shè)計(jì)讓我學(xué)習(xí)和掌握了單片機(jī)技術(shù)的基礎(chǔ)知識(shí)和技術(shù)要點(diǎn),也使以前學(xué)的很多知識(shí)都得到了運(yùn)用;這是一個(gè)需要不

61、斷的嘗試,不斷的校核,不斷的修改,最后完成一個(gè)合理的設(shè)計(jì)的過(guò)程。需要的是細(xì)心和耐心。在很大程度上培養(yǎng)了我拼搏的工作精神。使我受益匪淺,更加明確了自己專業(yè)的方向。另一方面我不僅學(xué)到了關(guān)于單片機(jī)技術(shù)方面的許多專業(yè)知識(shí),同時(shí)也讓我感覺(jué)到團(tuán)隊(duì)合作的重要性。其實(shí)如何有效和快速的找到資料也是課設(shè)給我的啟發(fā),利用好圖書(shū)館和網(wǎng)絡(luò),是資源的到最</p><p>  通過(guò)單片機(jī)課程設(shè)計(jì),我不僅加深了對(duì)單片機(jī)理論的理解,將理論很好地應(yīng)

62、用到實(shí)際當(dāng)中去,而且我還學(xué)會(huì)了如何去培養(yǎng)我們的創(chuàng)新精神,從而不斷地戰(zhàn)勝自己,超越自己。創(chuàng)新,是要我們學(xué)會(huì)將理論很好地聯(lián)系實(shí)際,并不斷地去開(kāi)動(dòng)自己的大腦,從為人類造福的意愿出發(fā),做自己力所能及的,別人卻沒(méi)想到的事。使之不斷地戰(zhàn)勝別人,超越前人。同時(shí),更重要的是,我在這一設(shè)計(jì)過(guò)程中,學(xué)會(huì)了堅(jiān)持不懈,不輕易言棄。設(shè)計(jì)過(guò)程,也好比是我們?nèi)祟惓砷L(zhǎng)的歷程,常有一些不如意,也許這就是在對(duì)我們提出了挑戰(zhàn),勇敢過(guò),也戰(zhàn)勝了,勝利的鐘聲也就一定會(huì)為我們而敲

63、響。</p><p><b>  參考文獻(xiàn)</b></p><p>  張毅剛.單片機(jī)原理及應(yīng)用.哈爾濱:高等教育出版社,2004</p><p>  張毅剛.單片機(jī)原理及應(yīng)用設(shè)計(jì).北京:北京電子工業(yè)出版社,2008</p><p>  張毅剛.MCS-51單片機(jī)原理及應(yīng)用設(shè)計(jì).哈爾濱:哈爾濱工業(yè)大學(xué)出版社,1990&l

64、t;/p><p>  胡漢才.單片機(jī)原理及接口技術(shù).北京:清華大學(xué)出版社,1996</p><p>  王幸之.AT89系列單片機(jī)原理與接口技術(shù).北京:北京航空航天大學(xué)出版社,2004</p><p>  姜志海.單片機(jī)原理及應(yīng)用.上海:電子工業(yè)出版社,2001</p><p>  陳大欽.電子技術(shù)基礎(chǔ)試驗(yàn).北京:高等教育出版,2004</

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論