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

正文內(nèi)容

基于單片機(jī)的智能電表設(shè)計(jì)(參考版)

2024-09-02 11:59本頁(yè)面
  

【正文】 而且設(shè)計(jì)的誤差和精度方面受到各方面因素影響較大,系統(tǒng)的穩(wěn)定性較差,有待于進(jìn)一步的改進(jìn),還有很大的提升空間。主程序需要調(diào)用的子程序包括打印機(jī)查詢、送數(shù)子程序PRSUB1,打印字符串子程序PRSUB2。在打印機(jī)的打印控制程序中,數(shù)據(jù)的打印順序是按照從上到下、從左到右的順序打印字符、數(shù)據(jù)。當(dāng)打印機(jī)的應(yīng)答信號(hào)低電平有效時(shí),表明打印機(jī)己取走數(shù)據(jù)線上的數(shù)據(jù)。給出顯示碼的查表子程序:;入口條件:待查找的內(nèi)容在A中,表格的首地址在DPTR中,兩者的值根據(jù)主程序確定FDS: PUSH DPHPUSH DPLMVOC A,A+DPTRPOP DPLPOP DPHRETTAB1: DB 0EEH,028H,0CDH,6DH,2BHDB 67H,0E3H,2CH,0EFH,06FH;第6個(gè)LED的代碼以及第4個(gè)LED在作為時(shí)間顯示是的代碼表TAB2: DB 0FEH,038H,0DDH,7DH,3BHDB 77H,0F3H,3CH,0FFH,07FH;第4個(gè)LED在用作電量顯示是的代碼表打印機(jī)接口的時(shí)序圖表明了8位并行數(shù)據(jù)在數(shù)據(jù)選通信號(hào)的上升沿被打印機(jī)讀入機(jī)內(nèi)鎖存。在程序設(shè)計(jì)中顯示器緩沖區(qū)被定義在從單片機(jī)片內(nèi)的數(shù)據(jù)存儲(chǔ)器空間的50H—56H單元。在電能表部分需要顯示的內(nèi)容包括時(shí)間、電量、單位為伏特的電壓、單位為安培的電流。當(dāng)有多個(gè)鍵被依次按下時(shí),把每次按下的鍵值存于緩沖區(qū)中,當(dāng)沒(méi)有鍵按下時(shí)再把鍵值總和送寄存器A中,根據(jù)A中的鍵值和執(zhí)行相應(yīng)功能。鍵掃描程序流程圖如圖12。鍵閉合一次僅進(jìn)行一次鍵功能操作。當(dāng)查詢有鍵被按下時(shí),程序按以下方法進(jìn)行處理:軟件延時(shí)一段時(shí)間再判斷鍵盤(pán)狀態(tài),如果仍為有鍵按下?tīng)顟B(tài),則認(rèn)為有一個(gè)確認(rèn)的鍵按下,否則按鍵抖動(dòng)處理。COMMSUB: CLR P17 ;P17接X(jué)5045的串行時(shí)鐘引腳SCKCLR P13 ;P13接X(jué)5045的片選引腳MOV A,R1 ;R1用于存放命令字CALL OUTDATACLR P17SETB P13RETX_RDSR: CLR P17 ;P17接X(jué)5045的串行時(shí)鐘引腳SCKCLR P13 ;P13接X(jué)5045的片選引腳MOV A,R1 ;R1用于存放命令字CALL OUTDATACALL INDATACLR P17SETB P13RETX_WRBYTE: CLR P17CLR P13MOV A,R1MOV B,R2MOV C,MOV ,CCALL OUTDATA ;發(fā)送寫(xiě)指令CALL A,R3 ;R3用于存放地址的低位字節(jié)CALL OUTDATA ;發(fā)送地址MOV A,R2CALL OUTDATACLR P17SETB P13RETX_RDSR: CLR P17 ;P17接X(jué)5045的串行時(shí)鐘引腳SCKCLR P13 ;P13接X(jué)5045的片選引腳MOV A,R1 ;R1用于存放命令字MOV B,R2 ;R2用于存放地址的高位字節(jié)MOV C,MOV ,CCALL OUTDATACALL A,R3CALL OUTDATAMOV A,R2CALL INDATACLR P17SETB P13RETOUTDATA: MOV R4,08HOUT1: CLR P17RLC AMOV P16,C ;P16接X(jué)5045的串行輸入引腳SETB P17DJNZ R4,OUT1CLR P16RETINDATA: MOV R4,08HOUT2: SETB P17CLR P17MOV C,P15 ;P15接X(jué)5045的串行輸出引腳RLC ADJNZ R4,OUT2CLR P16RETWATCHDOG: CLR P13SETB P13RET電能表的鍵盤(pán)處理程序采用編程掃描工作方式進(jìn)行處理。AT89C51與X5045的接口軟件包括設(shè)置寫(xiě)使能鎖存器子程序(COMMSUB),讀狀態(tài)寄存器子程序X_RDSR,字節(jié)讀子程序X_RDBYTE,字節(jié)寫(xiě)子程序X_WRBYTE,復(fù)位看門(mén)狗子程序WATCHDOG。狀態(tài)寄存器中可以設(shè)置看門(mén)狗定時(shí)器的定時(shí)時(shí)間,在電能表的程序設(shè)計(jì)中,選擇了看門(mén)狗定時(shí)周期位600ms。所有數(shù)據(jù)的傳輸都是以高位在前的方式進(jìn)行傳送。AT89C51對(duì)指令寄存器的訪問(wèn)是通過(guò)串行輸入線(SI)進(jìn)行的。DS1302的命令字格式:7 6 5 4 3 2 1 01RAMA4A3A2A1A0RDX5045片內(nèi)包括一個(gè)指令寄存器、寫(xiě)使能寄存器、狀態(tài)寄存器。最低有效位LSB(位0)為邏輯0指定進(jìn)行寫(xiě)操作(輸入)。 邏輯1指定RAM數(shù)據(jù)。最高有效位MSB(位7)必須為邏輯1,如果它是0,禁止寫(xiě)DS1302。DS1302所有數(shù)據(jù)的讀寫(xiě)都是通過(guò)向DS1302寫(xiě)入命令字的方式告訴其讀寫(xiě)地址單元以及將進(jìn)行的是讀操作還是寫(xiě)操作。在電能表接到時(shí)鐘校正信號(hào)時(shí),電能表的AT89C51就會(huì)向DS1302寫(xiě)命令字;在判斷時(shí)段時(shí),需要讀取DS1302的時(shí)間寄存器以及片內(nèi)數(shù)據(jù)存儲(chǔ)器完成時(shí)間段的比較。根據(jù)串行口數(shù)據(jù)傳送的時(shí)序?qū)懗龅腃S5460A的命令字寫(xiě)入子程序、讀寄存器子程序、寫(xiě)寄存器子程序如下:SDI EQU P10SDO EQU P11SCLK EQU P12;命令字寫(xiě)入程序WR_COM: MOV A, R1 ;在主程序中將命令字送到R1中MOV R7,8H ;將命令字傳送的位數(shù)8送R7COMWORDSEND: RLC AMOV SDI,CSETB SCLKCLR SCLK ;在此形成一個(gè)脈沖下降沿,數(shù)據(jù)寫(xiě)入DJNZ R7,COMWORDSND ;判斷8個(gè)數(shù)據(jù)位是否傳送完WR_COM_END: RET;數(shù)據(jù)寫(xiě)入子程序,將寫(xiě)入數(shù)據(jù)的高、中、低字節(jié)存放到42H、41H、40H中WR_DATA: LCALL WR_COM ;調(diào)用命令字寫(xiě)入子程序MOV R2,42HMOV R3,03HWR_LP2: MOV R7,08HMOV A, R2WR_LP1: RLC AMOV 5DI,CSETB SCLRCLR SCLRDJNE R7,WR_LP1DEC R3DJNE R2,WR_LP2RET;數(shù)據(jù)讀取子程序,將讀出的數(shù)據(jù)的高、中、低字節(jié)存放到42H、41H、40H中RD_DATA; LCALL WR_COMMOV R2,42HMOV R3,03HRD_LP2: MOV R7,08HMOV R0,0FEHRD_LP1: CLR SCLKMOV C,SD0RLC AMOV R1,AMOV A,R0RLC AMOV R0,AMOV SDI,CSTEB SCLKMOV A,R1DJNE R4,RD_LP1MOV R2,ADEC R2DJNE R3,RD_LP2RET在電能表中當(dāng)單片機(jī)AT89C51需要讀取CS5460A的寄存器獲取瞬時(shí)電流、瞬時(shí)電壓、瞬時(shí)功率,設(shè)置CS5460A的寄存器的值時(shí),都是通過(guò)調(diào)用這兩個(gè)程序來(lái)實(shí)現(xiàn)的。在讀寄存器的數(shù)據(jù)時(shí)AT89C51可以發(fā)送一個(gè)新的命令。當(dāng)以讀命令字初始化數(shù)據(jù)傳輸時(shí),串行口將在SD0引腳為緊接的16或24個(gè)串行時(shí)鐘周期按高位在先的原則傳送寄存器的各位數(shù)字。當(dāng)命令字包括了一個(gè)寫(xiě)操作時(shí),串行口將在SDI引腳繼續(xù)為緊接的24個(gè)串行時(shí)鐘周期記錄數(shù)據(jù)位,其順序也是高位在先。對(duì)CS5460A的寄存器的訪問(wèn)都是通過(guò)SPI串行口進(jìn)行的。寫(xiě)到寄存器的命令必須緊跟2或3字節(jié)的數(shù)據(jù)。狀態(tài)機(jī)接收并解碼一個(gè)有效命令字之后就立即命令轉(zhuǎn)換器執(zhí)行一個(gè)系統(tǒng)操作或與內(nèi)部寄存器之間傳送數(shù)據(jù)。圖11電能表主程序流程圖系統(tǒng)一旦上電,CS5460A就被初始化并處于有效操作狀態(tài)。狀態(tài)機(jī)在串行時(shí)鐘的上升沿解釋8位的命令字,狀態(tài)機(jī)在解釋完命令字之后立即執(zhí)行外部微控制器請(qǐng)求的命令,或者為寄存器的數(shù)據(jù)傳輸做準(zhǔn)備。這些寄存器用來(lái)完成對(duì)CS5460A的
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1