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

正文內(nèi)容

單片機(jī)及接口控制試驗(yàn)平臺(tái)結(jié)構(gòu)設(shè)計(jì)(編輯修改稿)

2025-07-23 10:11 本頁面
 

【文章內(nèi)容簡介】 AJMP DCM AJMP ADC AJMP START 鍵盤單元掃描子程序 在鍵盤掃描子程序的作用是取得鍵碼送累加器A。 1.鍵盤掃描子程序流程圖 開始掃描鍵盤有鍵按下? 延時(shí)是抖動(dòng)引起的? Y N 取得鍵碼送A 返回 圖33 鍵盤掃描子程序流程圖 掃描程序子程序執(zhí)行時(shí)先使7474LS164輸出全為低電平(列線),(第1行)、(第2行)的電平來判斷是否有鍵按下。其程序如下: KEYI: MOV A,00H。 使所有列線為0的編碼送A MOV SBUF,A。 掃描鍵盤,使所有列線為0 KL0: JNB TI,KL0。 串行輸出完否? CLR TI。 串行輸出完,清TI KL1: JNB ,PK1。 第1行有鍵閉合嗎?如有,跳PK1進(jìn)行處理 JB ,KL1。 第2行有鍵閉合嗎?沒有,跳KL1 PK1: ACALL DL10。 調(diào)用10ms延時(shí)子程序DL0,進(jìn)行軟件消抖 ACALL DL10 JNB ,PK2。 判斷是否是抖動(dòng)引起的? JB ,KL1。 是抖動(dòng)引起的,轉(zhuǎn)KL1 PK2: MOV R7,08H。 不是抖動(dòng)引起的在進(jìn)行軟件消抖確定有鍵按下后,就逐列輸出低電平,并記列號(hào)于R3,再查詢行線狀態(tài),當(dāng)1行有鍵按下時(shí)記行首鍵號(hào)0于R4,當(dāng)1行有鍵按下時(shí)記行首鍵號(hào)8于R4,最后將按下的鍵所在位置的列號(hào)和行首鍵號(hào)相加獲得鍵碼。其程序如下: MOV R6,7FH。 判斷是哪一個(gè)鍵按下,7FH為使第一列為低 MOV R3,00H。 R3為列號(hào)寄存器 MOV A,R6。 KL5: MOV SBUF,A。 列掃描碼從串行口輸出 KL2: JNB TI,KL2。 等待串行口發(fā)送完 CLR TI。 清TI JNB ,PKONE。 讀第1行線狀態(tài),第1行有鍵閉合,跳PKONE處理 JB ,NEXT。 讀第2行線狀態(tài),第2行有鍵被按否? MOV R4,08H 。第2行有鍵被按下,行首鍵號(hào)08H送R4 AJMP PK3。 PKONE: MOV R4,00H。 第1行有鍵被按下,行首鍵號(hào)00H送R4 PK3: MOV SBUF,00H。 等待鍵釋放,發(fā)送00H使所有列線為低電平 KL3: JNB TI,KL3。 CLR TI。 發(fā)送完畢,清TI KL4: JNB ,KL4。 判斷行狀態(tài) JNB ,KL4。 MOV A,R4。 兩行線均為高,說明鍵已釋放 ADD A,R3。 計(jì)算得鍵碼,送A RET NEXT: MOV A,R6。 列掃描碼左移一位,判下一列鍵是否按下 RR A。 MOV R6,A。 記住列掃描碼于R6中 INC R3。 列號(hào)增1 DJNZ R7,KL5。 列計(jì)數(shù)器R7減1,8列鍵都檢察完否? BACK: RET DL10: MOV R7,0AH。 延時(shí)10ms子程序 DL: MOV R6,0FFH。 DL1: DJNZ R6,DL1。 DJNZ R7,DL。 RET。 顯示單元子程序 顯示單元子程序的功能是將輸入的09的鍵碼用阿拉伯?dāng)?shù)字顯示出來,由于顯示的數(shù)字與鍵碼一致,就可以直接用鍵碼作為查段碼表的依據(jù)。,使RXT輸出的串行口移位脈沖有效,使RXT輸出的串行口移位脈沖對(duì)顯示不起作用,避免顯示受鍵盤掃描的影響。初始化顯示位數(shù)、顯緩區(qū)單元地址開移位脈沖輸出查表并顯示關(guān)移位脈沖輸出返回R7=0?開始1.顯示子程序流程圖 N Y 圖34 顯示單元子程序流程圖 2.匯編程序及說明 DISP: SETB 。 允許TXD引腳同步移位脈沖輸出 MOV R7,04H。 送出段碼個(gè)數(shù),R7為段碼個(gè)數(shù)計(jì)數(shù)器 MOV R0,7FH。 7FH~78H為顯示數(shù)據(jù)緩沖區(qū)四位數(shù)顯示程序如下: DL0: MOV A,@R0。 取出要顯示的數(shù)送A ADD A,0dH。 加上偏移量 MOVC A,@A+PC。 查段碼表SEGTAB,取出段碼 MOV SBUF,A。 送出顯示 HERE1: JNB TI,HERE1。 查詢TI狀態(tài),1字節(jié)的段碼輸出完否? CLR TI。 1字節(jié)的段碼輸出完,清TI DEC R0。 指向下一個(gè)顯示單元 DJNZ R7,DL0。 段碼個(gè)數(shù)計(jì)數(shù)器R7是否為0,如不為0,繼續(xù)送段碼 CLR 。 4個(gè)段碼輸出完畢,關(guān)閉顯示器輸出 RET。 返回 TAB1: DB 0C0H,0F9H,0A4H,0B0H,99H。 共陽極段碼表,0,1,2,3,4 DB 92H,82H,0F8H,80H,090H,0FFH,0BFH。 5,6,7,8,9, 暗, 交流電機(jī)單元控制子程序 執(zhí)行交流電機(jī)控制子程序時(shí),首先對(duì)輸入的數(shù)值進(jìn)行判斷,由于OP07的正極接的是 +9V 的電壓, 輸出的最高電壓為 。實(shí)驗(yàn)中電機(jī)運(yùn)行時(shí)的額定轉(zhuǎn)速為1400轉(zhuǎn)/分,而變頻器允許的最高模擬電壓為 +10V。由上面的分析不難得出OP07能控制的電機(jī)最高轉(zhuǎn)速為1260轉(zhuǎn)/分(1400/109=1260),那么輸入的最高轉(zhuǎn)速就應(yīng)為1260。但考慮到輸入的數(shù)值最終要送到累加器A中,再由A將數(shù)值送DAC0832進(jìn)行D/A轉(zhuǎn)換。而累加器A能存入的最大數(shù)為FFH(255),輸入的最高轉(zhuǎn)速1260與255的倍數(shù)關(guān)系為:1200/255=,為計(jì)算方便我取鍵盤輸入的最高轉(zhuǎn)速為1275(2555=1275),這樣在將鍵盤輸入的數(shù)值送入A中時(shí)只要將輸入的數(shù)值除以5就可以了。在匯編語言的實(shí)際數(shù)值轉(zhuǎn)換過程中,我是這樣處理的:比如我輸入的數(shù)值是1233,那么執(zhí)行交流電機(jī)控制子程序時(shí):(7FH)=1,(7EH)=2,(7DH)=3,(7CH)=3。(A)=(7FH)1000/5 +(7EH)100/5 +(7DH)10/5 +(7CH)/5 =(7FH)200 +(7EH)20 +(7DH)2 +(7CH)/5 (A)=1200 + 220 +32 + 3/5 =246 (7C單元數(shù)值四舍五入) 開始轉(zhuǎn)速>1275? N Y調(diào)用數(shù)據(jù)處理子程序,將處理結(jié)果送A 啟動(dòng)DAC0832D/A轉(zhuǎn)換輸出控制電機(jī)的轉(zhuǎn)速 返回 圖35 交流電機(jī)單元控制子程序流程圖 程序執(zhí)行時(shí)先調(diào)用鍵盤輸入處理,判斷輸入值是否大于1275,其程序如下: ACM: AJMP KDA 。調(diào)用鍵盤輸入處理 ACM1: MOV DPTR,7FFFH 。置DAC0832地址 MOVX @DPTR,A 。D/A轉(zhuǎn)換 AJMP START 鍵盤輸入處理程序先判斷輸入的數(shù)值是否大于電機(jī)的轉(zhuǎn)速將輸入的數(shù)值縮小5倍,其程序如下:KDA: MOV A,BUF3 。鍵盤輸入處理 CJNE A,1,CASE0。 分別對(duì)各位進(jìn)行數(shù)值的判斷 MOV A,BUF2 CJNE A,2,CASE1 MOV A,BUF1 CJNE A,7,CASE1 MOV A,BUF0 CJNE A,5,CASE1 THU: MOV A,BUF3。 千位數(shù)縮小5倍后暫存83H單元 MOV B,200 MUL AB MOV 83H,A HUN: MOV A,BUF2。 百位數(shù)縮小5倍后暫存82H單元 MOV B,20 MUL AB MOV 82H,A MOV A,BUF。 十位數(shù)縮小5倍后暫存81H單元 RL A MOV 81H,A MOV A,BUF0 MOV B,5。 個(gè)位數(shù)縮小5倍后直接存A DIV AB ADD A,81H。 將各位上的數(shù)值相加 ADD A,82H ADD A,83H AJMP ACM1 以下是鍵盤處理的跳轉(zhuǎn)子程序,由于前面的鍵盤輸入處理程序只能判斷個(gè)位上的數(shù)值是否和最大相等,故用以下程序判斷比最大數(shù)大還是小,大于最大數(shù)則跳轉(zhuǎn)至主程序,小于最大數(shù)則跳轉(zhuǎn)至DA轉(zhuǎn)換。CASE0: JNC MAIN1。 大于最大數(shù)跳轉(zhuǎn)至主程序 AJMP HUN。 小于最大數(shù)跳轉(zhuǎn)至DA轉(zhuǎn)換CASE1: JNC MAIN1。 大于最大數(shù)跳轉(zhuǎn)至主程序 AJMP THU。 小于最大數(shù)跳轉(zhuǎn)至DA轉(zhuǎn)換 步進(jìn)電機(jī)單元控制子程序 步進(jìn)電機(jī)的速度控制是通過控制脈沖的延時(shí)程序?qū)崿F(xiàn)的,延時(shí)的參數(shù)也是通過累加器A送延時(shí)子程序的。同樣存在顯示數(shù)值和累加器A之間數(shù)值轉(zhuǎn)換的問題,由于時(shí)間有限和條件限制,我對(duì)步進(jìn)電機(jī)的轉(zhuǎn)速?zèng)]能進(jìn)行測量,只是為計(jì)算的方便將步進(jìn)電機(jī)的最高轉(zhuǎn)速定為了255轉(zhuǎn)/分。當(dāng)輸入的數(shù)值為0時(shí),進(jìn)入步進(jìn)電機(jī)的點(diǎn)動(dòng)控制。 執(zhí)行步進(jìn)電機(jī)控制子程序時(shí):(A)= (7EH)100 +(7DH)10 +(7CH)1. 步進(jìn)電機(jī)單元控制子程序流程圖 開始轉(zhuǎn)速>255? N Y 調(diào)用數(shù)據(jù)處理子程序,將處理結(jié)果送A A=0?調(diào)用含有A延時(shí)參數(shù)的高低電平子程序
點(diǎn)擊復(fù)制文檔內(nèi)容
高考資料相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1