版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 緒論</b></p><p> 1.1數(shù)字時(shí)鐘的介紹</p><p> 1.1.1 數(shù)字時(shí)鐘簡(jiǎn)介 </p><p> 1957年,Ventura發(fā)明了世界上第一個(gè)電子表,從而奠定了電子時(shí)鐘的基礎(chǔ),電子時(shí)鐘開始迅速發(fā)展起來?,F(xiàn)代的電
2、子時(shí)鐘是基于單片機(jī)的一種計(jì)時(shí)工具,采用延時(shí)程序產(chǎn)生一定的時(shí)間中斷,用于一秒的定義,通過計(jì)數(shù)方式進(jìn)行滿六十秒分鐘進(jìn)一,滿六十分小時(shí)進(jìn)一,滿二十四小時(shí)小時(shí)清零。從而達(dá)到計(jì)時(shí)的功能,是人民日常生活補(bǔ)課缺少的工具。</p><p> 1.1.2 數(shù)字時(shí)鐘的基本特點(diǎn) </p><p> 現(xiàn)在高精度的計(jì)時(shí)工具大多數(shù)都
3、使用了石英晶體振蕩器,走時(shí)精度高,穩(wěn)定性好,使用方便,不需要經(jīng)常調(diào)試,數(shù)字式電子鐘用集成電路計(jì)時(shí)時(shí),譯碼代替機(jī)械式傳動(dòng),用LED顯示器代替指針顯示進(jìn)而顯示時(shí)間,減小了計(jì)時(shí)誤差,這種表具有時(shí)、分、秒顯示時(shí)間的功能,還可以進(jìn)行時(shí)和分的校對(duì),片選的靈活性好。</p><p> 1.3.1 數(shù)字時(shí)鐘的原理 </p><p> 該電子時(shí)
4、鐘由89C51,BUTTON,六段數(shù)碼管等構(gòu)成,采用晶振電路作為驅(qū)動(dòng)電路,由延時(shí)程序和循環(huán)程序產(chǎn)生的一秒定時(shí),達(dá)到時(shí)分秒的計(jì)時(shí),六十秒為一分鐘,六十分鐘為一小時(shí),滿二十四小時(shí)為一天。而電路中兩個(gè)控制鍵功能直接按下不松開,則可以通過按鍵實(shí)現(xiàn)分鐘的累加,每按一次分鐘加一;而另一按鍵按下又放松,則可實(shí)現(xiàn)小時(shí)的調(diào)節(jié),同樣每按一次小時(shí)加一。</p><p> 1.2 單片機(jī)識(shí)的相關(guān)知識(shí)</p><p
5、> 單片機(jī)全稱為單片機(jī)微型計(jì)算機(jī)(Single Chip Microsoftcomputer)。從應(yīng)用領(lǐng)域來看,單片機(jī)主要用來控制,所以又稱為微控制器(Microcontroller Unit)或嵌入式控制器。單片機(jī)是將計(jì)算機(jī)的基本部件微型化并集成在一塊芯片上的微型計(jì)算機(jī)。</p><p> 單片機(jī)由運(yùn)算器、控制器、存儲(chǔ)器、輸入輸出設(shè)備構(gòu)成。 </p><p> 單片機(jī)自動(dòng)完成
6、賦予它的任務(wù)的過程,也就是單片機(jī)執(zhí)行程序的過程,即一條條執(zhí)行的指令的過程,所謂指令就是把要求單片機(jī)執(zhí)行的各種操作用的命令的形式寫下來,這是在設(shè)計(jì)人員賦予它的指令系統(tǒng)所決定的,一條指令對(duì)應(yīng)著一種基本操作;單片機(jī)所能執(zhí)行的全部指令,就是該單片機(jī)的指令系統(tǒng),不同種類的單片機(jī),其指令系統(tǒng)亦不同。為使單片機(jī)能自動(dòng)完成某一特定任務(wù),必須把要解決的問題編成一系列指令(這些指令必須是選定單片機(jī)能識(shí)別和執(zhí)行的指令),這一系列指令的集合就成為程序,程序需要
7、預(yù)先存放在具有存儲(chǔ)功能的部件——存儲(chǔ)器中。存儲(chǔ)器由許多存儲(chǔ)單元(最小的存儲(chǔ)單位)組成,就像大樓房有許多房間組成一樣,指令就存放在這些單元里,單元里的指令取出并執(zhí)行就像大樓房的每個(gè)房間的被分配到了唯一一個(gè)房間號(hào)一樣,每一個(gè)存儲(chǔ)單元也必須被分配到唯一的地址號(hào),該地址號(hào)稱為存儲(chǔ)單元的地址,這樣只要知道了存儲(chǔ)單元的地址,就可以找到這個(gè)存儲(chǔ)單元,其中存儲(chǔ)的指令就可以被取出,然后再被執(zhí)行。程序通常是順序執(zhí)行的,所以程序中的指令也是一條條順序存放的,
8、單片機(jī)在執(zhí)行程序時(shí)要能把這些指令一條條取出并加以執(zhí)行,必須有一個(gè)部件能追蹤指令所在的地址,這一部件就是程序</p><p> 1.3本次設(shè)計(jì)的要點(diǎn)</p><p> 本次設(shè)計(jì)中以單片機(jī)的發(fā)展過程和發(fā)展方向?yàn)楸尘?,介紹了單片機(jī)的輸入輸出的工作原理和操作方法,中斷的工作原理和操作方法,LED連接的方法。</p><p> 本次做的數(shù)字鐘是以單片機(jī)(AT89C51)
9、為核心,結(jié)合相關(guān)的元器件(共陽極LED數(shù)碼顯示器、數(shù)碼管驅(qū)動(dòng)器74LS164等),再配以相應(yīng)的軟件,它具有:時(shí),分,秒顯示的功能,并且時(shí),分,秒還可以調(diào)整。此次設(shè)計(jì)電子數(shù)字鐘是為了了解電子數(shù)字鐘的原理,從而學(xué)會(huì)制作電子數(shù)字鐘。而且通過電子數(shù)字鐘的制作進(jìn)一步的了解各種在制作中用到的中小規(guī)模集成電路的作用及實(shí)用方法。通過它可以進(jìn)一步學(xué)習(xí)與掌握單片機(jī)原理與使用方法。</p><p> 第二章 方案總體設(shè)計(jì)</p
10、><p> 2.1數(shù)字時(shí)鐘整體設(shè)計(jì)</p><p> 本次設(shè)計(jì)課題為智能電子數(shù)字時(shí)鐘的設(shè)計(jì),采用AT89C51單片機(jī)內(nèi)部定時(shí)器實(shí)現(xiàn)數(shù)字時(shí)鐘的定時(shí)功能,采用單片機(jī)的串口和74LS164擴(kuò)展并口實(shí)現(xiàn)LED靜態(tài)驅(qū)動(dòng)。電子時(shí)鐘系統(tǒng)的整體框圖如圖2-1所示。</p><p> 圖2-1 電子時(shí)鐘的整體框圖</p><p> 2.2數(shù)字時(shí)鐘計(jì)時(shí)的基本
11、方法</p><p> 利用AT89C51單片機(jī)的可編程定時(shí)/計(jì)數(shù)器、中斷系統(tǒng)來實(shí)現(xiàn)時(shí)鐘計(jì)數(shù)。</p><p> (1)計(jì)數(shù)初值計(jì)算:把定時(shí)器設(shè)為工作方式1,定時(shí)時(shí)間為50ms,則計(jì)數(shù)溢出20次即得時(shí)鐘計(jì)時(shí)最小單位秒,而計(jì)數(shù)可用軟件方法實(shí)現(xiàn)。假設(shè)使用T/C0,方式1,50ms定時(shí),fosc=12MHz。則初值X滿足(216-X)×1/12MHz×12μs =5000
12、0μs</p><p> X=15536→0011110010110000→3CB0H,則TH0=3CH,TL0=0BOH。</p><p> (2)采用中斷方式進(jìn)行溢出次數(shù)累計(jì),計(jì)滿20次為秒計(jì)時(shí)(1秒),就讓秒計(jì)數(shù)單元加1,當(dāng)秒計(jì)數(shù)達(dá)到60時(shí),就自動(dòng)返回到0,重新秒計(jì)數(shù);</p><p> (4)從秒到分,從分到時(shí)的計(jì)時(shí)是通過累加和數(shù)值比較實(shí)現(xiàn)。</
13、p><p> 2.3數(shù)字時(shí)鐘程序流程框圖</p><p> 2.3.1主程序流程框圖</p><p> 主程序功能主要是初始化、正常顯示時(shí)間和判斷功能轉(zhuǎn)換鍵。初始化包括數(shù)據(jù)堆棧區(qū)、定時(shí)/計(jì)數(shù)器的初始化、AT89C51芯片的初始化及時(shí)間、顯示數(shù)據(jù)的初始化。定時(shí)/計(jì)數(shù)器的初始化:包括對(duì)TMOD、TCON以及根據(jù)定時(shí)時(shí)間對(duì)時(shí)間初值的設(shè)置。顯示時(shí)間調(diào)用顯示子程序。當(dāng)P1.
14、0端口的S/H鍵按下時(shí),轉(zhuǎn)入調(diào)時(shí)功能。主程序流程圖如圖2—2所示。</p><p> 圖2—2主程序流程框圖</p><p> 2.3.2鍵掃子程序流程框圖</p><p> 鍵盤掃描程序是通過CPU來對(duì)外圍鍵盤電路進(jìn)行查詢。該程序能夠解決的問題有:</p><p> ?。?)是否有鍵按下;</p><p>
15、(2)若有鍵按下,判斷是哪一個(gè)鍵并確定其鍵值或鍵號(hào);</p><p> ?。?)去抖動(dòng):一個(gè)電壓信號(hào)是通過機(jī)械觸點(diǎn)的閉合、斷開過程來實(shí)現(xiàn)信號(hào)傳遞的。抖動(dòng)時(shí)間一般為5~10ms。按鍵的穩(wěn)定閉合期為幾百毫秒到幾秒鐘時(shí)間。為了保證CPU對(duì)按鍵閉合僅做一次鍵輸入處理,必須去除抖動(dòng)影響,通常硬件或軟件延時(shí)10ms處理。</p><p> 去抖之后再次進(jìn)行查詢。然后通過按鍵的鍵號(hào)執(zhí)行相應(yīng)的功能。鍵掃
16、子程序流程框圖圖2-3所示。</p><p> 圖2-3 鍵掃子程序流程框圖</p><p> 2.3.3調(diào)時(shí)程序流程框圖</p><p> 進(jìn)行時(shí)間調(diào)整時(shí),正在被調(diào)整的時(shí)間的間隔符以閃爍的形式表現(xiàn)。調(diào)整時(shí)間的方法是:按下S/H鍵,進(jìn)入調(diào)時(shí)狀態(tài),按下W鍵,星期單元加1,加至8時(shí)變?yōu)?(7過后即顯示1,不顯示8);按下H鍵,時(shí)單元加1,在加至24時(shí)變?yōu)?0(23
17、過后即顯示0,不顯示24);按下M鍵,分單元加1,加至60時(shí)變?yōu)?0(59過后即顯示00,不顯示60);按下S鍵,秒單元加1,秒如分一樣,加至60時(shí)變?yōu)?0,在調(diào)節(jié)好時(shí)間后,按下S/H鍵,保存操作者對(duì)時(shí)鐘時(shí)間的修改并退出調(diào)時(shí)模式進(jìn)入正常運(yùn)行狀態(tài),時(shí)間正常顯示。調(diào)時(shí)程序流程圖如圖2-4所示</p><p> 2.3.4定時(shí)中斷程序流程框圖</p><p> 定時(shí)中斷是電子時(shí)鐘的核心。定時(shí)
18、/計(jì)數(shù)器T0和T1的工作方式設(shè)置為:</p><p> (1)T0是工作在計(jì)數(shù)狀態(tài)下,對(duì)輸入的頻率信號(hào)進(jìn)行計(jì)數(shù),但對(duì)工作在計(jì)數(shù)狀態(tài)下的T0,最大計(jì)數(shù)值為fOSC/24,所以T1工作在定時(shí)狀態(tài)下,每定時(shí)1秒中到,就停止T0的計(jì)數(shù),而從T0的計(jì)數(shù)單元中讀取計(jì)數(shù)的數(shù)值,然后進(jìn)行數(shù)據(jù)處理。</p><p> (2)T1工作在定時(shí)狀態(tài)下,最大定時(shí)時(shí)間為65ms,達(dá)不到1秒的定時(shí),所以采用定時(shí)50
19、ms,共定時(shí)20次,即可完成1秒的定時(shí)功能。</p><p> 時(shí)鐘的最小計(jì)時(shí)單位是秒,60s進(jìn)位為1min,60min進(jìn)位為1h,24h進(jìn)位為1天。T0用于產(chǎn)生最小單位1s,定時(shí)時(shí)間為50ms,中斷累計(jì)20次即為1s。計(jì)數(shù)單元中每逢60進(jìn)位。定時(shí)中斷程序流程如圖2-5所示。</p><p> 圖2-5中斷服務(wù)程序流程框圖</p><p> 第三章 各個(gè)元件
20、的介紹</p><p> 3.1主控芯片AT89C51簡(jiǎn)介</p><p> AT89C51單片機(jī)的主要工作特性:</p><p> ·內(nèi)含4KB的FLASH存儲(chǔ)器,擦寫次數(shù)1000次;</p><p> ·內(nèi)含28字節(jié)的RAM;</p><p> ·具有32根可編程I/O線;
21、</p><p> ·具有2個(gè)16位可編程定時(shí)器;</p><p> ·具有6個(gè)中斷源、5個(gè)中斷矢量、2級(jí)優(yōu)先權(quán)的中斷結(jié)構(gòu);</p><p> ·具有1個(gè)全雙工的可編程串行通信接口;</p><p> ·具有一個(gè)數(shù)據(jù)指針DPTR;</p><p> ·兩種低功
22、耗工作模式,即空閑模式和掉電模式;</p><p> ·具有可編程的3級(jí)程序鎖定定位;</p><p> AT89C51的工作電源電壓為5(1±0.2)V且典型值為5V,最高工作頻率為24MHz.</p><p> 其引腳圖如圖3-1所示。</p><p> 圖3-1 AT89C51引腳圖</p>&
23、lt;p><b> 運(yùn)算器</b></p><p> 運(yùn)算器主要用來實(shí)現(xiàn)算術(shù)、邏輯運(yùn)算和位操作。其中包括算術(shù)和邏輯運(yùn)算單元ALU、累加器ACC、B寄存器、程序狀態(tài)字PSW和兩個(gè)暫存器等。</p><p> ALU是運(yùn)算電路的核心,實(shí)質(zhì)上是一個(gè)全加器,完成基本的算術(shù)和邏輯運(yùn)算。算術(shù)運(yùn)算包括加、減、乘、除、增量、減量、BCD碼運(yùn)算;邏輯運(yùn)算包括“與”、“或”、
24、“異或”、左移位、右移位和半字節(jié)交換,以及位操作中的位置位、位復(fù)位等。</p><p> 暫存器1和暫存器2是ALU的兩個(gè)輸入,用于暫存參與運(yùn)算的數(shù)據(jù)。ALU的輸出也是兩個(gè):一個(gè)是累加器,數(shù)據(jù)經(jīng)運(yùn)算后,其結(jié)果又通過內(nèi)部總線返回到累加器;另一個(gè)是程序狀態(tài)字PSW,用于存儲(chǔ)運(yùn)算和操作結(jié)果的狀態(tài)。</p><p> 累加器是CPU使用最頻繁的一個(gè)寄存器。ACC既是ALU處理數(shù)據(jù)的來源,又是A
25、LU運(yùn)算結(jié)果的存放單元。單片機(jī)與片外RAM或I/O擴(kuò)展口進(jìn)行數(shù)據(jù)交換必須通過ACC來進(jìn)行。</p><p> B寄存器在乘法和除法指令中作為ALU的輸入之一,另一個(gè)輸入來自ACC。運(yùn)算結(jié)果存于AB寄存器中。</p><p><b> ?。?)控制器</b></p><p> 控制器是識(shí)別指令并根據(jù)指令性質(zhì)協(xié)調(diào)計(jì)算機(jī)內(nèi)各組成單元進(jìn)行工作的部件
26、,主要包括程序計(jì)數(shù)器PC、PC增量器、指令寄存器、指令譯碼器、定時(shí)及控制邏輯電路等,其功能是控制指令的讀入、譯碼和執(zhí)行,并對(duì)指令執(zhí)行過程進(jìn)行定時(shí)和邏輯控制。AT89C51單片機(jī)中,PC是一個(gè)16位的計(jì)數(shù)器,可對(duì)64KB程序存儲(chǔ)器進(jìn)行尋址。復(fù)位時(shí)PC的內(nèi)容是0000H.</p><p><b> (3)存儲(chǔ)器</b></p><p> 單片機(jī)內(nèi)部的存儲(chǔ)器分為程序存儲(chǔ)
27、器和數(shù)據(jù)存儲(chǔ)器。AT89C51單片機(jī)的程序存儲(chǔ)器采用4KB的快速擦寫存儲(chǔ)器Flash Memory,編程和擦除完全是電器實(shí)現(xiàn)。</p><p><b> ?。?)外圍接口電路</b></p><p> AT89C51單片機(jī)的外圍接口電路主要包括:4個(gè)可編程并行I/O口,1個(gè)可編程串行口,2個(gè)16位的可編程定時(shí)器以及中斷系統(tǒng)等。</p><p>
28、;<b> 3.2晶振電路</b></p><p> 晶振電路如圖3-2所示。XTAL1和XTAL2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內(nèi)振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時(shí)鐘源驅(qū)動(dòng)器件,XTAL2應(yīng)不接。有余輸入至內(nèi)部時(shí)鐘信號(hào)要通過一個(gè)二分頻觸發(fā)器,因此對(duì)外部時(shí)鐘信號(hào)的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度。</p><p&
29、gt;<b> 圖3-2晶振電路圖</b></p><p> 單片機(jī)系統(tǒng)里都有晶振,在單片機(jī)系統(tǒng)里晶振作用非常大,全稱叫晶體振蕩器,他結(jié)合單片機(jī)內(nèi)部電路產(chǎn)生單片機(jī)所需的時(shí)鐘頻率,單片機(jī)晶振提供的時(shí)鐘頻率越高,那么單片機(jī)運(yùn)行速度就越快,單片接的一切指令的執(zhí)行都是建立在單片機(jī)晶振提供的時(shí)鐘頻率。</p><p> 單片機(jī)晶振的作用是為系統(tǒng)提供基本的時(shí)鐘信號(hào)。通常一個(gè)
30、系統(tǒng)共用一個(gè)晶振,便于各部分保持同步。有些通訊系統(tǒng)的基頻和射頻使用不同的晶振,而通過電子調(diào)整頻率的方法保持同步。</p><p> 晶振通常與鎖相環(huán)電路配合使用,以提供系統(tǒng)所需的時(shí)鐘頻率。如果不同子系統(tǒng)需要不同頻率的時(shí)鐘信號(hào),可以用與同一個(gè)晶振相連的不同鎖相環(huán)來提供。</p><p><b> 3.3復(fù)位電路</b></p><p> 復(fù)
31、位是單片機(jī)的初始化操作,單片機(jī)在啟動(dòng)運(yùn)行時(shí),都需要先復(fù)位,它的作用是使CPU和系統(tǒng)中其他部件都處于一個(gè)確定的初始狀態(tài),并從這個(gè)狀態(tài)開始工作。例如復(fù)位后,PC初始化為0,于是單片機(jī)自動(dòng)從0單元開始執(zhí)行程序。因而復(fù)位是一個(gè)很重要的操作方式。80C51系列單片機(jī)本身,一般是不能自動(dòng)進(jìn)行復(fù)位的,必須配合相應(yīng)的外部電路才能實(shí)現(xiàn)。</p><p><b> 3.3.1復(fù)位分類</b></p>
32、;<p> 單片機(jī)的整個(gè)復(fù)位電路包括芯片內(nèi)、外兩部分,外部電路產(chǎn)生的復(fù)位信號(hào)通過復(fù)位引腳RST進(jìn)入片內(nèi)一個(gè)施密特觸發(fā)器(抑制噪聲作用)再與片內(nèi)復(fù)位電路相連,80C51內(nèi)部電路原理圖見圖3-3。復(fù)位電路每個(gè)機(jī)器周期對(duì)施密特觸發(fā)器的輸出采樣一次,當(dāng)RST引腳端保持兩個(gè)機(jī)器周期(24個(gè)時(shí)鐘周期)以上的高電平時(shí),80C51進(jìn)入復(fù)位狀態(tài)。</p><p><b> 圖3-3復(fù)位電路</b&
33、gt;</p><p><b> 3.3.2復(fù)位狀態(tài)</b></p><p> 復(fù)位后片內(nèi)各專用寄存器的狀態(tài)如表3-4所示,表中X為不確定數(shù)。</p><p> 3.3.3 外部復(fù)位電路設(shè)計(jì)</p><p><b> 1、手動(dòng)按鈕復(fù)位 </b></p><p> 手
34、動(dòng)按鈕復(fù)位需要人為在復(fù)位輸入端RST上加入高電平(圖1)。一般采用的辦法是在RST端和正電源Vcc之間接一個(gè)按鈕。當(dāng)人為按下按鈕時(shí),則Vcc的+5V電平就會(huì)直接加到RST端。手動(dòng)按鈕復(fù)位的電路如所示。由于人的動(dòng)作再快也會(huì)使按鈕保持接通達(dá)數(shù)十毫秒,所以,完全能夠滿足復(fù)位的時(shí)間要求。 </p><p><b> 2、上電復(fù)位 </b></p><p> AT89C51
35、的上電復(fù)位電路如圖2所示,只要在RST復(fù)位輸入引腳上接一電容至Vcc端,下接一個(gè)電阻到地即可。對(duì)于CMOS型單片機(jī),由于在RST端內(nèi)部有一個(gè)下拉電阻,故可將外部電阻去掉,而將外接電容減至1?F。上電復(fù)位的工作過程是在加電時(shí),復(fù)位電路通過電 容加給RST端一個(gè)短暫的高電平信號(hào),此高電平信號(hào)隨著Vcc對(duì)電容的充電過程而逐漸回落,即RST端的高電平持續(xù)時(shí)間取決于電容的充電時(shí)間。為了保證系統(tǒng)能夠可靠地復(fù)位,RST端的高電平信號(hào)必須維持足夠長(zhǎng)的時(shí)
36、間。上電時(shí),Vcc的上升時(shí)間約為10ms,而振蕩器的起振時(shí)間取決于振蕩頻率,如晶振頻率為10MHz,起振時(shí)間為1ms;晶振頻率為1MHz,起振時(shí)間則為10ms。在圖2的復(fù)位電路中,當(dāng)Vcc掉電時(shí),必然會(huì)使RST端電壓迅速下降到0V以下,但是,由于內(nèi)部電路的限制作用,這個(gè)負(fù)電壓將不會(huì)對(duì)器件產(chǎn)生損害。另外,在復(fù)位期間,端口引腳處于隨機(jī)狀態(tài),復(fù)位后,系統(tǒng)將端口置為全“l(fā)”態(tài)。如果系統(tǒng)在上電時(shí)得不到有效的復(fù)位,則程序計(jì)數(shù)器PC將得不到一個(gè)合適的
37、初值,因此,CPU可能會(huì)從一個(gè)未被定義的位置開始執(zhí)行程序。</p><p><b> 3.4按鍵接口</b></p><p> 3.4.1鍵盤工作原理</p><p> 在單片機(jī)系統(tǒng)中,除了復(fù)位鍵有專門的復(fù)位電路以及專一的復(fù)位功能外,其他的按鍵都是以開關(guān)的狀態(tài)來設(shè)置控制功能或輸入數(shù)據(jù)的。</p><p> 鍵盤中
38、每個(gè)按鍵都是一個(gè)常開的開關(guān)電路,當(dāng)所設(shè)置的功能鍵或數(shù)字鍵按下時(shí),則處于閉合狀態(tài),對(duì)于一組鍵或一個(gè)鍵盤,需要通過接口電路與單片機(jī)相連,以便把鍵的開關(guān)狀態(tài)通知單片機(jī)。單片機(jī)可以采用查詢或中斷方式了解有無鍵輸入并檢查是哪一個(gè)鍵被按下,并通過轉(zhuǎn)移指令轉(zhuǎn)入執(zhí)行該鍵的功能程序,執(zhí)行完又返回到原始狀態(tài)。</p><p> 3.4.2獨(dú)立式按鍵</p><p> (1)獨(dú)立式按鍵電路結(jié)構(gòu)如圖3-4所示
39、,圖中每個(gè)I/O口上都加了上拉電阻。在實(shí)際應(yīng)用中,如I/O口內(nèi)部已有上拉電阻,可以省去。</p><p><b> 圖3-4按鍵原理圖</b></p><p> 獨(dú)立式按鍵電路配置靈活,硬件結(jié)構(gòu)簡(jiǎn)單,但每個(gè)按鍵必須占用一根I/O口線,在按鍵數(shù)量較多時(shí),浪費(fèi)較多。故只有在按鍵數(shù)量不多時(shí)采用這種按鍵電路。</p><p> 3.4.3行列式鍵
40、盤</p><p> ?。?)單片機(jī)系統(tǒng)鍵盤原理</p><p> 行列式鍵盤的接法比獨(dú)立式鍵盤的接法復(fù)雜,編程實(shí)現(xiàn)上也會(huì)比較復(fù)雜。但是,在占用相同的I/O端口的情況下,行列式鍵盤的接法會(huì)比獨(dú)立式接法允許的按鍵數(shù)量多,其原理圖如圖3-5所示。</p><p> 圖3-5 4×4行列式鍵盤的原理圖</p><p> 實(shí)際的工程
41、中,可能會(huì)使用PIC16C5X這種通用的可編程的鍵盤、顯示接口器件,使用PIC16C5X單片器件就能夠完成鍵盤輸入和顯示控制兩種功能。</p><p> 行列式鍵盤的工作方式是先用列線發(fā)送掃描字,然后讀取行線的狀態(tài),查看是否有按鍵按下。鍵盤部分提供一種掃描的工作方式,可以和具有64個(gè)按鍵的矩陣鍵盤相連接,能對(duì)鍵盤不斷掃描、自動(dòng)消抖、自動(dòng)識(shí)別按下的鍵,并給出編碼,能對(duì)雙鍵或n個(gè)鍵同時(shí)按下的情況實(shí)行保護(hù)。</
42、p><p> 鍵盤中哪一個(gè)鍵按下可由列線逐列置低電平后,檢查行輸入狀態(tài)來判斷,其方法是依次給列線送低電平,然后檢查所有行線狀態(tài),如果全為1,則所按下的鍵不在此列,如果不全為1,則所按下的鍵必在此列,而且是在與0電平線相交的交點(diǎn)上的那個(gè)鍵。</p><p> ?。?)單片機(jī)鍵盤掃描法</p><p> 掃描法是在判定有鍵按下后逐列果行(或列)的狀態(tài)出現(xiàn)非全1狀態(tài),如果
43、(或列)的狀態(tài)出現(xiàn)非全1狀態(tài),這時(shí)0狀態(tài)的行、列交點(diǎn)的鍵就是所按下的鍵。</p><p> 掃描法的特點(diǎn)是逐行(或逐列)掃描查詢,這時(shí)相應(yīng)行(或列)應(yīng)有上拉電阻接高電平。行列式鍵盤掃描程序就是采用掃描法來確定哪個(gè)鍵按下的,圖1中行線上拉電阻接+5V,列線逐列掃描。</p><p> ?、僦鹦校ɑ蛄校呙璨樵兎?。</p><p> 確定矩陣式鍵盤上哪個(gè)鍵被按下時(shí)運(yùn)
44、用掃描法,又稱為逐行(或列)掃描查詢法,是一種最常用的按鍵識(shí)別方法,過程如下。</p><p> 判斷鍵盤中有無鍵按下,將全部行線Y0~Y3置低電平,然后檢測(cè)列線的狀態(tài)。只要有一列的電平為低,則表示鍵盤中有鍵被按下,而且閉合的鍵位于低電平線與4根行線相交叉的4個(gè)按鍵之中。若所有列線均為高電平,則鍵盤中無鍵按下。</p><p> 判斷閉合鍵所在的位置,在確認(rèn)有鍵按下后,即可進(jìn)入確定具體
45、閉合鍵的過程。其方法是:依次將行線置為低電平,即在置某根行線為低電平時(shí),其他線為高電平,在確定某根行線位置為低電平后,再逐行檢測(cè)各列線的電平狀態(tài),若某列為低,則該列線與置為低電平的行線交叉處的按鈕就是閉合的按鍵。</p><p><b> ?、诜崔D(zhuǎn)法。</b></p><p> 掃描法要逐列(行)掃描查詢,當(dāng)按下的鍵在最后行(列),要經(jīng)過多次掃描才能獲得鍵值/鍵號(hào)。
46、而反轉(zhuǎn)法只要經(jīng)過兩個(gè)步驟就可獲得鍵值,原理如圖3-6所示。</p><p> 圖3-6 線反轉(zhuǎn)法原理</p><p> 圖中硬件采用中斷方式工作,用一個(gè)8位I/O口構(gòu)成4×4鍵盤。假定圖中虛線為所按下的鍵,其反轉(zhuǎn)法的步驟如下。</p><p> 將D3~D0設(shè)為列輸入線,D7~D4設(shè)為行輸出線,并使I/O輸出信號(hào)D7~D4為0000。若有鍵按下,與門
47、的輸出端變?yōu)榈碗娖?,向CPU申請(qǐng)中斷,表示鍵盤中有鍵按下。與此同時(shí),D3~D0的數(shù)據(jù)輸入到內(nèi)存中的某一單元中,其中0位對(duì)應(yīng)的是被按下鍵的列位置。</p><p> 將第一步中的傳送方向反轉(zhuǎn)過來,即將D7~D4設(shè)為輸入線,D3~D0設(shè)為輸出線。使I/O口輸出數(shù)據(jù)為N單元中的數(shù)(即D3~D0為按下鍵的列位置),然后讀入I/O口數(shù)據(jù),并送入內(nèi)存N+1單元中存放,該數(shù)據(jù)的D7~D4位中0電平對(duì)應(yīng)的位是按下鍵的行位置。最
48、后,將N單元中的D3~D0與N+1單元中的D7~D4拼接起來就是按下鍵的鍵值。</p><p><b> 3.5顯示接口</b></p><p> 3.5.1LED顯示器的結(jié)構(gòu)</p><p> ?。?)七段LED顯示器(數(shù)碼管)系發(fā)光器件的一種。常用的LED發(fā)光器件有兩類:數(shù)碼管和點(diǎn)陣。</p><p> ?。?)
49、數(shù)碼管內(nèi)部由七個(gè)條形發(fā)光二極管和一個(gè)小圓點(diǎn)發(fā)光二極管組成,根據(jù)各管的亮暗組合成字符。根據(jù)內(nèi)部發(fā)光二極管的接線形式可分為共陰極和共陽極兩種。</p><p> ?。?)使用時(shí),共陰極數(shù)碼管公共端接地,共陽極數(shù)碼管公共端接電源。每段發(fā)光二極管需5~10mA的驅(qū)動(dòng)電流才能正常發(fā)光,一般需加限流電阻控制電流的大小。</p><p> 3.5.2. 靜態(tài)顯示</p><p>
50、; 靜態(tài)顯示就是顯示驅(qū)動(dòng)電路具有輸出鎖存功能,單片機(jī)將所要顯示的數(shù)據(jù)送出去后,數(shù)碼管始終顯示該數(shù)據(jù)(不變),CPU不再控制LED。到下一次顯示時(shí),再傳送一次新的顯示數(shù)據(jù)。</p><p> 靜態(tài)顯示的接口電路采用一個(gè)并行口接一個(gè)數(shù)碼管,數(shù)碼管的公共端按共陰極或共陽極分別接地或接VCC。這種接法,每個(gè)數(shù)碼管都要單獨(dú)占用一個(gè)并行I/O口,以便單片機(jī)傳送字形碼到數(shù)碼管控制數(shù)碼管的顯示。顯然其缺點(diǎn)就是當(dāng)顯示位數(shù)多時(shí),
51、占用I/O口過多。</p><p> 為了解決靜態(tài)顯示I/O口占用過多的問題,可采用串行接口擴(kuò)展LED數(shù)碼管的技術(shù)。</p><p> 靜態(tài)顯示方式的優(yōu)點(diǎn)是顯示的數(shù)據(jù)穩(wěn)定,無閃爍,占用CPU時(shí)間少。其缺點(diǎn)是由于數(shù)碼管始終發(fā)光,功耗比較大。 </p><p><b> 3.5.3動(dòng)態(tài)顯示</b></p><p>
52、動(dòng)態(tài)掃描方法是用其接口電路把所有數(shù)碼管的8個(gè)筆劃段a~g和dp同名端連在一起,而每一個(gè)數(shù)碼管的公共極COM各自獨(dú)立地受I/O線控制。CPU向字段輸出口送出字形碼時(shí),所有數(shù)碼管接收到相同的字形碼。但究竟是哪個(gè)數(shù)碼管亮,則取決于COM端,COM端與單片機(jī)的I/O口相連接,由單片機(jī)輸出位碼到I/O控制何時(shí)哪一位數(shù)碼管亮。</p><p> 動(dòng)態(tài)掃描用分時(shí)的方法輪流控制各個(gè)數(shù)碼管的COM端,使各個(gè)數(shù)碼管輪流點(diǎn)亮。在輪流
53、點(diǎn)亮數(shù)碼管的掃描過程中,每位數(shù)碼管的點(diǎn)亮?xí)r間極為短暫。但由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù)。</p><p> 優(yōu)點(diǎn):當(dāng)顯示位數(shù)較多時(shí),采用動(dòng)態(tài)顯示方式比較節(jié)省I/O口,硬件電路也較靜態(tài)顯示簡(jiǎn)單。</p><p> 缺點(diǎn):其穩(wěn)定度不如靜態(tài)顯示方式。而且在顯示位數(shù)較多時(shí)CPU要輪番掃描,占用CPU較多的時(shí)間。 </p><p>
54、; 第四章 proteus硬件的介紹</p><p> Proteus是目前最好的模擬單片機(jī)外圍器件的工具,可以仿真51系列、AVR,PIC等常用的MCU及其外圍電路(如LCD,RAM,ROM,鍵盤,馬達(dá),LED,AD/DA,部分SPI器件,部分IIC器件,...)其Proteus與其它單片機(jī)仿真軟件不同的是,它不僅能仿真單片機(jī)CPU的工作情況,也能仿真單片機(jī)外圍電路或沒有單片機(jī)參與的其它電路的工作情況。因
55、此在仿真和程序調(diào)試時(shí),關(guān)心的不再是某些語句執(zhí)行時(shí)單片機(jī)寄存器和存儲(chǔ)器內(nèi)容的改變,而是從工程的角度直接看程序運(yùn)行和電路工作的過程和結(jié)果。對(duì)于這樣的仿真實(shí)驗(yàn),從某種意義上講,是彌補(bǔ)了實(shí)驗(yàn)和工程應(yīng)用間脫節(jié)的矛盾和現(xiàn)象。 </p><p> 4.1proteus的功能特點(diǎn)</p><p> Proteus軟件具有其它EDA工具軟件(例:multisim)的功能。這些功能是: </p>
56、;<p><b> ?。?)原理布圖 </b></p><p> ?。?)PCB自動(dòng)或人工布線 </p><p> (3)SPICE電路仿真 </p><p><b> 革命性的特點(diǎn) </b></p><p> ?。?)互動(dòng)的電路仿真 </p><p>
57、用戶甚至可以實(shí)時(shí)采用諸如RAM,ROM,鍵盤,馬達(dá),LED,LCD,AD/DA,部分SPI器件,部分IIC器件。 </p><p> ?。?)仿真處理器及其外圍電路 </p><p> 可以仿真51系列、AVR、PIC、ARM、等常用主流單片機(jī)。還可以直接在基于原理圖的虛擬原型 </p><p> 上編程,再配合顯示及輸出,能看到運(yùn)行后輸入輸出的效果。配合系統(tǒng)配
58、置的虛擬邏輯分析儀、示波器等,Proteus建立了完備的電子設(shè)計(jì)開發(fā)環(huán)境。 </p><p> 4.2proteus的功能模塊</p><p> ?。?)智能原理圖設(shè)計(jì)(ISIS)</p><p> 豐富的器件庫(kù):超過27000種元器件,可方便地創(chuàng)建新元件; </p><p> 智能的器件搜索:通過模糊搜索可以快速定位所需要的器件; &
59、lt;/p><p> 智能化的連線功能:自動(dòng)連線功能使連接導(dǎo)線簡(jiǎn)單快捷,大大縮短繪圖時(shí)間; </p><p> 支持總線結(jié)構(gòu):使用總線器件和總線布線使電路設(shè)計(jì)簡(jiǎn)明清晰; </p><p> 可輸出高質(zhì)量圖紙:通過個(gè)性化設(shè)置,可以生成印刷質(zhì)量的BMP圖紙,可以方便地供WORD、POWERPOINT等多種文檔使用。 </p><p> ?。?)
60、完善的電路仿真功能(Prospice)</p><p> ProSPICE混合仿真:基于工業(yè)標(biāo)準(zhǔn)SPICE3F5,實(shí)現(xiàn)數(shù)字/模擬電路的混合仿真; </p><p> 超過27000個(gè)仿真器件:可以通過內(nèi)部原型或使用廠家的SPICE文件自行設(shè)計(jì)仿真器件,Labcenter也在不斷地發(fā)布新的仿真器件,還可導(dǎo)入第三方發(fā)布的仿真器件; </p><p> 多樣的激勵(lì)源
61、:包括直流、正弦、脈沖、分段線性脈沖、音頻(使用wav文件)、指數(shù)信號(hào)、單頻FM、數(shù)字時(shí)鐘和碼流,還支持文件形式的信號(hào)輸入; </p><p> 豐富的虛擬儀器:13種虛擬儀器,面板操作逼真,如示波器、邏輯分析儀、信號(hào)發(fā)生器、直流電壓/電流表、交流電壓/電流表、數(shù)字圖案發(fā)生器、頻率計(jì)/計(jì)數(shù)器、邏輯探頭、虛擬終端、SPI調(diào)試器、I2C調(diào)試器等; </p><p> 生動(dòng)的仿真顯示:用色點(diǎn)
62、顯示引腳的數(shù)字電平,導(dǎo)線以不同顏色表示其對(duì)地電壓大小,結(jié)合動(dòng)態(tài)器件(如電機(jī)、顯示器件、按鈕)的使用可以使仿真更加直觀、生動(dòng); </p><p> 高級(jí)圖形仿真功能(ASF):基于圖標(biāo)的分析可以精確分析電路的多項(xiàng)指標(biāo),包括工作點(diǎn)、瞬態(tài)特性、頻率特性、傳輸特性、噪聲、失真、傅立葉頻譜分析等,還可以進(jìn)行一致性分析; </p><p> ?。?)獨(dú)特的單片機(jī)協(xié)同仿真功能(VSM)</p&g
63、t;<p> 支持主流的CPU類型:如ARM7、8051/52、AVR、PIC10/12、PIC16、PIC18、PIC24、dsPIC33、HC11、BasicStamp、8086、MSP430等,CPU類型隨著版本升級(jí)還在繼續(xù)增加,如即將支持CORTEX、DSP處理器; </p><p> 支持通用外設(shè)模型:如字符LCD模塊、圖形LCD模塊、LED點(diǎn)陣、LED七段顯示模塊、鍵盤/按鍵、直流/
64、步進(jìn)/伺服電機(jī)、RS232虛擬終端、電子溫度計(jì)等等,其COMPIM(COM口物理接口模型)還可以使仿真電路通過PC機(jī)串口和外部電路實(shí)現(xiàn)雙向異步串行通信; </p><p> 實(shí)時(shí)仿真:支持UART/USART/EUSARTs仿真、中斷仿真、SPI/I2C仿真、MSSP仿真、PSP仿真、RTC仿真、ADC仿真、CCP/ECCP仿真; </p><p> 編譯及調(diào)試:支持單片機(jī)匯編語言的編
65、輯/編譯/源碼級(jí)仿真,內(nèi)帶8051、AVR、PIC的匯編編譯器,也可以與第三方集成編譯環(huán)境(如IAR、Keil和Hitech)結(jié)合,進(jìn)行高級(jí)語言的源碼級(jí)仿真和調(diào)試; </p><p> ?。?)實(shí)用的PCB設(shè)計(jì)平臺(tái)</p><p> 原理圖到PCB的快速通道: 原理圖設(shè)計(jì)完成后,一鍵便可進(jìn)入ARES的PCB設(shè)計(jì)環(huán)境,實(shí)現(xiàn)從概念到產(chǎn)品的完整設(shè)計(jì); </p><p>
66、 先進(jìn)的自動(dòng)布局/布線功能:支持器件的自動(dòng)/人工布局;支持無網(wǎng)格自動(dòng)布線或人工布線;支持引腳交換/門交換功能使PCB設(shè)計(jì)更為合理; </p><p> 完整的PCB設(shè)計(jì)功能:最多可設(shè)計(jì)16個(gè)銅箔層,2個(gè)絲印層,4個(gè)機(jī)械層(含板邊),靈活的布線策略供用戶設(shè)置,自動(dòng)設(shè)計(jì)規(guī)則檢查,3D 可視化預(yù)覽; </p><p> 多種輸出格式的支持:可以輸出多種格式文件,包括Gerber文件的導(dǎo)入或
67、導(dǎo)出,便利與其它PCB設(shè)計(jì)工具的互轉(zhuǎn)(如protel)和PCB板的設(shè)計(jì)和加工。 </p><p> 第五章 Keil uvision2仿真軟件的介紹</p><p> Keil uVision2是德國(guó)Keil Software公司出品的51系列兼容單片機(jī)C語言軟件開發(fā)系統(tǒng),使用接近于傳統(tǒng)c語言的語法來開發(fā),與匯編相比,C語言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢(shì),因而易學(xué)易用
68、,而且大大的提高了工作效率和項(xiàng)目開發(fā)周期,他還能嵌入?yún)R編,您可以在關(guān)鍵的位置嵌入,使程序達(dá)到接近于匯編的工作效率。KEILC51標(biāo)準(zhǔn)C編譯器為8051微控制器的軟件開發(fā)提供了C語言環(huán)境,同時(shí)保留了匯編代碼高效,快速的特點(diǎn)。C51編譯器的功能不斷增強(qiáng), 使你可以更加貼近CPU本身,及其它的衍生產(chǎn)品。C51已被完全集成到uVision2的集成開發(fā)環(huán)境中,這個(gè)集成開發(fā)環(huán)境包含:編譯器,匯編器,實(shí)時(shí)操作系統(tǒng),項(xiàng)目管理器,調(diào)試器。uVision2
69、 IDE可為它們提供單一而靈活的開發(fā)環(huán)境。 </p><p><b> 系統(tǒng)功能</b></p><p> Keil C51軟件提供豐富的庫(kù)函數(shù)和功能強(qiáng)大的集成開發(fā)調(diào)試工具,全Windows界面,使您能在很短的時(shí)間內(nèi)就能學(xué)會(huì)使用keil c51來開發(fā)您的單片機(jī)應(yīng)用程序 。 </p><p> 另外重要的一點(diǎn),只要看一下編譯后生成的匯編代碼
70、,就能體會(huì)到Keil C51生成的目標(biāo)代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時(shí)更能體現(xiàn)高級(jí)語言的優(yōu)勢(shì)。</p><p> 5.1 Keil uVision2軟件仿真</p><p><b> 1.軟件設(shè)置</b></p><p> 點(diǎn)擊按鈕,按照?qǐng)D3-1 里面的圖示方法,進(jìn)行端口設(shè)置:</p>
71、<p> 圖5-1 設(shè)置Debug 選項(xiàng)卡</p><p><b> 2.編譯</b></p><p> 點(diǎn)擊按鈕,無誤后點(diǎn)擊按鈕,如圖3-2。編譯無誤后點(diǎn)擊按鈕開始調(diào)試。</p><p><b> 圖5-2 編譯</b></p><p><b> 3.調(diào)試&l
72、t;/b></p><p> 打開View 菜單下 Memory Window (存儲(chǔ)器窗口),在存儲(chǔ)器窗口的Address 輸入框中輸入: </p><p> X:0x8000 (如需查看單片機(jī)內(nèi)RAM單元?jiǎng)t輸入D:0x**,如:D:0x30)</p><p> 接著按回車鍵,存儲(chǔ)器窗口顯示8000H 起始的存儲(chǔ)數(shù)據(jù)(都為0)。點(diǎn)擊按鈕,運(yùn)行程序,如圖
73、3-3。</p><p> 程序運(yùn)行結(jié)束后,存儲(chǔ)器窗口顯示8000H 起始的20 個(gè)單元的數(shù)據(jù)變?yōu)椤?FFH”,如圖3-4。</p><p><b> 圖5-3 調(diào)試窗口</b></p><p><b> 4.設(shè)置斷點(diǎn)</b></p><p> 在需設(shè)斷點(diǎn)的指令行的空白處雙擊左鍵,指令行的前
74、端出現(xiàn)紅色方塊即可。同樣,取消斷點(diǎn)設(shè)置,也在空白處雙擊左鍵,紅色方塊消失。如圖3-5。</p><p><b> 圖5-4 調(diào)試窗口</b></p><p> 按鈕分別為:復(fù)位CPU、運(yùn)行、停止、單步執(zhí)行程序(遇到子程序則進(jìn)入)和單步執(zhí)行程序(跳過子程序)。</p><p> 5.如何生成.HEX格式文件</p><p
75、> 因?yàn)闊浧饕话阒恢С郑瓾EX格式文件,而Keil uVision2的默認(rèn)設(shè)置中不會(huì)生成該格式的文件,這就需要我們來設(shè)置了。如圖3.6設(shè)置Output選項(xiàng)卡中的選中“Create HEX Fi:”前的復(fù)選框,然后在編譯后就會(huì)生成和項(xiàng)目主文件名同名擴(kuò)展名為“.HEX”的文件。</p><p> 圖5-5 設(shè)置Output選項(xiàng)卡</p><p> 5.2THKL-C51 仿真器介
76、紹仿真器復(fù)位按鈕的作用</p><p> 在仿真器的右側(cè)下方有一個(gè)小的按紐,這個(gè)按鈕用來給整個(gè)仿真器硬件系統(tǒng)復(fù)位,什么時(shí)候需要按這個(gè)按鈕呢?設(shè)置好KEIL的硬件環(huán)境后,在每次點(diǎn)擊進(jìn)入仿真環(huán)境之前,需要按一下這個(gè)復(fù)位按紐,這樣KEIL啟動(dòng)后,軟件和已復(fù)位的硬件仿真器就會(huì)順利聯(lián)機(jī)。在點(diǎn)擊進(jìn)入仿真環(huán)境之后,仿真器完全由KEIL控制,此時(shí)不要按這個(gè)按鈕,否則在仿真過程中系統(tǒng)將會(huì)提示聯(lián)機(jī)中斷。如果需要給硬件復(fù)位的話,請(qǐng)先
77、點(diǎn)擊退出KEIL仿真調(diào)試環(huán)境。</p><p> 仿真器使用注意事項(xiàng):在打開PC機(jī)之前請(qǐng)把仿真器和PC機(jī)的串口連好。在聯(lián)機(jī)后,請(qǐng)千萬不要帶電插拔仿真器和PC機(jī)的接口,如果帶電插拔仿真器就可能導(dǎo)致接口電路MAX232 損壞。注意插拔的時(shí)候仿真器或者PC機(jī)至少有一方的電源是斷開的。</p><p> 斷開連接之前推薦步驟:</p><p> ?。?)按一下仿真器硬件
78、復(fù)位按紐;</p><p> ?。?)按退出仿真環(huán)境;</p><p> ?。?)關(guān)閉KEIL,關(guān)閉PC機(jī),最后再斷開硬件連接,如果要經(jīng)常使用則不用斷開硬件連接。</p><p><b> 5.3仿真結(jié)果圖</b></p><p><b> 圖5-6原始參照?qǐng)D</b></p>&l
79、t;p><b> 圖5-7調(diào)秒圖</b></p><p><b> 圖5-8調(diào)分圖</b></p><p><b> 圖5-9調(diào)時(shí)圖</b></p><p><b> 第六章 設(shè)計(jì)心得</b></p><p> 通過這次課程設(shè)計(jì),我們進(jìn)一步
80、掌握了單片機(jī)的一些構(gòu)成部件以及顯示接口、按鍵接口等,最主要的是掌握了我們單片機(jī)學(xué)習(xí)的主要元件AT89C51的引腳的作用以及連接方式。將理論知識(shí)付諸于實(shí)踐,又鞏固了理論知識(shí)。</p><p> 在本次實(shí)踐中劉老師盡心盡力,著重我們自己掌握并弄懂程序的作用以及編寫。雖然我們平時(shí)編寫的程序很少,編程有點(diǎn)困難,但劉老師為我們把每一條語句仔細(xì)講解,讓我們弄懂才讓我們編寫。從中我們鞏固了大部分指令的用法和編程的基本格式,體
81、會(huì)到編程的不易以及編程成功的喜悅。不管哪個(gè)同學(xué)有問題,劉老師都會(huì)耐心地為我們解決問題。比如我,編程好了之后就是只有三個(gè)數(shù)碼管亮,自己找了好久就是找不出問題,老師來了幫我找了好久才找出:原來我每次為時(shí)、分、秒分配數(shù)碼管時(shí)忘了加#,害的老師找了老半天,謝謝老師為我們的付出,老師,你辛苦了。</p><p> 這次設(shè)計(jì)采用AT89S51與顯示驅(qū)動(dòng)芯片74LS245作為主控芯片與數(shù)據(jù)存儲(chǔ)器單元,結(jié)合外圍的鍵盤輸入、顯示
82、、電源輸入等電路并用匯編編寫主控芯片的控制程序,設(shè)計(jì)了一款可以調(diào)時(shí)功能的數(shù)字時(shí)鐘。數(shù)字時(shí)鐘嚴(yán)格按照要求設(shè)計(jì),基本達(dá)到了預(yù)期效果,能夠正確的顯示時(shí)分秒的計(jì)時(shí),并且可以調(diào)時(shí),算得上是一次比較成功的設(shè)計(jì)了。</p><p> 通過這次的課程設(shè)計(jì),使我明白:知識(shí),不僅僅是要學(xué)會(huì),更重要的是要會(huì)用,要懂得怎么用。作為??粕奈覀?,理論知識(shí)不是很牢固,所以在加強(qiáng)理論的同時(shí)還要提高動(dòng)手能力,在以后的工作中,注重的更是動(dòng)手能力
83、,用實(shí)踐鞏固理論知識(shí),使理論知識(shí)更加扎實(shí),用起來更加得心應(yīng)手。</p><p> 這次也是我們第一次做課程設(shè)計(jì),算是一個(gè)較好的開始吧,也可以說是為畢業(yè)設(shè)計(jì)做一次鋪墊,寫報(bào)告是一大難點(diǎn),只要用心都會(huì)解決,到時(shí)畢業(yè)設(shè)計(jì)的論文比這還要難,一步步解決,總會(huì)做好的。</p><p> 附錄1 參考源程序</p><p> ORG 0000
84、H</p><p> LJMP MAIN</p><p> ORG 0003H</p><p> LJMP MIAO</p><p> ORG 000BH</p><p> LJMP FEN</p><p> ORG 0013H</p>
85、<p> LJMP SHI</p><p> ORG 0001BH</p><p><b> LJMP ZJ</b></p><p> MAIN: MOV R7,#20</p><p> MOV R4,#00H</p><p> MOV R5,#00H&l
86、t;/p><p> MOV R6,#00H</p><p> MOV TMOD,#16H</p><p> MOV TH1,#3CH</p><p> MOV TL1,#0B0H</p><p> MOV TH0,#0FFH</p><p> MOV TL0,#0FFH</p>
87、;<p><b> CLR EX1</b></p><p><b> CLR EX0</b></p><p><b> CLR ET0</b></p><p><b> SETB ET1</b></p><p><b>
88、; SETB IT1</b></p><p><b> SETB IT0</b></p><p><b> SETB TR1</b></p><p><b> SETB TR0</b></p><p><b> SETB PT1</b>
89、;</p><p><b> SETB EA</b></p><p><b> LOOP:</b></p><p><b> MOV A,R4</b></p><p><b> MOV B,#10</b></p><p>&
90、lt;b> DIV AB</b></p><p> MOV DPTR,#TAB</p><p> MOVC A,@A+DPTR</p><p> MOV P1,#40H</p><p><b> MOV P0,A</b></p><p> LCALL DELA
91、Y</p><p> MOV P0,#0FFH</p><p><b> MOV A,B</b></p><p> MOVC A,@A+DPTR</p><p> MOV P1,#80H</p><p><b> MOV P0,A</b></p>&l
92、t;p> LCALL DELAY</p><p> MOV P0,#0FFH</p><p> MOV P2,#0FFH</p><p> JNB P2.0, TIAOJIE</p><p> MOV P1,#20H</p><p> MOV P0,#0F6H</p><p>
93、 LCALL DELAY</p><p> MOV P0,#0FFH</p><p><b> MOV A,R5</b></p><p><b> MOV B,#10</b></p><p><b> DIV AB</b></p><p>
94、 MOVC A,@A+DPTR</p><p> MOV P1,#08H</p><p><b> MOV P0,A</b></p><p> LCALL DELAY</p><p> MOV P0,#0FFH</p><p><b> MOV A,B</b>
95、;</p><p> MOVC A,@A+DPTR</p><p> MOV P1,#10H</p><p><b> MOV P0,A</b></p><p> LCALL DELAY</p><p> MOV P0,#0FFH</p><p> MOV P2
96、,#0FFH </p><p> JNB P2.0, TIAOJIE</p><p> MOV P1,#04H</p><p> MOV P0,#0F6H</p><p> LCALL DELAY</p><p> MOV P0,#0FFH</p><p><b> MOV
97、 A,R6</b></p><p><b> MOV B,#10</b></p><p><b> DIV AB</b></p><p> MOVC A,@A+DPTR</p><p> MOV P1,#01H</p><p><b>
98、MOV P0,A</b></p><p> LCALL DELAY</p><p> MOV P0,#0FFH</p><p><b> MOV A,B</b></p><p> MOVC A,@A+DPTR</p><p> MOV P1,#02H</p>
99、<p><b> MOV P0,A</b></p><p> LCALL DELAY</p><p> MOV P0,#0FFH</p><p> MOV P2,#0FFH</p><p> JNB P2.0, TIAOJIE</p><p><b> LJMP L
100、OOP</b></p><p> TIAOJIE: CPL EX1</p><p><b> CPL EX0</b></p><p><b> CPL ET0</b></p><p><b> CPL ET1</b></p><p>
101、;<b> LJMP LOOP</b></p><p> DELAY:MOV R3,#100</p><p> DEL:MOV R2,#10</p><p><b> NOP</b></p><p><b> DJNZ R2,$</b></p><
102、p> DJNZ R3,DEL</p><p><b> RET</b></p><p><b> ORG 0100H</b></p><p> ZJ: PUSH ACC</p><p> MOV TH1,#3CH</p><p> MOV TL1,
103、#0B0H</p><p> DJNZ R7,FANHUI</p><p> MOV R7,#20</p><p><b> INC R4</b></p><p><b> MOV A,R4</b></p><p> CJNE A,#60,FANHUI</p
104、><p> MOV R4,#00H</p><p><b> INC R5</b></p><p><b> MOV A,R5</b></p><p> CJNE A,#60,FANHUI </p><p> MOV R5,#00H</p><p&
105、gt;<b> INC R6</b></p><p><b> MOV A,R6</b></p><p> CJNE A,#24,FANHUI</p><p> MOV R6,#00H</p><p> FANHUI: POP ACC </p><p><b&
106、gt; RETI</b></p><p><b> ORG 0200H</b></p><p> MIAO:CLR EA</p><p><b> INC R4</b></p><p><b> SETB EA</b></p><p&g
107、t;<b> RETI</b></p><p> ORG 0400H</p><p> FEN: CLR EA</p><p><b> INC R5</b></p><p><b> SETB EA</b></p><p><b>
108、; RETI</b></p><p> ORG 0500H</p><p> SHI: CLR EA</p><p><b> INC R6</b></p><p><b> SETB EA</b></p><p><b> RETI<
109、;/b></p><p><b> ORG 0300H</b></p><p> TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H</p><p><b> END</b></p><p> 附錄2 元件列
110、表</p><p><b> 參考文獻(xiàn)</b></p><p> [1] 張文灼.單片機(jī)應(yīng)用技術(shù).機(jī)械工業(yè)出版社,2009</p><p> [2] 張 偉.Protel 99SE實(shí)用教程.人民郵電出版社,2008</p><p> [3] 童詩(shī)白 華成英.模擬電子技術(shù)基礎(chǔ).北京:高等教育出版社,2000<
111、;/p><p> [4] 李 華.MCS-51系列單片機(jī)使用接口技術(shù).北京航空航天大學(xué)出版社,1993.</p><p> [5] 邱關(guān)源.電路.北京:高等教育出版社,1999</p><p> [6] 何立民.單片機(jī)應(yīng)用技術(shù)選編.北京:北京航空大學(xué)出版社,1998</p><p> [7] 李瀚蓀.電路分析基礎(chǔ).北京:高等教育出版社1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機(jī)課程設(shè)計(jì)--數(shù)字時(shí)鐘
- 單片機(jī)數(shù)字時(shí)鐘課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--數(shù)字時(shí)鐘
- 單片機(jī)課程設(shè)計(jì)(數(shù)字時(shí)鐘)
- 單片機(jī)課程設(shè)計(jì)報(bào)告---單片機(jī)數(shù)字時(shí)鐘
- 單片機(jī)課程設(shè)計(jì)---單片機(jī)數(shù)字時(shí)鐘.doc
- 單片機(jī)課程設(shè)計(jì)數(shù)字時(shí)鐘
- 單片機(jī)數(shù)字時(shí)鐘控制課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--基于單片機(jī)的數(shù)字時(shí)鐘設(shè)計(jì)
- 課程設(shè)計(jì)-單片機(jī)基于單片機(jī)的數(shù)字時(shí)鐘設(shè)計(jì)
- 單片機(jī)數(shù)字時(shí)鐘課程設(shè)計(jì)報(bào)告
- 單片機(jī)課程設(shè)計(jì)數(shù)字時(shí)鐘
- 數(shù)字時(shí)鐘的課程設(shè)計(jì)--基于單片機(jī)的數(shù)字時(shí)鐘
- 單片機(jī)課程設(shè)計(jì)---數(shù)字時(shí)鐘的設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)報(bào)告---基于單片機(jī)的數(shù)字時(shí)鐘設(shè)計(jì)
- 數(shù)字電子時(shí)鐘-單片機(jī)課程設(shè)計(jì)
- 多功能數(shù)字時(shí)鐘 單片機(jī)課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)-單片機(jī)課程設(shè)計(jì)---電子時(shí)鐘
- 單片機(jī)數(shù)字時(shí)鐘課程設(shè)計(jì)--單片機(jī)多功能電子鐘設(shè)計(jì)
- 課程設(shè)計(jì)---基于51單片機(jī)的數(shù)字時(shí)鐘
評(píng)論
0/150
提交評(píng)論