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

正文內(nèi)容

基于at89s51的多路溫度巡檢儀設計說明書(編輯修改稿)

2025-01-08 17:01 本頁面
 

【文章內(nèi)容簡介】 B ,NEXT11 。判斷相減過程中是否出現(xiàn)借位? LCALL JISUAN 。無出現(xiàn)借位,運算 CJNE @R1,01H,NEXT12 。高八位是否為 1? LCALL BUCHANG 。是,補償一次 NEXT12:INC @R1 。否,恢復初始的 @R1 值,差即為目標 BCD 碼 LJMP DONE2 。返回 NEXT11:DEC @R1 。出現(xiàn)借位,高八 位再次減一 LCALL JISUAN 。運算 CJNE @R1,01H,NEXT13 。高八位是否還為 1? LCALL BUCHANG 。是,補償一次 NEXT13:INC @R1 。否,恢復初始的 @R1 值,差即為目標 BCD 碼 INC @R1 LJMP DONE2 。返回 NEXT7:MOV A,0FFH 。高八位比 01H 小,說明高八位為 00H CLR C 。清除進借位標志位 SUBB A,@R0 。BCD 碼等于 500( @R0)等于 255( @R0) +245 ADDC A,0F5H 。 MOV ,C 。保存進位標志位 LCALL JISUAN 。當前和的低字節(jié)拿去運算,得出當前 BCD 碼 JB ,NEXT8 SJMP FUHAO 。沒有進位產(chǎn)生,跳轉(zhuǎn)加負號子程序 NEXT8:LCALL BUCHANG FUHAO:MOV A,34H 。 號需顯示,添加負號標志 ORL A,80H 。 MOV 34H,A 。回存 LJMP DONE2 BUCHANG:MOV A,32H 。補償子程序。當前的 BCD 碼從高字節(jié)往低字節(jié) ADD A,6 。處理小數(shù)位 還要分別加上2,5,6,稱作補償 MOV B,A 。暫存所加數(shù)據(jù) SUBB A,10 JC DD 。判斷小數(shù)位是否超過 10? MOV 32H,A 。超過,回存 MOV A,33H 。個位加一 INC A 。 MOV 33H,A ?;卮? LJMP NEXT9 DD:MOV 32H,B 。未超過 回存 B 的值 NEXT9:MOV A,33H 。處理個位 ADD A,5 MOV B,A 。暫存所加數(shù)據(jù) SUBB A,10 JC DD1 。判斷小數(shù)位是否超過 10? MOV 33H,A 。超過,回存 MOV A,34H 。個位加一 INC A 。 MOV 34H,A ?;卮? LJMP NEXT10 DD1:MOV 33H,B 。未超過 回存 B 的值 NEXT10:MOV A,34H 。處理十位 ADD A,2 MOV 34H,A 。回存 RET 。處理全部完成,返回到添加負號, next11 JISUAN:MOV B,64H 。運算子程序。 DIV AB MOV 34H,A 。提取出十位 MOV A,B MOV B,0AH DIV AB MOV 33H,A 。提取出個位 MOV 32H,B 。提取出小數(shù)位 DONE2:RET 鍵盤掃描和節(jié)拍設定的子程序 (一)鍵盤掃描 鍵盤掃描是利用鍵反轉(zhuǎn)法讀出鍵盤的電平值,通過查鍵碼表,把電平值轉(zhuǎn)化為 K0K16 鍵分別變?yōu)?016 的數(shù)字,通過判斷寄存器中的鍵號,就能確定是那一個按鍵按下了。 鍵反轉(zhuǎn)法的原理:( 1)列線輸出為全‘ 0’,隨后輸入行線電平如有‘ 0’,則‘ 0’所在的行就是按鍵所在行。 ( 2)行線輸出為全‘ 0’ ,隨后輸入列線電平如有‘ 0’,則‘ 0’所在的列就是按鍵所在列。結合上述兩步,可確定按鍵所在行和列。 具體的源程序 同 TEST0315 一樣這里就不再列出,見附錄一中 KEY 子程序 (二)節(jié)拍設定 N Y N Y Y N N Y Y 圖 9―節(jié)拍設定子程序的流程圖 因為時間原因這部分的程序只是完成部分的內(nèi)容,部分程序如下: SDJP:MOV A,64H 。設定節(jié)拍子程序 CJNE A,0FFH,KBACK 。 MOV A,65H 。 CJNE A,0FFH,KBACK1 。 LJMP KBACK 。 KBACK1:CJNE A,10,KBACK2 。是否是按鍵 F? MOV 33H,19 MOV 32H,19 MOV 30H,19 MOV 35H,19 MOV 6EH,02H 。修改進程碼 SETB 。 MOV R7,A 。把 A 的值暫時存放在 R7 中 MOV A,24H 。取超時操作的設定的單元 CJNE A,23H,KBACK2 。不等的時候直接返回 MOV A,R7 ?;卮?A 的值 MOV 23H,00H 。23H 單元清零 LJMP GOTOCT 。相等的時候返回常態(tài)巡顯 LJMP KBACK 。 KBACK2:CJNE A,11,KBACK3 。是否是按鍵 S? MOV 30H,22 。顯示 S 字符 MOV 6EH,01H 。修改進程碼 KBACK3:CJNE A,12,KBACK4 。是否是按鍵 C? GOTOCT:MOV 6EH,01H 。修改進程碼 CLR 。 LJMP KBACK KBACK:RET 改進后設定溫度上下限的子程序 只是把 CWENDU 子程序進行修改,先取出十位數(shù),和設定的溫度限值進行比較相等則報警不相等則跳出。 改進程序如下: CWENDU:MOV 37H,6DH 。溫度拆字子程序。當前路次值放入 37H 單元 MOV 30H,21 。溫度 C 顯示位 MOV 31H,20 。符號176。顯示位 MOV 36H,19 。空格 MOV 22H,34H 。把十位暫存加粗和斜體為修改部分 MOV A,22H 。取十位 CJNE A,21H,PANFUHAO 。同設定的溫度限值進行比較不等則跳轉(zhuǎn) CLR 。相等則蜂鳴器和 L0 報警 CLR PANFUHAO:MOV A,22H JNB ,W1 。最高位是否為 1? MOV 35H,10H 。是,顯示 號 LJMP W3 W1:MOV 35H,19 。否,改為滅掉 W3:CLR 。最高位清零 JNZ W2 。累加器 A 非零跳轉(zhuǎn)是否為零十位是否零?? MOV 34H,19 。十位為零,滅掉 LJMP W4 W2:MOV 34H,A ?;卮? W4:RET 改進后實時鐘調(diào)整的子程序 改進后設定溫度上下限的子程序 這部分的程序和實驗中的程序相同 ,就是判斷 PB2,PB3,PB4 按下時分別給時單元 ,分單元 ,和秒單元分別以 2 60、 60 為模按照 BCD 碼 +1。具體程序如下: SHIZTZ:JB ,LPB1 。時鐘調(diào)校子程序。判 PB2 下降沿 JNB ,LPB1 MOV 3AH,0 MOV A,3CH 。小時單元按 BCD 碼模 24 加 1 ADD A,01H DA A MOV 3CH,A CJNE A,24H,LPB1 。滿 24 小時? MOV 3CH,00H LPB1:JB ,LPB2 。判 PB3 下降沿 JNB ,LPB2 MOV 3AH,0 MOV A,3BH 。分鐘單元按 BCD 碼模 60 加 1 ADD A,01H DA A MOV 3BH,A CJNE A,60H,LPB2 MOV 3BH,00H LPB2:JB ,LPBR 。判 PB4 下降沿 JNB ,LPBR MOV A,3AH 。秒鐘單元按 BCD 碼模 60 加 1 ADD A,1 DA A MOV 3AH,A CJNE A,60H,LPBR MOV 3AH,0 LPBR:RET 能及其操作說明 ( 1)硬件自檢功能:本系統(tǒng)上電先是自檢是 L0L7 點亮 熄滅 ,蜂鳴器響 熄滅, L8L15 點亮,數(shù)碼管按照每一段一段的循環(huán)點亮,到第八位的時候全部數(shù)碼管點亮 1S 熄滅數(shù)碼管。 ( 2)自動巡檢功能:路數(shù)從第一路開始顯示當前路的溫度,每 2S 路次加 1顯示該路的溫度值,到第九路的時候顯示出來實時鐘。路數(shù)返回到第一路。 ( 3)實時鐘調(diào)整:當?shù)诰怕返臅r候通過按鍵 PB PB PB4 可以進行對時鐘,分鐘,秒鐘進行調(diào)整。 ( 4)凍結巡檢功能:當按下 PB0 按鍵時路數(shù)不再變化 1,一直顯示當前路的溫度 ,且溫度值可以更新。 ( 5)手動切換功能:當按下 PB1 時路數(shù)按照以 9 為模加 1。 ( 6)溫度報警功能:如果當前路的溫度高于 40176。 C 或者低于 40176。 C 時,蜂鳴器響起, L0 點亮。 ( 7)節(jié)拍設定功能:當按下 K10 鍵是進入節(jié)拍設定界面,等待按鍵按下當按下 K0K9 鍵顯示出來 F0K9。按下 K11 鍵確定按鍵, K12 按鍵按下時返回到正常的巡檢功能。 調(diào)試記錄 :第一天 發(fā)現(xiàn)不能顯示出來小數(shù)點 原 因:沒有對小數(shù)點的位進行顯示。 解決方案: 方案一、在查表顯示子程序中的段碼表加入帶小數(shù) 點的段碼表,個位顯示的時候只進行查帶符號的段碼表。雖然可以顯示出來小數(shù)點,但是這個段碼表不通用,比如說要顯示帶符號的 5 的時候,給顯示緩存區(qū)寫 05H 不能顯示正常的 5. 方案二、在判斷到顯示到個位的時候給顯示緩存區(qū)的最高位清零后再顯示從而很好的顯示出小數(shù)點。同理顯示符號的時候判斷出符號標志位為負的時候給該單元顯示負號段碼。 調(diào)試記錄 :第二天 上電后自檢正常但是進入自動巡檢的時候只是顯示一個路次,后面的數(shù)碼管都熄滅了。 解決方案:進入單片機模擬調(diào)試發(fā)現(xiàn)程序進入溫度采集的子程序無法跳出,過程中只有該程序和 定時器中斷服務程序可以運行,經(jīng)過仔細仿真的檢查發(fā)現(xiàn)有一個標號表錯了了,導致該子程序成了個死循環(huán)無法返回了,改正后發(fā)現(xiàn)情況還有一點改變但是還是不正常?;叵氲阶约旱某绦蚴且淮握{(diào)用就要把 8 路每路采集四次溫度值進行保存,每次 AD 轉(zhuǎn)化就要有 1MS 的延時,這樣一來這個子程序的調(diào)用就要花掉 32 MS 時間導致了后面的子程序調(diào)用不正常。改成每次調(diào)用的時候只進行一次 AD 轉(zhuǎn)化,這樣每個大循環(huán)大概 8MS 左右進行一次 AD 轉(zhuǎn)換。發(fā)現(xiàn)顯示正常了。 調(diào)試記錄:發(fā)現(xiàn)溫度巡檢正常了但是當?shù)谝宦泛偷诙窌r調(diào)節(jié)電位器的時候溫度只能是從 ~~ 顯示,估計是轉(zhuǎn)化成溫度內(nèi)碼或者溫度內(nèi)碼轉(zhuǎn)化成 BCD 碼的時候有錯誤。 解決方案:對上述兩個程序進行仔細檢查發(fā)現(xiàn)轉(zhuǎn)化成溫度內(nèi)碼的子程序中的工作寄存
點擊復制文檔內(nèi)容
研究報告相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1