freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于單片機(jī)的多功能數(shù)顯表設(shè)計(jì)-資料下載頁(yè)

2025-06-22 13:23本頁(yè)面
  

【正文】 Y計(jì)算出要顯示的時(shí)間數(shù)據(jù)將數(shù)據(jù)轉(zhuǎn)換成驅(qū)動(dòng)信號(hào),傳送給LED來(lái)顯示時(shí)間讀取脈沖計(jì)數(shù),保存后清零 計(jì)時(shí)是否已經(jīng)滿3分鐘? N中斷返回 Y結(jié)束根據(jù)這個(gè)程序框圖,本設(shè)計(jì)作品設(shè)計(jì)出的完整程序如下列程序清單所示。 ORG 0000H AJMP MAIN ORG 00013H AJMP INT1 ORG 000BH AJMP INT2MAIN: MOV TMOD, 01H 。初始化 MOV TH0, 3CH MOV TL0, 0B0H SETB TR0 SETB EA SETB ET0 SETB EX1 MOV R1,20 MOV R3,180ADCZ: MOV DPTR,0BFF8H 。指向A/D IN0 MOV R0,30H 。存數(shù)據(jù)區(qū)首址 SETB IT1 。選脈沖觸發(fā)方式 MOVX @DPTR,A 。啟動(dòng)A/D轉(zhuǎn)換LED: MOV R1,30H ;轉(zhuǎn)換數(shù)據(jù),驅(qū)動(dòng)LED數(shù)碼管顯示 MOV R3,89H MOV R4,03H L0: MOV A,@R1 MOV B,10H DIV AB SUBB B,9 JC L1 ADD B,17 INC AL1: ADD A,R3 INC R3 ADD B,R3 INC R3 MOV P1,A MOV P1,B INC R1 DJNZ R4,L0 AJMP LED ACAL ASTART ;串口發(fā)送數(shù)據(jù)到PC AJMP LEDASTART: CLR EA MOV TMOD,20H 。設(shè)T1為定時(shí)模式2 MOV TH1,0E8H 。設(shè)定時(shí)器初值 MOV TL1,0E8H 。 SETB TR1 。MOV PCON,10H 。設(shè)串口方式2 MOV SCON,0FDH 。 波特率為4800ATT1: MOV SBUF,0AAH 。發(fā)送聯(lián)絡(luò)信號(hào)AWAIT1: JBC T1,ARR1 SJMP AWAIT1ARR1: JBC R1,ARR2 。等待PC回答 SJMP ARR1ARR2: MOV A,SBUF XRL A,0BBJ 。判斷PC準(zhǔn)備好了嗎? JNZ ATT1 。PC未好,繼續(xù)聯(lián)絡(luò)ATT2: MOV R0,30H 。建立數(shù)據(jù)塊指針 MOV R7,10H 。塊長(zhǎng)度計(jì)數(shù)初值 MOV R6,00H 。清檢查和單元ATT3: MOV SBUF,@R0 。發(fā)送一個(gè)數(shù)據(jù)字節(jié) MOV A,R6 ADD A,@R0 。求檢查和 MOV R6,A 。保存檢查和 INC R0AWAIT2: JBC T1,ATT4 SJMP AWAIT2ATT4: DJNZ R7,ATT3 。整個(gè)數(shù)據(jù)發(fā)送完了嗎? MOV BUF,R6 。發(fā)送檢查和AWAIT3: JBC T2,ARR3 SJMP AWAIT3ARR3: JBC R1,ARR4 。等待PC回答 SJMP ARR3ARR4: MOV A,SBUF JNZ ATT2 。PC回答有錯(cuò)AEND: RET 。INT1: MOVX A,@DPTR 。通過(guò)中斷服務(wù)程序,讀取并處理A/D轉(zhuǎn)換結(jié)果 MOV B,4 DIV AB MOVX @R0,A MOVX @R0,A 。存入RAM單元 INC R0 。數(shù)據(jù)區(qū)地址+1 MOV DPTR,0BFF8H MOV R0,30H MOV R 2,@2H ADCZ1: MOVX @DPTR,A RETI 。返回INT2: DJNZ R1,TIME1 ;通過(guò)中斷服務(wù)程序來(lái)驅(qū)動(dòng)LED數(shù)碼管時(shí)間顯示部分 MOV A,181 SUBB A,R3 MOV B,100 DIV AB ADD A,0E0H MOV P1,A MOV A,10 XCH A,B DIV AB ADD A,0F0H MOV P1,A CLR MOV P1,B MOV @R0,R2 MOV R2,00H DJNZ R3,TIME1 ;定時(shí)3分鐘檢測(cè),時(shí)間到,則停止 ENDTIME1: RETI PC中要用到的配套程序 這部分程序主要任務(wù)就是接收串口傳送過(guò)來(lái)的數(shù)據(jù),并將數(shù)據(jù)顯示到顯示器上。同時(shí),還要把接收到的數(shù)據(jù)保存下來(lái)。⑴設(shè)計(jì)原理:SPCOMM的屬性、方法和事件1. 屬性●CommName:表示 COM COM2等串口的名字;●BaudRate:根據(jù)實(shí)際需要設(shè)定的波特率,在串口打開(kāi)后也可更改此值,實(shí)際波特率隨之更改;●ParityCheck:表示是否需要奇偶校驗(yàn);●ByteSize:根據(jù)實(shí)際情況設(shè)定的字節(jié)長(zhǎng)度;●Parity:奇偶校驗(yàn)位;●StopBits:停止位;●SendDataEmpty:這是一個(gè)布爾型屬性,為 true時(shí)表示發(fā)送緩存為空,或者發(fā)送隊(duì)列里沒(méi)有信息;為 false時(shí)表示發(fā)送緩存不為空,或者發(fā)送隊(duì)列里有信息。2.方法●Startm方法用于打開(kāi)串口,當(dāng)打開(kāi)失敗時(shí)通常會(huì)報(bào)錯(cuò)。錯(cuò)誤主要有 7種:⑴串口已經(jīng)打開(kāi);⑵打開(kāi)串口錯(cuò)誤;⑶文件句柄不是通信句柄;⑷不能夠安裝通信緩存;⑸不能產(chǎn)生事件;⑹不能產(chǎn)生讀進(jìn)程;⑺不能產(chǎn)生寫(xiě)進(jìn)程;●StopComm方法用于關(guān)閉串口,沒(méi)有返回值;●WriteCommData(pDataToWrite: PChar。dwSizeofDataToWrite:Word )方法是個(gè)帶有布爾型返回值的函數(shù),用于將一個(gè)字符串發(fā)送到寫(xiě)進(jìn)程,發(fā)送成功返回 true,發(fā)送失敗返回 false。執(zhí)行此函數(shù)將立即得到返回值,發(fā)送操作隨后執(zhí)行。該函數(shù)有兩個(gè)參數(shù),其中 pDataToWrite是要發(fā)送的字符串, dwSizeofDataToWrite是發(fā)送字符串的長(zhǎng)度。3.事件●OnReceiveData:procedure(Sender:TObject。Buffer:Pointer。BufferLength: Word) of object當(dāng)有數(shù)據(jù)輸入緩存時(shí)將觸發(fā)該事件,在這里可以對(duì)從串口收到的數(shù)據(jù)進(jìn)行處理。 Buffer中是收到的數(shù)據(jù), BufferLength是收到的數(shù)據(jù)長(zhǎng)度?!馩nReceiveError : procedure(Sender: TObject。 EventMask : DWORD)當(dāng)接收數(shù)據(jù)出現(xiàn)錯(cuò)誤時(shí)將觸發(fā)該事件。⑵SPCOMM的使用先要調(diào)通它們之間的握手信號(hào)。假定它們之間的通信協(xié)議是: PC到 8051一幀數(shù)據(jù) 6個(gè)字節(jié), 8051到 PC一幀數(shù)據(jù)也為 6個(gè)字節(jié)。當(dāng) PC發(fā)出( F0,01,FF,FF,01,F0)后 8051能收到一幀( F0,01,FF,FF,01,F0),表示數(shù)據(jù)通信握手成功,兩者之間就可以按照協(xié)議相互傳輸數(shù)據(jù)。創(chuàng)建一個(gè)新的工程 ,把窗體的 NAME屬性定為 FCOMM,把窗體的標(biāo)題定義為測(cè)試通信,按照下圖添加控件1. 設(shè)定 COMM1屬性: ●波特率: 4800;●奇偶校驗(yàn)位:無(wú);●字節(jié)長(zhǎng)度: 8;●停止位: 1;●串口: COM1。Memo1中將顯示發(fā)送和接收的數(shù)據(jù)。將新的窗體存儲(chǔ)為 。本設(shè)計(jì)作品設(shè)計(jì)出的完整程序如下列程序清單所示。程序源代碼://變量說(shuō)明varfm: TFCOMM。viewstring:string。i:integer。rbuf,sbuf:array[16] of byte。//打開(kāi)串口procedure (Sender: TObject)。begin。end。//關(guān)閉串口procedure (Sender: TObject。 var Action: TCloseAction)。begin。end。//自定義發(fā)送數(shù)據(jù)過(guò)程procedure senddata。vari:integer。mflg:boolean。beginviewstring:=‘’mflg:=true。for i:=1 to 6 dobeginif not (@sbuf[i],1) thenbeginmflg:=false。break。end。//發(fā)送時(shí)字節(jié)間的延時(shí)sleep(2)。viewstring:=viewstring+ inttohex(sbuf[i],2)+‘’ 。 end。viewstring:=‘發(fā)送’+ viewstring。(viewstring)。(‘’ )。if not mflg then messagedlg(‘發(fā)送失敗 !’ ,mterror,[mbyes],0)。end。//發(fā)送按鈕的點(diǎn)擊事件procedure (Sender: TObject)。beginsbuf[1]:=byte($ f0)。 //幀頭sbuf[2]:=byte($ 01)。 //命令號(hào)sbuf[3]:=byte($ ff)。sbuf[4]:=byte($ ff)。sbuf[5]:=byte($ 01)。sbuf[6]:=byte($ f0)。 //幀尾senddata。//調(diào)用發(fā)送函數(shù)end。//接收過(guò)程procedure (Sender: TObject。 Buffer: Pointer。BufferLength: Word)。vari:integer。beginviewstring:=‘’ 。move(buffer^,pchar(@rbuf^),bufferlength)。for i:=1 to bufferlength doviewstring:=viewstring+ inttohex(rbuf[i],2)+‘’ 。viewstring:=‘?dāng)?shù)字顯示:’+ viewstring。(viewstring)。(‘’ )。end。4 樣機(jī)調(diào)試以上為本畢業(yè)設(shè)計(jì)作品的設(shè)計(jì)過(guò)程和結(jié)果的詳細(xì)介紹,但是,從本質(zhì)上來(lái)講,都是純理論的設(shè)計(jì)和分析。為了驗(yàn)證本畢業(yè)設(shè)計(jì)作品的可行性,我還做了模擬樣機(jī),來(lái)對(duì)本畢業(yè)設(shè)計(jì)作品中設(shè)計(jì)方案的主要功能及其理論進(jìn)行實(shí)際驗(yàn)證。同時(shí),在模擬樣機(jī)的調(diào)試過(guò)程,也可以發(fā)現(xiàn)本畢業(yè)設(shè)計(jì)作品中有沒(méi)有一些不足和錯(cuò)誤的地方。為了能檢驗(yàn)本畢業(yè)設(shè)計(jì)的可行性,并將其質(zhì)量推向一個(gè)更高的層次,我認(rèn)真的設(shè)計(jì)了模擬樣機(jī),也進(jìn)行了仔細(xì)的功能調(diào)試。下面就對(duì)這方面的過(guò)程進(jìn)行介紹。 硬件電路部分 通過(guò)以上對(duì)本畢業(yè)設(shè)計(jì)作品的詳細(xì)介紹,我們可以很清楚的看到,其實(shí)本畢業(yè)設(shè)計(jì)作品所做的系統(tǒng),最主要的環(huán)節(jié)就是:A/D轉(zhuǎn)換、MCS51單片機(jī)的處理和數(shù)字顯示部分。所以,我所做的模擬樣機(jī),也就主要完成對(duì)這幾個(gè)環(huán)節(jié)的實(shí)現(xiàn)方案的檢驗(yàn)。 既然本模擬樣機(jī)的設(shè)計(jì)目的,是為了檢驗(yàn)系統(tǒng)功能的可行性。那么,模擬樣機(jī)只需完成對(duì)系統(tǒng)功能的檢驗(yàn),而不用實(shí)現(xiàn)系統(tǒng)的所有功能。因此,此模擬樣機(jī)要完成的任務(wù)就是:MCS51單片機(jī)控制完成A/D轉(zhuǎn)換,讀取到轉(zhuǎn)換結(jié)果后,將其轉(zhuǎn)換成數(shù)字顯示部分需要的信息數(shù)據(jù),最后傳輸?shù)絃ED數(shù)碼管,由LED數(shù)碼管將轉(zhuǎn)換結(jié)果顯示出來(lái)。根據(jù)以上的想法,我設(shè)計(jì)的模擬樣機(jī)的硬件系統(tǒng)原理框圖如下所示: 模擬樣機(jī)硬件電路原理方框圖 本模擬樣機(jī)的單片機(jī)驅(qū)動(dòng)電路包括:按鍵復(fù)位電路、時(shí)鐘信號(hào)產(chǎn)生電路及單片機(jī)電源等等。要模擬設(shè)計(jì)方案中的功能,這部分電路要跟設(shè)計(jì)方案中一直。因此,12M的晶振,50μf的電容,按鍵復(fù)位電路都是跟設(shè)計(jì)方案中的功能電路是完全一樣的,詳細(xì)設(shè)計(jì)見(jiàn)附圖2。 可變電壓部分是模擬傳感器的輸出信號(hào)經(jīng)過(guò)處理電路處理后的數(shù)據(jù)信號(hào)的,根據(jù)前面的設(shè)計(jì)可以知道,經(jīng)過(guò)處理過(guò)的信號(hào)為0~5V的電壓信號(hào)。那么,這部分只需要一個(gè)+5V的電壓來(lái)源和一個(gè)電位器組合起來(lái)就可以實(shí)現(xiàn)了,當(dāng)調(diào)節(jié)電位器的適合,從電位器分壓得到的電壓即為我們所需要的可變電壓信號(hào)了。 A/D轉(zhuǎn)換部分仍然由ADC0809來(lái)完成。但是,模擬機(jī)只需要模擬這部分的功能原理,因此模擬樣機(jī)只需要將一路模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào),就可以很好的驗(yàn)證這部分的功能可靠性。因此,在這部分,ADC0809只對(duì)一路可變電壓做A/D轉(zhuǎn)換。 數(shù)字顯示部分,也是由設(shè)計(jì)方案的LED數(shù)碼管來(lái)完成。這部分,只需要驗(yàn)證,通過(guò)MCS51單片機(jī)處理過(guò)的數(shù)據(jù)可以如實(shí)的顯示在LED數(shù)碼管上,即可很好的驗(yàn)證這部分功能的可行性。因此,這里只采用2個(gè)LED數(shù)碼管來(lái)完成這部分的驗(yàn)證,這兩個(gè)數(shù)碼管分別顯示ADC0809處理結(jié)果的兩位16進(jìn)制的數(shù)字。如果,可以實(shí)現(xiàn)這兩位處理結(jié)果的顯示,那么要顯示我們所需要的數(shù)據(jù)信息,只需要將數(shù)據(jù)進(jìn)行處理之后,再顯示就可以實(shí)現(xiàn)這部分功能了。 通過(guò)以上對(duì)各個(gè)部分功能檢驗(yàn)的設(shè)計(jì)方案,MCS51單片機(jī)部分需要完成的任務(wù)就是控制ADC0809完成A/D轉(zhuǎn)換,再將轉(zhuǎn)換結(jié)果處理之后傳
點(diǎn)擊復(fù)制文檔內(nèi)容
規(guī)章制度相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1