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

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

花50元可以幫我解決這個程序嗎?

作者:lulu99 欄目:單片機(jī)
花50元可以幫我解決這個程序嗎?
     我第一次用PIC單片機(jī)做程序,這個程序要實(shí)現(xiàn)以下功能:
1。利用RTCC記數(shù),RTCC利用220V電源的頻率自增。
2。每一秒RB4控制一個發(fā)光二極管閃爍一次
3。每二分鐘控制RA0控制一個繼電器動作一次
4。每12小時(shí)RA1控制一個電磁閥動作一次

  我怎么也找不出有什么毛。
請高手看看:
  list p=16C54
#include <p16c5x.inc>

        ORG     000H
MAIN:   NOP
        CLRF    1
        CLRWDT
      
L1:     CLRF    08H       ;1S_FLASH  flag
        CLRF    09H       ;gass_SWITCH flag  
        CLRF    0AH       ;water_SWITCH flag
        CLRF    0BH       ;second  counter
        CLRF    0CH       ;minuter counter
        CLRF    0DH       ;hour    counter
        CLRF    0EH       ;gass_delay  counter
        CLRF    0FH       ;water_delay counter

        MOVLW   04H
        TRIS    5         ;RA 0000 0100
        MOVLW   0FH
        TRIS    6         ;RB 0000 1111
        MOVLW   3FH
        OPTION            ;rtcc  PULSE from 50hz ,WDT  1:128  =2.5S
                 
L2:     NOP               ;capture  pointer
        NOP
        NOP
       
        MOVLW   32H        
        SUBWF   01H,   0  ; f01h-w--->w 32H=50 50*0.02=1S
        BTFSS   03H,   0  ;if "c"=0 show  (f1) <(w)
        GOTO    L2        ; waitting  until  1s     

        CLRWDT
        CLRF    1  
        
        INCF    0BH, 1    ;second conter add 1

        BTFSC   0AH,0     ;check whether opened water_SWITCH
        INCF    0FH,1     ;if opened water_delaycounter add 1
        
        MOVLW   02H       ;check whether  2s arrived
        SUBWF   0FH,0
        BTFSS   03H,0     ;if "c"=0 show  (f1) <(w)
        GOTO     L3    

        CLRF    0FH      ;water_delay 2S arrived
        BCF     0AH,0  
        BSF     5,1      ;CLOSE  water_SWITCH
            
         
L3:     MOVLW   01H       ; every 1s rb4 FLASH
        XORWF   08H,1      
        BTFSC   08H,0
        BCF     6,4
        BTFSS   08H,0
        BSF     6,4

;************************************************************************************************
        MOVLW   3CH      ;check whether  1 minuter  arrived
        SUBWF   0BH,0
        BTFSS   03H,2    ;if "z"=1 show (f0bh)=(w)
        GOTO    L2  

        CLRF    0BH       ;1 minute  arrived
        INCF    0CH ,1      ;minuter counter add1
        INCF    0EH ,1     ;gass_delay counter add 1
        
        MOVLW   02H       ;if 2 minute arrived  set gass_SWITCH flag
        SUBWF   0EH,0
        BTFSS   03H,2
        GOTO    L4  

        CLRF    0EH
        MOVLW   01H       ;2 minuter arrived SWITCH gas_SWITCH
        XORWF   09H,1
        BTFSC   09H,0
        BSF     5,0
 
2樓: >>參與討論
liangyh88
請注意“體選位”的設(shè)置
你這個程序通過軟件仿真來調(diào)試一下是比較容易的,通過仿真比較容易發(fā)現(xiàn)一些簡單的問題,以便解決

3樓: >>參與討論
ddddgggg
不知接RTCC的硬件上有沒有濾波?
因?yàn)殡娏W(wǎng)中雜波既燥聲干擾很多,而且,地區(qū)不同50HZ的頻率也有小差異而導(dǎo)致計(jì)時(shí)累計(jì)不準(zhǔn)確。

4樓: >>參與討論
shaoguang
只要不串進(jìn)大電流,I/O口是沒有問題的 他是ST的
 
5樓: >>參與討論
lulu99
主要問題
我主要向大家問以下問題:
L2:     NOP               ;capture  pointer
        NOP
        NOP
       
        MOVLW   32H        
        SUBWF   01H,   0  ; f01h-w--->w 32H=50 50*0.02=1S
        BTFSS   03H,   0  ;if "c"=0 show  (f1) <(w)
        GOTO    L2        ; waitting  until  1s     

        CLRWDT
        CLRF    1  
        
   1。以上程序段利用RTCC對50HZ記數(shù)到 32H即 50*1/50=1s 有沒有問題?
我不要求記數(shù)太精確。

   2。采用RTCC記數(shù),分頻器分配給WDT ,WDT 預(yù)分頻為1:128

   是不是說 WDT最長 128*0.02=2.56s復(fù)位

   3。我手頭沒有防真器。PIC16C54是不是只有JW(UVEPROM)與RC(OTP)
兩種 54有沒有E2PROM?

       勞駕大家了!
    

6樓: >>參與討論
H熊
賦初值的地方不對
應(yīng)在循環(huán)外面

7樓: >>參與討論
lockma
PIC單片機(jī)程序
其實(shí)不要求記數(shù)太精確,可不用 50Hz 的電源當(dāng)信號,采用 4MHZ 的晶振,(或陶瓷振蕩),直接用 RTCC 計(jì)數(shù),簡簡單單的程序,就可得到 千分之2 的誤差,(每千秒的誤差在兩秒之內(nèi)).
采用 4MHZ 的晶振時(shí),把 Option 的 RTCC 分頻比率設(shè)為 64,在將 RTCC 參數(shù)設(shè)為 '計(jì)數(shù) 156', 這樣便可得到 9.984ms 。
(1/4.00) * 4 = 1us
1 * 64 = 64us
64us * 156 = 9984us = 9.984ms
把 9.984 ms 當(dāng)做 10ms 去計(jì)數(shù),就可得到 0.2 % 誤差的時(shí)間計(jì)數(shù)器.(0.16%)

☆☆☆ 若要做到 低于  "十萬分之一" 以下的誤差,只要將晶振改為 4.096 MHz 的頻率晶振,即可輕輕松松的達(dá)到目地.


參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
與PIC無關(guān)的問題
向各位大蝦請教USB傳輸協(xié)議
兩個不共地的單片機(jī)通信怎么隔離
再論pic指令
三句的程序竟調(diào)不通,求救
免費(fèi)注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號