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

正文內(nèi)容

-太陽(yáng)能熱水器控制器-文庫(kù)吧

2025-11-03 00:36 本頁(yè)面


【正文】 電平嗎? P2 為高電平嗎? N N 返回 Y N ljmp act_w test_w2: jb ,test_w3 mov water_num,05h 。50% ljmp act_w test_w3: jb ,test_w4 mov water_num,02h 。20% ljmp act_w test_w4: jb ,w_err mov water_num,01h act_w: mov a,water_num 。判斷是否加水 cjne a,water,act_w1 act_w1: jc act_w2 setb out_w setb LS ljmp test_water_ret act_w2: clr out_w LCALL RET_WDOG lcalldisplay ljmp test_water 。循環(huán)檢測(cè)水位 w_err: setb LS 。報(bào)警,并加水 clr out_w LCALL RET_WDOG lcall display ljmp test_water 。循環(huán)檢測(cè)水位 test_water_ret: ret 3. 3 顯示程序設(shè)計(jì) 本 設(shè)計(jì) 采 用 74LS164 來(lái)擴(kuò)展并行 I/O 口,連接兩位數(shù)碼管。 、 作為位選信號(hào), 并 采用動(dòng)態(tài)顯示。 LED 進(jìn)行分時(shí)選通,這樣在任一時(shí)刻,只有一位 LED 是點(diǎn)亮的,但只要掃描的頻率足夠高 (一般大于 25Hz),由于人眼的視覺(jué)暫留特性,直觀上感覺(jué)卻是連續(xù)點(diǎn)亮的,這就是常說(shuō)的動(dòng)態(tài)掃描電路 [11] 。 本設(shè)計(jì)采用共陽(yáng) 極的 LED 數(shù)碼管,共陽(yáng)就是 7 段的顯示字碼共用一個(gè)電源的正。 如要顯示 “0”,則要 a,b,c,d,e,f 六個(gè)字段亮就顯示 “0”了,而 g 和 dp 字段不亮。顯示碼表如表 所示 。 表 顯示碼表 dp g f e d c b a 顯示 字符 編碼 1 1 0 0 0 0 0 0 0 C0H 1 1 1 1 0 0 1 1 1 F3H 1 0 1 0 0 1 0 0 2 A4H 1 0 1 1 0 0 0 0 3 B0H 1 0 0 1 1 0 0 1 4 99H 1 0 0 1 0 0 1 0 5 92H 1 0 0 0 0 0 1 0 6 82H 1 1 1 1 1 0 0 0 7 F8H 1 0 0 0 0 0 0 0 8 80H 1 0 0 1 0 0 0 0 9 90H 1 0 0 0 1 0 0 0 A 88H 1 0 0 0 1 1 1 0 F 8EH 顯示內(nèi)容包括當(dāng)前水溫、設(shè)置水位、設(shè)置水溫。根據(jù)變量 state 來(lái)定,當(dāng) state=0時(shí),顯示當(dāng)前水溫; state=1,顯示設(shè)置水位; state=2,顯示設(shè)置水溫。 state 可以通過(guò)按鍵來(lái)改變,具體方法見(jiàn)流程圖部分。 串 轉(zhuǎn)并子程序如下: send: push acc push 07h mov r7,08h mov a,buffer mov dptr,dis_tab movc a,@a+dptr dspr: clr disp_clk clr c rlc a mov disp_dat,c nop setb disp_clk nop djnz r7,dspr pop 07h pop acc ret 3. 4 按鍵程序設(shè)計(jì) 在本系統(tǒng)中有 4 個(gè)按鍵 ,通過(guò) P1 口來(lái)讀取。讀取按鍵方法如下: test_key: mov a,p1 cpl a anl a,7fh jz key_ret00 lcalldelay 。延時(shí)消抖 mov a,p1 cpl a anl a,7fh jz key_ret00 mov keys,a 。保存按鍵值 在 keys 保存當(dāng)前按鍵值,為: 01h,02h,04h,08h,10h,20h,40h分別表示用水鍵、水位鍵、水溫鍵、加、減、加水鍵、加溫鍵。 部分按鍵設(shè)置流程圖如下 : ( 1)用水開(kāi)關(guān): 如圖 所示。 圖 用水開(kāi)關(guān)流程圖 ( 2)水位鍵: 如圖 所示。 圖 水位鍵流程圖 N Y Y State=1 State=0 返回 N 顯示水位 水位燈亮 顯示當(dāng)前溫度,水位燈滅 Keys=02H? State=1? 開(kāi)始 按鍵檢測(cè) Y Y 按鍵檢測(cè) 讀 P1口,保存按鍵值到 Keys 開(kāi)用水 關(guān)用水 返回 N N Key=01H? 在用水嗎 ? 開(kāi)始 ( 3)水溫設(shè)置鍵: 如圖 所示。 圖 水溫設(shè)置流程圖 ( 4)加水鍵: 如圖 所示。 圖 加水鍵流程圖 返回 Y N N Y Y 停止加水 N 加水 Keys=08H? 在加水嗎? 水到了設(shè)定位置了嗎? 開(kāi)始 按鍵檢測(cè) N Y Keys=04H? N Y State=2 State=0 返回 顯示設(shè)置 溫度,燈亮 顯示當(dāng)前溫度,水溫?zé)魷? State=2? 開(kāi)始 按鍵檢測(cè) ( 5)加熱鍵: 如圖 所示。 圖 加熱鍵流程圖 ( 6) UP 鍵: 如圖 所示。 圖 UP鍵流程圖 N Y N Y Y 修改水位設(shè)置 返回 N 修改水溫設(shè)置 State=0 Keys=20H? State=1? State=2? 按鍵檢測(cè) 開(kāi)始 N Y 返回 Y N Y 停止加水 N 加水 Keys=10H? 在加熱嗎? 小于設(shè)定溫度嗎? 開(kāi)始 按鍵檢測(cè) 3. 5 X5045 程序設(shè)計(jì) 因?yàn)?對(duì)設(shè)置的水位和水溫需要 進(jìn)行 保存,本設(shè)計(jì) 選 用帶 EEPROM的 看門(mén)狗 X5045來(lái)保存數(shù)據(jù)。 SPI串行編程 EEPROM:芯片控制的指令被組織成一個(gè) 8bit字節(jié)。 這些 命令中有兩條指令代碼只要直接寫(xiě)入芯片即可。有兩條讀指令用于初始化輸出數(shù)據(jù)。其它的指令,還需要一個(gè) 8位的地址以及相關(guān)的數(shù)據(jù)。所有 的 指令如表 ,所有指令、地址、數(shù)據(jù)都是 MSB先寫(xiě) ,并且 都是通過(guò) SPI串行總線來(lái)寫(xiě)入器件的 [12] 。 表 X5045指令 指令名稱(chēng) 指令格式 完成的操作 WREN 0000 0110 寫(xiě)允許 WRDI 0000 0100 寫(xiě)禁止 RDSR 0000 0101 讀狀態(tài)寄存器 WRSR 0000 0001 寫(xiě)狀態(tài)寄存器(看門(mén)狗和塊鎖定) READ 0000 AS011 從選定的開(kāi)始地址單元中讀數(shù)據(jù) WRITE 0000 AS010 向選定的開(kāi) 始地址單元寫(xiě)入數(shù)據(jù)( 116字節(jié)) 在器件進(jìn)行寫(xiě)操作之前,首先必須設(shè)置寫(xiě)操作指令。 WREN指令允許進(jìn)行寫(xiě)操作,而 WRDI將禁止寫(xiě)操作。在器件復(fù)位后將自動(dòng)禁止寫(xiě)操作,而一旦對(duì)器件寫(xiě)入一個(gè)字節(jié)、一頁(yè)或?qū)懭霠顟B(tài)寄存器后也將自動(dòng)處于寫(xiě)禁止?fàn)顟B(tài)。在 WP引腳接地后也會(huì)使器件處理寫(xiě)禁止?fàn)顟B(tài)。 這時(shí)候, 在寫(xiě)了 WREN、 WRDI、 RDSR和 WRSR指令后不需要在后 面 跟上一個(gè)地址或一個(gè)數(shù)據(jù) 了 。 要讀狀態(tài)寄存器,首先 要 將 CS接地以選擇該器件 , 然后送一個(gè) 8位的 RDSR指令 ,然后狀態(tài)寄存器的內(nèi)容就通過(guò) S0線進(jìn)行輸出, 此時(shí) 必須要有相應(yīng) 的時(shí)鐘加到 SCK線上。狀態(tài)寄存器可以在任何時(shí)候被讀出,即使是在 EEPROM內(nèi)部的寫(xiě)周期內(nèi)也可以讀出。讀寫(xiě)狀態(tài)寄存器的時(shí)序如圖 。 要 寫(xiě)狀態(tài)寄存器 ,即 將數(shù)據(jù)寫(xiě)入狀態(tài)寄存器,首先必須用 WREN 命令將 WEL 置為“1” 。 然后 將 CS 接低電平以選中該器件,然后寫(xiě)入 WREN 指令,接著將 CS拉至高電平,然后再次將 CS接低電平,接著寫(xiě)入 WRSR 指令,跟著寫(xiě)入 8 位數(shù)據(jù)。這個(gè) 8位數(shù)據(jù)就是相應(yīng)的寄存器中的內(nèi)容。寫(xiě)入結(jié)束后必須將 CS拉至高電平,如果 CS沒(méi)有在 WREN和 WRSR 期間變高,則 WRSR 指令將被忽略。 圖 X5045讀寫(xiě)寄存器時(shí) 序 讀存儲(chǔ)器內(nèi)容: 要讀存儲(chǔ)器的內(nèi)容,首先將 CS 拉低以選中該器件,然后將 8 位的讀指令送到器件中去,跟著送 8 位的地址。讀指令的位 3 用于選擇存儲(chǔ)器的上半?yún)^(qū)或下半?yún)^(qū)。在讀操作碼和地址發(fā)送完畢后,所選中的地址單元的數(shù)據(jù)通過(guò) SD0 線送出。在讀完這一字節(jié)后,如果繼續(xù)提供時(shí)鐘脈沖,則這一地址單元的下一個(gè)單元的數(shù)據(jù)將會(huì)被順序讀出。地址將會(huì)自動(dòng)地增加到,當(dāng)?shù)竭_(dá)最高地址之后,地址將會(huì)回繞到 $000H 單元。讀周期在 CS 變?yōu)楦唠娖胶笾兄埂? 寫(xiě)存儲(chǔ)器內(nèi)容: 要寫(xiě)存儲(chǔ) 器內(nèi)容, WEL 位必須通過(guò) WREN 指令置為 “1”。先將 CS 拉低,將 WREN指令送入器件,然后將 CS 拉高,然后再次將 CS 拉低,隨后寫(xiě)入 WRITE 指令并跟隨8 位的地址, WRITE 指令的位 3 用于選擇存儲(chǔ)器的上半?yún)^(qū)和下半?yún)^(qū)。如果 CS 沒(méi)有在WREN 和 WRITE 指令之間變?yōu)楦唠娖?,則 WRITE 指令被忽略。 寫(xiě)操作至少需要 24個(gè)時(shí)鐘周期, CS必須拉低并在操作期間保持低電平。主控機(jī)可以連續(xù)寫(xiě)入 16個(gè)字節(jié)的數(shù)據(jù), 要限制的 是這 16個(gè)字節(jié)必須寫(xiě)入同一頁(yè),一頁(yè)的地址開(kāi)始于地址 [X XXXX 0000]結(jié)束于地址 [X XXXX 1111]。如果待寫(xiě)入的字節(jié)地址已到達(dá)一頁(yè)的最后,而時(shí)鐘還繼續(xù)存在,由計(jì)數(shù) 器將回繞到該頁(yè)的第一個(gè)地址并覆蓋前面所寫(xiě)的內(nèi)容。 在進(jìn)行寫(xiě)操作(字節(jié)或頁(yè)寫(xiě))完成時(shí), CS必須在最后一個(gè)待寫(xiě)入字節(jié)的位 0被寫(xiě)入之后拉至高電平。在任何其它時(shí)候?qū)?CS變?yōu)楦唠娖?,?xiě)操作都沒(méi)有完成。在一次寫(xiě)狀態(tài)寄存器的操作或?qū)懘鎯?chǔ)器的操作之后做寫(xiě)入的操作,必須首先讀狀態(tài)寄存器并檢查 WIP位,如果 WIP位是高說(shuō)明正在進(jìn)行內(nèi)部的寫(xiě)操作。 本 設(shè)計(jì) 中使用 X5045 的程序包括三個(gè)部分:一是 X5045 初始化程序;一是喂看門(mén)狗程序;一是讀寫(xiě)數(shù)據(jù)程序 [13] 。下面分別進(jìn)行說(shuō)明 。 X5045 初始化程序 主要是完成 X5045 的寄存器設(shè)置,程序如下: SO5 BIT CS5 BIT SI5 BIT SCK5 BIT x5045_init: CLR EA 。禁止中斷 PUSH ACC 。堆棧保護(hù) CLR SCK5 CLR SI5 LCALL WREN 。置位寫(xiě)使能子程序 CLR SCK5 CLR CS5 MOV A,01h LCALL OUTBYT 。單字節(jié)輸出自程序 MOV A,10H 。STATUS_REG LCALL OUTBYT ??撮T(mén)狗時(shí)間 CLR SCK5 SETB CS5 LCALL WIP_POLL 。READ X5045 STATUS CORD POP ACC SETB EA RET 看門(mén)狗程序 看門(mén)狗定時(shí)器電路監(jiān)測(cè) WDI 的輸 入來(lái)判斷微處理器是否工作正常。在設(shè)定的定時(shí)時(shí)間以內(nèi),微處理器必須在 WDI 引腳上產(chǎn)生一個(gè)由高到低的電平的變化,否則X5045 將產(chǎn)生一個(gè)復(fù)位信號(hào)。在 X5045 內(nèi)部的一個(gè)控制寄存器中有 2 位可編程位決定了定時(shí)周期的長(zhǎng)短,微處理器可以通過(guò)指令來(lái)改變這兩個(gè)位從而改變看門(mén)狗定時(shí)時(shí)間的長(zhǎng)短。 看門(mén)狗定時(shí)器的作用是通過(guò)監(jiān)視 WDI 輸入來(lái)監(jiān)視微處理器是否激活。由于微處理器必須周期性的觸發(fā) CS/WDI 引腳以避免 RESET 信號(hào)激活而使電路復(fù)位,所以CS/WDI 引腳必須在看門(mén)狗超時(shí)時(shí)間終止之前受到由高至低信號(hào)的觸發(fā) [14] 。 RET_WDOG: SETB CS5 NOP CLR CS5 NOP SETB CS5
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1