微機(jī)原理課程設(shè)計(jì)論文_第1頁
微機(jī)原理課程設(shè)計(jì)論文_第2頁
微機(jī)原理課程設(shè)計(jì)論文_第3頁
微機(jī)原理課程設(shè)計(jì)論文_第4頁
微機(jī)原理課程設(shè)計(jì)論文_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、微機(jī)原理及匯編語言課程設(shè)計(jì)報(bào)告目 錄第一章 微機(jī)應(yīng)用系統(tǒng)課程設(shè)計(jì)的目的及意義31.1 課程設(shè)計(jì)的要求及目的31.2 課程設(shè)計(jì)的內(nèi)容31.3 課程在教學(xué)計(jì)劃中的地位和作用3第二章 總體設(shè)計(jì)方案52.1 設(shè)計(jì)思想5第三章 硬件設(shè)計(jì)63.1 硬件設(shè)計(jì)概要63.2 芯片及其功能說明6 單片機(jī)及其功能說明63.2.2 MAX7219及其功能說明93.3 硬件電路設(shè)計(jì)系統(tǒng)原理圖及其說明11第四章 軟件設(shè)計(jì)134.1 流程圖134.2 軟件系統(tǒng)的使用說明144.2.1 MAX7219驅(qū)動(dòng)15 時(shí)鐘進(jìn)位運(yùn)行規(guī)則16 時(shí)間調(diào)整部分16 鍵盤去抖174.3源程序及注釋17第五章 心得與體會(huì)33參考文獻(xiàn)35第一章

2、微機(jī)應(yīng)用系統(tǒng)課程設(shè)計(jì)的目的及意義1.1 課程設(shè)計(jì)的要求及目的以單片機(jī)為控制核心的智能電子鐘以時(shí)間準(zhǔn)、功能強(qiáng)、外形美而越來越受到人們的青睞。本實(shí)驗(yàn)通過設(shè)計(jì)一個(gè)智能電子鐘,旨在使學(xué)生能夠做到以下幾點(diǎn)。l了解智能電子鐘的功能特點(diǎn)與工作原理。 2掌握以單片機(jī)為核心實(shí)現(xiàn)電子鐘功能的思路和方法。3進(jìn)一步掌握多位數(shù)碼管顯示的原理和接口方法。1.2 課程設(shè)計(jì)的內(nèi)容(1)編程語言為C語言;(2)基于單片機(jī)的硬件電路設(shè)計(jì)與調(diào)試;(3)從鍵盤上輸入當(dāng)前時(shí)間,格式為“XX(小時(shí)):XX(分):XX(秒),以此為起點(diǎn),每秒刷新一次,1秒鐘延遲方式采用軟件方式并用子程序編寫或者定時(shí)器實(shí)現(xiàn),主程序用于顯示時(shí)間結(jié)果和調(diào)用子程

3、序,由于軟件延遲產(chǎn)生的誤差每小時(shí)調(diào)整一次,保證每小時(shí)誤差不超過0.1秒。1.3 課程在教學(xué)計(jì)劃中的地位和作用微機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)與綜合實(shí)驗(yàn)課程是測控技術(shù)專業(yè)本科生必修的一門技術(shù)基礎(chǔ)課程。通過該課程的學(xué)習(xí)使學(xué)生對(duì)微機(jī)系統(tǒng)有一個(gè)全面的了解、掌握常規(guī)芯片的使用方法、掌握簡單微型計(jì)算機(jī)應(yīng)用系統(tǒng)軟硬的設(shè)計(jì)方法。為了使我們微機(jī)應(yīng)用課程設(shè)計(jì)目標(biāo)更明確,要求更具體,學(xué)生收獲更大,我們特編寫課程設(shè)計(jì)任務(wù)書,學(xué)生可根據(jù)本人的愛好任選其中一個(gè)課題,要求獨(dú)立完成課題,寫出課程設(shè)計(jì)說明書,設(shè)計(jì)出電路原理圖,說明工作原理,畫出電路板圖,編寫程序及程序流程圖。希望同學(xué)認(rèn)真閱讀本任務(wù)書,認(rèn)真查閱資料與上機(jī)調(diào)試,圓滿完成課程設(shè)計(jì)。

4、通過課程設(shè)計(jì)進(jìn)一步鍛煉同學(xué)們在微型計(jì)算機(jī)應(yīng)用方面的實(shí)際工作能力。計(jì)算機(jī)科學(xué)在應(yīng)用上得到飛速發(fā)展,因此,學(xué)習(xí)這方面的知識(shí)必須緊密聯(lián)系實(shí)際:掌握這方面的知識(shí)更要強(qiáng)調(diào)解決實(shí)際問題的能力。同學(xué)們要著重學(xué)會(huì)面對(duì)一個(gè)實(shí)際問題,如何去自己收集資料,如何自己去學(xué)習(xí)新的知識(shí),如何自己去制定解決問題的方案并通過實(shí)踐不斷地去分析和解決前進(jìn)道路上的一切問題,最終到達(dá)勝利的彼岸。第二章 總體設(shè)計(jì)方案2.1 設(shè)計(jì)思想要完成本實(shí)驗(yàn)任務(wù)要求的功能,可以將系統(tǒng)分為以下幾個(gè)部分來設(shè)計(jì):定時(shí)器/計(jì)數(shù)器電路、時(shí)間及功能設(shè)置電路、時(shí)間顯示電路等。其中,定時(shí)器/計(jì)數(shù)器電路是整個(gè)電子鐘設(shè)計(jì)的基礎(chǔ)。一般都是用定時(shí)/計(jì)數(shù)器來產(chǎn)生定時(shí)中斷信號(hào)(

5、例如定時(shí)時(shí)間間隔為1/100s),然后通過軟件計(jì)數(shù)器來相繼獲得實(shí)時(shí)時(shí)鐘的秒、分、時(shí)等時(shí)間值。實(shí)現(xiàn)智能化電子鐘的軟件主要由主程序和中斷服務(wù)程序兩模塊組成。 在主程序中,除了完成對(duì)系統(tǒng)的初始化和中斷向量的設(shè)置外,需要對(duì)各種軟件時(shí)間計(jì)數(shù)器進(jìn)行查詢、比較和判斷,并根據(jù)判斷結(jié)果發(fā)出各種控制信號(hào),以完成時(shí)鐘的顯示操作。 在定時(shí)中斷服務(wù)程序中,需要設(shè)計(jì)1/100s計(jì)數(shù)器,秒個(gè)位、秒十位計(jì)數(shù)器,分個(gè)位、分十位計(jì)數(shù)器,時(shí)個(gè)位、時(shí)十位計(jì)數(shù)器以及由鍵盤設(shè)置的各定時(shí)時(shí)間計(jì)數(shù)器和各作息時(shí)間計(jì)數(shù)器等等,并對(duì)各計(jì)數(shù)器酌情作加1計(jì)數(shù)。然后,由主程序來完成對(duì)各種計(jì)數(shù)器內(nèi)容的查詢。 注意事項(xiàng):向定時(shí)器通道寫計(jì)數(shù)初值時(shí),無論以二進(jìn)

6、制還是十進(jìn)制形式寫入,如果其值超過255,需分兩次分別寫入計(jì)數(shù)器的高、低字節(jié),否則只需寫一次。究竟寫一次還是兩次,要在寫初值之前通過寫控制字來設(shè)置。第三章 硬件設(shè)計(jì)3.1 硬件設(shè)計(jì)概要 這次做的是單片機(jī)時(shí)鐘程序設(shè)計(jì),顧名思義,首先應(yīng)該用到的是單片機(jī)。我們用單片機(jī)來驅(qū)動(dòng)程序,完成程序的運(yùn)行。由于我們以前沒有學(xué)過單片機(jī)這方面的知識(shí),我們運(yùn)用起來比較陌生,只能是一邊學(xué)一邊用,所以做的設(shè)計(jì)比較簡單,只有最基本的時(shí)鐘功能和校準(zhǔn)功能。當(dāng)然既然是時(shí)鐘,就少不了數(shù)碼管,這還要用到一片7219芯片來驅(qū)動(dòng)數(shù)碼管,使它顯示相應(yīng)的時(shí)間。 這次我們的課程設(shè)計(jì),主要目的在于熟悉單片機(jī)的原理和應(yīng)用。由于時(shí)鐘設(shè)計(jì),所以相對(duì)的

7、硬件設(shè)計(jì)較少且連線比較簡單,這里不再詳細(xì)介紹。3.2 所用到的芯片及其各自功能說明單片機(jī)及其功能說明這次課程設(shè)計(jì)的主要目的就是熟悉單片機(jī),下面我們先就單片機(jī)的一些功能加以介紹。首先我們來連接一下單片機(jī)的引腳圖,如果,具體功能在下面都有介紹。 單片機(jī)的40個(gè)引腳大致可分為4類:電源、時(shí)鐘、控制和I/O引腳。 電源:  VCC - 芯片電源,接+5V;          VSS - 接地端; 時(shí)鐘:XTAL1、XTAL2 - 晶體振蕩電路反相輸入端和輸出端。 控制線:控制線共有4根,  A

8、LE/PROG:地址鎖存允許/片內(nèi)EPROM編程脈沖    ALE功能:用來鎖存P0口送出的低8位地址    PROG功能:片內(nèi)有EPROM的芯片,在EPROM編程期間,此引腳輸入編程脈沖。   PSEN:外ROM讀選通信號(hào)。  RST/VPD:復(fù)位/備用電源。    RST(Reset)功能:復(fù)位信號(hào)輸入端。    VPD功能:在Vcc掉電情況下,接備用電源。  EA/Vpp:內(nèi)外ROM選擇/片內(nèi)EPROM編程電源。 

9、60;  EA功能:內(nèi)外ROM選擇端。    Vpp功能:片內(nèi)有EPROM的芯片,在EPROM編程期間,施加編程電源Vpp。 I/O線 80C51共有4個(gè)8位并行I/O端口:P0、P1、P2、P3口,共32個(gè)引腳。P3口還具有第二功能,用于特殊信號(hào)輸入輸出和控制信號(hào)(屬控制總線)。  51單片機(jī)引腳圖及引腳功能  拿到一塊芯片,想要使用它,首先必須要知道怎樣連線,我們用的一塊稱之為89C51的芯片,下面我們就看一下如何給它連線。1、 電源:這當(dāng)然是必不可少的了。單片機(jī)使用的是5V電源,其中正極接40管腳,負(fù)極(地)

10、接20管腳。 2、 振蒎電路:單片機(jī)是一種時(shí)序電路,必須供給脈沖信號(hào)才能正常工作,在單片機(jī)內(nèi)部已集成了振蕩器,使用晶體振蕩器,接18、19腳。只要買來晶體震蕩器,電容,連上就能了,按圖1接上即可。 3、 復(fù)位管腳:按圖1中畫法連好,至于復(fù)位是何含義及為何需要復(fù)要復(fù)位,在單片機(jī)功能中介紹。 4、 EA管腳:EA管腳接到正電源端。 至此,一個(gè)單片機(jī)就接好,通上電,單片機(jī)就開始工作了。  我們的第一個(gè)任務(wù)是要用單片機(jī)點(diǎn)亮一只發(fā)光二極管LED,顯然,這個(gè)LED必須要和單片機(jī)的某個(gè)管腳相連,不然單片機(jī)就沒法控制它了,那么和哪個(gè)管腳相連呢?單片機(jī)上除了剛才用掉的5個(gè)管腳,還有35個(gè),我們將這個(gè)L

11、ED和1腳相連。(見圖1,其中R1是限流電阻)  按照這個(gè)圖的接法,當(dāng)1腳是高電平時(shí),LED不亮,只有1腳是低電平時(shí),LED才發(fā)亮。因此要1腳我們要能夠控制,也就是說,我們要能夠讓1管腳按要求變?yōu)楦呋虻碗娖健<慈晃覀円刂?腳,就得給它起個(gè)名字,總不能就叫它一腳吧?叫它什么名字呢?設(shè)計(jì)51芯片的INTEL公司已經(jīng)起好了,就叫它P1.0,這是規(guī)定,不能由我們來更改。 MAX7219及其功能說明設(shè)計(jì)題目做的是數(shù)字時(shí)鐘,首先應(yīng)該有數(shù)碼管來顯示相應(yīng)的時(shí)間,這要用到一片7219芯片來驅(qū)動(dòng)所用到的數(shù)碼管。下面我們就7219的功能做一些簡單的介紹。MAX7219是MAXIM公司生產(chǎn)的串行輸入/輸出

12、共陰極數(shù)碼管顯示驅(qū)動(dòng)芯片,一片MAX7219可驅(qū)動(dòng)8個(gè)7段(包括小數(shù)點(diǎn)共8段)數(shù)字LED、LED條線圖形顯示器、或64個(gè)分立的LED發(fā)光二級(jí)管。該芯片具有10MHz傳輸率的三線串行接口可與任何微處理器相連,只需一個(gè)外接電阻即可設(shè)置所有LED的段電流。它的操作很簡單,MCU只需通過模擬SPI三線接口就可以將相關(guān)的指令寫入MAX7219的內(nèi)部指令和數(shù)據(jù)寄存器,同時(shí)它還允許用戶選擇多種譯碼方式和譯碼位。此外它還支持多片7219串聯(lián)方式,這樣MCU就可以通過3根線(即串行數(shù)據(jù)線、串行時(shí)鐘線和芯片選通線)控制更多的數(shù)碼管顯示。MAX7219的外部引腳分配如圖1所示及內(nèi)部結(jié)構(gòu)如圖2所示。MAX7219的外

13、部引腳分配各引腳的功能為:DIN:串行數(shù)據(jù)輸入端DOUT:串行數(shù)據(jù)輸出端,用于級(jí)連擴(kuò)展LOAD:裝載數(shù)據(jù)輸入CLK:串行時(shí)鐘輸入DIG0DIG7:8位LED位選線,從共陰極LED中吸入電流SEG ASEG G DP7段驅(qū)動(dòng)和小數(shù)點(diǎn)驅(qū)動(dòng)ISET:通過一個(gè)10k電阻和Vcc相連,設(shè)置段電流MAX7219有下列幾組寄存器:(如圖3)MAX7219內(nèi)部的寄存器如下圖,主要有:譯碼控制寄存器、亮度控制寄存器、掃描界限寄存器、關(guān)斷模式寄存器、測試控制寄存器。編程時(shí)只有正確操作這些寄存器,MAX7219才可工作。MAX7219內(nèi)部的相關(guān)寄存器3.3硬件電路設(shè)計(jì)系統(tǒng)原理圖及其說明由于第一次使用單片機(jī),所做的課

14、程設(shè)計(jì)相對(duì)比較簡單,只用到以上兩片芯片,其具體硬件電路設(shè)計(jì)系統(tǒng)原理圖如下圖所示:電腦編程DBAB控制按鍵單片機(jī)系統(tǒng)顯示電路數(shù)碼管基于硬件的設(shè)計(jì)相對(duì)比較簡單,因?yàn)槲覀冏龅亩际亲詈唵蔚墓δ?,沒有什么多余的附加功能,所以不管是從編程還是軟件設(shè)計(jì)方面都相對(duì)比較簡單。只需要在電腦用C語言完成相應(yīng)的功能,把程序下載到單片機(jī),用單片機(jī)來實(shí)現(xiàn)相應(yīng)的功能。用單片機(jī)的程序來驅(qū)動(dòng)7219,使數(shù)碼管顯示相應(yīng)的時(shí)間。硬件連線的時(shí)候要注意單片機(jī)應(yīng)與試驗(yàn)箱共地,否則數(shù)碼管不會(huì)顯示時(shí)間。第四章 軟件設(shè)計(jì)4.1 流程圖及其說明軟件編程我們可以分為幾個(gè)模塊來編程,這樣可以是整個(gè)程序顯得更清晰、容易理解。我們程序出現(xiàn)錯(cuò)誤的時(shí)候也方

15、便我們調(diào)試。具體整個(gè)程序的流程圖如下所示:主程序各種芯片初始化有鍵按下循環(huán)調(diào)整時(shí)間關(guān)中段?向下調(diào)整向上調(diào)整顯示調(diào)整后的時(shí)間顯示、初始化時(shí)間是否4.2軟件系統(tǒng)的使用說明我們可以把整個(gè)軟件系統(tǒng)分成幾個(gè)部分:7219驅(qū)動(dòng);時(shí)鐘進(jìn)位部分;調(diào)整時(shí)間部分;延時(shí)函數(shù)及去抖部分。下面我們對(duì)各個(gè)部分分別加以說明。 MAX7219驅(qū)動(dòng)對(duì)于時(shí)鐘電路的設(shè)計(jì)我們首先做的是數(shù)碼管驅(qū)動(dòng)芯片7219。通過7219的驅(qū)動(dòng),是數(shù)碼管能顯示通過軟件設(shè)置的時(shí)間。電路原理圖如下圖,MAX7219與單片機(jī)的連接只需要3條線:LOAD(CS)片選引腳、CLK串行時(shí)鐘引腳、DIN串行數(shù)據(jù)引腳。其中C1 為電源濾波電容,R1用來設(shè)置段電流。電

16、路原理圖通過上面的原理和相應(yīng)的程序使數(shù)碼管完成顯示功能,具體程序?qū)⒃谙旅娴恼鹿?jié)分析。時(shí)鐘運(yùn)行進(jìn)位規(guī)則這一部分是我們設(shè)計(jì)的主要部分,主要完成時(shí)鐘的進(jìn)位和正常的時(shí)間顯示問題。我們定義了一個(gè)長度為六的數(shù)組,分別用來表示時(shí)鐘的時(shí)、分、秒的個(gè)位和十位。這當(dāng)中主要考慮的就是時(shí)間的進(jìn)位問題以及十、分、秒十位和各位的進(jìn)制問題。其中時(shí)、分、秒的個(gè)位都是十進(jìn)制。而十位是六進(jìn)制。當(dāng)分、秒的十位為六而個(gè)位為零的時(shí)候要同時(shí)清零,已達(dá)到時(shí)、分整體六十進(jìn)制。這對(duì)于軟件編程來說還是比較簡單的,只需要用if語句就可以完成。這主要需要注意的就是時(shí)分秒的同時(shí)清零問題,讓它完成時(shí)鐘的具體功能。具體的程序后面源程序清單中會(huì)有介紹。時(shí)間

17、調(diào)整部分這部分主要做的是時(shí)間的初始化問題以及時(shí)間的調(diào)整問題。由于用的是51單片機(jī),沒有辦法連接電腦的鍵盤,所以時(shí)間鍵盤的初始化只能用按鈕來代替。由于他和時(shí)間的調(diào)整問題屬于一個(gè)功能,所以放在了一起進(jìn)行編程,這樣可以簡化程序,變得更加容易理解同時(shí)便于調(diào)試。在這一個(gè)功能我們設(shè)置了四個(gè)功能鍵。一個(gè)用來管理中斷,用來關(guān)和開中斷,方便我們對(duì)時(shí)間進(jìn)行調(diào)整。一個(gè)用來循環(huán)調(diào)整的哪一位,當(dāng)處于調(diào)整的位是,數(shù)碼管所對(duì)應(yīng)的時(shí)間位的下面會(huì)出現(xiàn)一個(gè)亮點(diǎn)進(jìn)行提示。另外兩個(gè)就是負(fù)責(zé)對(duì)時(shí)間進(jìn)行調(diào)整,一個(gè)是加位調(diào)整,一個(gè)是減位調(diào)整。具體的實(shí)現(xiàn)問題用了兩個(gè)switch語句,來確認(rèn)有鍵按下了時(shí)候就進(jìn)行加一和減一的調(diào)整。具體的程序后面

18、源程序清單中會(huì)有介紹。鍵盤去抖這個(gè)部分相對(duì)比較簡單,延時(shí)函數(shù)主要是確定時(shí)間的精度問題。而調(diào)整時(shí)間是按鍵的去抖問題主要就是利用延時(shí)函數(shù)。這里不在詳細(xì)介紹,后面的源程序中會(huì)有詳細(xì)的講解。4.3源程序及注釋#include <reg52.h>#define DECODE_MODE 0x09 /譯碼控制寄存器#define INTENSITY 0x0A /亮度控制寄存器#define SCAN_LIMIT 0x0B /掃描界限寄存器#define SHUT_DOWN 0x0C /關(guān)斷模式寄存器#define DISPLAY_TEST 0x0F /測試控制寄存器#define uchar u

19、nsigned char#define uint unsigned intsbit LOAD=P10; /MAX7219片選 12腳sbit DIN=P11; /MAX7219串行數(shù)據(jù)1腳sbit CLK=P12; /MAX7219串行時(shí)鐘13腳sbit key1=P30; sbit key2=P31;sbit key3=P32;sbit key4=P33; /*sbit KEY1=P13; /暫?;蜻\(yùn)行sbit KEY2=P14;/位選擇sbit KEY3=P15;/增加sbit KEY4=P16;/減少*/uchar sj7=0;uint time=0,flash=0;uchar k=0,

20、i=0;/*函數(shù)聲明*/void Write7219(unsigned char address,unsigned char dat);void Initial(void);void Init(void);/*地址、數(shù)據(jù)發(fā)送子程序*/void Write7219(unsigned char address,unsigned char dat)uchar i;LOAD=0; /拉低片選線,選中器件 for (i=0;i<8;i+) /發(fā)送地址 CLK=0; /清零時(shí)鐘總線 DIN=(bit)(address&0x80); /每次取高字節(jié) address<<=1; /左移

21、一位 CLK=1; /時(shí)鐘上升沿,發(fā)送地址 for (i=0;i<8;i+) /發(fā)送數(shù)據(jù) CLK=0; DIN=(bit)(dat&0x80); dat<<=1; CLK=1; /時(shí)鐘上升沿,發(fā)送數(shù)據(jù) LOAD=1; /發(fā)送結(jié)束,上升沿鎖存數(shù)據(jù) /*MAX7219初始化,設(shè)置MAX7219內(nèi)部的控制寄存器*/void Initial(void) uint i=0;Write7219(SHUT_DOWN,0x01); /開啟正常工作模式(0xX1)Write7219(DISPLAY_TEST,0x00); /選擇工作模式(0xX0)Write7219(DECODE_MO

22、DE,0xff); /選用全譯碼模式Write7219(SCAN_LIMIT,0x05); /8只LED全用Write7219(INTENSITY,0x08); /設(shè)置初始亮度for(i=1;i<7;i+)Write7219(i,sji);/數(shù)碼管顯示 /*單片機(jī)初始化*/void Init(void)TMOD=0x01;TH0=0x4B;TL0=0xFF; EA=1;ET0=1;TR0=1;/* 延時(shí)函數(shù) (精度2uS) */*void delay(uchar us) while(-us); */ void delayms(uchar aa) uchar i,j; for(i=aa;i

23、>0;i-) for(j=110;j>0;j-); /* tiaoshi */void keyscan() uchar i; if(key4=0) delayms(100); if(key4=0) /* while(!key4); TR0=0; /關(guān)定時(shí)器0 Write7219(1,0); Write7219(2,0); Write7219(3,0); Write7219(4,0); Write7219(5,0); Write7219(6,0); */ for(i=1;i<7;i+)Write7219(i,sji);/數(shù)碼管顯示 i=0; TR0=1; if(key1=0)

24、delayms(100); if(key1=0) while(!key1); TR0=0; /關(guān)定時(shí)器0 i+; if(i=7) i=1; /* TH0=0x4B; /初始化定時(shí)器0 TL0=0xFF; time=0; TR0=1;*/ if(i!=0) for(flash=0;flash<3;flash+) Write7219(i,-1); delayms(20000);Write7219(i,sji);delayms(20000); if(key2=0) /增加鍵 delayms(100); if(key2=0) while(!key2);/ 確認(rèn)釋放 switch(i)case 1

25、:/秒個(gè)位加一 sj1+; if(sj1=10) sj1=0; break; case 2:/秒十位加一 sj2+; if(sj2=6) sj2=0; break;case 3:/分個(gè)位加一 sj3+; if(sj3=10) sj3=0; break;case 4:/分十位加一 sj4+; if(sj4=6) sj4=0; break;case 5:/十個(gè)位加一 sj5+; if(sj5=10) sj5=0; break;case 6:/時(shí)十位加一 sj6+; if(sj6=3) sj6=0; break; if(key3=0) delayms(100); if(key3=0) while(!

26、key3); switch(i)case 1:/秒個(gè)位減一 sj1-; if(sj1=-1) sj1=9; break; case 2:/秒十位減一 sj2-; if(sj2=-1) sj2=5; break;case 3:/分個(gè)位減一 sj3-; if(sj3=-1) sj3=9; break;case 4:/分十位減一 sj4-; if(sj4=-1) sj4=5; break;case 5:/時(shí)個(gè)位減一 sj5-; if(sj5=-1) sj5=9; break;case 6:/是十位減一 sj6-; if(sj6=-1) sj6=2; break; void main(void) uc

27、har i,k=0; Initial();Init(); /MAX7219初始化 while(1) keyscan();/時(shí)間顯示和進(jìn)位 if(sj1=10) sj1=0; sj2+; if(sj2=6) sj2=0; sj3+; if(sj3=10) sj3=0; sj4+; if(sj4=6) sj4=0; sj5+; if(sj5=10) sj5=0; sj6+; if(sj6=2&&sj5=4) sj6=0; sj5=0; for(i=1;i<7;i+)Write7219(i,sji);/數(shù)碼管顯示 void time0() interrupt 1 TH0=0x4

28、B; TL0=0xFF; time+; if(time=20) time=0; sj1+; 第五章 心得與體會(huì)做了兩周的單片機(jī)課程設(shè)想,我有了很多的領(lǐng)會(huì)和感想。由于我們這學(xué)期學(xué)習(xí)的是微機(jī)原理,沒有學(xué)習(xí)單片機(jī)。所以這次這次課程設(shè)計(jì)對(duì)我們來說還是有一定的難度的。特別是在我們調(diào)試時(shí),中間出現(xiàn)了一個(gè)問題我們怎么找都找不到。由于我們在宿舍編好程序,到實(shí)驗(yàn)室只需要粘貼上去就行了,當(dāng)我們編譯運(yùn)行的時(shí)候總是出現(xiàn)有不可編譯的字符的錯(cuò)誤提示。我們不管怎么找都沒有辦法解決這個(gè)問題。這個(gè)困擾了我們很長時(shí)間,最后實(shí)在想不出解決的辦法就請教直到我們試驗(yàn)的學(xué)長。原來使我們復(fù)制粘貼的時(shí)候把一個(gè)注釋的漢字一起粘貼到里面,而在程序里他卻被隱藏了。就這樣一個(gè)的小小的錯(cuò)誤卻花費(fèi)了我們那么久的時(shí)間,這也說明了編程的需要的細(xì)心和耐心。不能絲毫的粗心大意和懈怠。還有一個(gè)就是我們再往單片機(jī)里下程序的問題總是出現(xiàn)無法加載的信息,不管怎么樣,程序總是下不到單片機(jī)里面去,對(duì)于這一點(diǎn)我們沒有很好的辦法解決,有時(shí)候只能通過更換單片機(jī)來解決這個(gè)問題。也許這對(duì)于我們以后對(duì)單片機(jī)的學(xué)習(xí)有了一個(gè)提示,要通過以后的學(xué)習(xí)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論