久久久国产精品视频袁燕,99re久久精品国产,亚洲欧美日韩国产综合v,天天躁夜夜躁狠狠久久,激情五月婷婷激情五月婷婷

  • 回復(fù)
  • 收藏
  • 點(diǎn)贊
  • 分享
  • 發(fā)新帖

匯編高手請(qǐng)進(jìn)

小弟剛開(kāi)始學(xué)單片機(jī),這個(gè)延時(shí)程序搞不懂,請(qǐng)高手指點(diǎn).
MAIN:  SETB   P1.0
       MOV    30H,#255
       LCALL  DELAY
       CLR    P1.0
       MOV    30H,#200
       LCALL  DELAY
       AJMP   MAIN
DELAY: MOV    R7,30H
D1:    MOV    R6,#250
D2:    MOV    R1,#200
D3:    DJNZ   R1,D3
       DJNZ   R6,D2
       DJNZ   R7,D1
       RET
       END
這個(gè)程序?yàn)槭裁床恍心?請(qǐng)高手指點(diǎn)
全部回復(fù)(20)
正序查看
倒序查看
2006-11-27 12:24
樓主,你要延時(shí)多久呀,我也是剛學(xué)的哈!!
我大概算了一下,你的延時(shí)達(dá)到25.5分鐘(12M).
這樣你要看燈的亮和滅要等上半個(gè)小時(shí)喲.
0
回復(fù)
henan123
LV.6
3
2006-11-27 14:18
@ding86361953
樓主,你要延時(shí)多久呀,我也是剛學(xué)的哈!!我大概算了一下,你的延時(shí)達(dá)到25.5分鐘(12M).這樣你要看燈的亮和滅要等上半個(gè)小時(shí)喲.
哈哈,是啊后來(lái)改了一點(diǎn),大概4-5秒就可以了,問(wèn)題已解決,謝了
0
回復(fù)
henan123
LV.6
4
2006-11-30 15:56
@henan123
哈哈,是啊后來(lái)改了一點(diǎn),大概4-5秒就可以了,問(wèn)題已解決,謝了
請(qǐng)問(wèn)單句的加法,乘法指令可以在KEIL上執(zhí)行嗎?如果可以,請(qǐng)問(wèn)應(yīng)該如何操作?
0
回復(fù)
henan123
LV.6
5
2006-12-02 10:15
@henan123
請(qǐng)問(wèn)單句的加法,乘法指令可以在KEIL上執(zhí)行嗎?如果可以,請(qǐng)問(wèn)應(yīng)該如何操作?
例,某系統(tǒng)外擴(kuò)展了8K的RAM,要求把內(nèi)部RAM20H單元的內(nèi)容傳送到外部RAM800H單元中
MOV  DPTR,#800H
MOV  A,#20H
MOVX @DPTR,A
請(qǐng)問(wèn)這樣可以嗎
0
回復(fù)
2006-12-02 12:19
@henan123
例,某系統(tǒng)外擴(kuò)展了8K的RAM,要求把內(nèi)部RAM20H單元的內(nèi)容傳送到外部RAM800H單元中MOV  DPTR,#800HMOV  A,#20HMOVX@DPTR,A請(qǐng)問(wèn)這樣可以嗎
這方面的我也不太熟悉哈,現(xiàn)在工作忙好久沒(méi)看了哈!!!
你這樣的寫(xiě)發(fā)好象不對(duì)!!!
0
回復(fù)
hotpower
LV.5
7
2006-12-04 01:30
@henan123
例,某系統(tǒng)外擴(kuò)展了8K的RAM,要求把內(nèi)部RAM20H單元的內(nèi)容傳送到外部RAM800H單元中MOV  DPTR,#800HMOV  A,#20HMOVX@DPTR,A請(qǐng)問(wèn)這樣可以嗎
MOV  DPTR,#800H
MOV  A,20H
MOVX @DPTR,A



MOV  DPTR,#800H
MOV  R0,#20H
MOV  A, @R0
MOVX @DPTR, A
0
回復(fù)
henan123
LV.6
8
2006-12-06 15:02
@hotpower
MOV  DPTR,#800HMOV  A,20HMOVX@DPTR,A或MOV  DPTR,#800HMOV  R0,#20HMOV  A,@R0MOVX@DPTR,A
小弟多謝了,還有一個(gè)問(wèn)題,CJNZ的用法,如何讓溫度低于20度開(kāi)始加熱,高于25度停止加熱,程序應(yīng)該怎么寫(xiě)?
0
回復(fù)
henan123
LV.6
9
2006-12-06 17:17
@henan123
小弟多謝了,還有一個(gè)問(wèn)題,CJNZ的用法,如何讓溫度低于20度開(kāi)始加熱,高于25度停止加熱,程序應(yīng)該怎么寫(xiě)?
不好意思寫(xiě)錯(cuò)了應(yīng)該是CJNE
0
回復(fù)
henan123
LV.6
10
2006-12-07 08:53
@henan123
不好意思寫(xiě)錯(cuò)了應(yīng)該是CJNE
為什么用與ANL和或ORL可以把BCD轉(zhuǎn)換成ASC呢,他具體是怎么回事?請(qǐng)高手指點(diǎn)
0
回復(fù)
2006-12-07 14:24
大哥 ,你的單片機(jī)的晶振頻率是多少? 如果是11.0596M的話,機(jī)器周期是1us ,執(zhí)行一條MOV 指令需要一個(gè)機(jī)器周期,也就是1us. 執(zhí)行DJNZ 需要二個(gè)機(jī)器周期 ,需要2us. 他們之間的關(guān)系是 機(jī)器周期=1/12晶振的周期
0
回復(fù)
2006-12-07 14:25
@菠蘿蜜999
大哥,你的單片機(jī)的晶振頻率是多少?如果是11.0596M的話,機(jī)器周期是1us,執(zhí)行一條MOV指令需要一個(gè)機(jī)器周期,也就是1us.執(zhí)行DJNZ需要二個(gè)機(jī)器周期,需要2us.他們之間的關(guān)系是機(jī)器周期=1/12晶振的周期
根據(jù)這個(gè)規(guī)律 你自己算算
0
回復(fù)
henan123
LV.6
13
2006-12-07 19:51
@菠蘿蜜999
根據(jù)這個(gè)規(guī)律你自己算算
為什么用與ANL和或ORL可以把BCD轉(zhuǎn)換成ASC呢
0
回復(fù)
hotpower
LV.5
14
2006-12-09 00:05
@henan123
小弟多謝了,還有一個(gè)問(wèn)題,CJNZ的用法,如何讓溫度低于20度開(kāi)始加熱,高于25度停止加熱,程序應(yīng)該怎么寫(xiě)?
用Keil C51吧~~~

http://hotpower.21ic.org/
0
回復(fù)
henan123
LV.6
15
2006-12-09 09:24
@henan123
為什么用與ANL和或ORL可以把BCD轉(zhuǎn)換成ASC呢
我的晶振頻率是11.0592但為什么用ANL和ORL可以把BCD轉(zhuǎn)換成ASCII呢,他跟機(jī)器周期還有關(guān)系嗎?小弟是初學(xué)的,問(wèn)的不對(duì)請(qǐng)各位仍磚頭
0
回復(fù)
hotpower
LV.5
16
2006-12-09 10:53
@henan123
我的晶振頻率是11.0592但為什么用ANL和ORL可以把BCD轉(zhuǎn)換成ASCII呢,他跟機(jī)器周期還有關(guān)系嗎?小弟是初學(xué)的,問(wèn)的不對(duì)請(qǐng)各位仍磚頭
11.0592主要是為串口通訊無(wú)誤差.
0
回復(fù)
hugang9999
LV.1
17
2006-12-09 13:27
傳送參數(shù)你用的是30H,這樣是不行的,應(yīng)該用A寄存器,如果A里有數(shù)據(jù),可以先將A里的數(shù)據(jù)放在31H里面,然后,MOV A,#200 ---
下面 MOV R7,A 就可以了
0
回復(fù)
henan123
LV.6
18
2006-12-10 09:09
@hugang9999
傳送參數(shù)你用的是30H,這樣是不行的,應(yīng)該用A寄存器,如果A里有數(shù)據(jù),可以先將A里的數(shù)據(jù)放在31H里面,然后,MOVA,#200---下面MOVR7,A就可以了
各位,再看一下這個(gè)程序
雙字節(jié)十進(jìn)制轉(zhuǎn)化為單字節(jié)二進(jìn)制
BCD低位在BCD1中,高位在BCD0中,
二進(jìn)制數(shù)在BIN0中
BCD0  EQU   40H
BCD1  EQU   41H
BIN0  EQU   50H
BCD2BIN:  
     MOV  A,BCD0  ;將十進(jìn)樹(shù)送到A中
      MOV  B,#10
     MUL   AB
ADD   A,BCD1
MOV  BIN0,A
RET
這是書(shū)上的一段程序.小弟有點(diǎn)不明白,最后送往BIN0中的不還是雙字節(jié)
十進(jìn)制數(shù)嗎?怎么會(huì)是二進(jìn)制數(shù),請(qǐng)高手指點(diǎn),
0
回復(fù)
liwanli
LV.2
19
2006-12-11 20:33
@henan123
各位,再看一下這個(gè)程序雙字節(jié)十進(jìn)制轉(zhuǎn)化為單字節(jié)二進(jìn)制BCD低位在BCD1中,高位在BCD0中,二進(jìn)制數(shù)在BIN0中BCD0  EQU  40HBCD1  EQU  41HBIN0  EQU  50HBCD2BIN:      MOV  A,BCD0  ;將十進(jìn)樹(shù)送到A中      MOV  B,#10    MUL  ABADD  A,BCD1MOV  BIN0,ARET這是書(shū)上的一段程序.小弟有點(diǎn)不明白,最后送往BIN0中的不還是雙字節(jié)十進(jìn)制數(shù)嗎?怎么會(huì)是二進(jìn)制數(shù),請(qǐng)高手指點(diǎn),
START: JNB P0.1,L1   ;有PG嗎?有PG就進(jìn)行下一步測(cè)試
L1: CLR P1.0   ;3.3V短路RELAY ON
LCALL DELAY   ;調(diào)用延遲參數(shù)
SETB P1.0   ;3.3V短路RELAY OFF
LCALL DELAY   ;調(diào)用延遲參數(shù)
LCALL PS   ;PS-ON開(kāi)關(guān)啟動(dòng)
JB P0.1,NG   ;有PG嗎?有PG進(jìn)行下一步測(cè)試,沒(méi)PG就停止測(cè)試,FALL燈亮,蜂鳴器長(zhǎng)鳴
JNB P0.1,L2   ;檢測(cè)到PG信號(hào),可以進(jìn)行下一步測(cè)試
L2: CLR P1.2   ;5V短路RELAY ON
LCALL DELAY   ;調(diào)用延遲參數(shù)
SETB P1.2   ;5V短路RELAY OFF
LCALL DELAY   ;調(diào)用延遲參數(shù)
LCALL PS   ;PS-ON開(kāi)關(guān)啟動(dòng)
JB P0.1,NG   ;有PG嗎?有PG進(jìn)行下一步測(cè)試,沒(méi)PG就停止測(cè)試,FALL燈亮,蜂鳴器長(zhǎng)鳴
JNB P0.1,L3   ;檢測(cè)到PG信號(hào),可以進(jìn)行下一步測(cè)試
L3: CLR P1.3   ;12V短路RELAY ON
LCALL DELAY   ;調(diào)用延遲參數(shù)
SETB P1.3   ;12V短路RELAY OFF
LCALL DELAY   ;調(diào)用延遲參數(shù)
LCALL PS   ;PS-ON開(kāi)關(guān)啟動(dòng)
JB P0.1,NG   ;有PG嗎?有PG進(jìn)行下一步測(cè)試,沒(méi)PG就停止測(cè)試,FALL燈亮,蜂鳴器長(zhǎng)鳴
JNB P0.1,L4   ;檢測(cè)到PG信號(hào),可以進(jìn)行下一步測(cè)試
L4: CLR P0.0      ;切換到輕載測(cè)試OVP
LCALL DELAY     ;調(diào)用延遲參數(shù)
CLR P1.4   ;3.3V過(guò)壓保護(hù)RELAY ON
LCALL DELAY   ;調(diào)用延遲參數(shù)
SETB P1.4   ;3.3V過(guò)壓保護(hù)RELAY OFF
LCALL DELAY   ;調(diào)用延遲參數(shù)
LCALL PS   ;PS-ON開(kāi)關(guān)啟動(dòng)
JB P0.1,NG   ;有PG嗎?有PG進(jìn)行下一步測(cè)試,沒(méi)PG就停止測(cè)試,FALL燈亮,蜂鳴器長(zhǎng)鳴
JNB P0.1,L5   ;檢測(cè)到PG信號(hào),可以進(jìn)行下一步測(cè)試
L5: CLR P1.5   ;5V過(guò)壓保護(hù)RELAY ON
LCALL DELAY   ;調(diào)用延遲參數(shù)
SETB P1.5   ;5V過(guò)壓保護(hù)RELAY OFF
LCALL DELAY   ;調(diào)用延遲參數(shù)
LCALL PS   ;PS-ON開(kāi)關(guān)啟動(dòng)
JB P0.1,NG   ;有PG嗎?有PG進(jìn)行下一步測(cè)試,沒(méi)PG就停止測(cè)試,FALL燈亮,蜂鳴器長(zhǎng)鳴
JNB P0.1,L6   ;檢測(cè)到PG信號(hào),可以進(jìn)行下一步測(cè)試
L6: CLR P1.6   ;12V過(guò)壓保護(hù)RELAY ON
LCALL DELAY   ;調(diào)用延遲參數(shù)
SETB P1.6   ;12V過(guò)壓保護(hù)RELAY OFF
LCALL DELAY   ;調(diào)用延遲參數(shù)
LCALL PS   ;PS-ON開(kāi)關(guān)啟動(dòng)
SETB P0.0      ;切換到重載準(zhǔn)備測(cè)試OCP
LCALL DELAY     ;調(diào)用延遲參數(shù)
JB P0.1,NG   ;有PG嗎?有PG進(jìn)行下一步測(cè)試,沒(méi)PG就停止測(cè)試,FALL燈亮,蜂鳴器長(zhǎng)鳴
JNB P0.1,PASS ;檢測(cè)到PG信號(hào),可以進(jìn)行下一步測(cè)試,PASS燈亮,進(jìn)入自動(dòng)脫P(yáng)IN程序
PASS: CLR P0.2      ;PASS燈亮并拖PIN
DELAY: MOV R5,#40    ;延時(shí)時(shí)間0.4S
D1: MOV R6,#20
D2: MOV R7,#248
DJNZ R7,$
DJNZ R6,D2
DJNZ R5,D1
RET
PS: CLR P1.1   ;位向反
LCALL DELAY   ;調(diào)用延遲
SETB P1.1   ;位向復(fù)位
RET
NG: CLR P1.7      ;位向反
RET
END
0
回復(fù)
lmmm
LV.4
20
2006-12-15 22:37
@henan123
為什么用與ANL和或ORL可以把BCD轉(zhuǎn)換成ASC呢
不要再問(wèn)這樣簡(jiǎn)單的問(wèn)題了,動(dòng)動(dòng)腦筋.先查一下ASCII碼表.BCD前面OR上3就是ASCII碼
0
回復(fù)
yangyin
LV.2
21
2006-12-17 12:16
@liwanli
START:JNBP0.1,L1  ;有PG嗎?有PG就進(jìn)行下一步測(cè)試L1:CLRP1.0  ;3.3V短路RELAYONLCALLDELAY  ;調(diào)用延遲參數(shù)SETBP1.0  ;3.3V短路RELAYOFFLCALLDELAY  ;調(diào)用延遲參數(shù)LCALLPS  ;PS-ON開(kāi)關(guān)啟動(dòng)JBP0.1,NG  ;有PG嗎?有PG進(jìn)行下一步測(cè)試,沒(méi)PG就停止測(cè)試,FALL燈亮,蜂鳴器長(zhǎng)鳴JNBP0.1,L2  ;檢測(cè)到PG信號(hào),可以進(jìn)行下一步測(cè)試L2:CLRP1.2  ;5V短路RELAYONLCALLDELAY  ;調(diào)用延遲參數(shù)SETBP1.2  ;5V短路RELAYOFFLCALLDELAY  ;調(diào)用延遲參數(shù)LCALLPS  ;PS-ON開(kāi)關(guān)啟動(dòng)JBP0.1,NG  ;有PG嗎?有PG進(jìn)行下一步測(cè)試,沒(méi)PG就停止測(cè)試,FALL燈亮,蜂鳴器長(zhǎng)鳴JNBP0.1,L3  ;檢測(cè)到PG信號(hào),可以進(jìn)行下一步測(cè)試L3:CLRP1.3  ;12V短路RELAYONLCALLDELAY  ;調(diào)用延遲參數(shù)SETBP1.3  ;12V短路RELAYOFFLCALLDELAY  ;調(diào)用延遲參數(shù)LCALLPS  ;PS-ON開(kāi)關(guān)啟動(dòng)JBP0.1,NG  ;有PG嗎?有PG進(jìn)行下一步測(cè)試,沒(méi)PG就停止測(cè)試,FALL燈亮,蜂鳴器長(zhǎng)鳴JNBP0.1,L4  ;檢測(cè)到PG信號(hào),可以進(jìn)行下一步測(cè)試L4:CLRP0.0      ;切換到輕載測(cè)試OVPLCALLDELAY    ;調(diào)用延遲參數(shù)CLRP1.4  ;3.3V過(guò)壓保護(hù)RELAYONLCALLDELAY  ;調(diào)用延遲參數(shù)SETBP1.4  ;3.3V過(guò)壓保護(hù)RELAYOFFLCALLDELAY  ;調(diào)用延遲參數(shù)LCALLPS  ;PS-ON開(kāi)關(guān)啟動(dòng)JBP0.1,NG  ;有PG嗎?有PG進(jìn)行下一步測(cè)試,沒(méi)PG就停止測(cè)試,FALL燈亮,蜂鳴器長(zhǎng)鳴JNBP0.1,L5  ;檢測(cè)到PG信號(hào),可以進(jìn)行下一步測(cè)試L5:CLRP1.5  ;5V過(guò)壓保護(hù)RELAYONLCALLDELAY  ;調(diào)用延遲參數(shù)SETBP1.5  ;5V過(guò)壓保護(hù)RELAYOFFLCALLDELAY  ;調(diào)用延遲參數(shù)LCALLPS  ;PS-ON開(kāi)關(guān)啟動(dòng)JBP0.1,NG  ;有PG嗎?有PG進(jìn)行下一步測(cè)試,沒(méi)PG就停止測(cè)試,FALL燈亮,蜂鳴器長(zhǎng)鳴JNBP0.1,L6  ;檢測(cè)到PG信號(hào),可以進(jìn)行下一步測(cè)試L6:CLRP1.6  ;12V過(guò)壓保護(hù)RELAYONLCALLDELAY  ;調(diào)用延遲參數(shù)SETBP1.6  ;12V過(guò)壓保護(hù)RELAYOFFLCALLDELAY  ;調(diào)用延遲參數(shù)LCALLPS  ;PS-ON開(kāi)關(guān)啟動(dòng)SETBP0.0      ;切換到重載準(zhǔn)備測(cè)試OCPLCALLDELAY    ;調(diào)用延遲參數(shù)JBP0.1,NG  ;有PG嗎?有PG進(jìn)行下一步測(cè)試,沒(méi)PG就停止測(cè)試,FALL燈亮,蜂鳴器長(zhǎng)鳴JNBP0.1,PASS;檢測(cè)到PG信號(hào),可以進(jìn)行下一步測(cè)試,PASS燈亮,進(jìn)入自動(dòng)脫P(yáng)IN程序PASS:CLRP0.2      ;PASS燈亮并拖PINDELAY:MOVR5,#40    ;延時(shí)時(shí)間0.4SD1:MOVR6,#20D2:MOVR7,#248DJNZR7,$DJNZR6,D2DJNZR5,D1RETPS:CLRP1.1  ;位向反LCALLDELAY  ;調(diào)用延遲SETBP1.1  ;位向復(fù)位RETNG:CLRP1.7      ;位向反RETEND
專業(yè)單片機(jī)培訓(xùn):
培訓(xùn)內(nèi)容如下:
1:培訓(xùn)的單片機(jī)有51,EMC,HOLTEK,NTK,SONIX,samsung,PIC
2:匯編語(yǔ)言程序的程序結(jié)構(gòu),常用的子程序的編寫(xiě)規(guī)范.
3:常用的電路的程序編寫(xiě),如RC測(cè)溫程序,單片機(jī)的I/O做AD轉(zhuǎn)換,軟件
   生成PWM等.
4:我自己編寫(xiě)了一套單片機(jī)匯編語(yǔ)言,適用于各種單片機(jī),以免大家學(xué)習(xí)多種單片機(jī)的
    的煩惱,浪費(fèi)精力和時(shí)間.
     就C語(yǔ)言一樣,不同的單片機(jī)C語(yǔ)言的程序都可以用,
     只需修改單片機(jī)特定的功能,如計(jì)數(shù)器的配置,AD轉(zhuǎn)換的配置
     PWM,I/O口的配置等.修改之后就可以把單片機(jī)匯編程序放到任何一種單片機(jī)
    了.
聯(lián)系電話,深圳南山.13322927938,QQ:237035124,e_mail:  mcu12345@163.com
0
回復(fù)
發(fā)