單片機(jī)試驗(yàn)報(bào)告_第1頁
單片機(jī)試驗(yàn)報(bào)告_第2頁
單片機(jī)試驗(yàn)報(bào)告_第3頁
單片機(jī)試驗(yàn)報(bào)告_第4頁
單片機(jī)試驗(yàn)報(bào)告_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第九組一一單片機(jī)最小系統(tǒng)實(shí)驗(yàn)報(bào)告摘要:本次課題訓(xùn)練設(shè)計(jì)了一個(gè)51單片機(jī)的最小系統(tǒng),系統(tǒng)以AT89C51為 控制中心,用P0 口做了一個(gè)由8個(gè)發(fā)光二極管構(gòu)成的流水燈,用 P0 口,P2 口 和P3 口完成可調(diào)時(shí)電子顯示時(shí)鐘,P1 口還完成LCD的顯示。在片外擴(kuò)展上, 用ADC0809完成數(shù)字電壓表,用DAC0832完成波形發(fā)生器。設(shè)計(jì)過程中程序 采用的匯編語言編寫,本系統(tǒng)的主要誤差是器件本身的產(chǎn)生的誤差。而本系統(tǒng)的 主要不足是為了避免接線的麻煩,數(shù)碼管的驅(qū)動(dòng)電路采用的是三極管共集電極接 法,所以只放大了電流,沒有放大電壓,數(shù)碼管再顯示時(shí)亮度不高。關(guān)鍵字:AT89C51,控制,系統(tǒng)一:流水燈11:

2、方案設(shè)計(jì)與論證 12:程序的流程13:運(yùn)行原理:14:錯(cuò)誤與總結(jié):25:參考文獻(xiàn): 2二:數(shù)碼管動(dòng)態(tài)顯示 21:方案設(shè)計(jì)與論證: 22:程序的流程33:運(yùn)行原理:44:錯(cuò)誤與總結(jié):45:參考文獻(xiàn): 4三:矩陣鍵盤與電子時(shí)鐘 41:方案設(shè)計(jì)與論證: 42:程序的流程43:運(yùn)行原理:54:錯(cuò)誤與總結(jié):65:參考文獻(xiàn): 6四:LCD1602 顯示61:方案設(shè)計(jì)與論證: 62:程序的流程63:運(yùn)行原理:64:錯(cuò)誤與總結(jié):75:參考文獻(xiàn):7五:單片機(jī)片外 RAM 擴(kuò)展81:方案設(shè)計(jì)與論證: 82:程序的流程83:運(yùn)行原理:94:錯(cuò)誤與總結(jié)95:參考文獻(xiàn): 9六:單片機(jī)的 AD轉(zhuǎn)換91:方案設(shè)計(jì)與論證:

3、92:程序的流程93:運(yùn)行的原理: 104:錯(cuò)誤與總結(jié)105:參考文獻(xiàn):10七:單片機(jī)的 DA轉(zhuǎn)換111:方案設(shè)計(jì)與論證 112:程序的流程113;運(yùn)行原理:114:錯(cuò)誤與總結(jié)125:參考文獻(xiàn):12八:實(shí)驗(yàn)心得:12九:實(shí)驗(yàn)電路總圖: 13十:程序清單13流水燈程序13數(shù)碼管程序14鍵盤程序14電子時(shí)鐘程序16LCD顯示程序19片外數(shù)據(jù)存儲(chǔ)器擴(kuò)展程序 20AD轉(zhuǎn)化程序 20DA轉(zhuǎn)換程序23一:流水燈1:方案設(shè)計(jì)與論證流水燈的八個(gè)發(fā)光二極管負(fù)極通過電阻接在單片機(jī)的P1 口上,正極接+5V電壓,當(dāng)給P1輸入低電平時(shí)發(fā)光二極管發(fā)光,流發(fā)光,當(dāng)程序運(yùn)行時(shí), 給P0 口輪流送入低電平,使發(fā)光二極管能輪流

4、閃爍發(fā)光。此設(shè)計(jì)使用靜態(tài),從 而程序簡單,顯示穩(wěn)定,線路不易出錯(cuò),但缺點(diǎn)是但用單片機(jī)的I/O多。仿真圖如下圖所示:F3.'RA3 Pl JHIQ>P3JHAI2 E 量JUg 兩。-JL 見 n-i、E。 F"J.l|FXD P1ZFO FaaFT1- r - uPSM r !P3n¥ffJ g.nR序停序序F國比號(hào)H才口JaAEJiJ E三月EEE2:程序的流程程序的流程如下圖:3:運(yùn)行原理:開關(guān)合上時(shí),八個(gè)發(fā)光二極管的正極已經(jīng)接上 +5V電壓,當(dāng)程序運(yùn)行 時(shí),單片機(jī)P1 口向八個(gè)燈輪流送低電平,然后執(zhí)行延時(shí)程序,并讓此程序循環(huán), 此時(shí)流水燈依次輪流亮起。流

5、水燈流程圖4:錯(cuò)誤與總結(jié):第一次設(shè)置延時(shí)程序時(shí),由于延時(shí)的時(shí)間比較短,引起視覺錯(cuò)誤,所以看到的現(xiàn)象是八個(gè)流水燈同時(shí)發(fā)光不閃爍, 且亮度都不高,改變延時(shí)后,流水燈 正常發(fā)光閃爍。5:參考文獻(xiàn):單片機(jī)原理及接口技術(shù)李朝青二:數(shù)碼管動(dòng)態(tài)顯示1:方案設(shè)計(jì)與論證:六個(gè)數(shù)碼管采用動(dòng)態(tài)顯示,數(shù)碼管的位選線接在單片機(jī) P2 口上,段選線接在P0 口上。數(shù)碼管采用共陽接法,數(shù)碼管的段選端放大驅(qū)動(dòng)電路采用NPN型三極管的共集電極電路。仿真圖如下圖所示:2:程序的流程程序的流程如下圖:3:運(yùn)行原理:當(dāng)程序運(yùn)行時(shí),要顯示的程序數(shù)據(jù)通過P0送給段選線上,P2 口的P2.0 到P2.5端口輪流送高電平,通過三極管放大,以

6、依次選通數(shù)碼管,選通后,執(zhí) 行一段延時(shí)程序,以消除余暉。然后,循環(huán)此過程,通過人的視覺暫留六個(gè)數(shù)碼 管便能同時(shí)顯示出相應(yīng)的數(shù)字。4:錯(cuò)誤與總結(jié):數(shù)碼管開始顯示時(shí),有兩段顯示的是相反的,原因是,焊接元件時(shí), 按教材的管腳圖接的,而實(shí)際的管腳與書上的有兩個(gè)剛好相反。并且在一開始顯 示時(shí),有余暉產(chǎn)生,原因是沒有延時(shí)。由于沒有考慮清楚,數(shù)碼管的驅(qū)動(dòng)三極管 是共集電極接法,所以沒有放大電壓,只放大了電流,導(dǎo)致數(shù)碼管顯示時(shí)亮度不 夠。另外,由于管腳較多,焊接時(shí)有較多的虛焊點(diǎn),所以以后做實(shí)驗(yàn)時(shí),要搞懂 原件的原理,并且焊接時(shí)要細(xì)心。5:參考文獻(xiàn):單片機(jī)原理及接口技術(shù)李朝青MCS-51系列單片機(jī)實(shí)用接口技術(shù)李

7、華三:矩陣鍵盤與電子時(shí)鐘1:方案設(shè)計(jì)與論證:矩陣鍵盤是4*4的16位鍵盤,鍵盤的行線和列線分別接單片機(jī)的 P3.0P3.3和P3,4P3.7口上,鍵盤采用鍵盤掃描的工作方式, 并且按鍵聲通過蜂 鳴器實(shí)現(xiàn),蜂鳴器通過 NPN型三極管和保護(hù)電阻接在P2.6 口。仿真圖如下圖:2:程序的流程程序的流程如下圖:3:運(yùn)行原理:(1)矩陣鍵盤的運(yùn)行原理:鍵盤的列線接電阻后接+5V的電源,另一端接單片機(jī)的P3.0P3.3 口, 行線接在單片機(jī)的P3.4P3.7口上。鍵盤采用掃描的方式,程序開始運(yùn)行時(shí),檢 測(cè)的方法是單片機(jī)的 P3.4P3.7 口輸出全“ 0”,讀取 P3.4P3.7 口的狀態(tài),若 P3.4P

8、3.7 口有高電平,則有鍵按下,否則沒有鍵按下。若有鍵按下,通過延時(shí) 去抖。去除鍵抖動(dòng)后,當(dāng)檢測(cè)到有鍵按下后,延時(shí)一段時(shí)間在做下一步的檢測(cè)判 斷。若有鍵按下,通過程序判斷是哪個(gè)按鍵按下并通過程序判斷此鍵所代表的具 體數(shù)值(在程序中將每個(gè)按鍵賦予一個(gè)固定的值,從 0到F),然后查表后的鍵 值送到數(shù)碼管顯示。(2)電子時(shí)鐘的運(yùn)行原理:程序運(yùn)行后,電子時(shí)鐘的秒數(shù)會(huì)走,當(dāng)?shù)竭_(dá) 60時(shí),顯示秒數(shù)的寄存 器清零,顯示分鐘的寄存器加一,當(dāng)分達(dá)到 60時(shí),其寄存器也會(huì)清零,顯示時(shí) 的寄存器加一,當(dāng)顯示的時(shí)達(dá)到 24時(shí),其寄存器清零。另外,當(dāng)時(shí)的按鍵按下 時(shí),程序中斷,當(dāng)按相應(yīng)的按鍵時(shí),會(huì)分別調(diào)節(jié)時(shí),分和秒,再

9、有另外一個(gè)按鍵 就是通過掃描,當(dāng)此鍵按下,相應(yīng)的存儲(chǔ)器加一,以實(shí)現(xiàn)時(shí)分秒的調(diào)時(shí)功能。4:錯(cuò)誤與總結(jié):開始做時(shí),只是把鍵盤的掃描和取鍵值的程序?qū)懥?,沒有把鍵值送到 數(shù)碼管顯示的程序,所以仿真時(shí),數(shù)碼管沒有反應(yīng)。主要是沒有理解整個(gè)過程的 每一步的操作,思路不夠開闊。在蜂鳴器的接法上,將三極管的基極和發(fā)射極接 反,蜂鳴器不叫,改正后,蜂鳴器能正常鳴響。四:LCD1602的顯示5:參考文獻(xiàn):單片機(jī)原理及接口技術(shù)李朝青MCS-51系列單片機(jī)實(shí)用接口技術(shù)李華四:LCD1602顯示1:方案設(shè)計(jì)與論證:將LCD的輸入端D0到D7接在單片機(jī)的P2端口,數(shù)據(jù)通過P2 口送 入LCD , LCD內(nèi)部有數(shù)據(jù)譯碼器,能

10、將數(shù)據(jù)轉(zhuǎn)換為電壓變化,并顯示。RS端接P3.0, RW接P3.1, E接P3.2, VSS與滑動(dòng)變阻器一端接地,VDD與滑動(dòng)變阻器 另一端接+5V, VEE接劃動(dòng)端,通過滑動(dòng)變阻器改變 LCD的顯示亮度,使之能 正常顯示,仿真圖如下:嘴迦3:麗亍Fl.HH RZjaAinm同吧 F72AAM- H UMriEg。 EJ"沖 rajRni 咫=ET 后用mPlflfTC Pl QE2:程序的流程程序的流程如下圖:3:運(yùn)行原理:液晶顯示的原理是利用液晶的物理特性,通過電壓對(duì)其顯示區(qū)域進(jìn)行控制,有電就有顯示,這樣即可以顯示出圖。程序開始時(shí),對(duì)液晶進(jìn)行了 初始化設(shè)置,約定了顯示格式。由于液晶

11、顯示模塊是一個(gè)慢顯示器件,所 以在執(zhí)行每條指令之前一定要確認(rèn)模塊的忙標(biāo)志位,即讀忙信號(hào)和光標(biāo)地 址BF為低電平,表示不忙,否則此指令失效。要顯示字符時(shí),程序先輸入顯示字符地址,也就是告訴模塊在哪里顯示字符,液晶就可以正常顯示流程圖4:錯(cuò)誤與總結(jié):在仿真時(shí),將LCD豎著放,運(yùn)行程序,不能正常顯示,最后將 LCD 橫著放時(shí)運(yùn)行程序能正常顯示。在實(shí)際電路上,運(yùn)行程序,LCD不能亮,用萬用表測(cè)量LCD端電壓時(shí)無電壓,最后發(fā)現(xiàn)插槽與LCD的腳不是一一對(duì)應(yīng)的,改 正后能亮,但不能顯示字符數(shù)據(jù),調(diào)動(dòng)劃動(dòng)變阻器(20千歐),不能看到字符, 改換10千歐滑動(dòng)變阻器后,能正常顯示。所以在以后用元件時(shí),要把該元件的

12、 特性弄清楚再焊接到電路板上。5:參考文獻(xiàn):單片機(jī)原理及接口技術(shù)李朝青MCS-51系列單片機(jī)實(shí)用接口技術(shù)李華五:單片機(jī)片外RAM擴(kuò)展1:方案設(shè)計(jì)與論證:單片機(jī)的P0 口既可以做地址口也可以做數(shù)據(jù)口,而 P2 口只能做地 址口,在單片機(jī)擴(kuò)展RAM時(shí),P0 口要傳輸數(shù)據(jù)也要傳輸?shù)刂?,所以在?shí)驗(yàn)中, P0 口要用地址鎖存器,鎖存器用74LS573,由于只擴(kuò)展一片,所以用靜態(tài)RAM。 單片機(jī)的P0 口接鎖存器,再接RAM62256的A0A7 口,P2 口接RAM的A8A18 口,RAM的輸出口接單片機(jī)的P0 口。仿真圖如下圖:2:程序的流程程序的流程如下圖:調(diào)DIS片外送出段選字形碼END送顯示3:運(yùn)

13、行原理:當(dāng)單片機(jī)把數(shù)據(jù)送到片外RAM時(shí),先把低八位的地址由P0 口送到鎖 存器暫存,然后再由地址鎖存器給系統(tǒng)提供低八位地址,從而可以吧 P0 口當(dāng)數(shù) 據(jù)口先使用。這樣鎖存器提供的低八位的地址和P2 口提供的高八位的地址就是完整的地址。然后可以一起把完整的地址送到片外的RAM中,最后再把P0 口當(dāng)數(shù)據(jù)口用,把16位數(shù)據(jù)送到片外RAM中。片外RAM的輸出口接數(shù)碼管的8 根段選線,把數(shù)據(jù)送到數(shù)碼管,數(shù)碼管可以動(dòng)態(tài)顯示。4:錯(cuò)誤與總結(jié)在接線時(shí)輸出口的線沒有與六個(gè)數(shù)碼管的段選線一一對(duì)應(yīng), 結(jié)果數(shù)碼 管顯示錯(cuò)誤,改成輸出的07 口與單片機(jī)的P0的07 口對(duì)應(yīng)后,數(shù)碼管正常顯 小05:參考文獻(xiàn):單片機(jī)原理及

14、接口技術(shù)李朝青MCS-51單片機(jī)實(shí)用接口技術(shù)李華六:單片機(jī)的AD轉(zhuǎn)換1:方案設(shè)計(jì)與論證:_由于此實(shí)驗(yàn)中只采集一路信息,所以只用一路模擬開關(guān),本實(shí)驗(yàn)直接采用用IN0 口輸入模擬量,ADDA,ADDB,ADDC 接口直接接地,ADC0809的控制端CLK,ST,EOC,OE端口接單片機(jī)的P2 口,通過程序進(jìn)行控制信號(hào)輸入,三 態(tài)輸出接單片機(jī)P0 口,數(shù)碼管位選在P2 口,端選P0 口輸出的數(shù)據(jù)在數(shù)碼管上 顯示。仿真圖如下:2:程序的流程程序的流程如下圖:數(shù)模轉(zhuǎn)換流程3:運(yùn)行的原理:由于ADC0809在進(jìn)行 A/D轉(zhuǎn)換時(shí)需要有 CLK信號(hào),而此時(shí)的 ADC0809的CLK是接在單片機(jī)的P2.4端口上

15、,也就是要求從P2.4輸出CLK信 號(hào)供ADC0809使用。在ST置為高電平后開始進(jìn)行轉(zhuǎn)換,通過IN0輸入模擬量, 在經(jīng)過0809內(nèi)部轉(zhuǎn)換器后經(jīng)過三態(tài)輸出端口輸出到 P0 口通過數(shù)碼管進(jìn)行顯示, 而產(chǎn)生CLK信號(hào)的方法就得用軟件來產(chǎn)生了;由于ADC0809的參考電壓VREF = VCC,所以轉(zhuǎn)換之后的數(shù)據(jù)要經(jīng)過數(shù)據(jù)處理, 在數(shù)碼管上顯示出電壓值。實(shí)際 顯示的電壓值 (D/256*VREF),本組實(shí)驗(yàn)在數(shù)碼管上顯示的最高電壓是 4.972V,最低為0V,最小變動(dòng)為0.019V,分辨率為0.019V。4:錯(cuò)誤與總結(jié)設(shè)計(jì)電路時(shí),0809輸出端與p0 口正接,運(yùn)行程序時(shí)數(shù)碼管顯示為亂 碼,請(qǐng)教學(xué)長后,

16、將0809輸出端與p0 口反接,其他端口接法不變,運(yùn)行程序顯 示正確結(jié)果,在實(shí)際電路接法中0809輸出端與p0 口正接顯示不正確,最后采用 反接,顯示正確結(jié)果。在實(shí)驗(yàn)過程中了解0809的轉(zhuǎn)換原理,了解各個(gè)端口對(duì)AD 轉(zhuǎn)換的作用,大致了解簡易數(shù)字電壓表的原理。5:參考文獻(xiàn):單片機(jī)原理及接口技術(shù)李朝青MCS51單片機(jī) 實(shí)用接口技術(shù)李華七:單片機(jī)的DA轉(zhuǎn)換1:方案設(shè)計(jì)與論證選用DAC0832作為DA轉(zhuǎn)換芯片 采用直通工作方式 即 DAC0832的CS與XFER , WR1與 WR2都直接接地,功放選擇 UA741 , DAC0832的數(shù)據(jù)端 D0D0與單片機(jī)的P2 口相連。硬件上,如圖。鍵盤輸入部分

17、主要用于選擇波形。鍵盤共設(shè)3鍵,用于選擇三角波、方波、正弦波三種波形,。89C51單片機(jī)用來執(zhí)行某一波形發(fā)生程序,向 D/A轉(zhuǎn)換器的輸入端發(fā)送數(shù)據(jù),將其轉(zhuǎn)化成模擬量,并通過運(yùn)算放大器調(diào)節(jié)波 形的幅值,而在輸出端得到所需的波形。按鍵接口電路。如圖所示,P1.0所接按鍵為產(chǎn)生“三角波”鍵;P1.1所接按鍵為產(chǎn)生“三角波”鍵;P1.2所接按鍵 為產(chǎn)生“正弦波”按鍵。仿真圖如下:PDF5EE5EE hrFLK 曰 EERTrajsimr raaWTTi iFVTiHEQKJ=!03DBCBPlrKlLirzHUriew nn兇,”百I IB麗2:程序的流程程序的流程如下圖:3;運(yùn)行原理:程序的主要功能

18、是:首先程序在開始后,先判斷 P1.0, P1.1 , P1.2 相應(yīng)的波形,然后根據(jù)選擇的波形輸出相應(yīng)的波形.程序?qū)⒏鶕?jù)要求進(jìn)行調(diào)節(jié)波 形.再下一步程序再判斷用戶繼續(xù)從鍵盤輸入要輸出的波形,可以進(jìn)行必要的延 遲。主程序的功能是:開機(jī)以后負(fù)責(zé)查鍵,即做鍵盤掃描工作,然后根據(jù)用戶所 按的鍵轉(zhuǎn)到相應(yīng)的子程序進(jìn)行處理。子程序的功能有:產(chǎn)生三角波輸出、方波輸出、正弦波輸出產(chǎn)生三角波N4:錯(cuò)誤與總結(jié)在程序上,主要是在設(shè)計(jì)按鍵控制產(chǎn)生三種波形時(shí),按鍵起不到控制 的作用,原因是按鍵用的是查詢方式,在開始時(shí)只是把查詢的子程序放在整個(gè)程 序的開頭,當(dāng)程序進(jìn)入子程序時(shí),再按鍵就沒有查詢了,所以輸出的波形不變。 當(dāng)

19、把查詢的子程序放在每個(gè)子程序后,按鍵就可以按預(yù)定的控制波形的輸出了。 另外,由于以前焊接的接點(diǎn)不好,而這次接線又要在以前的基礎(chǔ)上, 所以導(dǎo)致硬 件也檢查了很長的時(shí)。5:參考文獻(xiàn):單片機(jī)原理及接口技術(shù)李朝青MCS-51系列單片機(jī)實(shí)用接口技術(shù)李華八:實(shí)驗(yàn)心得:通過這次實(shí)驗(yàn),我們從對(duì)單片機(jī)不了解到對(duì)單片機(jī)有了初步的了解,并 且對(duì)實(shí)驗(yàn)中的用到的元件的作用, 性能,工作方式等有了初步的認(rèn)識(shí)。更重要的 是,我們?cè)趯?shí)驗(yàn)中收獲到的做實(shí)驗(yàn)的好的習(xí)慣,例如,實(shí)驗(yàn)要三個(gè)人相互合作, 配合默契,要充分發(fā)揮團(tuán)隊(duì)的力量,其次是,實(shí)驗(yàn)要求我們?cè)谧鲋耙严嚓P(guān)的 知識(shí)徹底弄懂,還有就是,做實(shí)驗(yàn)時(shí)要認(rèn)真仔細(xì),程序上要考慮周到,

20、在焊接硬 件時(shí)也要細(xì)心。這些不僅對(duì)實(shí)驗(yàn)有用,對(duì)我們?cè)谄渌矫媾囵B(yǎng)好的習(xí)慣也很有幫 助。作為我們的第一次單片機(jī)的實(shí)驗(yàn),雖然實(shí)驗(yàn)的過程中我們遇到了不少麻煩 和錯(cuò)誤,但在老師和同學(xué)們的幫助下,我們還是完成了全部的實(shí)驗(yàn)。實(shí)驗(yàn)中,我 們付出了很多,當(dāng)然也會(huì)有回報(bào)。但實(shí)驗(yàn)中我們還是有很多問題需要總結(jié), 首先,對(duì)很多匯編語言的程序只是停留在能讀的水平上,有些較難的部分不會(huì)改,從而不能讓程序能在我們的板上運(yùn)行,另外,由于第一次焊接電路,而且第一次做流 水燈時(shí),換了新的板子,為了趕進(jìn)度,所以前面的部分焊接不好,對(duì)后面的實(shí)驗(yàn) 造成很大影響。而且在很多實(shí)驗(yàn)中,我們的焊接都不是很好,有時(shí)出現(xiàn)虛焊點(diǎn)。還有,就是在有些時(shí)

21、候,三個(gè)人的分工不是很明確,以致有事都在做同一件事情。 而且,實(shí)驗(yàn)中還有很多小的問題出現(xiàn)。這些口需要我們?cè)诤竺娴膶?shí)驗(yàn)中不斷改進(jìn)。附錄九:實(shí)驗(yàn)電路總圖十:程序清單流水燈程序ORG 0000HSTART:MOV P1,#01111111B;最下面的 LED 點(diǎn)亮LCALL DELAY ;延時(shí) 1 秒MOV P1,#10111111B;最下面第二個(gè)的 LED點(diǎn)亮LCALL DELAY ;延時(shí) 1 秒MOV P1,#11011111B;最下面第三個(gè)的LED點(diǎn)亮 (以下省略)LCALL DELAYMOV P1,#11101111BLCALL DELAYMOV P1,#11110111BLCALL DEL

22、AYMOV P1,#11111011BLCALL DELAYMOV P1,#11111101BLCALL DELAYMOV P1,#11111110BLCALL DELAYMOV P1,#11111111B;完成第一次循環(huán)點(diǎn)亮,延時(shí)約0.25秒AJMP START;反復(fù)循環(huán)DELAY:MOV R4,#2L3: MOV R2 ,#00HL1: MOV R3 ,#00HL2: DJNZ R3 ,L2RETEND數(shù)碼管程序ORG 0000HLJMP DISORG 0030HDIS:MOV R0,#00HMOV R2,#01HMOV A,R2MOV DPTR,#TABLP0:MOV P2,AMOV A

23、,R0MOVC A,A+DPTRMOV P0,AACALL DIMSINC R0MOV A,R2JB P2.5,LP1RL AMOV R2,AAJMP LP0LP1:LJMP DISTAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92HDIMS:MOV R7,#04HDL:MOV R6,#0FFHDL1:DJNZ R6,DL1DJNZ R7,DLRET鍵盤程序ORG 0000HAJMP STARTORG 0030HSTART:MOV 40H,#0FFHWAIT:MOV P2,#3FHMOV P3,#0FHMOV A,P3XRL A,#0FH JZ WAITLCALL DELAYM

24、OV A,P3XRL A,#0FH JZ WAITLCALL ARYMOV 40H,BMOV P3,#0F0HMOV A,P3XRL A,#0F0H JZ WAITSWAP ALCALL ARYLCALL WORDLCALL SHOWMOV P2,#7FHLCALL DELAY1LJMP STARTARY:MOV B,#00HARY1:JB ACC.0,ARY2RR AINC BJMP ARY1ARY2:RETDELAY:MOV 43H,#10L3: MOV 42H,#250L4: DJNZ 42H,L4DJNZ 43H,L3 RETDELAY1:MOV 44H,#200L5: MOV 45H

25、,#255L6: DJNZ 45H,L6DJNZ 44H,L5RETSHOW:MOV DPTR,#TABMOVC A,A+DPTRMOV P0,ARETWORD:MOV A,#04HMUL ABADD A,40HRETTAB:DB 0C0H,99H,80H,0C6H,0F9H,92H,90H,0A1HDB 0A4H,82H,88H,86H,0B0H,0F8H,83H,8EH電子時(shí)鐘程序ORG 0000HLJMP MAIN ;ORG 000BH ;/定時(shí)器中斷入口地址LJMP TIMER0 ; / 定時(shí)器ORG 0030H ;HOURH DATA 20H ;HOURL DATA 21HMINH

26、DATA 23H ;MINL DATA 24HSECH DATA 25H ;SECL DATA 26H ; /定義變量MAIN:; /main 函數(shù)MOV SP,#5FH ; /STACKMOV TH0,#3CH ;MOV TL0,#0AFH ; / 在定時(shí)器中放 15535MOV TMOD,#01H ; /SET MODE OF TIMER0SETB EASETB ET0SETB TR0 ;/中斷寄存器 開定時(shí)器0MOV DPTR,#SEGMOV HOURH,#02HMOV HOURL,#03HMOV MINH,#5HMOV MINL,#9HMOV SECH,#5HMOV SECL,#1HM

27、OV R2,#00HLOOP:ACALL DISP;調(diào)用顯示SJMP LOOP ;/森這里可以放鍵盤DELAY:MOV R6,#0FFHLOOP1:DJNZ R6,LOOP1RETDISP:MOV A,#01H; / 開位;MOV R4,AMOV P2,AMOV A,SECLMOVC A,A+DPTRCPL AMOV P0,A;ACALL DELAYMOV A,R4RLC AMOV R4,AMOV P2,AMOV A,SECH MOVC A,A+DPTR CPL AMOV P0,A;ACALL DELAYMOV A,R4RLC AMOV R4,AMOV P2,AMOV A,MINLMOVC A

28、,A+DPTRCPL AMOV P0,A;ACALL DELAYMOV A,R4RLC AMOV R4,AMOV P2,AMOV A,MINHMOVC A,A+DPTRCPL AMOV P0,A;ACALL DELAYMOV A,R4RLC A ;MOV R4,AMOV P2,AMOV A,HOURLMOVC A,A+DPTRCPL AMOV P0,A;ACALL DELAYMOV A,R4RLC AMOV P2,AMOV A,HOURHMOVC A,A+DPTRCPL AMOV P0,A;ACALL DELAYRETTIMER0:,定時(shí)器中斷程序PUSH PSW;INC R2;CJNE R2

29、,#14H,SS3 ; 當(dāng)一秒時(shí)間到達(dá)的時(shí)候INC SECL; 秒力口MOV R2,#00H,清計(jì)數(shù) r2MOV R3,SECLCJNE R3,#0AH,SS3 ;/6個(gè)位不等于 10MOV SECL,#00HINC SECH; 秒十位力口一MOV R3,SECHCJNE R3,#06H,SS3; /秒十位不等于6MOV SECH,#00H;INC MINL;MOV R3,MINLCJNE R3,#0AH,SS3 ; /份鐘個(gè)位沒有達(dá)至U 10MOV MINL,#00H ;INC MINH ;MOV R3,MINHCJNE R3,#06H,SS3 ; /分鐘十位沒有達(dá)至U 6MOV MINH,

30、#0HINC HOURL;MOV R3,HOURHCJNE R3,#02H,SS0 ; /、時(shí)十位是不是2不是則十進(jìn)制轉(zhuǎn) SS0MOV R3,HOURLCJNE R3,#04H,SS3 ; /陸貝U判斷小時(shí)個(gè)位是不是 4MOV HOURH,#00H ;/ 二十四點(diǎn)則MOV HOURL,#00H ;SS0:MOV R3,HOURLCJNE R3,#0AH,SS3 ;MOV HOURL,#00H ;INC HOURH ;SS3:MOV TH0,#3CH;MOV TL0,#0AFH;POP PSW;RETISEG: DB 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07h,

31、 7fh, 6fhENDLCD顯示程序RSEQUP3.0RWEQUP3.1EEQUP3.2D0_D7EQUP2DATEEQU21HORG0000HAJMPSTARTORG0030HSTART: MOVSP,#5FHMOVP2,#0FFHMOVDPTR,#STRINGACALLLCD_INITMOVR3, #00HLOOP6:MOVA, R3MOVCA, A+DPTRMOVDATE,APUSHACCACALLWTDATEPOP ACCINC R3CJNE R3,#05H,LOOP6LOOP: AJMP LOOP片外數(shù)據(jù)存儲(chǔ)器擴(kuò)展程序ORG 0000HLJMP DISORG 0030HDIS:MO

32、V R0,#00HMOV R2,#01HMOV A,R2MOV DPTR,#TABLP0:MOV P2,AMOV A,R0MOVC A,A+DPTRACALL LP2ACALL DIMSINC R0MOV A,R2JB P2.5,LP1RL AMOV R2,AAJMP LP0LP1:LJMP DISLP2:MOVX DPTR,AMOVX A,DPTRMOV P0,ARETTAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92HAD轉(zhuǎn)化程序DIMS:MOV R7,#04HDL:MOV R6,#0FFHDL1:DJNZ R6,DL1DJNZ R7,DLRETAD轉(zhuǎn)換程序:OE BIT

33、P2.7;ADC0808 的 OE 端EOC BIT P2.6;ADC0808 的 EOC 端ST BIT P2.5;ADC0808 的 START 和 ALE 端CLK BITP2.4;ADC0808的模擬輸入選擇端;顯示緩沖區(qū);存放轉(zhuǎn)換后的數(shù)據(jù);ADD0BITP3.4;ADD1BITP3.5;ADD2BITP3.6LED_0 DATA 30HLED_1 DATA 31HLED_2 DATA 32HLED_3 DATA 33HADC DATA 34H;/主程序開始 /ORG 0000HAJMP STARTORG 000BH;定時(shí)器T0中斷CPL CLKRETI;初始化START:MOV TM

34、OD,#02H ;工作模式 2MOV TH0,#0FEH ;MOV TL0,#0FEHSETB EASETB ET0SETB TR0MOV SP,#60H;設(shè)置堆棧MOV LED_0,#00HMOV LED_1,#00HMOV LED_2,#00HMOV LED_3,#00HMOV DPTR,#TABLE;CLR ADD0;SETB ADD1;SETB ADD2;ADC0808轉(zhuǎn)換;清空顯示緩沖區(qū);送字型碼表首地址;選擇ADC0808的通道3WAIT:CLR STSETB STCLR STJNB EOC,$ SETB OEMOV P0,#0FFHMOV ADC,P0CLR OE;啟動(dòng)轉(zhuǎn)換;等待

35、轉(zhuǎn)換結(jié)束;允許輸出;暫存轉(zhuǎn)換結(jié)果;關(guān)閉輸出數(shù)據(jù)處理,已備顯示MOVA,ADC;將人口轉(zhuǎn)換結(jié)果轉(zhuǎn)換成BCD碼MOVB,#0C3H;乘以 19.5MVMULABMOVR7,AMOVR6,BHB2:CLR A;B CD碼初始化CLRCMOVR3,AMOVR4,AMOVR5,AMOVR2,#10H;轉(zhuǎn)換雙字節(jié)十六進(jìn)制整數(shù)HB3:MOV A,R7;從高端移出待轉(zhuǎn)換數(shù)的一位到 CY中RLCAMOVR7,AMOVA,R6RLCAMOVR6,AMOVA,R5;BCD碼帶進(jìn)位自身相加,相當(dāng)于乘2ADDCA,R5DAA;十進(jìn)制調(diào)整MOVR5,AMOVA,R4ADDCA,R4DA AMOVR4,AMOVA,R3AD

36、DCA,R3MOVR3,A;雙字節(jié)十六進(jìn)制數(shù)的萬位數(shù)不超過6 ,不用調(diào)整DJNZR2,HB3MOVA,R5SWAPAANLA,#0FHMOVLED_0,AMOVA,R4ANLA,#0FHMOVLED_1,AMOVA,R4SWAPAANLA,#0FHMOVLED_2,AMOVA,R3ANLA,#0FHMOVLED_3,ALCALL DISP;調(diào)用顯示子程序AJMP WAIT;/數(shù)碼管顯示子程序 / DISP:MOV A,LED_0;數(shù)碼顯示子程序MOVC A,A+DPTRSETBP2.3MOVP0,ALCALL DELAYCLR P2.3MOVA,LED_1MOVC A,A+DPTRSETBP2

37、.2MOVP0,ALCALL DELAYCLR P2.2MOVA,LED_2MOVC A,A+DPTRSETBP2.1MOVP0,ALCALL DELAYCLR P2.1MOV A,LED_3MOVC A,A+DPTRCLR ACC.7SETBP2.0MOVP0,ALCALL DELAYCLR P2.0RET;/延時(shí)子程序 /DELAY: MOV R6,#02H ;延時(shí) 5 毫秒D1:MOV R7,#0FFHDJNZ R7,$DJNZ R6,D1RET;/數(shù)碼管字形碼表 /TABLE: DB 0C0H,0F9H,0A4H,0B0H,99HDB 92H,82H,0F8H,80H,90HENDDA

38、轉(zhuǎn)換程序ORG 0000HMAIN:MOV A,P1 MOV R0,A MOV R1,#00H LCALL BOXING SJMP MAIN;設(shè)置高電平;設(shè)置低電平BOXING: JNB P1.0,SANJIAOJNB P1.1,JUXINGJNB P1.2,JUCHI;P1.0控制三角波的輸出;P1.1控制矩形波的輸出;P1.2控制鋸齒波的輸出RET.*;SANJIAO:三角波*STR1:MOV R6,#00H;通過上升和下降來產(chǎn)生三角波/;電壓隨時(shí)間上升 /STR2: MOV P2,R6;MOVX DPTR,AINC R6LCALL DELAY3CJNE R6,#0FFFFH,STR2;/

39、;電壓隨時(shí)間下降 /STR3: DEC R6MOV P2,R6LCALL DELAY3;MOVX DPTR,ACJNE R6,#00H,STR3;/JNB P1.0,SANJIAOJNB P1.1,JUXING;P1.0控制三角波的輸出;P1.1控制矩形波的輸出JNB P1.2,JUCHI;P1.2控制鋸齒波的輸出AJMP STR1RET;* 方波*JUXING:LOOP1:MOV A,#000HMOV P2,A ;向選通地址送低電平地ACALL DELAYMOV A,#0FFHMOV P2,A ;向選通地址送高電平ACALL DELAY;P1.0控制三角波的輸出;P1.1控制矩形波的輸出;P

40、1.2控制鋸齒波的輸出JNB P1.0,SANJIAOJNB P1.1,JUXINGJNB P1.2,JUCHIAJMP LOOP1 ;/RET.* ;JUCHI:正弦波*MOV R1,#00H ;取表格初值LOOP:;在表格里取數(shù)送到指定地址/MOV A,R1MOV DPTR,#SETTABMOVC A,A+DPTRMOV P2,A;/INC R1 ;表格加一LCALL DELAY2JNB P1.0,SANJIAOJNB P1.1,JUXINGJNB P1.2,JUCHI AJMP LOOP ;循環(huán)SETTAB:;正弦表格 /DB 80H,83H,86H,89H,8DH,90H,93H,96

41、HDB 99H,9CH,9FH,0A2H,0A5H,0A8H,0ABH,0AEHDB 0B1H,0B4H,0B7H,0BAH,0BCH,0BFH,0C2H,0C5HDB 0C7H,0CAH,0CCH,0CFH,0D1H, 0D4H,0D6H,0D8HDB 0DAH,0DDH,0DFH,0E1H,0E3H, 0E5H,0E7H,0E9HDB 0EAH,0ECH,0EEH,0EFH,0F1H, 0F2H,0F4H,0F5HDB 0F6H,0F7H,0F8H,0F9H,0FAH, 0FBH,0FCH,0FDHDB 0FDH,0FEH,0FFH,0FFH,0FFH, 0FFH,0FFH,0FFHDB 0FFH,0FFH,0FFH,0FFH,0FFH, 0FFH,0FEH,0FDHDB 0FDH,0FCH,0FBH,0FAH,0F9H, 0F8H,0F7H,0F6HDB 0F5H,0F4H,0F2H,0F1H,0EFH, 0EEH,0ECH,0EAHDB 0E9H,0E7H,0E5H,0E3H,0E1H, 0DEH

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論