微型計(jì)算機(jī)大作業(yè)設(shè)計(jì)_第1頁(yè)
微型計(jì)算機(jī)大作業(yè)設(shè)計(jì)_第2頁(yè)
微型計(jì)算機(jī)大作業(yè)設(shè)計(jì)_第3頁(yè)
微型計(jì)算機(jī)大作業(yè)設(shè)計(jì)_第4頁(yè)
微型計(jì)算機(jī)大作業(yè)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩15頁(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、課題名稱 電子鐘表和顯示星期的設(shè)計(jì) 學(xué)院(部) 電子與控制工程學(xué)院 專 業(yè) 建筑設(shè)施智能技術(shù) 班 級(jí) 學(xué)生姓名 學(xué) 號(hào) 12 月 27 日至 01 月 09 日共 兩 周指導(dǎo)教師(簽字) 11 年 01 月 09 日 目錄前言.1一、 設(shè)計(jì)題目與要求.21、 設(shè)計(jì)題目22、設(shè)計(jì)目的23、設(shè)計(jì)任務(wù).24、 設(shè)計(jì)要求25、實(shí)驗(yàn)設(shè)備2二、設(shè)計(jì)思路.31、 系統(tǒng)框圖32、 工作原理3三、系統(tǒng)框圖.41、 中斷處理程序流程框圖.42、 主程序流程框圖.63、鍵掃子程序流程框圖.7四、調(diào)試結(jié)果.7五、總結(jié)與體會(huì).8參考文獻(xiàn).8附錄1 電路圖.9附錄2 程序.12 前言 課程設(shè)計(jì)是培養(yǎng)和鍛煉學(xué)生在學(xué)習(xí)完本門

2、課后綜合運(yùn)用所學(xué)理論知識(shí)解決實(shí)際工程設(shè)計(jì)和應(yīng)用問(wèn)題的能力的重要教學(xué)環(huán)節(jié)。 微機(jī)與借口技術(shù)應(yīng)用性、綜合性、實(shí)踐性較強(qiáng)的課程,沒有實(shí)際的有針對(duì)性的設(shè)計(jì)環(huán)節(jié),學(xué)生就不能很好的理解和掌握所學(xué)的技術(shù)知識(shí),更缺乏解決實(shí)際問(wèn)題的能力。所以通過(guò)有針對(duì)性的課程設(shè)計(jì),使學(xué)生系統(tǒng)的綜合應(yīng)用所學(xué)的理論知識(shí),提高學(xué)生在微機(jī)應(yīng)用方面的開發(fā)與設(shè)計(jì)本領(lǐng),系統(tǒng)的掌握微機(jī)硬軟件設(shè)計(jì)方法。 在日常生活中時(shí)鐘隨處可見,它是一種對(duì)時(shí)間進(jìn)行累計(jì)的工具,即計(jì)時(shí)。計(jì)時(shí)的本質(zhì)就是計(jì)數(shù)。使用計(jì)數(shù)器對(duì)時(shí)鐘脈沖進(jìn)行計(jì)數(shù)是時(shí)鐘實(shí)現(xiàn)的基本原理。再用LED數(shù)碼管顯示出來(lái),并設(shè)計(jì)出幾個(gè)按鍵對(duì)時(shí)鐘進(jìn)行調(diào)整,這樣,一個(gè)完整的時(shí)鐘就設(shè)計(jì)完成。一、 設(shè)計(jì)題目與要求

3、1、 設(shè)計(jì)題目電子鐘表和顯示星期的設(shè)計(jì)2、設(shè)計(jì)目的(1)、培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識(shí)的能力,提高學(xué)生解決實(shí)際問(wèn)題的能力(2)、培養(yǎng)學(xué)生查閱資料,使用工程設(shè)計(jì)標(biāo)準(zhǔn)、手冊(cè)及編寫設(shè)計(jì)技術(shù)的能力(3)、培養(yǎng)學(xué)生初步掌握設(shè)計(jì)開發(fā)產(chǎn)品的能力,了解微機(jī)控制系統(tǒng)的一般設(shè)計(jì)方法。(4)、提高學(xué)生的計(jì)算機(jī)繪圖能力。3、設(shè)計(jì)任務(wù): (1)時(shí)間顯示:時(shí)、分、秒(2)鐘表時(shí)分秒?yún)?shù)的手動(dòng)調(diào)整設(shè)置(3)選擇傳感器,并設(shè)計(jì)相應(yīng)的信號(hào)處理電路;(4)實(shí)現(xiàn)星期顯示功能;(5)時(shí)分秒、星期交替顯示(2秒交替一次)。4、設(shè)計(jì)要求(1)、選擇合適的設(shè)計(jì)方案,并進(jìn)行理論闡述。(2)、編制相應(yīng)的控制程序,要求有程序流程圖,程序加注釋。(3

4、)、繪制實(shí)現(xiàn)電路原理圖,所有圖紙均用計(jì)算機(jī)繪制。5、實(shí)驗(yàn)設(shè)備8253定時(shí)器:用于產(chǎn)生秒脈沖,其輸出信號(hào)可作為中斷請(qǐng)示信號(hào)送IRQ0。8259中斷控制器:用于產(chǎn)生中斷。8255并口:用做接口芯片,和按鍵和LED相連。LED:六個(gè)LED用于顯示時(shí):分:秒值和星期。按鍵:用于控制設(shè)置。二、 設(shè)計(jì)思路1、 系統(tǒng)框圖 按鍵讀入外接調(diào)整按鍵模塊 圖1 系統(tǒng)框圖2、 工作原理系統(tǒng)分五大模塊,為主控模塊(8086),顯示模塊(LED),按鍵模塊,中斷模塊(8259)和定時(shí)模塊(8253)分別實(shí)現(xiàn)不同的功能。主控模塊(8086)是系統(tǒng)的核心模塊,主要由軟件實(shí)現(xiàn)。它的主要功能是調(diào)用其它模塊對(duì)系統(tǒng)工作進(jìn)行協(xié)調(diào)。當(dāng)按

5、下A鍵時(shí),將只顯示時(shí)數(shù),按C鍵可調(diào)時(shí)數(shù)。再按B鍵將顯示分?jǐn)?shù), 按C鍵可調(diào)時(shí)數(shù)。再按B鍵將顯示秒數(shù), 按C鍵可調(diào)時(shí)數(shù)。調(diào)數(shù)結(jié)束后再按A鍵可回到正常計(jì)時(shí)顯示。按鍵模塊是產(chǎn)生按鍵信息并送入主控模塊的子功能模塊。由軟件和硬件實(shí)現(xiàn),硬件上由按鍵和8255互連,將按鍵信息由8255送入主控模塊。軟件上使用行掃描法獲得按鍵信息并送回主控模塊。顯示模塊是將顯示緩沖區(qū)的數(shù)值送到LED顯示的功能模塊,顯示緩沖區(qū)是由六個(gè)字節(jié)構(gòu)成,分別保存小時(shí)的高位和低位,分鐘的高位和低位,秒鐘的高位和低位。硬件上由六個(gè)LED構(gòu)成,軟件上由掃描顯示的方法實(shí)現(xiàn)。定時(shí)模塊為8259提供中斷請(qǐng)求信號(hào),由一片8253實(shí)現(xiàn),選用定時(shí)器0,工作

6、在方式3,使8253的OUT0端輸出周期性的負(fù)脈沖信號(hào),此信號(hào)接8259的IR6端,后CPU就會(huì)處理,使液晶顯示器的時(shí)間發(fā)生變化。中斷模塊實(shí)現(xiàn)動(dòng)態(tài)顯示的,硬件為一片8259,由于中斷請(qǐng)求信號(hào)為每秒一次,中斷程序該為時(shí)間按秒增加,并顯示,只要開中斷,便可實(shí)現(xiàn)每秒顯示時(shí)間增加一秒,從而達(dá)到動(dòng)態(tài)顯示的效果。三、系統(tǒng)框圖 1、中斷處理程序流程框圖 開始時(shí)個(gè)位清零,時(shí)十位加一時(shí)個(gè)位小于時(shí)十位小于2分十位清零,時(shí)個(gè)位加一分十位小于6分個(gè)位清零,分十位加一分個(gè)位小于9秒十位清零,分個(gè)位加一秒十位小于6秒個(gè)位清零,秒十位加一 開中斷秒個(gè)位加1秒個(gè)位小于9 時(shí)個(gè)位小于9時(shí)個(gè)位清零,時(shí)十位清零,星期位加1 星期位

7、小7于77 發(fā)中斷結(jié)束命令,中斷返回星期位加1 圖2 中斷處理程序流程框圖2、 主程序流程框圖A鍵是否按下顯示:自動(dòng)計(jì)時(shí)系統(tǒng)初始化開始 N Y進(jìn)入時(shí)間設(shè)置狀態(tài)A鍵是否按下Y N 圖3 主程序流程框圖3、鍵掃子程序流程框圖調(diào)顯示子程序延時(shí)去抖動(dòng)A鍵閉合開始 NY調(diào)用C鍵處理子程序是C鍵嗎調(diào)用鍵掃描子程序Y調(diào)用B鍵處理子程序是B鍵嗎NA鍵放否Y Y結(jié)束 圖4 鍵掃子程序流程框圖四、調(diào)試結(jié)果五、總結(jié)與體會(huì)微機(jī)與借口技術(shù)應(yīng)用性、綜合性、實(shí)踐性較強(qiáng)的課程,通過(guò)本次課程設(shè)計(jì)過(guò)程,我基本熟悉和掌握了微機(jī)系統(tǒng)的軟件、硬件的設(shè)計(jì)方法、設(shè)計(jì)步驟,是一次微機(jī)開發(fā)應(yīng)用方面的初步訓(xùn)練,通過(guò)本次課程設(shè)計(jì)我較好掌握了微機(jī)系

8、統(tǒng)與接口擴(kuò)展電路的設(shè)計(jì)方法,學(xué)習(xí)了用8086匯編語(yǔ)言編寫程序。通過(guò)這次課程設(shè)計(jì),我對(duì)所學(xué)的理論知識(shí)有了更加深刻的了解和掌握,懂得了理論聯(lián)系實(shí)踐的重要性,增進(jìn)了信息收集能力。讓我懂得了要更加注重知識(shí)了理解與應(yīng)用,這樣才能不斷的提高自己。最后感謝胡欣老師的指導(dǎo)與幫助! 參考文獻(xiàn)1、 馮博琴,吳寧主編.微型計(jì)算機(jī)原理與借口技術(shù)(第二版) .清華大學(xué)出版社2、 孫德文.微型計(jì)算機(jī)技術(shù).高等教育出版社3、 侯伯亨,李博成.微機(jī)原理與借口技術(shù).西安電子科技大學(xué)出版社附錄1 電路圖附錄2 程序=數(shù)據(jù)段=DATA SEGMENTTIME_STO DB 00H,01H,02H,03H,04H,05H,06H ;

9、時(shí)分秒及星期顯示緩沖區(qū)LED_NUM DB 3FH,06H,5BH,4FH,66H,6DH DB 7DH,07H,7FH,6FHPCL_IN DB 11H ;存放8255 PC口讀入值FLAG DB 00H ;2秒計(jì)時(shí)標(biāo)志TEMP0 DB 00H ;啟動(dòng)/暫停標(biāo)志TEMP1 DB 00H ;用來(lái)標(biāo)志正在修改的是哪一位DATA ENDS =堆棧段=STACK SEGMENT DW 72 DUP(?)STACK ENDS =代碼段=CODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA ;初始化邏輯段 MOV DS,AX MOV AX,STACK

10、 MOV SS,AX PUSH DS;當(dāng)前用戶DS段入棧保存 MOV AX,0000H MOV DS,AX;修改DS=0000H,指向中斷矢量表所在段 MOV AX,OFFSET IRQ6 ;取出中斷處理子程序的入口偏移地址(以0為基準(zhǔn)) MOV SI,0038H;IR6中斷矢量號(hào)為0EH,處于矢量表的38H3BH MOV SI,AX;將偏移地址裝入矢量表 MOV AX,0000H MOV SI,003AH MOV SI,AX;將段地址(0000H)裝入矢量表 POP DS;恢復(fù)用戶數(shù)據(jù)段DS=初始化8253= MOV AL,34H ;計(jì)數(shù)器0,先寫低8位,方式二,二進(jìn)制計(jì)數(shù) MOV DX,4

11、3H OUT DX,AL MOV AX,59499 ;計(jì)數(shù)初值59499,輸出20HZ,定時(shí)0.05秒 MOV DX,40H OUT DX,AL MOV AL,AH OUT DX,AL MOV AL,01010100B ;計(jì)數(shù)器0,只讀寫低8位,方式二,二進(jìn)制計(jì)數(shù) MOV DX,43H OUT DX,AL MOV AX,19 ;計(jì)數(shù)初值19,與計(jì)數(shù)器0級(jí)聯(lián)后定時(shí)1秒 MOV DX,41H OUT DX,AL STI ;開中斷=初始化8255= MOV AL,10000001B ;A組方式0:A口輸出,C口高位輸出 ;B組方式0:B口輸出,C口低位輸入 OUT 36H,AL STI ;開中斷 C

12、ALL DISPLAY ;顯示初始值 CALL KEY_BUTTON ;調(diào)用按鍵檢測(cè)程序 CLI ;關(guān)中斷 PUSH DX MOV DX,IP_BAK MOV AX,CS_BAK MOV DS,AX MOV AX,250EH INT 21H POP DS STI MOV AX,4C00H ;返回DOS INT 21H=初始化8259= MOV AL,00010011B MOV DX,21H OUT DX,AL MOV AL,08H MOV DX,21H OUT DX,AL MOV AL,00000011B MOV DX,21H OUT DX,AL MOV AL,0BFH MOV DX,21H

13、OUT DX,AL =顯示程序=DISPLAY PROC NEARDISUP1: MOV AL,0 ;FLAG清零 MOV DX,A_8255 OUT DX,AL MOV AL,DI MOV BX,OFFSET LED XLAT MOV DX,B_8255 OUT DX,AL MOV AL,CL MOV DX,A_8255 OUT DX,AL MOV BX,35HMAIN_DIST:MOV BL,11011111B LEA SI,TIME_STO MOV CX,06H ;六位數(shù)碼管循環(huán)顯示DELAY1: DEC BX JNZ DELAY1 CMP CL,20H JZ DISUP2 INC DI

14、 SHL CL,1 JMP DISUP1KEY_PED: MOV DX,C_8255 ;檢測(cè)是否有按鍵按下 IN AX,DX AND AX,000FH CMP AL,01H JZ KEY_BUTTONDISUP2: JMP DISUP RET NEXT_WEEK:MOV AL,FLAG ;判斷2S計(jì)時(shí)是否到 CMP AL,02H JZ TIME_DIS ;2s到則跳轉(zhuǎn)到顯示時(shí)間值 JMP MAIN_DISW ;否則循環(huán)輸出星期值DISPLAY ENDP =中斷服務(wù)程序=INT_PROC PROC FAR PUSH DS MOV AX,DATA MOV BX,OFFSET TIME_STO ;將

15、顯示緩沖區(qū)首地址讀入BX CMP BYTE PTR BX+5,09H ;判斷秒低位是不是9 JNZ ADD INC BYTE PTR BX+4 ;向秒高位進(jìn)位 MOV BYTE PTR BX+5,0 ;秒個(gè)位清零 CMP BYTE PTR BX+4,06H ;判斷秒高位是不是6 JNZ ADD1 INC BYTE PTR BX+3 ;向分低位進(jìn)位 MOV BYTE PTR BX+4,0 ;秒高位清零 CMP BYTE PTR BX+3,0AH ;判斷分低位是不是10 JNZ ADD1 INC BYTE PTR BX+2 ;向分高位進(jìn)位 MOV BYTE PTR BX+3,0 ;分低位清零 CM

16、P BYTE PTR BX+2,06H ;判斷分高位是不是6 JNZ ADD1 INC BYTE PTR BX+1 ;向時(shí)低位進(jìn)位 MOV BYTE PTR BX+2,0 ;分高位清零 CMP BYTE PTR BX,02H ;判斷時(shí)高位是不是2 JNZ ADD2 CMP BYTE PTR BX+1,04H ;判斷時(shí)低位是不是4 JNZ ADD1 MOV BYTE PTR BX+1,0 ;分低位清零 MOV BYTE PTR BX,0 ;分高低清零 INC BYTE PTR BX+6 ;星期位加一 CMP BYTE PTR BX+6,08H JNZ ADD1 MOV BYTE PTR BX+6

17、,01H ;星期位置一 JMP ADD1ADD2: CMP BYTE PTR BX+1,0AH ;判斷時(shí)低位是不是10 JNZ ADD1 INC BYTE PTR BX ;向時(shí)高位進(jìn)位 MOV BYTE PTR BX+1,0 ;時(shí)低位清零 JMP ADD1ADD: ADD BYTE PTR BX+5,1 ;秒低位加一ADD1: CALL DISPLAY ;顯示跳變后的數(shù) POP DS IRETINT_PROC ENDP =按鍵檢測(cè)設(shè)置程序=KEY_SET PROC NEAR CLI ;關(guān)中斷 CALL DELAY_10MS ;延時(shí)按鍵消抖 MOV DX,PC_8255 ;再次讀入按鍵位置 IN

18、 AL,DX AND AL,000FH ;取低四位 MOV PCL_IN,AL CMP PCL_IN,00001110B ;判斷按下的是不是暫停/啟動(dòng)鍵 JZ P/S_UP0 ;不是則跳轉(zhuǎn) JMP EXIT_KEYSP/S_UP0: MOV DX,PC_8255 ;否則等待按鍵松開 IN AL,DX MOV PCL_IN,AL AND PCL_IN,0FH CMP PCL_IN,00001111B JNZ P/S_UP0 ;沒有按鍵松開則等待重新檢測(cè) CALL DELAY_10MS ;延時(shí)去抖動(dòng) MOV DX,PC_8255 ;再次讀入PC口數(shù)據(jù) IN AL,DX MOV PCL_IN,AL

19、AND PCL_IN,0FH CMP PCL_IN,00001111B JZ KEY_DIS JMP P/S_UP0 KEY_DIS: PUSH CX PUSH BX PUSH SI MOV BL,01111111B CMP TEMP1,6 ;使弟五個(gè)數(shù)碼管顯示星期值 JNZ NEXT DEC TEMP1NEXT: MOV CL,TEMP1 ROR BL,CL MOV AL,BL ;數(shù)碼管位選通 MOV DX,PA_8255 OUT DX,AL LEA SI,TIME_STO ;數(shù)據(jù)查表轉(zhuǎn)換輸出到段選PB口顯示 XOR CH,CH ADD SI,CX MOV BX,OFFSET LED_NUM

20、 MOV AL,SI XLAT MOV DX,PB_8255 OUT DX,AL CALL DELAY_10MS P/S: CMP PCL_IN,00001110B ;按下的是暫停/啟動(dòng)鍵嗎 JZ P/S_MODE ;是則跳轉(zhuǎn) CMP PCL_IN,00001101B ;否則繼續(xù)判斷按下的是選擇鍵嗎 JZ CHOS_MODE ;是則跳轉(zhuǎn) CMP PCL_IN,00001011B ;否則繼續(xù)判斷按下的是計(jì)數(shù)加1鍵嗎 JZ ADD_MODE ;是則跳轉(zhuǎn)P/S_MODE: CMP TEMP0,00H ;TEMP0為0則跳轉(zhuǎn) JZ TEMP0_0 MOV AL,0 ;不為0,即為一則置零 MOV TE

21、MP0,AL JMP EXIT_KEYSTEMP0_0: MOV AL,1 ;為0則置1 MOV TEMP0,AL JMP EXIT_KEYSCHOS_MODE: CMP TEMP0,00H ;檢測(cè)是否處于設(shè)置狀態(tài) JNZ GOON0 ;是則繼續(xù) JMP EXIT_KEYS ;否則跳轉(zhuǎn) GOON0: INC TEMP1 CMP TEMP1,7 JNZ EXIT_CH MOV AL,0 MOV TEMP1,ALEXIT_CH: JMP KEY_DIS ;轉(zhuǎn)到顯示ADD_MODE: CMP TEMP0,00H ;檢測(cè)是否處于設(shè)置狀態(tài) JNZ GOON1 ;是則繼續(xù) JMP EXIT_KEYS GO

22、ON1: MOV BX,OFFSET TIME_STO NEXT0: CMP TEMP1,0 ;修改的是時(shí)高位不 JNZ NEXT1 INC BYTE PTR BX+TEMP1 CMP BYTE PTR BX+TEMP1,3 JNZ EXIT_ADD MOV BYTE PTR BX+TEMP1,0NEXT1: CMP TEMP1,1 ;修改的是時(shí)低位不 JNZ NEXT2 INC BYTE PTR BX+TEMP1 CMP BYTE PTR BX+TEMP1,10 JNZ EXIT_ADD MOV BYTE PTR BX+TEMP1,0NEXT2: CMP TEMP1,2 ;修改的是分高位不 JNZ NEXT3 INC BYTE PTR B

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(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)論