性无码一区二区三区在线观看,少妇被爽到高潮在线观看,午夜精品一区二区三区,无码中文字幕人妻在线一区二区三区,无码精品国产一区二区三区免费

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

匯編高手請進

小弟剛開始學單片機,這個延時程序搞不懂,請高手指點.
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
這個程序為什么不行呢?請高手指點
全部回復(20)
正序查看
倒序查看
2006-11-27 12:24
樓主,你要延時多久呀,我也是剛學的哈!!
我大概算了一下,你的延時達到25.5分鐘(12M).
這樣你要看燈的亮和滅要等上半個小時喲.
0
回復
henan123
LV.6
3
2006-11-27 14:18
@ding86361953
樓主,你要延時多久呀,我也是剛學的哈!!我大概算了一下,你的延時達到25.5分鐘(12M).這樣你要看燈的亮和滅要等上半個小時喲.
哈哈,是啊后來改了一點,大概4-5秒就可以了,問題已解決,謝了
0
回復
henan123
LV.6
4
2006-11-30 15:56
@henan123
哈哈,是啊后來改了一點,大概4-5秒就可以了,問題已解決,謝了
請問單句的加法,乘法指令可以在KEIL上執(zhí)行嗎?如果可以,請問應該如何操作?
0
回復
henan123
LV.6
5
2006-12-02 10:15
@henan123
請問單句的加法,乘法指令可以在KEIL上執(zhí)行嗎?如果可以,請問應該如何操作?
例,某系統(tǒng)外擴展了8K的RAM,要求把內部RAM20H單元的內容傳送到外部RAM800H單元中
MOV  DPTR,#800H
MOV  A,#20H
MOVX @DPTR,A
請問這樣可以嗎
0
回復
2006-12-02 12:19
@henan123
例,某系統(tǒng)外擴展了8K的RAM,要求把內部RAM20H單元的內容傳送到外部RAM800H單元中MOV  DPTR,#800HMOV  A,#20HMOVX@DPTR,A請問這樣可以嗎
這方面的我也不太熟悉哈,現(xiàn)在工作忙好久沒看了哈!!!
你這樣的寫發(fā)好象不對!!!
0
回復
hotpower
LV.5
7
2006-12-04 01:30
@henan123
例,某系統(tǒng)外擴展了8K的RAM,要求把內部RAM20H單元的內容傳送到外部RAM800H單元中MOV  DPTR,#800HMOV  A,#20HMOVX@DPTR,A請問這樣可以嗎
MOV  DPTR,#800H
MOV  A,20H
MOVX @DPTR,A



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

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