單片機(jī)課程設(shè)計(jì)--單片機(jī)電子時(shí)鐘的設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)
已閱讀1頁(yè),還剩19頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  《單片機(jī)原理及接口技術(shù)》</p><p><b>  課程設(shè)計(jì)</b></p><p>  題 目:?jiǎn)纹瑱C(jī)電子時(shí)鐘的設(shè)計(jì)與實(shí)現(xiàn)</p><p>  設(shè)計(jì)人員: </p><p>  學(xué) 號(hào): </p><p>  班

2、 級(jí): </p><p>  指導(dǎo)老師: </p><p>  日 期: </p><p><b>  目 錄</b></p><p>  一、設(shè)計(jì)要求 …………………………………………2</p><p

3、>  二、設(shè)計(jì)方案和論證 …………………………………2</p><p>  (一)總設(shè)計(jì)原理圖 ………………………………… 2</p><p> ?。ǘ┰O(shè)計(jì)方案的選擇 ………………………………2</p><p>  硬件部分 ………………………………………4</p><p>  軟件部分 ………………………………………8<

4、/p><p>  三、設(shè)計(jì)總結(jié)…………………………………………26</p><p>  四、參考文獻(xiàn)…………………………………………26</p><p><b>  一、設(shè)計(jì)要求</b></p><p>  1、準(zhǔn)確計(jì)時(shí),以數(shù)字形式顯示時(shí)、分、秒的時(shí)間。</p><p>  2、小時(shí)以24小時(shí)計(jì)時(shí)形式

5、,分秒計(jì)時(shí)為60進(jìn)位。 </p><p>  3、校正時(shí)間功能,即能隨意設(shè)定走時(shí)時(shí)間。</p><p>  4、鬧鐘功能,一旦走時(shí)到該時(shí)間,能以聲或光的形式告警提示。</p><p>  5、設(shè)計(jì)5V直流電源,系統(tǒng)時(shí)鐘電路、復(fù)位電路。 </p><p><b>  二、設(shè)計(jì)方案和論證</b></p><

6、;p>  本次設(shè)計(jì)時(shí)鐘電路,使用了ATC89C51單片機(jī)芯片控制電路,單片機(jī)控制電路簡(jiǎn)單且省去了很多復(fù)雜的線(xiàn)路,使得電路簡(jiǎn)明易懂,使用鍵盤(pán)鍵上的按鍵來(lái)調(diào)整時(shí)鐘的時(shí)、分、秒,用一揚(yáng)聲器來(lái)進(jìn)行定時(shí)提醒,同時(shí)使用匯編語(yǔ)言程序來(lái)控制整個(gè)時(shí)鐘顯示,使得編程變得更容易,這樣通過(guò)四個(gè)模塊:鍵盤(pán)、芯片、揚(yáng)聲器、LED顯示即可滿(mǎn)足設(shè)計(jì)要求。</p><p> ?。ㄒ唬?總設(shè)計(jì)原理框圖如下圖所示:</p><

7、;p> ?。ǘ┰O(shè)計(jì)方案的選擇</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í)鐘芯片具備年、月、日、時(shí)、分、秒計(jì)時(shí)功能和多點(diǎn)定時(shí)功能,計(jì)時(shí)數(shù)據(jù)的更新每秒自動(dòng)進(jìn)行一次,不需要程序干

8、預(yù)。因此,在工業(yè)實(shí)時(shí)測(cè)控系統(tǒng)中多采用這一類(lèi)專(zhuān)用芯片來(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><b>  2.顯示方案</b></p><

9、;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口線(xiàn)多,每一個(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ò)移

10、位寄存器的方式加以解決,但程序編寫(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)需要采用6位LED數(shù)碼管來(lái)分別顯示時(shí)、分、秒,因數(shù)碼管個(gè)數(shù)較多,故本系統(tǒng)選擇動(dòng)態(tài)顯示方式。</p><p><b> ?。ㄈ┯布糠?lt;/

11、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ù)器[5]。 </p><p>  STC89C51單片機(jī)內(nèi)部主要包括累加

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

13、t;</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 口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須被拉高。

14、</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口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL

15、門(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口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。</p>&l

16、t;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><p><b>  口管腳 備選功能</b>

17、</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.4 T0(記時(shí)器0外部輸入)</p><p>  P

18、3.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)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。</p>

19、;<p>  ALE/PROG:當(dāng)訪(fǎ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的輸出可在SFR8EH地址上置0。此時(shí), ALE只有在執(zhí)行MOVX,MOVC指令

20、是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無(wú)效。</p><p>  PSEN:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次/PSEN有效。但在訪(fǎng)問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的/PSEN信號(hào)將不出現(xiàn)。</p><p>  EA/VPP:當(dāng)/EA保持低電平時(shí),則在此期間外部程序存儲(chǔ)(0000H-FFFFH),不管是否有內(nèi)部

21、程序存儲(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相連,為高電平形成復(fù)位,同時(shí)電解電容被電路放電;按鍵松開(kāi)時(shí),VCC對(duì)電容充電,充

22、電電流在電阻上,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ì)晶振電路采用12M的晶振。晶振的作用是給單片機(jī)正常工作提供穩(wěn)定的時(shí)鐘信號(hào)。單片機(jī)的晶振

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

24、.下載端口</b></p><p>  設(shè)計(jì)用到的STC89C52單片機(jī)芯片的ISP下載線(xiàn)是通過(guò)單片機(jī)的TXD,RXD引腳把程序燒進(jìn)去的。管腳TXD和RXD用于異步串行通信。其實(shí)STC89C52單片機(jī)的ISP下載線(xiàn)就是一個(gè)max232芯片連接STC和計(jì)算機(jī)的串行通信口。計(jì)算機(jī)把程序從九針串口送到max232芯片,電平轉(zhuǎn)換后送進(jìn)單片機(jī)的串行口,也就是TXD和RXD。然后單片機(jī)的串行模塊把數(shù)據(jù)送到程序區(qū)。

25、</p><p><b>  5、顯示電路 </b></p><p>  就時(shí)鐘而言,通常可采用液晶顯示或數(shù)碼管顯示。由于一般的段式液晶屏,需要專(zhuān)門(mén)的驅(qū)動(dòng)電路,而且液晶顯示作為一種被動(dòng)顯示,可視性相對(duì)較差;對(duì)于具有驅(qū)動(dòng)電路和微處理器接口的液晶顯示模塊(字符或點(diǎn)陣),一般多采用并行接口,對(duì)微處理器的接口要求較高,占用資源多。另外,89C2051本身無(wú)專(zhuān)門(mén)的液晶驅(qū)動(dòng)接口,

26、因此,本時(shí)鐘采用數(shù)碼管顯示方式。數(shù)碼管作為一種主動(dòng)顯示器件,具有亮度高、價(jià)格便宜等優(yōu)點(diǎn),而且市場(chǎng)上也有專(zhuān)門(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ī)CPU的開(kāi)銷(xiāo)小,節(jié)約CPU的工作時(shí)間。但占有I/O口線(xiàn)多,每一個(gè)LED都要占有一

27、個(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ù)的情況下可以采用。</p><p>  本系統(tǒng)需要采用6位LED數(shù)

28、碼管來(lái)分別顯示時(shí)、分、秒,因數(shù)碼管個(gè)數(shù)較多,故本系統(tǒng)選擇動(dòng)態(tài)顯示方式。</p><p><b>  時(shí)鐘顯示校正電路</b></p><p>  本設(shè)計(jì)利用按鍵開(kāi)關(guān)來(lái)校正時(shí)鐘顯示的數(shù)字。當(dāng)按鈕按下時(shí),將在相應(yīng)的端口輸入一個(gè)低電平,通過(guò)相應(yīng)的程序來(lái)改變時(shí)鐘顯示。其中S1按鍵開(kāi)關(guān)用來(lái)選擇要修改的數(shù)字;S2按鍵用來(lái)增加所選數(shù)字的數(shù)值;S3按鍵用來(lái)減少所選數(shù)字的數(shù)值。<

29、/p><p><b>  7、總電路原理圖</b></p><p><b>  (五) 軟件部分</b></p><p>  根據(jù)上述電子時(shí)鐘的工作流程,軟件設(shè)計(jì)可分為以下幾個(gè)功能模塊:</p><p>  (1)主程序模塊。主程序主要用于系統(tǒng)初始化:設(shè)置計(jì)時(shí)緩沖區(qū)的位置及初值,設(shè)置8155的工作方式、

30、定時(shí)器的工作方式和計(jì)數(shù)初值等參數(shù)。主程序流程如下圖所示。</p><p><b>  開(kāi)始</b></p><p><b>  定義堆棧區(qū)</b></p><p>  T0、數(shù)據(jù)緩沖區(qū)、標(biāo)志位初始化</p><p><b>  調(diào)用鍵盤(pán)掃描程序</b></p>&

31、lt;p><b>  否</b></p><p>  是C/R鍵? </p><p><b>  是</b></p><p>  地址指針指向計(jì)時(shí)緩沖區(qū)</p><p><b>  調(diào)用時(shí)間設(shè)置程序</b></p><p><b&

32、gt;  主程序流程圖</b></p><p> ?。?)計(jì)時(shí)模塊。即定時(shí)器0中斷子程序,完成刷新計(jì)時(shí)緩沖區(qū)的功能。</p><p>  系統(tǒng)使用6MHz的晶振,假設(shè)定時(shí)器0工作在方式1,則定時(shí)器的最大定時(shí)時(shí)間為65.536ms,這個(gè)值遠(yuǎn)遠(yuǎn)小于1s。因此本系統(tǒng)采用定時(shí)器與軟件循環(huán)相結(jié)合的定時(shí)方法。設(shè)定時(shí)器0工作在方式1,每隔50ms溢出中斷一次,則循環(huán)中斷20次延時(shí)時(shí)間是1s,

33、上述過(guò)程重復(fù)60次為1分,分計(jì)時(shí)60次為1小時(shí),小時(shí)計(jì)時(shí)24次則時(shí)間重新回到00:00:00。</p><p>  因定時(shí)器0工作在方式1,則50ms定時(shí)對(duì)應(yīng)的定時(shí)器初值為:65536-50ms/2us=40536=9E58H,即TH0=9EH,TH0=58H。</p><p>  但應(yīng)當(dāng)指出:CPU從響應(yīng)T0中斷到完成定時(shí)器初值重裝這段時(shí)間,定時(shí)器T0并不停止工作,而是繼續(xù)計(jì)數(shù)。因此,為

34、了確保T0能準(zhǔn)確定時(shí)50ms,重裝的定時(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è)為9E5FH~9E67H,可以滿(mǎn)足精度要求。另外,MCS-51單片機(jī)只有二進(jìn)制加法指令,而時(shí)間是按十進(jìn)制遞增,因此用加法指令后必須

35、進(jìn)行二-十進(jìn)制轉(zhuǎn)換。</p><p>  計(jì)時(shí)模塊流程圖如下圖所示。</p><p><b>  保護(hù)現(xiàn)場(chǎng)</b></p><p><b>  重裝定時(shí)器初值</b></p><p><b>  循環(huán)次數(shù)減1</b></p><p><b> 

36、 否</b></p><p><b>  滿(mǎn)20次?</b></p><p><b>  是</b></p><p><b>  秒單元加1</b></p><p><b>  否</b></p><p><b&g

37、t;  60s到?</b></p><p><b>  是</b></p><p>  秒單元清0,分單元加1</p><p><b>  否</b></p><p><b>  60分到?</b></p><p><b>  是&

38、lt;/b></p><p>  分單元清0,時(shí)單元加1</p><p><b>  否</b></p><p><b>  24小時(shí)到?</b></p><p><b>  是</b></p><p><b>  時(shí)單元清0</b

39、></p><p><b>  恢復(fù)現(xiàn)場(chǎng)</b></p><p><b>  返回</b></p><p><b>  計(jì)時(shí)模塊流程圖</b></p><p>  (3)時(shí)間設(shè)置模塊。模塊由鍵盤(pán)輸入相應(yīng)的數(shù)據(jù)來(lái)設(shè)置當(dāng)前時(shí)間。程序通過(guò)調(diào)用一個(gè)鍵盤(pán)設(shè)置子程序通過(guò)鍵盤(pán)掃描將鍵入

40、的6位時(shí)間值送入顯示緩沖區(qū)。 </p><p> ?。?)顯示模塊。該模塊完成時(shí)分秒6位LED的動(dòng)態(tài)顯示。因?yàn)轱@示為6位,二計(jì)時(shí)是3個(gè)字節(jié)單元,為此,必須將3字節(jié)計(jì)時(shí)緩沖區(qū)中的時(shí)分秒壓縮BCD碼拆分為6字節(jié)BCD碼,并送入顯示緩沖區(qū)中。</p><p><b>  程序:</b></p><p&g

41、t;  S_SET BIT P1.0</p><p>  M_SET BIT P1.1</p><p>  H_SET BIT P1.2</p><p>  RESET BIT P1.3</p><p><b>  ;</b></p><p>  SECOND EQU 30H</p>

42、<p>  MINUTE EQU 31H</p><p>  HOUR EQU 32H</p><p>  TCNT EQU 33H</p><p>  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; </p><p><b>  ORG 00H</b></

43、p><p>  SJMP START </p><p><b>  ORG 0BH</b></p><p>  LJMP INT_T0</p><p><b>  START:</b></p><p>  MOV DPTR,#TABLE</p><p&g

44、t;  MOV HOUR,#0</p><p>  MOV MINUTE,#0</p><p>  MOV SECOND ,#0</p><p>  ;;;;;;;;;;;;;;; </p><p>  MOV TCNT,#0</p><p>  MOV TMOD,#01H</p><p&

45、gt;  MOV TH0,#(65536-50000)/256</p><p>  MOV TL0,#(65536-50000)MOD 256</p><p>  MOV IE,#82H</p><p><b>  SETB TR0</b></p><p>  ;;;;判斷是否有按鍵按下,若有,是哪一個(gè)鍵按下

46、 ,</p><p><b>  A1:</b></p><p>  LCALL DISPLAY</p><p>  ;MOV P1,0FFH</p><p>  JNB S_SET,S1</p><p>  JNB M_SET,S2</p><p>  JNB H

47、_SET,S3</p><p>  JNB RESET,START</p><p><b>  SJMP A1</b></p><p><b>  S1: </b></p><p>  LCALL DELAY ;去抖動(dòng)</p><p>  JB S_SET,A1

48、</p><p>  INC SECOND ;;秒加1</p><p>  LCALL DISPLAY</p><p>  MOV A,SECOND</p><p>  CJNE A,#60,J0 ;判斷是否加到60s</p><p>  MOV SECOND,#0</p><p>&

49、lt;b>  LJMP K1</b></p><p><b>  S2:</b></p><p>  LCALL DELAY</p><p>  JB M_SET,A1</p><p><b>  K1:</b></p><p>  INC MINUTE

50、 ;分鐘加1</p><p>  MOV A,MINUTE</p><p>  CJNE A,#60,J1 ;判斷是否加到60min</p><p>  MOV MINUTE,#0</p><p><b>  LJMP K2</b></p><p><b>  S3:</b&g

51、t;</p><p>  LCALL DELAY </p><p>  JB H_SET,A1</p><p><b>  K2:</b></p><p>  INC HOUR ;小時(shí)值加1</p><p>  MOV A,HOUR</p><p>  CJNE

52、 A,#24,J2 ;判斷是否加到24h</p><p>  MOV HOUR,#0</p><p>  MOV MINUTE,#0</p><p>  MOV SECOND,#0</p><p><b>  LJMP A1</b></p><p>  ;;;;;;;;;;;;;;;;;;;;;

53、;;;;;;;;;;;;;;;;;;;;;; </p><p><b>  ;等待按鍵抬起</b></p><p>  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p><b>  J0:</b></p><p>  JB S_SET,A1&

54、lt;/p><p>  LCALL DISPLAY</p><p><b>  SJMP J0</b></p><p><b>  J1:</b></p><p>  JB M_SET,A1</p><p>  LCALL DISPLAY</p><p>

55、<b>  SJMP J1</b></p><p><b>  J2:</b></p><p>  JB H_SET,A1</p><p>  LCALL DISPLAY</p><p><b>  SJMP J2</b></p><p>  ;;;;

56、;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; </p><p>  ;定時(shí)器中斷服務(wù)程序,對(duì)秒、分鐘和小時(shí)的計(jì)數(shù)</p><p>  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;INT_T0:</p><p>  INT_T0: </p><p>  MOV

57、TH0,(65536-50000)/256</p><p>  MOV TL0,(65536-50000)MOD 256</p><p><b>  INC TCNT</b></p><p>  MOV A,TCNT</p><p>  CJNE A,#20,RETURE ;計(jì)1秒</p><p&g

58、t;  MOV TCNT,#0</p><p>  INC SECOND</p><p>  MOV A,SECOND</p><p>  CJNE A,#60,RETURE</p><p>  MOV SECOND,#0</p><p>  INC MINUTE</p><p>  MOV A

59、,MINUTE</p><p>  CJNE A,#60,RETURE</p><p>  MOV MINUTE,#0</p><p><b>  INC HOUR</b></p><p>  MOV A,HOUR</p><p>  CJNE A,#24,RETURE</p>&l

60、t;p>  MOV HOUR,#0</p><p>  MOV MINUTE,#0</p><p>  MOV SECOND,#0</p><p>  MOV TCNT,#0</p><p><b>  RETURE:</b></p><p><b>  RETI </b

61、></p><p>  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p><b>  ;顯示控制子程序</b></p><p>  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p

62、><b>  DISPLAY:</b></p><p>  MOV A,SECOND ;顯示秒</p><p><b>  MOV B,#10</b></p><p><b>  DIV AB</b></p><p><b>  CLR P3.6</b

63、></p><p>  MOVC A,@A+DPTR</p><p><b>  MOV P0, A</b></p><p>  LCALL DELAY</p><p><b>  SETB P3.6</b></p><p><b>  ;;;;;;;<

64、/b></p><p><b>  MOV A,B</b></p><p><b>  CLR P3.7</b></p><p>  MOVC A,@A+DPTR</p><p>  MOV P0 ,A </p><p>  LCALL DELAY</p&g

65、t;<p><b>  SETB P3.7</b></p><p>  ;;;;;;;;;;;;;;;;;;;;;</p><p>  CLR P3.5 ;;顯示分隔符</p><p>  MOV P0,#40H</p><p>  LCALL DELAY</p><p&g

66、t;<b>  SETB P3.5</b></p><p>  ;;;;;;;;;;;;;;;;;;;;; </p><p>  MOV A,MINUTE ;;顯示分鐘</p><p>  MOV B,#10 </p><p><b>  DIV AB</b></p><p&

67、gt;<b>  CLR P3.3</b></p><p>  MOVC A,@A+DPTR</p><p><b>  MOV P0 ,A</b></p><p>  LCALL DELAY</p><p><b>  SETB P3.3</b></p><

68、;p><b>  ;;;;;;;</b></p><p><b>  MOV A,B</b></p><p><b>  CLR P3.4</b></p><p>  MOVC A,@A+DPTR</p><p><b>  MOV P0 ,A</b>

69、;</p><p>  LCALL DELAY</p><p><b>  SETB P3.4</b></p><p>  ;;;;;;;;;;;;;;;;;;;;;</p><p>  CLR P3.2 ;;;顯示分隔符</p><p>  MOV P0,#40H</p&

70、gt;<p>  LCALL DELAY</p><p><b>  SETB P3.2</b></p><p>  ;;;;;;;;;;;;;;;;;;;</p><p>  MOV A,HOUR ;顯示小時(shí)</p><p><b>  MOV B,#10</b><

71、/p><p><b>  DIV AB</b></p><p><b>  CLR P3.0</b></p><p>  MOVC A,@A+DPTR</p><p><b>  MOV P0 ,A</b></p><p>  LCALL DELAY<

72、/p><p><b>  SETB P3.0</b></p><p><b>  ;;;;;;;</b></p><p><b>  MOV A,B</b></p><p><b>  CLR P3.1</b></p><p>  MO

73、VC A,@A+DPTR</p><p><b>  MOV P0 ,A</b></p><p>  LCALL DELAY</p><p><b>  SETB P3.1</b></p><p>  ;;;;;;;;;;;;;;;;;;;;; </p><p>  ;;;

74、;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p><b>  TABLE:</b></p><p>  DB 3FH,06H,5BH,4FH,66H ;0 1 2 3 4 共陰型</p><p>  DB 6DH,7DH,07H,7FH,6FH ;5 6 7

75、 8 9</p><p>  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p>  DELAY: ;延時(shí)1+5(1+250* +2)us</p><p><b>  MOV R6,#5</b></p><p>  D1: MOV R7,

76、#250</p><p><b>  DJNZ R7,$</b></p><p>  DJNZ R6,D1</p><p><b>  RET</b></p><p><b>  END</b></p><p><b>  設(shè)計(jì)總結(jié)</b

77、></p><p>  做了兩周的課程設(shè)計(jì),有很多的心得體會(huì),有關(guān)于單片機(jī)的,也有關(guān)于模電數(shù)電等基礎(chǔ)科目的。</p><p>  因?yàn)閱纹瑱C(jī)已經(jīng)很久沒(méi)復(fù)習(xí),剛拿到題目,不知道從哪入手,后來(lái)通過(guò)對(duì)書(shū)本的回顧,加深了對(duì)單片機(jī)的記憶。有些知識(shí)會(huì)遷移和聯(lián)系模電數(shù)電。課堂教學(xué)考慮到大多數(shù)同學(xué)的需求,主要強(qiáng)調(diào)“基本”——基本知識(shí)、基本理論、基本方法、基本技能。而這次設(shè)計(jì)正是為我們提供了一個(gè)深入學(xué)

78、習(xí)、探索的機(jī)會(huì),成為課堂教學(xué)的有益補(bǔ)充。我們正面臨就業(yè)問(wèn)題,這次課設(shè)給了我們一個(gè)機(jī)會(huì)去試驗(yàn)。</p><p>  單片機(jī)理論的學(xué)習(xí)是為課程的設(shè)計(jì)作準(zhǔn)備的,但有時(shí)學(xué)習(xí)的理論也解決不了實(shí)踐中的問(wèn)題。實(shí)踐中獲得的知識(shí)能讓我對(duì)單片機(jī)的知識(shí)有更好的認(rèn)識(shí)和理解。雖然這次的課程設(shè)計(jì)我參考了一些文獻(xiàn)資料,沒(méi)有做到創(chuàng)新,但在對(duì)程序的讀寫(xiě)過(guò)程中我明白了許多。這次課程設(shè)計(jì)的最大收獲是只有把理論用到實(shí)踐中我們才能真正掌握好所學(xué)知識(shí)。&l

79、t;/p><p><b>  四、參考文獻(xiàn)</b></p><p>  [1] 謝自美.電子線(xiàn)路設(shè)計(jì)·實(shí)驗(yàn)·測(cè)試[M].武漢:華中理工大學(xué)出版社,1992.</p><p>  [2] 何立民.單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社,1993.</p><p>  [3] 樓然笛.單片機(jī)開(kāi)

80、發(fā)[M].北京:人民郵電出版社,1994.[4] 付家才.單片機(jī)控制工程實(shí)踐技術(shù)[M].北京:化學(xué)工業(yè)出版社 2004.3.[5] 李光才.單片機(jī)課程設(shè)計(jì)實(shí)例指導(dǎo)[M].北京:北京航空航天大學(xué)出版社 2004.</p><p>  [6] 朱定華.單片機(jī)原理及接口技術(shù)實(shí)驗(yàn)[M].北京:北方交通大學(xué)出版社2002.11.</p><p>  [7] 劉湘濤.江世明.單片機(jī)原理與應(yīng)用[M]

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論