系列單片機的增強型-AT89C51系列單片機電子設計實驗報告.docx
《系列單片機的增強型-AT89C51系列單片機電子設計實驗報告.docx》由會員分享,可在線閱讀,更多相關《系列單片機的增強型-AT89C51系列單片機電子設計實驗報告.docx(42頁珍藏版)》請在裝配圖網上搜索。
實驗報告 姓名:宋大威 電氣1302班 學號20134223067 簡介 本次項目是以51系列單片機的增強型——AT89C51系列單片機,設計與制作單片機系統(tǒng),按需求設計硬件原理圖,編寫、調試軟件程序 (Keil uVision4) ,硬件電路和軟件程序結合,進行硬件調試仿真,燒寫調試后的最終程序,系統(tǒng)上電運行。 主要包括流水燈、數碼管、矩陣鍵盤、蜂鳴器、數字時鐘、液晶 LCD1602、片外RAM 擴展、A/D轉換和D/A轉換。 所用芯片為AT89C51,CY62256,ADC0809,DAC0832鎖存器74LS373。 目錄 第一章 流水燈 1.1 實驗目的1 1.2電路圖1 1.3電路原理2 1.4程序設計思路2 1.5實驗心得及反思3 第二章 數碼管 2.1實驗目的4 2,2電路圖4 2.3電路原理5 2.4程序設計思路5 2.5實驗心得及反思5 第三章 矩陣鍵盤及蜂鳴器 3.1實驗目的6 3.2電路圖6 3.3電路原理7 3.4程序設計思路7 3.5實驗心得及反思7 第四章 液晶顯示器LCD1602 4.1實驗目的8 4.2電路圖8 4.3電路原理9 4.4程序設計思路9 4.5實驗心得及反思10 第五章 片外RAM擴展 5.1實驗目的11 5.2電路圖12 5.3電路原理12 5.4程序設計思路13 5.5實驗心得及反思14 第六章A/D轉換 6.1實驗目的14 6.2電路圖15 6.3電路原理16 6.4程序設計思路16 6.5實驗心得及反思17 第六章D/A轉換 7.1實驗目的17 7.2電路圖18 7.3電路原理19 7.4程序設計思路19 7.5實驗心得及反思19 第八章 附錄程序 8.1流水燈20 8.2數碼管21 8.3矩陣鍵盤22 8.4時鐘23 8.5液晶LCD160224 8.6片外RAM25 8.7A/D轉換26 8.8D/A轉換27 第九章 參考文獻 第一章 流水燈 1實驗目的 u 了解單片機的系統(tǒng)設計方法 u 掌握Keil uVision4軟件的使用方法 u 掌握焊接技術 u 在開發(fā)板上實現八個發(fā)光LED被點亮 2電路原理 3 實驗原理 發(fā)光LED燈需要正向電壓才能導通,單片機給一個低電平后,所以連接的LED負極,就會導通發(fā)亮,點亮8個發(fā)光二級管時,先點亮一個,延時,再點亮下一個,再延時,循環(huán)往復,形成流水燈。不同規(guī)格、不同顏色的LED參數是不一樣的。一般普通發(fā)光二極管,以紅色為例: LED工作電壓:1.8V~2.4V LED工作電流:2mA~20mA 一般取電壓典型值:U=2V R2 ∈[ 5V -2V/0.02A~5V-2V/0.02A ]=[150Ω,1.5KΩ] 4程序設計思路 點亮第三盞燈,并且延時 點亮第二盞燈,并且延時 點亮第四盞燈,并且延時 點亮第一盞燈,并且延時 點亮第八盞燈,并且延時 點亮第六盞燈,并且延時 點亮第五盞燈,并且延時 點亮第七盞燈,并且延時 開始 5實驗心得及反思 心得;這是我做的第一個實驗但是我覺得稱呼他為我的作品,從開始時的不知如何下手到后面駕輕就熟,收獲巨大,做完本次實驗,讓我們對單片機有了新的認識,也更加的體會到了將理論與實際結合的重要性。理論聯系實際,才能更好的掌握知識運用知識。 反思;在焊接電路板之前,我們要先理解本次實驗的原理以及電路圖的設計和布局,然后再開始焊接編程,在做完整個試驗后,才明白需要在做實驗之前要有一個大局觀。這樣才能用最少的空間做出最多的東西。也能節(jié)省材料,出現問題時,也有便于我們檢查錯誤。 第二章 數碼管 1. 實驗目的 u 了解供陽極數碼管的使用方法 u 掌握數碼管動態(tài)顯示電路的連接方法 u 練習動態(tài)顯示程序的結構及調試方 2. 電路原理圖 3. 實驗原理 單片機通過驅動電路給數碼管中相應各段的發(fā)光二極管加正向電壓,該段發(fā)光二極管就會被點亮。不同段的發(fā)光二極管加正向電壓則亮,不加正向電壓則滅,這樣就可以通過各段的亮滅組合,來顯示不同的數字和字符了。 本次使用采用P1口為段選,P0.7~0.2分別對應第一個數碼管至第六個數碼管。采用各數碼管循環(huán)輪流顯示的方法,當循環(huán)顯示頻率較高時,利用人眼的暫留特性,看不出閃爍顯示現象,這種顯示需要一個接口完成字形碼的輸出,另一接口完成各數碼管的輪流點亮(數位選擇)。 4. 程序框圖 給P0口0的段選,選通第一個數碼管(P0.7),延時,關閉第一個數碼管 開始 給P0口1的段選,選通第二個數碼管(P0.6),延時,關閉第二個數碼管 給P0口2的段選,選通第三個數碼管(P0.5),延時,關閉第三個數碼管 給P0口3的段選,選通第四個數碼管(P0.4),延時,關閉第四個數碼管 給P0口4的段選,選通第五個數碼管(P0.3),延時,關閉第五個數碼管 給P0口5的段選,選通第六個數碼管(P0.2),延時,關閉第六個數碼管 5. 實驗心得 本次實驗的電路連接有點麻煩,在焊接過程中一分心就容易犯錯,所以在做實驗中我們必須要注意力高度集中,要不然我們就會得不償失了。另外,在調試程序時,我們的數碼管的顯示不很穩(wěn)定,當時我們沒太在意。當老師檢驗時提出了這一問題,我們后來明白了,在實驗中出現任何一丁點異常都要引起注意,把問題解決,這樣我們做出的產品才會更有質量保證。 第二章 矩陣鍵盤、時鐘與蜂鳴器 1. 實驗目的 l 掌握4*4矩陣式鍵盤按鍵地設計方法 l 掌握4*4矩陣鍵盤程序的識別原理 l 掌握蜂鳴器的使用方法 l 了解定時器的工作原理 l 明白用鍵盤怎樣去調試時間并在數碼管上顯示 2. 電路圖 3. 實驗原理 i. 矩陣鍵盤與蜂鳴器 為了減少鍵盤與單片機接口所占用的I/O口的數目,所以將鍵盤排列成行列矩陣形式,程序先判斷有無鍵按下,當有鍵按下后,判斷哪一個按鍵被按下,采用逐行掃描查詢法。向行線輸出全掃描字00H,把全部行線置為地電平,然后將列線的電平狀態(tài)讀入累加器A中,如果有一根列線電平被拉至低電平,從而使列輸入不全為1。 數碼顯示第二章已講,這里不再累述。給P0.0一個信號0,使蜂鳴器導通發(fā)聲。 ii. 時鐘 使用6位數碼管,數碼管分別顯示時、分、秒,用鍵盤進行時間的調整。選用定時器T0的第一模式工作 。先賦定時器的計數初值,賦給TL0, B0H,賦給TH0, 3CH,每次的定時時間為50微妙。開放中斷,啟動定時器。中斷二十次即可得到一秒的時間。每秒的延時達到,秒計數加一。當秒計數器計數滿60,分計數加一,秒計時清零。當秒計數器計數滿60,時計數加一,分計時清零。當時計數器計滿24,全部清零。 4. 程序框圖 i. 矩陣鍵盤與蜂鳴器程序框圖 開始 判斷是否有鍵按下 給A以00H,進行行掃描,確定按鍵行號,保存行首鍵號 然后掃描列,并將對應的列序號保存 鍵號(值)=行首鍵號+列號 延時去抖后再判斷按鍵狀態(tài),確定有鍵按下 輸出顯示,蜂鳴器發(fā)聲 ii. 時鐘程序框圖 開始 初始化并設定中斷允許 進入中斷調時 調用鍵盤程序 調用時間程序,計時 鍵掃描,確定鍵值 輸入鍵值,進行調時 顯示時間 否 是 5. 實驗心得 做完之前的兩個實驗,我們的信心也加強了,因為我們在學習的過程有了小小的收獲??蛇@次實驗卻讓我們小小的郁悶了,感覺原理不是特別好懂,特別是時鐘的程序,因為對單片機的內部工作原理算是懵懂,不過后來,我們還是通過查找資料,慢慢的完成了實驗,可以說過程是艱難的,但是我們沒有放棄,也許毅力的練成就是從一次一次坎坷中積聚的吧。 第三章 液晶顯示器(LCD1602) 1. 實驗目的 l 了解LCD液晶顯示器的工作原理 l 掌握LCD液晶顯示器的編程控制方法 2. 電路圖 3. 實驗原理 1602液晶模塊內部的字符發(fā)生存儲器(CGROM)已經存儲了160個不同的點陣字符圖形,這些字符有:阿拉伯數字、英文字母的大小寫、常用的符號、和日文假名等,每一個字符都有一個固定的代碼。 4. 程序框圖 是 是 否 否 開始 是否忙 調LCD顯示功能,清屏 是否忙 送顯示 調整對比度 返回 5. 實驗心得 這次實驗主要是讓我們了解LCD,知道它作為外設怎么使用就行。雖然用處我們大家都知道,但是不能因為簡單我們就不去認真學,畢竟學習是個積累的過程。 第四章 片外RAM擴展 1. 實驗目的 l 掌握擴展片RAM的電路和程序設計方法 l 理解擴展片RAM時讀寫和ALE等控制線的作用 l 了解片外RAM情況下的單片機指令MOVX的執(zhí)行進程 l 學習心得 2. 電路圖 3. 實驗原理 由于89C51單片機片內RAM僅有128字節(jié),當系統(tǒng)需要較大容量RAM時,就需要片外擴展數據存儲器RAM,最大可擴展64KB。擴展數據存儲器空間地址,有P2口提供高8位地址,P0口分時提供8位地址和用作8位雙向數據總線,由地址鎖存器74H373控制。 4. 程序框圖 由74LS373傳送到62256 由62256傳送回單片機中 數碼管上面顯示數據 結束 數據傳輸到62256中 開始 5. 實驗心得 這次實驗主要是電路的連接,理解時序與有關芯片的原理之后,就相對來說比較簡單了。所以在以后的實驗中我們既要認真地對待硬件,又要深刻地理解有關軟件,這樣才能真正地做到靈活運用知識去解決其他問題。 第五章 AD轉換 1. 實驗目的 l 1、了解AD轉換器的工作原理 l 2、掌握AD轉換與單片機的接口方法 l 3、通過實驗了解單片機如何進行數據采集 2. 電路圖 3. 實驗原理 從滑動變阻器上得到模擬電壓,將模擬電壓信號輸入ADC0809芯片,ADC0809將模擬量轉化為數字量輸入AT89C51,AT89C51將輸入的數字量處理,再送到數碼管顯示。 4. 程序框圖 定義引腳以及顯示緩沖區(qū)單元 清零緩沖區(qū),給DPTR查表表頭,ABC已經接地(選擇通道0) 啟動AD轉換,待轉換結束則輸出,緩存結果并關閉輸出 將AD轉換的結果(二進制)轉換為BCD碼 將結果送至顯示緩沖區(qū)(從低位到高位,并且最高位點亮小數點)分別顯示 開始 5. 實驗心得 這個實驗是持續(xù)時間最長的,就因為那一句話使整個實驗延長了倆個多月,使我明白了做實驗要了解你所用的器件的所有的功能才能使你掌控大局觀,實驗如此,生活亦是如此,要知己知彼才能百戰(zhàn)不殆。 第六章 DA轉換 1. 實驗目的 l 了解DA轉換的基本原理 l 了解運算放大器的工作原理 l 了解DA轉換芯片的性能及編程方法 l 掌握如何采集產生波形的樣點 2. 電路圖 3. 實驗原理 使用D/A轉換實現數字信號轉換為模擬信號。用運算放大器UA741實現電壓的放大。通過程序控制產生矩形波,三角波,正弦波。 4. 實驗心得 由于這次實驗是需要把數字信號轉換為模擬信號,而模擬信號的產生就需要學會如何采集生成波形的樣點,初次接觸這方面的知識,在理解上與解決問題上給我們帶來了困擾,好在有學長的幫助以及我們的堅持,才做出了實驗效果。通過這次實驗,我們感觸很大,因為學長在傳遞知識時很無私也很友好,也因為我們的毅力讓我們選擇了接著奮斗。我們相信,以后我們再遇到困難時,繼續(xù)走下去的決心會加強,我們也會很樂意與人分享我們的知識的。 第七章 附錄 附錄一 流水燈程序 ORG 0000H AJMP MAIN ORG 0070H MAIN: MOV P1,#0FEH LCALL AXH MOV P1,#0FDH LCALL AXH MOV P1,#0FBH LCALL AXH MOV P1,#0F7H LCALL AXH MOV P1,#0EFH LCALL AXH MOV P1,#0DFH LCALL AXH MOV P1,#0BFH LCALL AXH MOV P1,#07FH LCALL AXH AJMP MAIN AXH:MOV R7,#250 D1:MOV R6,#250 D2:DJNZ R6,D2 DJNZ R7,D1 RET END 附錄二 數碼管程序 ORG 0000H AJMP MAIN ORG 0030H MAIN:MOV P1,#0C0H CLR P0.7 LCALL AXH SETB P0.7 MOV P1,#0F9H CLR P0.6 LCALL AXH SETB P0.6 MOV P1,#0A4H CLR P0.5 LCALL AXH SETB P0.5 MOV P1,#0B0H CLR P0.4 LCALL AXH SETB P0.4 MOV P1,#99H CLR P0.3 LCALL AXH SETB P0.3 MOV P1,#92H CLR P0.2 LCALL AXH SETB P0.2 AJMP MAIN AXH: MOV R7,#2 D1: MOV R6,#30 D2: DJNZ R6,D2 DJNZ R7,D1 END 附錄三 矩陣鍵盤程序 ORG 0000H AJMP KEY ORG 0030H KEY:MOV P2,#00H MOV A,P2 ANL A,#0FH ORL A,#0F0H CPL A JZ KEY LCALL DEL10ms MOV P2,#0FH MOV A,P2 ANL A,#0FH ORL A,#0F0H CPL A JZ KEY SKEY: MOV A,#00 MOV R0,A //行值 MOV R1,A //列值 MOV R3,#7FH //暫存行 SKEY2: MOV A,R3 //SKEY2判斷行數 MOV P2,A NOP NOP NOP MOV A,P2 MOV R1,A ANL A,#0FH ORL A,#0F0H CPL A S123: JNZ SKEY3 INC R0 SETB C MOV A,R3 RRC A MOV R3,A MOV A,R0 CJNE A,#04H,SKEY2 EKEY: RET SKEY3: MOV A,R1 //SKEY3判斷列值 JNB ACC.3,SKEY5 JNB ACC.2,SKEY6 JNB ACC.1,SKEY7 JNB ACC.0,SKEY8 AJMP EKEY SKEY5: MOV A,#00H MOV R2,A AJMP DKEY SKEY6: MOV A,#01H MOV R2,A AJMP DKEY SKEY7: MOV A,#02H MOV R2,A AJMP DKEY SKEY8: MOV A,#03H MOV R2,A AJMP DKEY DKEY: MOV A,R0 ACALL DECODE AJMP MAIN0 DECODE: MOV A,R0 MOV B,#04H MUL AB ADD A,R2 RET MAIN0:CLR P0.2 CJNE A,#00H,MAIN1 CLR P0.0 MOV P1,#0C0H LCALL DEL50ms SETB P0.0 SETB P0.2 MOV P1,#0FFH AJMP KEY MAIN1: CJNE A,#01H,MAIN2 CLR P0.0 MOV P1,#0F9H LCALL DEL50ms SETB P0.0 SETB P0.2 MOV P1,#0FFH AJMP KEY MAIN2: CJNE A,#02H,MAIN3 CLR P0.0 MOV P1,#0A4H LCALL DEL50ms SETB P0.0 SETB P0.2 MOV P1,#0FFH JMP KEY MAIN3: CJNE A,#03H,MAIN4 CLR P0.0 MOV P1,#0B0H LCALL DEL50ms SETB P0.0 SETB P0.2 MOV P1,#0FFH AJMP KEY MAIN4: CJNE A,#04H,MAIN5 CLR P0.0 MOV P1,#99H LCALL DEL50ms SETB P0.0 SETB P0.2 MOV P1,#0FFH AJMP KEY MAIN5: CJNE A,#05H,MAIN6 CLR P0.0 MOV P1,#92H LCALL DEL50ms SETB P0.0 SETB P0.2 MOV P1,#0FFH AJMP KEY MAIN6: CJNE A,#06H,MAIN7 CLR P0.0 MOV P1,#82H LCALL DEL50ms SETB P0.0 SETB P0.2 MOV P1,#0FFH AJMP KEY MAIN7: CJNE A,#07H,MAIN8 CLR P0.0 MOV P1,#0F8H LCALL DEL50ms SETB P0.0 SETB P0.2 MOV P1,#0FFH AJMP KEY MAIN8: CJNE A,#08H,MAIN9 CLR P0.0 MOV P1,#80H LCALL DEL50ms SETB P0.0 SETB P0.2 MOV P1,#0FFH AJMP KEY MAIN9: CJNE A,#09H,MAINA CLR P0.0 MOV P1,#90H LCALL DEL50ms SETB P0.0 SETB P0.2 MOV P1,#0FFH AJMP KEY MAINA: CJNE A,#0AH,MAINB CLR P0.0 MOV P1,#88H LCALL DEL50ms SETB P0.0 SETB P0.2 MOV P1,#0FFH AJMP KEY MAINB: CJNE A,#0BH,MAINC CLR P0.0 MOV P1,#83H LCALL DEL50ms SETB P0.0 SETB P0.2 MOV P1,#0FFH AJMP KEY MAINC: CJNE A,#0CH,MAIND CLR P0.0 MOV P1,#0C6H LCALL DEL50ms SETB P0.0 SETB P0.2 MOV P1,#0FFH AJMP KEY MAIND: CJNE A,#0DH,MAINE CLR P0.0 MOV P1,#0A1H LCALL DEL50ms SETB P0.0 SETB P0.2 MOV P1,#0FFH AJMP KEY MAINE: CJNE A,#0EH,MAINF CLR P0.0 MOV P1,#86H LCALL DEL50ms SETB P0.0 SETB P0.2 MOV P1,#0FFH AJMP KEY MAINF: CJNE A,#0FH,CXF CLR P0.0 MOV P1,#8EH LCALL DEL50ms SETB P0.0 SETB P0.2 MOV P1,#0FFH AJMP KEY CXF: LJMP KEY DEL10ms:MOV R7,#10H TS1: MOV R6,#0FFH TS2: DJNZ R6,TS2 DJNZ R7,TS1 RET DEL50ms: MOV R7,#200 TS3: MOV R6,#125 TS4: DJNZ R6,TS4 DJNZ R7,TS3 RET END 附錄四 時鐘程序 H_BIT EQU 20H M_BIT EQU 21H S_BIT EQU 22H HH EQU 23H MM EQU 24H SS EQU 25H HH_BIT EQU 26H MM_BIT EQU 27H SS_BIT EQU 28H ORG 00H AJMP MAIN ORG 0BH AJMP TIME0 ORG 30H MAIN: 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 TR0 LOOP: LCALL EY LCALL KEY LJMP LOOP EY: 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 RET LOOP1: 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 RET TIME0: 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,#00H LOOP2: POP PSW POP ACC RETI KEY: CLR EA LCALL EY JNB P2.3,SS_KEY KEY1: SETB EA RET SS_KEY: LCALL EY1 LCALL DIS1 JNB P2.3,SS_KEY SSA: LCALL EY1 LCALL S_KEY JNB P2.0,KEY3 LJMP SSA KEY3: LJMP KEY1 S_KEY: JNB P2.2,S_ADDKEY JNB P2.1,S_DECKEY LCALL DIS1 JNB P2.3,MM_KEY RET S_ADDKEY: LCALL EY1 LCALL DIS1 JNB P2.2,S_ADDKEY INC SS MOV A,SS CJNE A,#60,SS_KEY1 MOV SS,#00H SS_KEY1: LJMP SSA S_DECKEY: LCALL EY1 LCALL DIS1 JNB P2.1,S_DECKEY MOV A,SS CJNE A,#00,SS_KEY2 MOV SS,#60 SS_KEY2: DEC SS LJMP SS_KEY1 MM_KEY: LCALL EY2 LCALL DIS1 JNB P2.3,MM_KEY MMA: LCALL EY2 LCALL M_KEY JNB P2.0,KEY4 LJMP MMA KEY4: LJMP KEY1 M_KEY: JNB P2.2,M_ADDKEY JNB P2.1,M_DECKEY LCALL DIS1 JNB P2.3,HH_KEY RET M_ADDKEY: LCALL EY2 LCALL DIS1 JNB P2.2,M_ADDKEY INC MM MOV A,MM CJNE A,#60,MM_KEY1 MOV MM,#00H MM_KEY1: LJMP MMA M_DECKEY: LCALL EY2 LCALL DIS1 JNB P2.1,M_DECKEY MOV A,MM CJNE A,#00,MM_KEY2 MOV MM,#60 MM_KEY2: DEC MM LJMP MM_KEY1 HH_KEY: LCALL EY3 LCALL DIS1 JNB P2.3,HH_KEY HHA: LCALL EY3 LCALL H_KEY JNB P2.0,KEY5 LJMP HHA KEY5: LJMP KEY1 H_KEY: JNB P2.2,H_ADDKEY JNB P2.1,H_DECKEY LCALL DIS1 JNB P2.1,SSB RET H_ADDKEY: LCALL EY3 LCALL DIS1 JNB P2.2,H_ADDKEY INC HH MOV A,HH CJNE A,#24,HH_KEY1 MOV HH,#00H HH_KEY1: LJMP HHA H_DECKEY: LCALL EY3 LCALL DIS1 JNB P2.1,H_DECKEY MOV A,HH CJNE A,#00,HH_KEY2 MOV HH,#24 HH_KEY2: DEC HH LJMP HH_KEY1 SSB: LJMP SS_KEY EY1: 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 RET EY2: 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 RET EY3: 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 RET DIS1: MOV R6,#20 DJNZ R6,$ RET TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H END 附錄五 液晶LCD1602程序 ORG 0000H AJMP MAIN ORG 000BH AJMP TIME ORG 0100H MAIN: MOV TMOD,#00H MOV TL0,#00H MOV TH0,#00H SETB EA SETB ET0 SETB TR0 MOV 50H,#32H MOV SP,#60H ACALL MOSHISHEZHI ACALL LCDQP MOV A,#80H ACALL LCDXZL MOV DPTR,#TAB1 ACALL LOOP4 MOV A,#0C0H ACALL LCDXZL MOV DPTR,#TAB2 ACALL LOOP4 LOOP: AJMP LOOP TIME: MOV TL0,#00H MOV TH0,#00H DJNZ 50H,TIME0 MOV 50H,#32H TIME0: RETI MOSHISHEZHI:MOV A,#38H LCALL LCDXZL MOV A,#0EH LCALL LCDXZL MOV A,#06H LCALL LCDXZL RET LOOP2: PUSH Acc LOOP3: CLR P2.6 SETB P2.7 CLR P2.5 SETB P2.5 MOV A,P1 CLR P2.5 JB Acc.7,LOOP3 POP Acc ACALL DELAY RET LCDXZL: ACALL LOOP2 CLR P2.5 CLR P2.6 CLR P2.7 SETB P2.5 MOV P1,A CLR P2.5 RET LCDDXX: ACALL LOOP2 CLR P2.5 SETB P2.6 CLR P2.7 SETB P2.5 MOV P1,A CLR P2.5 RET DELAY: MOV 52H,#05H DELAY1: MOV 51H,#0F8H DJNZ 51H,$ DJNZ 52H,DELAY1 RET LCDQP: MOV A,#01H ACALL LCDXZL RET LOOP4: PUSH Acc LOOP5: CLR A MOVC A,@A+DPTR JZ LOOP6 ACALL LCDDXX INC DPTR AJMP LOOP5 LOOP6: POP Acc RET TAB1: DB " Gue xue ling",00H TAB2: DB " Zhong qiang",00H END 附錄六 片外RAM程序 WR1 BIT P3.6 RD1 BIT P3.7 ORG 0000H AJMP MAIN ORG 0030H MAIN: LCALL WRITE LCALL READ LCALL SY WRITE: SETB WR1 MOV A,#0F8H MOVX @R1,A CLR WR1 SETB WR1 RET READ: SETB RD1 MOVX A,@R1 CLR RD1 SETB RD1 RET SY: MOV P1,A CLR P0.2 RET END 附錄七 AD轉換程序 #include- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設計者僅對作品中獨創(chuàng)性部分享有著作權。
- 關 鍵 詞:
- 系列 單片機 增強 AT89C51 電子設計 實驗 報告
裝配圖網所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
鏈接地址:http://www.820124.com/p-8896998.html