回覆列表
  • 1 # 誰暖冬季歲月清茶

    系統設計

    1.實驗內容摘要

    本實驗利用微控制器的定時器/計數器定時和記數的原理,結合dvcc實驗箱上的積體電路晶片8032、LED數碼管以及實驗箱上的按鍵來設計計時器。將軟、硬體有機地結合起來,使得系統能夠正確地進行計時,數碼管能夠正確地顯示時間。其中本實驗設計了四個開關按鍵:其中一個按鍵按下去時以1秒加一開始計時,即秒錶開始鍵(本實驗中當開關從1變為0時開始計時),另一個按鍵按下去時暫停計時,使秒錶停留在原先的計時(本實驗中當相應開關從1變為0時即停止計時),第三個按鍵按下去時清0(本實驗中當相應開關從1變為0時即停止計時),第四按鍵按下去則是以每10ms秒快速加一計時(本實驗中當開關從1變為0時開始計時)。本實驗中開始時都要使各按鍵回到各初始位置,即都處於1狀態。

    關鍵詞:LED數碼管,計時器,

    2.功能:

    用AT89C51設計一個2位LED數碼顯示“秒錶”,顯示時間為00~99秒,每秒自動加1。另設計一個“開始”按鍵和一個“復位”按鍵。並且增加了一個“暫停”按鍵和一個“快加”按鍵(每10ms快速加一)

    3.實驗目的:

    3.1、透過本次課程設計加深對微控制器課程的全面認識複習和掌握,對微控制器課程的應用進一步的瞭解。

    3.2、掌握定時器、外部中斷的設定和程式設計原理。

    3.3、透過此次課程設計能夠將微控制器軟硬體結合起來,對程式進行編輯,校驗。

    4.意義:

    該實驗透過微控制器的定時器/計數器定時和計數原理,設計簡單的計時器系統,擁有正確的計時、暫停、清零、快加功能,並同時可以用數碼管顯示,在現實生活中應用廣泛,具有現實意義。

    所做工作

    根據相關的微控制器材料,利用所學的微控制器知識,結合DVCC系列微控制器微機模擬實驗系統中的軟體和硬體(積體電路晶片8032,七段數碼管,開關電路及時鐘訊號電路,按鍵等),編寫能夠實現該專案的軟體程式,最後將軟、硬體有機的結合起來,進行有效的除錯,達到完成該實驗課程設計的目的要求。

    5.實驗內容:

    用AT89C51設計一個2位LED數碼顯示“秒錶”,顯示時間為00~99秒,每秒自動加一。另設計一個“開始”按鍵和一個“復位”按鍵。再增加一個“暫停”按鍵和一個“快加”按鍵(每10ms快速加一)。

    按鍵說明:按“開始”按鍵,開始計數,數碼管顯示從00開始每秒自動加1;按“復位”按鍵,系統清零,數碼管顯示00;按“暫停”按鍵,系統暫停計數,數碼管顯示當時的計數;按“快加”按鍵,系統每10ms快速加1,即數碼顯示管在原先的計數上快速加1。

    6.設計思路及描述:

    該實驗要求進行計時並在數碼管上顯示時間,則可利用DVCC系列微控制器微機模擬實驗系統中的晶片8032(晶片的功能類似於晶片AT89C51,其管腳功能也和AT89C51的管腳功能類似)中的P3.2管腳做為外部中斷0的入口地址,並實現“開始”按鍵的功能;將P3.3做為外部中斷1的入口地址,並實現“清零”按鍵的功能;將P3.0做為資料訊號DATA輸入的入口地址;將P3.1做為時鐘訊號CLK輸入的入口地址。定時器T0作為每秒加一的定時器;定時器T1作為“快加”鍵的定時器。其中“開始”按鍵當開關由1撥向0(由上向下撥)時開始計時;“清零”按鍵當開關由1撥向0(由上向下撥)時數碼管清零,此時若再撥“開始”按鍵則又可重新開始計時。

    7.原理圖:

    10、實驗程式

    ;******************************************************

    ;設計選題:秒錶系統設計

    ;描述:2位LED數碼顯示"秒錶",顯示時間為00~99秒,每秒自動加1,

    ;一個"開始"鍵,一個"復位"鍵,一個"暫停"鍵,一個“快加”鍵。

    ;呼叫子程式:暫停鍵子程式,計時鍵子程式,清0鍵子程式,加一子程式

    ;顯示子程式,定時子程式

    ;所用特殊暫存器:暫存器A,暫存器C

    ;所用中斷:外部中斷INT0、INT1,定時器T0、T1

    org0000h

    ajmpmain;主程式入口地址

    org0003h

    ajmpzhongduan0;中斷0入口地址

    org000bh

    ajmpyanshi;定時器T0入口地址

    org0013h

    ajmpzhongduan1;中斷1入口地址

    org001bh

    ajmpdingshi1;定時器T1入口地址

    org0030h

    ;*****************************************************

    ;主程式

    ;*****************************************************

    main:movtcon,#05h;主程式開始外部中斷跳變模式

    movtmod,#11h;定時器0,1模式1

    movie,#8fh;開總中斷,中斷0,1,定時器0,1

    movdptr,#tab

    movr1,#00h

    movr2,#00h

    movr3,#40;迴圈次數40

    movtl0,#2Ch;置初值,定時25MS

    movth0,#0CFh

    movtl1,#78h;置初值,定時10MS

    movth1,#0ech

    clrtr0;關定時器

    clrtr1

    ;*****************************************************

    ;暫停鍵K3,快加鍵K4程式

    ;*****************************************************

    here:jbp1.0,here

    show:clrtr1

    clrtr0

    acallxianshi

    kuaijia:jbp1.2,kuaijia;等待P1.2為0快加

    clrtr0

    setbtr1

    here3:jnbp1.2,here3

    ajmphere

    ;*****************************************************

    ;外部中斷INT0子程式-----計時按鍵K1子程式

    ;*****************************************************

    zhongduan0:setbtr0;計時按鍵

    reti

    ;*****************************************************

    ;外部中斷INT1子程式----復位按鍵K2子程式

    ;*****************************************************

    zhongduan1:clrtr0;復位按鍵

    clrtr1

    mov12h,#00h

    mov11h,#00h

    acallxianshi;呼叫顯示子程式

    movr1,#00h

    movr2,#00h

    reti

    ;*****************************************************

    ;加一子程式

    ;*****************************************************

    jia1:incr1;加1子程式

    cjner1,#0ah,loop;判斷是否到表尾

    movr1,#00h

    incr2

    cjner2,#0ah,loop

    movr2,#00h

    loop:mov12h,r1;重新賦值

    mov11h,r2

    ret

    ;*****************************************************

    ;顯示子程式

    ;*****************************************************

    xianshi:movr7,#02h;2個數碼管顯示子程式

    movr0,#12h

    loop5:movr6,#08h;8位2進位制數

    mova,@r0

    movca,@a+dptr

    loop6:rlca;迴圈左移

    clrp3.1

    movp3.0,c

    setbp3.1

    djnzr6,loop6

    decr0

    djnzr7,loop5

    ret

    ;*****************************************************

    ;定時器T0子程式

    ;*****************************************************

    yanshi:movtl0,#2Ch;定時子程式

    movth0,#0CFh

    djnzr3,loop7

    acalljia1;呼叫加1子程式

    acallxianshi;呼叫顯示子程式

    movr3,#40

    loop7:reti

    ;*****************************************************

    ;定時器T1子程式

    ;*****************************************************

    dingshi1:movtl1,#78h;置初值,定時10MS

    movth1,#0ech

    clrtr0

    setbtr1

    mov12h,r1

    mov11h,r2

    jnbp1.0,show

    acalljia1

    acallxianshi

    lop7:reti

    ;*****************************************************

    tab:db3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh

    end

    十一、課程設計心得體會

    1、認真審題,看懂題目的要求!選擇適當的課題,不益太簡單或者太難。做到既能把課題完成又能鍛鍊自己的能力!

    2、根據課題要求,複習相關的知識,查詢相關的資料。

    3、根據實驗條件,找到適合的方案,找到需要的元器件及工具,準備實驗。

    4、根據課程設計的要求和自己所要增加的功能寫好程式流程圖,在程式流程圖的基礎上,根據晶片的功能寫出相應的程式。然後再進行程式除錯和相應的修改,以達到能夠實現所要求的功能的目的。

    5、還要根據實驗的實際情況,新增些額外程式來使系統更加的穩定,如開關的消震盪(採用延遲)。

    6、程式要儘量做到由各個子程式組成,在有些程式後面最好加註釋,這樣在程式出錯的檢查過程中可以更容易查詢的到,也更簡潔,更明白易懂。

    7、該實驗的程式可以參考DVCC系列微控制器微機模擬實驗系統實驗指導書中的串並轉換實驗,也可自己根據自己熟悉的方法來程式設計。

    8、在設計控制開關時,注意2箇中斷的開啟和關閉的先後順序,否則就會出錯。

    9、這次的微控制器課程設計重點是理論與實際的相結合。不再只讀書了。

    10、該設計從頭到尾都要自己參與,熟悉了對整個設計的過程,更系統的鍛鍊了自己。

    希望可以幫到你.!

  • 中秋節和大豐收的關聯?
  • 立邦漆白色哪個最好?