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

正文內(nèi)容

-太陽能熱水器控制器-文庫吧

2024-11-17 00:36 本頁面


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