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

正文內(nèi)容

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

2024-08-31 14:47本頁(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 DPH PUSH DPL MVOC A, A+DPTR POP DPL 智能電表設(shè)計(jì) 29 POP DPH RET TAB1: DB 0EEH, 028H, 0CDH, 6DH, 2BH DB 67H, 0E3H, 2CH, 0EFH, 06FH ;第 6 個(gè) LED 的代碼以及第 4個(gè) LED 在作為時(shí)間顯示是的代碼表 TAB2: DB 0FEH, 038H, 0DDH, 7DH, 3BH DB 77H, 0F3H, 3CH, 0FFH, 07FH ;第 4個(gè) LED在用作電量顯示是的代碼表 打印機(jī)驅(qū)動(dòng)程序 打印機(jī)接口的時(shí)序圖表明了 8 位并行數(shù)據(jù)在數(shù)據(jù)選通信號(hào)的上升沿被打印機(jī)讀入機(jī)內(nèi)鎖存,數(shù)據(jù)選通信號(hào)的寬度必須大于 s。在程序設(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í)間再判斷鍵盤 狀態(tài),如果仍為有鍵按下?tīng)顟B(tài),則認(rèn)為有一個(gè)確認(rèn)的鍵按下,否則按鍵抖動(dòng)處理 。 COMMSUB: CLR P17 ; P17 接 X5045 的串行時(shí)鐘引腳SCK CLR P13 ; P13 接 X5045 的片選引腳 MOV A, R1 ; R1用于存放命令字 CALL OUTDATA CLR P17 SETB P13 RET X_RDSR: CLR P17 ; P17 接 X5045 的串行時(shí)鐘引腳SCK CLR P13 ; P13 接 X5045 的片選引腳 MOV A, R1 ; R1用于存放命令字 智能電表設(shè)計(jì) 26 CALL OUTDATA CALL INDATA CLR P17 SETB P13 RET X_WRBYTE: CLR P17 CLR P13 MOV A, R1 MOV B, R2 MOV C, MOV , C CALL OUTDATA ;發(fā)送寫指令 CALL A, R3 ; R3 用于存放地址的低位字節(jié) CALL OUTDATA ;發(fā)送地址 MOV A, R2 CALL OUTDATA CLR P17 SETB P13 RET X_RDSR: CLR P17 ; P17 接 X5045 的串行時(shí)鐘引腳 SCK CLR P13 ; P13 接 X5045 的片選引腳 MOV A, R1 ; R1 用于存放命令字 MOV B, R2 ; R2 用于存放地址的高位字節(jié) MOV C, MOV , C CALL OUTDATA CALL A, R3 CALL OUTDATA MOV A, R2 CALL INDATA CLR P17 SETB P13 RET OUTDATA: MOV R4, 08H OUT1: CLR P17 RLC A MOV P16, C ; P16 接 X5045 的串行輸入引腳 智能電表設(shè)計(jì) 27 SETB P17 DJNZ R4, OUT1 CLR P16 RET INDATA: MOV R4, 08H OUT2: SETB P17 CLR P17 MOV C, P15 ; P15 接 X5045 的串行輸出引腳 RLC A DJNZ R4, OUT2 CLR P16 RET WATCHDOG: CLR P13 SETB P13 RET 矩陣鍵盤鍵功能處理程序 電能表的鍵盤處理程序采用編程掃描工作方式進(jìn)行處理。 AT89C51 與 X5045 的接口軟件包括設(shè)置寫使能鎖存器子程序 (COMMSUB),讀狀態(tài)寄存器子程序 X_RDSR, 字節(jié)讀子程序 X_RDBYTE,字節(jié)寫子程序 X_WRBYTE,復(fù)位看門狗子程序 WATCHDOG。狀態(tài)寄存器中可以設(shè)置看門狗定時(shí)器的定時(shí)時(shí)間,在電能表的程序設(shè)計(jì)中,選擇了看門狗定時(shí)周期位 600ms。所有數(shù)據(jù)的傳輸都是以高位在前的方式進(jìn)行傳送。 AT89C51對(duì)指令寄存器的訪問(wèn)是通過(guò)串行輸入線( SI)進(jìn)行的。 DS1302 的命令字格式 : 7 6 5 4 3 2 1 0 智能電表設(shè)計(jì) 25 1 RAM CK_____ A4 A3 A2 A1 A0 RD W____ 在電能表中對(duì)串行 EEPROM 的讀寫 X5045 片內(nèi)包括一個(gè)指令寄存器、寫使能寄存器、狀態(tài)寄存器。最低有效位 LSB(位 0)為邏輯 0指定進(jìn)行寫操作 (輸入 )。 邏輯 1 指定 RAM數(shù)據(jù)。最高有效位 MSB(位 7)必須為邏輯 1,如果它是 0,禁止寫 DS1302。 DS1302所有數(shù)據(jù)的讀寫都是通過(guò)向 DS1302寫入命令字的方式告訴其讀寫地址單元以及將進(jìn)行的是讀操作還是寫操作。在電能表接到時(shí)鐘校正信號(hào)時(shí),電能表的 AT89C51 就會(huì)向 DS1302 寫命令字;在判斷時(shí)段時(shí),需要讀取 DS1302 的時(shí)間寄存器以及片內(nèi)數(shù)據(jù)存儲(chǔ)器完成時(shí)間段的比較 。根據(jù)串行口數(shù)據(jù)傳送的時(shí)序?qū)懗龅腃S5460A 的命令字寫入子程序、讀寄存器子程序、寫寄存器子程序如下 : SDI EQU P10 SDO EQU P11 SCLK EQU P12 ;命令字寫入程序 WR_COM: MOV A, R1 ;在主程序中將命令字送到 R1中 MOV R7, 8H ;將命令字傳送的位數(shù) 8 送 R7 COMWORDSEND: RLC A MOV SDI, C SETB SCLK CLR SCLK ;在此形成一個(gè)脈沖下降沿,數(shù)據(jù)寫入 DJNZ R7, COMWORDSND ;判斷 8 個(gè)數(shù)據(jù)位是否傳送完 WR_COM_END: RET ;數(shù)據(jù)寫入子程序,將寫入數(shù)據(jù)的高、中、低字節(jié)存放到 42H、 41H、 40H中 WR_DATA: LCALL WR_COM ;調(diào)用命令字寫入子程序 MOV R2, 42H MOV R3, 03H WR_LP2: MOV R7, 08H MOV A, R2 WR_LP1: RLC A MOV 5DI, C SETB SCLR CLR SCLR DJNE R7, WR_LP1 DEC R3 DJNE R2, WR_LP2 RET ;數(shù)據(jù)讀取子程序,將讀出的數(shù)據(jù)的高、中、低字節(jié)存放到 42H、 41H、 40H中 智能電表設(shè)計(jì) 24 RD_DATA; LCALL WR_COM MOV R2, 42H MOV R3, 03H RD_LP2: MOV R7, 08H MOV R0, 0FEH RD_LP1: CLR SCLK MOV C, SD0 RLC A MOV R1, A MOV A, R0 RLC A MOV R0, A MOV SDI, C STEB SCLK MOV A, R1 DJNE R4, RD_LP1 MOV R2, A DEC R2 DJNE R3, RD_LP2 RET 在電能表中當(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è)寫操作時(shí),串行口將在 SDI 引腳繼續(xù)為緊接的 24 個(gè)串行時(shí)鐘周期記錄數(shù)據(jù)位,其順序也是高位在先。 對(duì) CS5460A 的寄存器的訪問(wèn)都是通過(guò) SPI 串行口進(jìn)行的。寫到寄存器的命令必須緊跟 2 或 3 字節(jié)的數(shù)據(jù)。狀態(tài)機(jī)接收并解碼一個(gè)有效命令字之后就立即命令轉(zhuǎn)換器執(zhí)行一個(gè)系統(tǒng)操作或與內(nèi)部寄存 器之間傳送數(shù)據(jù)。 智能電表設(shè)計(jì) 22 圖 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 的設(shè)置、采集數(shù)據(jù)的存儲(chǔ)以及串行輸入輸出的控制。根據(jù)圖 11編制的程序可以完成所設(shè)計(jì)的電能表的全部功能。將結(jié)果存放到擴(kuò)展的數(shù)據(jù)存儲(chǔ)器內(nèi),然后退出中斷服務(wù)程序進(jìn)入過(guò)程 1。完成以上功能后程序隨時(shí)準(zhǔn)備接收外部中斷 和 ,每循環(huán)一次程序就查詢一次按鍵開(kāi)關(guān)的狀態(tài),根據(jù)所按的開(kāi)關(guān)執(zhí)行相應(yīng)的程序。當(dāng) 大于 +, 給 DS13O2供電;當(dāng) 大于 +, 給 DS13O2供電。 在雙電源系統(tǒng)中提供主電源,在這種運(yùn)行方式下 連接到備份電源,以便在沒(méi)有主電源的情況下能保存時(shí)間信息以及數(shù)據(jù)。 \ :電源引腳。 I/O:數(shù)據(jù)輸入輸出引腳。
點(diǎn)擊復(fù)制文檔內(nèi)容
高考資料相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1