音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費(fèi)注冊(cè) 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場(chǎng)網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

單片機(jī)為何不能連續(xù)讀取參數(shù)

作者:tananzhu 欄目:技術(shù)交流
單片機(jī)為何不能連續(xù)讀取參數(shù)

我做了一個(gè)用TLC549做串行模數(shù)轉(zhuǎn)挽實(shí)驗(yàn),開始我編寫的程序?qū)崿F(xiàn)我的要求,能在運(yùn)行的情況下,讀取變化的參數(shù)(用變阻器來變化它的輸入電壓ANIN),后來我為了用轉(zhuǎn)挽的數(shù)來控制PWM,用示波器來觀察PWM,但后來就不能連續(xù)讀取參數(shù),只能在復(fù)位后讀取參數(shù);我開始的程序如下:
CS    BIT  P1.2
DAT    BIT  P1.1
CLK    BIT  P1.0
AD_DATA    DATA  30H
    ORG  0000H
    AJMP  MAIN

    ORG  0100H
MAIN:    MOV  SP,#60H
    ACALL  TLC549_ADC
    MOV  R7,#0
    DJNZ  R7,$
    ACALL  TLC549_ADC  
    MOV  AD_DATA,A
    
    mov   p0,a
      
    
        
    
    sJMP  MAIN
 TLC549_ADC:   cLR  A  
    CLR  CLK
    CLR  CS  ;Ñ¡ÖÐTLC549
    MOV  R6,#8

TLCAD_L1:      SETB  CLK
    NOP  
       NOP
    MOV  C,DAT
    RLC  A
       CLR  CLK  
    NOP
    DJNZ  R6,TLCAD_L1
    mov   r1,#250
    djnz  r1,$

    setb  CS  
      setb  CLK
    RET
我的后來程序如下:
CS    BIT  P1.2
DAT    BIT  P1.1
CLK    BIT  P1.0
AD_DATA    DATA  30H
    ORG  0000H
    AJMP  MAIN

    ORG  0100H
MAIN:    MOV  SP,#60H
    ACALL  TLC549_ADC
    MOV  R7,#0
    DJNZ  R7,$
    ACALL  TLC549_ADC  
    MOV  AD_DATA,A
    
    mov   p0,a
      
    acall  buzz
         acall  dlay
    clr  a
    sJMP  maiN

TLC549_ADC:   cLR  A  
    CLR  CLK
    CLR  CS  ;Ñ¡ÖÐTLC549
    MOV  R6,#8

TLCAD_L1:  SETB  CLK
    NOP  
        NOP
    MOV  C,DAT
    RLC  A
           CLR  CLK  
    NOP
    DJNZ  R6,TLCAD_L1
    mov   r1,#250
    djnz  r1,$

    setb  CS  
      setb  CLK
    RET
dlay:     
         mov r0,#250
;dlay1:     mov r1,#250
         djnz r2,dlay2
         djnz r1,dlay1
    djnz r0,dlay
       
    ret
    
buzz:    
     
        mov  r3,a
        setb  p3.5
       mov  r4,4
      djnz  r4,$
      djnz  r3,$

      mov  r3,a
      clr  p3.5
      mov  r4,4
      djnz r4,$
      djnz r3,$
    
       
      ajmp buzz
      ret
      ;
    END

請(qǐng)各位高手幫我看看,我已經(jīng)思考了好久,沒有結(jié)果啊 我相信你們能找出錯(cuò)誤所在。



2樓: >>參與討論
微風(fēng)
A最好每讀一位都保存一次
 
3樓: >>參與討論
conwh
這段程序能夠通過編譯?
dlay:     
         mov r0,#250
;dlay1:     mov r1,#250
         djnz r2,dlay2
         djnz r1,dlay1
    djnz r0,dlay
       
    ret
==========================
DLAY1和DLAY2在哪里?
再說了DJNZ  R0,DLAY不是進(jìn)入了死循環(huán)了

* - 本貼最后修改時(shí)間:2006-8-13 0:29:25 修改者:conwh

4樓: >>參與討論
tananzhu
延時(shí)是不是有嚴(yán)格的要求
我做了一個(gè)實(shí)驗(yàn),程序如下:
CS        BIT    P1.2
DAT        BIT    P1.1
CLK        BIT    P1.0
AD_DATA        DATA    30H
        ORG    0000H
        AJMP    MAIN

        ORG    0100H
MAIN:        MOV    SP,#60H
        ACALL    TLC549_ADC
        MOV    R7,#0
        DJNZ    R7,$
        ACALL    TLC549_ADC    
        MOV    AD_DATA,A
        
        mov     p0,a
                  nop
                  nop
             
        acall   buzz
                  acall   dlay
        sJMP    main
TLC549_ADC:       cLR    A    
        CLR    CLK
        CLR    CS    
        MOV    R6,#8

TLCAD_L1:      SETB    CLK
        NOP    
               NOP
        MOV    C,DAT
        RLC    A
               CLR    CLK    
        NOP
        DJNZ    R6,TLCAD_L1
        mov     r1,#250
        djnz    r1,$

        setb    CS    
            setb    CLK
        RET

dlay:       
                 mov  r1,#250

                 djnz r0,dlay
  
        ret
        
buzz:    
          
               mov    r3,a
               setb   p3.5
             mov    r4,4
           djnz   r4,$
           djnz   r3,$

           mov   r3,a
           clr   p3.5
           mov   r4,4
           djnz  r4,$
           djnz  r3,$
     
         
          
           ret
           ;
        END

當(dāng)把一付給R1延時(shí),程序有用,當(dāng)把大于1的數(shù)付給R1延時(shí),程序就沒用了。
請(qǐng)各位幫忙看一下,我非常感激

5樓: >>參與討論
tananzhu
非常感謝
我非常感激上面兩位的提醒,我解決了一個(gè)問題,又發(fā)現(xiàn)了一個(gè)問題,寫在上面,請(qǐng)你們幫我看看

6樓: >>參與討論
conwh
RE
dlay:       
                 mov  r1,#250

                 djnz r0,dlay
  
        ret
============================
R1沒有什么用處,R0為不確定值

7樓: >>參與討論
tananzhu
對(duì)不起
不好意思我寫錯(cuò)了,上面的R0就是R1,麻煩你

8樓: >>參與討論
conwh
那不還是個(gè)死循環(huán)?
應(yīng)為:

DLAY:
    MOV  R1,#250
    DJNZ R1,$



DLAY:
    MOV  R1,#250
DLAY1:
    DJNZ R1,DLAY1
    RET


9樓: >>參與討論
dai_weis
我只有C語言的程序,你可以參考
 

* - 本貼最后修改時(shí)間:2006-8-13 20:17:45 修改者:dai_weis

http://blog.21ic.com/more.asp?NAME=dai_weis&id=23864

10樓: >>參與討論
hotpower
被acall  buzz搞倒塌了~~~寫匯編不用push/pop實(shí)在暈~~~
 
參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
想把光驅(qū)改成一個(gè)CD轉(zhuǎn)盤,不明白其數(shù)字輸出口
請(qǐng)教大家一個(gè)NCO的問題
基于QuartusII6.0的狀態(tài)機(jī)問題
電磁繼電器使用一問
關(guān)于數(shù)字機(jī)頂盒的維修
免費(fèi)注冊(cè)為維庫電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào)