系列單片機(jī)的增強(qiáng)型-AT89C51系列單片機(jī)電子設(shè)計(jì)實(shí)驗(yàn)報(bào)告.docx
《系列單片機(jī)的增強(qiáng)型-AT89C51系列單片機(jī)電子設(shè)計(jì)實(shí)驗(yàn)報(bào)告.docx》由會(huì)員分享,可在線閱讀,更多相關(guān)《系列單片機(jī)的增強(qiáng)型-AT89C51系列單片機(jī)電子設(shè)計(jì)實(shí)驗(yàn)報(bào)告.docx(42頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
實(shí)驗(yàn)報(bào)告姓名:宋大威 電氣1302班學(xué)號(hào)20134223067 簡介本次項(xiàng)目是以51系列單片機(jī)的增強(qiáng)型AT89C51系列單片機(jī),設(shè)計(jì)與制作單片機(jī)系統(tǒng),按需求設(shè)計(jì)硬件原理圖,編寫、調(diào)試軟件程序 (Keil uVision4) ,硬件電路和軟件程序結(jié)合,進(jìn)行硬件調(diào)試仿真,燒寫調(diào)試后的最終程序,系統(tǒng)上電運(yùn)行。主要包括流水燈、數(shù)碼管、矩陣鍵盤、蜂鳴器、數(shù)字時(shí)鐘、液晶 LCD1602、片外RAM 擴(kuò)展、A/D轉(zhuǎn)換和D/A轉(zhuǎn)換。所用芯片為AT89C51,CY62256,ADC0809,DAC0832鎖存器74LS373。目錄第一章 流水燈 1.1 實(shí)驗(yàn)?zāi)康? 1.2電路圖1 1.3電路原理2 1.4程序設(shè)計(jì)思路2 1.5實(shí)驗(yàn)心得及反思3第二章 數(shù)碼管 2.1實(shí)驗(yàn)?zāi)康? 2,2電路圖4 2.3電路原理5 2.4程序設(shè)計(jì)思路5 2.5實(shí)驗(yàn)心得及反思5第三章 矩陣鍵盤及蜂鳴器 3.1實(shí)驗(yàn)?zāi)康? 3.2電路圖6 3.3電路原理7 3.4程序設(shè)計(jì)思路7 3.5實(shí)驗(yàn)心得及反思7第四章 液晶顯示器LCD1602 4.1實(shí)驗(yàn)?zāi)康? 4.2電路圖8 4.3電路原理9 4.4程序設(shè)計(jì)思路9 4.5實(shí)驗(yàn)心得及反思10第五章 片外RAM擴(kuò)展 5.1實(shí)驗(yàn)?zāi)康?1 5.2電路圖12 5.3電路原理12 5.4程序設(shè)計(jì)思路13 5.5實(shí)驗(yàn)心得及反思14第六章A/D轉(zhuǎn)換 6.1實(shí)驗(yàn)?zāi)康?4 6.2電路圖15 6.3電路原理16 6.4程序設(shè)計(jì)思路16 6.5實(shí)驗(yàn)心得及反思17第六章D/A轉(zhuǎn)換 7.1實(shí)驗(yàn)?zāi)康?7 7.2電路圖18 7.3電路原理19 7.4程序設(shè)計(jì)思路19 7.5實(shí)驗(yàn)心得及反思19第八章 附錄程序 8.1流水燈20 8.2數(shù)碼管21 8.3矩陣鍵盤22 8.4時(shí)鐘23 8.5液晶LCD160224 8.6片外RAM25 8.7A/D轉(zhuǎn)換26 8.8D/A轉(zhuǎn)換27第九章 參考文獻(xiàn)第一章 流水燈1實(shí)驗(yàn)?zāi)康膗 了解單片機(jī)的系統(tǒng)設(shè)計(jì)方法u 掌握Keil uVision4軟件的使用方法u 掌握焊接技術(shù)u 在開發(fā)板上實(shí)現(xiàn)八個(gè)發(fā)光LED被點(diǎn)亮2電路原理 3 實(shí)驗(yàn)原理發(fā)光LED燈需要正向電壓才能導(dǎo)通,單片機(jī)給一個(gè)低電平后,所以連接的LED負(fù)極,就會(huì)導(dǎo)通發(fā)亮,點(diǎn)亮8個(gè)發(fā)光二級管時(shí),先點(diǎn)亮一個(gè),延時(shí),再點(diǎn)亮下一個(gè),再延時(shí),循環(huán)往復(fù),形成流水燈。不同規(guī)格、不同顏色的LED參數(shù)是不一樣的。一般普通發(fā)光二極管,以紅色為例:LED工作電壓:1.8V2.4VLED工作電流:2mA20mA一般取電壓典型值:U=2VR2 5V -2V/0.02A5V-2V/0.02A =150,1.5K4程序設(shè)計(jì)思路點(diǎn)亮第三盞燈,并且延時(shí)點(diǎn)亮第二盞燈,并且延時(shí)點(diǎn)亮第四盞燈,并且延時(shí)點(diǎn)亮第一盞燈,并且延時(shí)點(diǎn)亮第八盞燈,并且延時(shí)點(diǎn)亮第六盞燈,并且延時(shí)點(diǎn)亮第五盞燈,并且延時(shí)點(diǎn)亮第七盞燈,并且延時(shí)開始5實(shí)驗(yàn)心得及反思心得;這是我做的第一個(gè)實(shí)驗(yàn)但是我覺得稱呼他為我的作品,從開始時(shí)的不知如何下手到后面駕輕就熟,收獲巨大,做完本次實(shí)驗(yàn),讓我們對單片機(jī)有了新的認(rèn)識(shí),也更加的體會(huì)到了將理論與實(shí)際結(jié)合的重要性。理論聯(lián)系實(shí)際,才能更好的掌握知識(shí)運(yùn)用知識(shí)。反思;在焊接電路板之前,我們要先理解本次實(shí)驗(yàn)的原理以及電路圖的設(shè)計(jì)和布局,然后再開始焊接編程,在做完整個(gè)試驗(yàn)后,才明白需要在做實(shí)驗(yàn)之前要有一個(gè)大局觀。這樣才能用最少的空間做出最多的東西。也能節(jié)省材料,出現(xiàn)問題時(shí),也有便于我們檢查錯(cuò)誤。第二章 數(shù)碼管 1. 實(shí)驗(yàn)?zāi)康膗 了解供陽極數(shù)碼管的使用方法u 掌握數(shù)碼管動(dòng)態(tài)顯示電路的連接方法u 練習(xí)動(dòng)態(tài)顯示程序的結(jié)構(gòu)及調(diào)試方2. 電路原理圖3. 實(shí)驗(yàn)原理單片機(jī)通過驅(qū)動(dòng)電路給數(shù)碼管中相應(yīng)各段的發(fā)光二極管加正向電壓,該段發(fā)光二極管就會(huì)被點(diǎn)亮。不同段的發(fā)光二極管加正向電壓則亮,不加正向電壓則滅,這樣就可以通過各段的亮滅組合,來顯示不同的數(shù)字和字符了。本次使用采用P1口為段選,P0.70.2分別對應(yīng)第一個(gè)數(shù)碼管至第六個(gè)數(shù)碼管。采用各數(shù)碼管循環(huán)輪流顯示的方法,當(dāng)循環(huán)顯示頻率較高時(shí),利用人眼的暫留特性,看不出閃爍顯示現(xiàn)象,這種顯示需要一個(gè)接口完成字形碼的輸出,另一接口完成各數(shù)碼管的輪流點(diǎn)亮(數(shù)位選擇)。4. 程序框圖給P0口0的段選,選通第一個(gè)數(shù)碼管(P0.7),延時(shí),關(guān)閉第一個(gè)數(shù)碼管開始給P0口1的段選,選通第二個(gè)數(shù)碼管(P0.6),延時(shí),關(guān)閉第二個(gè)數(shù)碼管給P0口2的段選,選通第三個(gè)數(shù)碼管(P0.5),延時(shí),關(guān)閉第三個(gè)數(shù)碼管給P0口3的段選,選通第四個(gè)數(shù)碼管(P0.4),延時(shí),關(guān)閉第四個(gè)數(shù)碼管給P0口4的段選,選通第五個(gè)數(shù)碼管(P0.3),延時(shí),關(guān)閉第五個(gè)數(shù)碼管給P0口5的段選,選通第六個(gè)數(shù)碼管(P0.2),延時(shí),關(guān)閉第六個(gè)數(shù)碼管5. 實(shí)驗(yàn)心得本次實(shí)驗(yàn)的電路連接有點(diǎn)麻煩,在焊接過程中一分心就容易犯錯(cuò),所以在做實(shí)驗(yàn)中我們必須要注意力高度集中,要不然我們就會(huì)得不償失了。另外,在調(diào)試程序時(shí),我們的數(shù)碼管的顯示不很穩(wěn)定,當(dāng)時(shí)我們沒太在意。當(dāng)老師檢驗(yàn)時(shí)提出了這一問題,我們后來明白了,在實(shí)驗(yàn)中出現(xiàn)任何一丁點(diǎn)異常都要引起注意,把問題解決,這樣我們做出的產(chǎn)品才會(huì)更有質(zhì)量保證。第二章 矩陣鍵盤、時(shí)鐘與蜂鳴器1. 實(shí)驗(yàn)?zāi)康膌 掌握4*4矩陣式鍵盤按鍵地設(shè)計(jì)方法l 掌握4*4矩陣鍵盤程序的識(shí)別原理l 掌握蜂鳴器的使用方法l 了解定時(shí)器的工作原理l 明白用鍵盤怎樣去調(diào)試時(shí)間并在數(shù)碼管上顯示2. 電路圖3. 實(shí)驗(yàn)原理i. 矩陣鍵盤與蜂鳴器為了減少鍵盤與單片機(jī)接口所占用的I/O口的數(shù)目,所以將鍵盤排列成行列矩陣形式,程序先判斷有無鍵按下,當(dāng)有鍵按下后,判斷哪一個(gè)按鍵被按下,采用逐行掃描查詢法。向行線輸出全掃描字00H,把全部行線置為地電平,然后將列線的電平狀態(tài)讀入累加器A中,如果有一根列線電平被拉至低電平,從而使列輸入不全為1。數(shù)碼顯示第二章已講,這里不再累述。給P0.0一個(gè)信號(hào)0,使蜂鳴器導(dǎo)通發(fā)聲。ii. 時(shí)鐘使用6位數(shù)碼管,數(shù)碼管分別顯示時(shí)、分、秒,用鍵盤進(jìn)行時(shí)間的調(diào)整。選用定時(shí)器T0的第一模式工作 。先賦定時(shí)器的計(jì)數(shù)初值,賦給TL0, B0H,賦給TH0, 3CH,每次的定時(shí)時(shí)間為50微妙。開放中斷,啟動(dòng)定時(shí)器。中斷二十次即可得到一秒的時(shí)間。每秒的延時(shí)達(dá)到,秒計(jì)數(shù)加一。當(dāng)秒計(jì)數(shù)器計(jì)數(shù)滿60,分計(jì)數(shù)加一,秒計(jì)時(shí)清零。當(dāng)秒計(jì)數(shù)器計(jì)數(shù)滿60,時(shí)計(jì)數(shù)加一,分計(jì)時(shí)清零。當(dāng)時(shí)計(jì)數(shù)器計(jì)滿24,全部清零。4. 程序框圖i. 矩陣鍵盤與蜂鳴器程序框圖開始判斷是否有鍵按下給A以00H,進(jìn)行行掃描,確定按鍵行號(hào),保存行首鍵號(hào)然后掃描列,并將對應(yīng)的列序號(hào)保存鍵號(hào)(值)=行首鍵號(hào)+列號(hào)延時(shí)去抖后再判斷按鍵狀態(tài),確定有鍵按下輸出顯示,蜂鳴器發(fā)聲ii. 時(shí)鐘程序框圖開始初始化并設(shè)定中斷允許進(jìn)入中斷調(diào)時(shí)調(diào)用鍵盤程序調(diào)用時(shí)間程序,計(jì)時(shí)鍵掃描,確定鍵值輸入鍵值,進(jìn)行調(diào)時(shí)顯示時(shí)間否是5. 實(shí)驗(yàn)心得做完之前的兩個(gè)實(shí)驗(yàn),我們的信心也加強(qiáng)了,因?yàn)槲覀冊趯W(xué)習(xí)的過程有了小小的收獲??蛇@次實(shí)驗(yàn)卻讓我們小小的郁悶了,感覺原理不是特別好懂,特別是時(shí)鐘的程序,因?yàn)閷纹瑱C(jī)的內(nèi)部工作原理算是懵懂,不過后來,我們還是通過查找資料,慢慢的完成了實(shí)驗(yàn),可以說過程是艱難的,但是我們沒有放棄,也許毅力的練成就是從一次一次坎坷中積聚的吧。第三章 液晶顯示器(LCD1602)1. 實(shí)驗(yàn)?zāi)康膌 了解LCD液晶顯示器的工作原理l 掌握LCD液晶顯示器的編程控制方法2. 電路圖3. 實(shí)驗(yàn)原理1602液晶模塊內(nèi)部的字符發(fā)生存儲(chǔ)器(CGROM)已經(jīng)存儲(chǔ)了160個(gè)不同的點(diǎn)陣字符圖形,這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫、常用的符號(hào)、和日文假名等,每一個(gè)字符都有一個(gè)固定的代碼。4. 程序框圖是是否否開始是否忙調(diào)LCD顯示功能,清屏是否忙送顯示調(diào)整對比度返回5. 實(shí)驗(yàn)心得這次實(shí)驗(yàn)主要是讓我們了解LCD,知道它作為外設(shè)怎么使用就行。雖然用處我們大家都知道,但是不能因?yàn)楹唵挝覀兙筒蝗フJ(rèn)真學(xué),畢竟學(xué)習(xí)是個(gè)積累的過程。第四章 片外RAM擴(kuò)展1. 實(shí)驗(yàn)?zāi)康膌 掌握擴(kuò)展片RAM的電路和程序設(shè)計(jì)方法l 理解擴(kuò)展片RAM時(shí)讀寫和ALE等控制線的作用l 了解片外RAM情況下的單片機(jī)指令MOVX的執(zhí)行進(jìn)程l 學(xué)習(xí)心得2. 電路圖3. 實(shí)驗(yàn)原理由于89C51單片機(jī)片內(nèi)RAM僅有128字節(jié),當(dāng)系統(tǒng)需要較大容量RAM時(shí),就需要片外擴(kuò)展數(shù)據(jù)存儲(chǔ)器RAM,最大可擴(kuò)展64KB。擴(kuò)展數(shù)據(jù)存儲(chǔ)器空間地址,有P2口提供高8位地址,P0口分時(shí)提供8位地址和用作8位雙向數(shù)據(jù)總線,由地址鎖存器74H373控制。4. 程序框圖由74LS373傳送到62256由62256傳送回單片機(jī)中數(shù)碼管上面顯示數(shù)據(jù)結(jié)束數(shù)據(jù)傳輸?shù)?2256中開始5. 實(shí)驗(yàn)心得這次實(shí)驗(yàn)主要是電路的連接,理解時(shí)序與有關(guān)芯片的原理之后,就相對來說比較簡單了。所以在以后的實(shí)驗(yàn)中我們既要認(rèn)真地對待硬件,又要深刻地理解有關(guān)軟件,這樣才能真正地做到靈活運(yùn)用知識(shí)去解決其他問題。第五章 AD轉(zhuǎn)換1. 實(shí)驗(yàn)?zāi)康膌 1、了解AD轉(zhuǎn)換器的工作原理l 2、掌握AD轉(zhuǎn)換與單片機(jī)的接口方法l 3、通過實(shí)驗(yàn)了解單片機(jī)如何進(jìn)行數(shù)據(jù)采集2. 電路圖3. 實(shí)驗(yàn)原理從滑動(dòng)變阻器上得到模擬電壓,將模擬電壓信號(hào)輸入ADC0809芯片,ADC0809將模擬量轉(zhuǎn)化為數(shù)字量輸入AT89C51,AT89C51將輸入的數(shù)字量處理,再送到數(shù)碼管顯示。4. 程序框圖定義引腳以及顯示緩沖區(qū)單元清零緩沖區(qū),給DPTR查表表頭,ABC已經(jīng)接地(選擇通道0)啟動(dòng)AD轉(zhuǎn)換,待轉(zhuǎn)換結(jié)束則輸出,緩存結(jié)果并關(guān)閉輸出將AD轉(zhuǎn)換的結(jié)果(二進(jìn)制)轉(zhuǎn)換為BCD碼將結(jié)果送至顯示緩沖區(qū)(從低位到高位,并且最高位點(diǎn)亮小數(shù)點(diǎn))分別顯示開始5. 實(shí)驗(yàn)心得這個(gè)實(shí)驗(yàn)是持續(xù)時(shí)間最長的,就因?yàn)槟且痪湓捠拐麄€(gè)實(shí)驗(yàn)延長了倆個(gè)多月,使我明白了做實(shí)驗(yàn)要了解你所用的器件的所有的功能才能使你掌控大局觀,實(shí)驗(yàn)如此,生活亦是如此,要知己知彼才能百戰(zhàn)不殆。第六章 DA轉(zhuǎn)換1. 實(shí)驗(yàn)?zāi)康膌 了解DA轉(zhuǎn)換的基本原理l 了解運(yùn)算放大器的工作原理l 了解DA轉(zhuǎn)換芯片的性能及編程方法l 掌握如何采集產(chǎn)生波形的樣點(diǎn)2. 電路圖3. 實(shí)驗(yàn)原理使用D/A轉(zhuǎn)換實(shí)現(xiàn)數(shù)字信號(hào)轉(zhuǎn)換為模擬信號(hào)。用運(yùn)算放大器UA741實(shí)現(xiàn)電壓的放大。通過程序控制產(chǎn)生矩形波,三角波,正弦波。4. 實(shí)驗(yàn)心得由于這次實(shí)驗(yàn)是需要把數(shù)字信號(hào)轉(zhuǎn)換為模擬信號(hào),而模擬信號(hào)的產(chǎn)生就需要學(xué)會(huì)如何采集生成波形的樣點(diǎn),初次接觸這方面的知識(shí),在理解上與解決問題上給我們帶來了困擾,好在有學(xué)長的幫助以及我們的堅(jiān)持,才做出了實(shí)驗(yàn)效果。通過這次實(shí)驗(yàn),我們感觸很大,因?yàn)閷W(xué)長在傳遞知識(shí)時(shí)很無私也很友好,也因?yàn)槲覀兊囊懔ψ屛覀冞x擇了接著奮斗。我們相信,以后我們再遇到困難時(shí),繼續(xù)走下去的決心會(huì)加強(qiáng),我們也會(huì)很樂意與人分享我們的知識(shí)的。第七章 附錄附錄一 流水燈程序ORG 0000HAJMP MAINORG 0070HMAIN:MOVP1,#0FEHLCALLAXHMOVP1,#0FDHLCALLAXHMOVP1,#0FBHLCALLAXHMOVP1,#0F7HLCALLAXHMOVP1,#0EFHLCALLAXHMOVP1,#0DFHLCALLAXHMOVP1,#0BFHLCALLAXHMOVP1,#07FHLCALLAXHAJMP MAINAXH:MOV R7,#250 D1:MOV R6,#250 D2:DJNZ R6,D2 DJNZ R7,D1 RETEND附錄二 數(shù)碼管程序ORG 0000HAJMP MAINORG 0030HMAIN:MOVP1,#0C0HCLRP0.7LCALLAXHSETBP0.7MOVP1,#0F9HCLRP0.6LCALLAXHSETBP0.6MOVP1,#0A4HCLRP0.5LCALLAXHSETBP0.5MOVP1,#0B0HCLRP0.4LCALLAXHSETBP0.4MOVP1,#99HCLRP0.3LCALLAXHSETBP0.3MOVP1,#92HCLRP0.2LCALLAXHSETBP0.2AJMP MAINAXH:MOVR7,#2D1:MOVR6,#30D2:DJNZR6,D2DJNZR7,D1END附錄三 矩陣鍵盤程序ORG0000HAJMPKEYORG0030HKEY:MOVP2,#00HMOVA,P2ANLA,#0FHORLA,#0F0HCPLAJZKEYLCALLDEL10msMOVP2,#0FHMOVA,P2ANLA,#0FHORLA,#0F0HCPLAJZKEYSKEY:MOVA,#00MOVR0,A /行值MOVR1,A /列值MOVR3,#7FH/暫存行SKEY2:MOVA,R3 /SKEY2判斷行數(shù)MOVP2,ANOPNOPNOPMOVA,P2MOVR1,AANLA,#0FHORLA,#0F0HCPLAS123:JNZSKEY3INCR0SETBCMOVA,R3RRCAMOVR3,AMOVA,R0CJNEA,#04H,SKEY2EKEY:RETSKEY3:MOVA,R1 /SKEY3判斷列值JNBACC.3,SKEY5JNBACC.2,SKEY6JNBACC.1,SKEY7JNBACC.0,SKEY8AJMPEKEYSKEY5:MOVA,#00HMOVR2,AAJMPDKEYSKEY6:MOVA,#01HMOVR2,AAJMPDKEYSKEY7:MOVA,#02HMOVR2,AAJMPDKEYSKEY8:MOVA,#03HMOVR2,AAJMPDKEYDKEY:MOVA,R0ACALLDECODEAJMPMAIN0DECODE:MOVA,R0MOVB,#04HMULABADDA,R2RETMAIN0:CLRP0.2CJNEA,#00H,MAIN1CLRP0.0MOVP1,#0C0HLCALLDEL50msSETBP0.0SETBP0.2MOVP1,#0FFHAJMPKEYMAIN1:CJNEA,#01H,MAIN2CLRP0.0MOVP1,#0F9HLCALLDEL50msSETBP0.0SETBP0.2MOVP1,#0FFHAJMPKEYMAIN2:CJNEA,#02H,MAIN3CLRP0.0MOVP1,#0A4HLCALLDEL50msSETBP0.0SETBP0.2MOVP1,#0FFHJMPKEYMAIN3:CJNEA,#03H,MAIN4CLRP0.0MOVP1,#0B0HLCALLDEL50msSETBP0.0SETBP0.2MOVP1,#0FFHAJMPKEYMAIN4:CJNEA,#04H,MAIN5CLRP0.0MOVP1,#99HLCALLDEL50msSETBP0.0SETBP0.2MOVP1,#0FFHAJMPKEYMAIN5:CJNEA,#05H,MAIN6CLRP0.0MOVP1,#92HLCALLDEL50msSETBP0.0SETBP0.2MOVP1,#0FFHAJMPKEYMAIN6:CJNEA,#06H,MAIN7CLRP0.0MOVP1,#82HLCALLDEL50msSETBP0.0SETBP0.2MOVP1,#0FFHAJMPKEYMAIN7:CJNEA,#07H,MAIN8CLRP0.0MOVP1,#0F8HLCALLDEL50msSETBP0.0SETBP0.2MOVP1,#0FFHAJMPKEYMAIN8:CJNEA,#08H,MAIN9CLRP0.0MOVP1,#80HLCALLDEL50msSETBP0.0SETBP0.2MOVP1,#0FFHAJMPKEYMAIN9:CJNEA,#09H,MAINACLRP0.0MOVP1,#90HLCALLDEL50msSETBP0.0SETBP0.2MOVP1,#0FFHAJMPKEYMAINA:CJNEA,#0AH,MAINBCLRP0.0MOVP1,#88HLCALLDEL50msSETBP0.0SETBP0.2MOVP1,#0FFHAJMPKEYMAINB:CJNEA,#0BH,MAINCCLRP0.0MOVP1,#83HLCALLDEL50msSETBP0.0SETBP0.2MOVP1,#0FFHAJMPKEYMAINC:CJNEA,#0CH,MAINDCLRP0.0MOVP1,#0C6HLCALLDEL50msSETBP0.0SETBP0.2MOVP1,#0FFHAJMPKEYMAIND:CJNEA,#0DH,MAINECLRP0.0MOVP1,#0A1HLCALLDEL50msSETBP0.0SETBP0.2MOVP1,#0FFHAJMPKEYMAINE:CJNEA,#0EH,MAINFCLRP0.0MOVP1,#86HLCALLDEL50msSETBP0.0SETBP0.2MOVP1,#0FFHAJMPKEYMAINF:CJNEA,#0FH,CXFCLRP0.0MOVP1,#8EHLCALLDEL50msSETBP0.0SETBP0.2MOVP1,#0FFHAJMPKEYCXF:LJMPKEYDEL10ms:MOVR7,#10HTS1:MOVR6,#0FFHTS2:DJNZR6,TS2DJNZR7,TS1RETDEL50ms:MOVR7,#200TS3:MOVR6,#125TS4:DJNZR6,TS4DJNZR7,TS3RETEND附錄四 時(shí)鐘程序H_BIT EQU 20HM_BIT EQU 21HS_BIT EQU 22HHH EQU 23HMM EQU 24HSS EQU 25HHH_BIT EQU 26HMM_BIT EQU 27HSS_BIT EQU 28HORG 00HAJMP MAINORG 0BHAJMP TIME0ORG 30HMAIN: MOV SP,#60H MOV P2,#0FH MOV R5,#00H MOV H_BIT,#00H MOV M_BIT,#00H MOV S_BIT,#00H MOV HH_BIT,#00H MOV MM_BIT,#00H MOV SS_BIT,#00H MOV HH,#00H MOV MM,#00H MOV SS,#00H MOV TMOD,#01H MOV TH0,#3CH MOV TL0,#0B0H SETB EA SETB ET0 SETB TR0LOOP: LCALL EY LCALL KEY LJMP LOOPEY: LCALL LOOP1 MOV DPTR,#TAB MOV A,H_BIT MOVC A,A+DPTR MOV P1,A CLR P0.7 LCALL DIS1 SETB P0.7 MOV A,HH_BIT MOVC A,A+DPTR MOV P1,A CLR P0.6 LCALL DIS1 SETB P0.6 MOV A,M_BIT MOVC A,A+DPTR MOV P1,A CLR P0.5 LCALL DIS1 SETB P0.5 MOV A,MM_BIT MOVC A,A+DPTR MOV P1,A CLR P0.4 LCALL DIS1 SETB P0.4 MOV A,S_BIT MOVC A,A+DPTR MOV P1,A CLR P0.3 LCALL DIS1 SETB P0.3 MOV A,SS_BIT MOVC A,A+DPTR MOV P1,A CLR P0.2 LCALL DIS1 SETB P0.2 RETLOOP1: MOV A,SS MOV B,#10 DIV AB MOV S_BIT,A MOV SS_BIT,B MOV A,MM MOV B,#10 DIV AB MOV M_BIT,A MOV MM_BIT,B MOV A,HH MOV B,#10 DIV AB MOV H_BIT,A MOV HH_BIT,B RETTIME0: PUSH ACC PUSH PSW MOV TH0,#3CH MOV TL0,#0B0H INC R5 CJNE R5,#20,LOOP2 MOV R5,#00H INC SS MOV A,SS CJNE A,#60,LOOP2 MOV SS,#00H INC MM MOV A,MM CJNE A,#60,LOOP2 MOV MM,#00H INC HH MOV A,HH CJNE A,#24,LOOP2 MOV HH,#00HLOOP2: POP PSW POP ACC RETIKEY: CLREA LCALLEY JNB P2.3,SS_KEYKEY1: SETBEA RETSS_KEY: LCALL EY1 LCALL DIS1 JNB P2.3,SS_KEYSSA: LCALL EY1 LCALL S_KEY JNB P2.0,KEY3 LJMP SSAKEY3: LJMP KEY1S_KEY: JNB P2.2,S_ADDKEY JNB P2.1,S_DECKEY LCALL DIS1 JNB P2.3,MM_KEY RETS_ADDKEY: LCALLEY1 LCALL DIS1 JNB P2.2,S_ADDKEY INC SS MOV A,SS CJNE A,#60,SS_KEY1 MOV SS,#00HSS_KEY1: LJMP SSAS_DECKEY: LCALLEY1 LCALL DIS1 JNB P2.1,S_DECKEY MOV A,SS CJNE A,#00,SS_KEY2 MOV SS,#60SS_KEY2: DEC SS LJMP SS_KEY1 MM_KEY: LCALL EY2 LCALL DIS1 JNB P2.3,MM_KEYMMA: LCALL EY2 LCALL M_KEY JNB P2.0,KEY4 LJMP MMAKEY4: LJMP KEY1M_KEY: JNB P2.2,M_ADDKEY JNB P2.1,M_DECKEY LCALL DIS1 JNB P2.3,HH_KEY RETM_ADDKEY: LCALLEY2 LCALL DIS1 JNB P2.2,M_ADDKEY INC MM MOV A,MM CJNE A,#60,MM_KEY1 MOV MM,#00HMM_KEY1: LJMP MMAM_DECKEY: LCALLEY2 LCALL DIS1 JNB P2.1,M_DECKEY MOV A,MM CJNE A,#00,MM_KEY2 MOV MM,#60MM_KEY2: DEC MM LJMP MM_KEY1HH_KEY: LCALL EY3 LCALL DIS1 JNB P2.3,HH_KEYHHA: LCALL EY3 LCALL H_KEY JNB P2.0,KEY5 LJMP HHAKEY5: LJMP KEY1H_KEY: JNB P2.2,H_ADDKEY JNB P2.1,H_DECKEY LCALL DIS1 JNB P2.1,SSB RETH_ADDKEY: LCALLEY3 LCALL DIS1 JNB P2.2,H_ADDKEY INC HH MOV A,HH CJNE A,#24,HH_KEY1 MOV HH,#00HHH_KEY1: LJMP HHAH_DECKEY: LCALL EY3 LCALL DIS1 JNB P2.1,H_DECKEY MOV A,HH CJNE A,#00,HH_KEY2 MOV HH,#24HH_KEY2: DEC HH LJMP HH_KEY1SSB: LJMP SS_KEYEY1: LCALL LOOP1 MOV DPTR,#TAB MOV A,S_BIT MOVC A,A+DPTR MOV P1,A CLR P0.3 LCALL DIS1 SETB P0.3 MOV A,SS_BIT MOVC A,A+DPTR MOV P1,A CLR P0.2 LCALL DIS1 SETB P0.2 RETEY2: LCALL LOOP1 MOV DPTR,#TAB MOV A,M_BIT MOVC A,A+DPTR MOV P1,A CLR P0.5 LCALL DIS1 SETB P0.5 MOV A,MM_BIT MOVC A,A+DPTR MOV P1,A CLR P0.4 LCALL DIS1 SETB P0.4 RETEY3: LCALL LOOP1 MOV DPTR,#TAB MOV A,H_BIT MOVC A,A+DPTR MOV P1,A CLR P0.7 LCALL DIS1 SETB P0.7 MOV A,HH_BIT MOVC A,A+DPTR MOV P1,A CLR P0.6 LCALL DIS1 SETB P0.6 RETDIS1: MOV R6,#20 DJNZ R6,$ RETTAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90HEND附錄五 液晶LCD1602程序ORG0000HAJMPMAINORG000BHAJMPTIMEORG0100H MAIN:MOVTMOD,#00H MOVTL0,#00H MOVTH0,#00H SETBEA SETBET0 SETBTR0 MOV50H,#32H MOVSP,#60H ACALLMOSHISHEZHI ACALLLCDQP MOVA,#80H ACALLLCDXZL MOVDPTR,#TAB1 ACALLLOOP4 MOVA,#0C0H ACALLLCDXZL MOVDPTR,#TAB2 ACALLLOOP4 LOOP:AJMPLOOP TIME:MOVTL0,#00H MOVTH0,#00H DJNZ50H,TIME0 MOV50H,#32H TIME0:RETI MOSHISHEZHI:MOVA,#38HLCALLLCDXZL MOVA,#0EH LCALLLCDXZL MOVA,#06H LCALLLCDXZL RET LOOP2:PUSHAcc LOOP3:CLRP2.6 SETBP2.7 CLRP2.5 SETBP2.5 MOVA,P1 CLRP2.5 JBAcc.7,LOOP3 POPAcc ACALLDELAY RET LCDXZL:ACALLLOOP2 CLRP2.5 CLRP2.6 CLRP2.7 SETBP2.5 MOVP1,A CLRP2.5 RET LCDDXX:ACALLLOOP2 CLRP2.5 SETBP2.6 CLRP2.7 SETBP2.5 MOVP1,A CLRP2.5 RET DELAY:MOV52H,#05H DELAY1:MOV51H,#0F8HDJNZ51H,$ DJNZ52H,DELAY1 RET LCDQP:MOVA,#01H ACALLLCDXZL RET LOOP4:PUSHAcc LOOP5:CLRA MOVCA,A+DPTR JZLOOP6 ACALLLCDDXX INCDPTR AJMPLOOP5 LOOP6:POPAcc RETTAB1:DB Gue xue ling,00HTAB2:DB Zhong qiang,00HEND附錄六 片外RAM程序WR1BITP3.6RD1BITP3.7ORG0000HAJMPMAINORG0030HMAIN:LCALLWRITELCALLREADLCALLSYWRITE:SETBWR1MOVA,#0F8HMOVXR1,ACLRWR1SETBWR1RETREAD:SETBRD1MOVXA,R1CLRRD1SETBRD1RETSY:MOVP1,ACLRP0.2RETEND附錄七 AD轉(zhuǎn)換程序#include sbit ALE= P36;sbit ST= P06;sbit OE= P07;sbit EOC= P37;sbit MM1= P05;sbit MM2= P04;sbit MM3= P03;sbit MM4= P02;#define SEGOFF0xFFvoid delay(int z);void main()unsigned int dat= 0;unsigned inttemp= 0;unsigned inttemp1= 0;unsigned char smg0= 0;unsigned char smg1= 0;unsigned char smg2= 0;unsigned char smg3= 0;unsigned int i= 0; bitflag= 0;unsigned char dig10 = 0xC0 ,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90; unsigned char dig110 = 0x40 ,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10; while(1)/ 數(shù)碼管0 顯示dig0P1= SEGOFF;MM1= 0;P1= dig1smg0;delay(3);MM1= 1;/ 數(shù)碼管1 顯示dig1 P1= SEGOFF;MM2= 0;P1= digsmg1;delay(2);MM2= 1;/ 數(shù)碼管2 顯示dig2P1= SEGOFF; MM3= 0;P1= digsmg2;delay(1);MM3= 1;/ 數(shù)碼管3 顯示dig3P1= SEGOFF; MM4= 0;P1= digsmg3;delay(0);MM4= 1;i = i + 1;/ 從AD0809中讀取采集得到的數(shù)據(jù)if(i10)ST= 0;ALE= 0;OE= 0;/ 設(shè)置ALEALE= 1;delay(2);ALE= 0;/ 開始ST= 1;delay(2);ST= 0;/ 保證數(shù)據(jù)轉(zhuǎn)換成功(ADC)while(!flag)flag= EOC;/ 打開輸出允許OE= 1;/ 讀出數(shù)據(jù)dat= P2;OE= 0;temp1= dat*100/256;temp= temp1*40; smg0= temp/1000;smg1= temp%1000/100;smg2= temp%100/10;smg3= temp%10; i= 0;void delay(int z)int x,y;for(x=60;x0;x-)for(y=z;y0;y-);附錄八 DA轉(zhuǎn)換程序A. 方波ORG0000HAJMPMAINORG0030HMAIN:SETBP3.4SETBP3.5MOVP1,#0FFHCLRP3.4CLRP3.5LCALLDELAYSETBP3.4SETBP3.5MOVP1,#00HCLRP3.4CLRP3.5LCALLDELAYSETBP3.4SETBP3.5AJMPMAINDELAY:MOVR7,#200DEL1:MOVR6,#125 DEL2:DJNZR6,DEL2 DJNZR7,DEL1 RET ENDB. 三角波ORG0000HAJMPMAINORG0030HMAIN:MOVA,#0FFHMAIN1:SETBP3.4SETBP3.5MOVP1,ACLRP3.4CLRP3.5DECACJNEA,#0H,MAIN1MAIN2:INCASETBP3.4SETBP3.5MOVP1,ACLRP3.4CLRP3.5CJNEA,#0FFH,MAIN2- 1.請仔細(xì)閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 系列 單片機(jī) 增強(qiáng) AT89C51 電子設(shè)計(jì) 實(shí)驗(yàn) 報(bào)告
鏈接地址:http://m.italysoccerbets.com/p-8896998.html