亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

51單片機(jī)匯編語(yǔ)言

作者:未知   來(lái)源:會(huì)員上傳   點(diǎn)擊數(shù):  更新時(shí)間:2014年05月20日   【字體:













a)  單個(gè)按鍵與多個(gè)LED燈(位操作輸入與字節(jié)操作輸出)判斷與子程序
此處只是將輸出指令由位指令換成了字節(jié)指令,而輸入判斷仍然是位判斷指令。
ORG 0000H
MAIN:
  CLR C
   MOV C,P2.0 ;獲取P2.0位狀態(tài) 送位累加器;位與字節(jié)轉(zhuǎn)換需要判斷指令
JNC ZIJIE;JC位累加器—進(jìn)位位為1轉(zhuǎn)移到ZIJIE ,
JNC位累加器為0轉(zhuǎn)移到ZIJIE,否則順序執(zhí)行。
MOV C,P1.0
ZIJIE:;子程序起始
MOV  A#00H
    MOV  P3A
RET;子程序結(jié)束并返回調(diào)用處
END
 
b)  單個(gè)按鍵與多個(gè)LED燈(位操作輸入與位、字節(jié)操作輸出)
l  位輸入控制位或字節(jié)輸出
ORG 0000H
MAIN:
  CLR C
   MOV C,P1.0 ;獲取P1.0位狀態(tài) 送位累加器;位與字節(jié)轉(zhuǎn)換需要判斷指令
JNC ZIJIE      ;JC位累加器—進(jìn)位位為1轉(zhuǎn)移到ZIJIE ,JNC位累加器為0轉(zhuǎn)移到ZIJIE,否則順序執(zhí)行。
  MOV P0.0,C ;送位累加器到P0.0位等,P1.0位狀態(tài)變化則輸出隨之變化
    ACALL  DELAY   ; 調(diào)延時(shí)子程序
  MOV P0.1,C
      ACALL  DELAY
  MOV P0.2,C
      ACALL  DELAY
  MOV P0.3,C
    ACALL  DELAY 
  MOV P0.4,C
    ACALL  DELAY 
         MOV P0.5,C
    ACALL  DELAY          MOV P0.6,C
    ACALL  DELAY    MOV P0.7,C    ACALL  DELAY     
SJMP MAIN ;相對(duì)轉(zhuǎn)移時(shí)間短,用AJMP絕對(duì)轉(zhuǎn)移時(shí)間長(zhǎng),RET是用于子程序的返回
ZIJIE:
  MOV A,#00H
  MOV P2,A      ACALL  DELAY 
  MOV P3,A    ACALL  DELAY
     CLR A      MOV P0,A
   MOV P1,A     ACALL  DELAY  
  RET
  DELAY:      ; 延時(shí)子程序 - 這是一個(gè)非常有用、而且常見(jiàn)的一個(gè)子程序
  MOV R5,#04H    ;將16進(jìn)制數(shù)04H傳遞給寄存器R5
F1:
  DJNZ  R7, F1 ;寄存器R7減1非0跳轉(zhuǎn)到F1,直到減為0順序執(zhí)行下一指令
  RET       ; 子程序結(jié)束,返回子程序入口處  ACALL  DELAY   ; 調(diào)延時(shí)子程序 
  END
l  位輸入控制字節(jié)輸出
 
c)  單個(gè)按鍵與單個(gè)電機(jī)控制開(kāi)環(huán)控制
單“位”P口1位--單個(gè)燈位輸出,單個(gè)按鍵控制硬控制與軟控制
一個(gè)按鍵,一盞照明燈,一個(gè)繼電器。硬件接口問(wèn)題—線路連接、硬件硬驅(qū)動(dòng)問(wèn)題(程序稱為軟驅(qū)動(dòng))。
一個(gè)按鍵,兩盞燈(指示、照明),一個(gè)繼電器。硬件接口問(wèn)題—線路連接、硬件硬驅(qū)動(dòng)問(wèn)題。程序稱為軟驅(qū)動(dòng):就是利用兩個(gè)端口,通過(guò)延時(shí)或計(jì)時(shí)器完成轉(zhuǎn)換。
說(shuō)明:
硬件特性,驅(qū)動(dòng)與控制信號(hào),程序編寫(xiě)
由繼電器引出的強(qiáng)電驅(qū)動(dòng)電器的控制問(wèn)題,如電動(dòng)機(jī)交流電機(jī)、直流電機(jī)、步進(jìn)電機(jī)、伺服電機(jī);單項(xiàng)或多項(xiàng)
 
1.  單個(gè)開(kāi)關(guān)(按鍵)與多個(gè)LED數(shù)碼管點(diǎn)陣問(wèn)題最小系統(tǒng)輸出擴(kuò)展
a)        單個(gè)按鍵與多個(gè)LED燈(位操作輸入與字節(jié)操作輸出)
b)        單個(gè)按鍵與多個(gè)LED數(shù)碼管(位操作輸入與字節(jié)操作輸出)數(shù)組
c)         單個(gè)按鍵與多個(gè)數(shù)碼管(位操作輸入與多字節(jié)操作輸出)靜態(tài)數(shù)組
d)        多個(gè)按鍵與多個(gè)數(shù)碼管(位操作輸入與字節(jié)操作輸出)動(dòng)態(tài)掃描函數(shù)
e)         單個(gè)按鍵與多個(gè)數(shù)碼管點(diǎn)陣(位操作輸入與字節(jié)操作輸出)靜態(tài)
f)         多個(gè)按鍵與多個(gè)數(shù)碼管點(diǎn)陣(位操作輸入與字節(jié)操作輸出)動(dòng)態(tài)
 
3.單個(gè)開(kāi)關(guān)(按鍵)與多個(gè)LED燈→數(shù)碼管→點(diǎn)陣問(wèn)題—輸出擴(kuò)展—最小系統(tǒng)
a)  單個(gè)按鍵,多個(gè)LED燈(位操作—輸入與字節(jié)操作—輸出)
l  單輸入與多輸出的電子線路—靜態(tài)特性—結(jié)構(gòu)與聯(lián)接   
對(duì)于多個(gè)LED燈(LED數(shù) < 8個(gè))來(lái)說(shuō)(圖4),在硬件連接方面、軟件編寫(xiě)方面均沒(méi)有大的難點(diǎn)。按照單個(gè)LED的連接方式增加便可?刂瞥绦蚓帉(xiě)基本上也是重復(fù)性工作—用COPY簡(jiǎn)單修改即可。
對(duì)于LED數(shù)= 8個(gè)或是8的倍數(shù)的情況,需要解決兩個(gè)方面的問(wèn)題。一個(gè)是硬件的連接方法,一個(gè)是控制程序的編寫(xiě)指令—用詞方法—字節(jié)操作指令。硬件方面可以用單個(gè)或多個(gè)成組(NET)的LED或總線接口、單個(gè)接口擴(kuò)展等實(shí)現(xiàn)。程序編寫(xiě)則可以使用重復(fù)性工作、可以使用字節(jié)操作指令而摒棄位操作指令,使得程序簡(jiǎn)潔、可讀性好、硬件運(yùn)行效率高。
對(duì)于LED數(shù)> 8個(gè)且不能被8整除的,仍需要用位操作指令。參見(jiàn)圖5,指令如下:
l  單輸入與多輸出電子線路的控制指令—動(dòng)態(tài)特性
ORG  0000H  
   MAIN: 
      MOV  A,#00H  
MOV  P1,   ;P1口的狀態(tài),低電平為關(guān)
MOV  C0A0H  ;按位操作,P2.0口的狀態(tài)—按鍵定,關(guān)為低電平,開(kāi)為高電平
MOV  P1.0  ;P1.0口的狀態(tài),按位高電平顯示燈亮,低電平顯示燈滅
MOV  P1.1 
MOV  P1.2, 
MOV  P1.3,  ;P1.3口的狀態(tài),
MOV  P1.7,C
MOV  P2.1,C
MOV  P2.2,C
MOV  P2.4,C
MOV  P3.0,C
MOV  P3.3,C
MOV  P3.5,C
MOV  P3.7,C
MOV  P0.0C
MOV  P0.4,C
END  
對(duì)于LED數(shù)> 8個(gè)且能被8整除的需要用字節(jié)操作指令。參見(jiàn)圖2所示。
ORG  0000H  
START: 
      MOV  A#00H  
MOV  P1,  
MOV  C0A0H 
JB    0A0H,GUAN   ;按位操作;按P2.0口的狀態(tài)獲得兩種顯示結(jié)果,0跳轉(zhuǎn)
MOV  P1,#0FFH   ;按P2.0口的狀態(tài)為非1時(shí)的順序顯示本指令
RET  ;返回控制指令
GUAN :   ;程序控制指令入口,跳轉(zhuǎn)入口
MOV  P2,#0FFH   ;按P2.0口的狀態(tài)為1時(shí)的轉(zhuǎn)移顯示本指令
RET  ;子程序返回控制指令
END  
程序說(shuō)明
每個(gè)口用位賦值指令來(lái)開(kāi)關(guān)P1口的各個(gè)LED。也可以用字節(jié)賦值指令一次性的開(kāi)關(guān)8位P1口全部LED。
P1=0;   // P1口8位置低電平,點(diǎn)亮8個(gè)LED
P1=1;   // P1口8位置高電平,關(guān)閉8個(gè)LED。圖5為多個(gè)LED燈-單個(gè)按鍵的運(yùn)行結(jié)果與匯編語(yǔ)言。
上面的單片機(jī)系統(tǒng)和匯編語(yǔ)言控制指令,很容易被更改為多口、多位的單鍵控制系統(tǒng)。圖5為多個(gè)LED燈-單個(gè)按鍵的運(yùn)行結(jié)果與匯編語(yǔ)言。圖6中對(duì)P2.0口改用雙擲開(kāi)關(guān),實(shí)現(xiàn)P2.0口的兩種電平狀態(tài)。
ORG 0000H
  START: 
    MOV  A,#0FFH  
    MOV  P3,A
       MOV  P1,A
       MOV C, 0A0H
    JNB  0A0H,GUAN
       MOV  P1,#00H
RET
GUAN : 
       MOV  P3,#00H
     RET   ;可以產(chǎn)生閃爍效果
 END   

 

關(guān)閉窗口

相關(guān)文章