音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 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

絕對是pic12f675有問題,我想高手們也會回答錯(cuò)

作者:sunzefeng 欄目:單片機(jī)
絕對是PIC12F675.html">PIC12F675有問題,我想高手們也會回答錯(cuò)
我最近編了一個(gè)PIC12F675程序,由于沒有仿真器,所以只能燒一次試一次,真是被害慘了,絞盡腦汁也想不出問題所在,最后做了一個(gè)簡單的程序測試了一下,發(fā)現(xiàn)應(yīng)該是芯片的問題(因?yàn)槲蚁氩怀銎湟蚶碛蓙斫忉專?br>我的簡單測試程序如下:
   org  000h
      goto  main
      org  0004h
      retfie
main:
      call  3ff        ;取晶振校正值
   bsf   STATUS,RP0
      movwf OSCCAL     ;晶振校正
   movlw b'11000000'
      movwf TRISI0       ;設(shè)置所有口為輸出
   clrw
      movwf ANSEL      ;設(shè)置所有口為數(shù)字口
   bcf   STATUS,RP0
      
      movlw 0ffh
      movwf GPIO       ;點(diǎn)亮所有燈

   bcf   GPIO,0     ;關(guān)閉為燈1
      goto  $
   end
我把675的5個(gè)口全用作數(shù)字口(除GP3),在每個(gè)引腳上接一個(gè)LED,當(dāng)然有限流電阻,燒寫設(shè)置,看門狗關(guān)閉,GP3設(shè)置為復(fù)位腳,有上拉電阻,選擇內(nèi)部4M,RC振蕩,GP4,GP5,都設(shè)為I/O口,
   請大家分析一下,最后能亮幾個(gè)燈,分別是那幾個(gè),為什么?
  如果大家沒有做過實(shí)驗(yàn)我想肯定說不出正確答案,等下我公布答案,看有沒有人能答對。
   經(jīng)過反復(fù)實(shí)驗(yàn),有問題的指令為:bcf   GPIO,0
      如果改成bcf  GPIO,1或者2,3,4,5,又會怎么?
     


* - 本貼最后修改時(shí)間:2003-7-2 16:02:26 修改者:sunzefeng

2樓: >>參與討論
martin
一大堆錯(cuò)誤
1)   movlw b'11000000'
      movwf GPIO       ;設(shè)置所有口為輸出
設(shè)置IO口方向是用movwf TRISIO這條指令,看過數(shù)據(jù)手冊嗎?
2)   movwf GPIO       ;設(shè)置所有口為輸出
   clrw
      movwf ANSEL      ;設(shè)置所有口為數(shù)字口
GPIO寄存器在BANK0,ANSEL寄存器不在BANK0,你不知道怎么切換BANK嗎?
3)GP0,GP1是內(nèi)部模擬比較器輸入腳,你還需要設(shè)置CMCON才可以關(guān)掉比較器讓IO作為輸出的,具體去看數(shù)據(jù)手冊。
4)您難道不知道MPLAB有軟件模擬的功能嗎?象這樣簡單的錯(cuò)誤分分鐘就能查出來的,用的著慘到燒芯片嗎?
5)建議不要再犯這種“睡不著覺怨床歪”的通病,多看看數(shù)據(jù)手冊。

3樓: >>參與討論
lingl2
bcf   GPIO,0前加 nop試試
 
4樓: >>參與討論
sunzefeng
剛才寫錯(cuò)了
斑主說的是,是應(yīng)該多看看數(shù)據(jù)手冊,不過我英文不好,習(xí)慣看翻譯過資料剛才是我寫錯(cuò)了,不好意思,我剛開始寫的程序是:(我開始部分是從MPLAP模板上復(fù)制下來的)

        ORG     0x000             ; processor reset
        goto    main              ; go to beginning of


                ORG     0x004             ; interrupt vector location
                retfie
main:
                call    0x3ff
                bsf     STATUS,RP0
                movwf   OSCCAL     ; update register with factory c

                movlw   b'11000000'
                movwf   TRISIO    ;設(shè)置口為輸出
                clrf    ANSEL    ;設(shè)置為數(shù)字口
                bcf     STATUS,RP0
loop:            
              movlw    0ff
              movwf    GPIO    ;所有燈亮

              call     delay

              bcf      GPIO,2   ;熄滅第3個(gè)燈
              call     delay
              
              goto     loop
;-------------delay--------------------
delay:
              movlw    0ff
              movwf    count1
set_delay1:
              movlw    0ff
              movwf    count2
set_delay11:
              decfsz   count2,f
              goto     set_delay11
              decfsz   count1,f
              goto     set_delay1
              return
                END                     ; directive 'end of program'
我的意圖是讓第3個(gè)燈一閃一閃,不過實(shí)際上,第1,2,3個(gè)燈都在閃,分析結(jié)果是:bcf  GPIO,2 把第3個(gè)息滅同時(shí),又把1,2燈也息滅了,所以我懷凝芯片有問題而且如果把bcf  GPIO,2換成其他如bcf  GPIO,3,bcf  GPIO,4,bcf  GPIO,5,第1,2,個(gè)燈都會閃

* - 本貼最后修改時(shí)間:2003-7-2 16:42:49 修改者:sunzefeng

5樓: >>參與討論
martin
沒看到我上面說的第三條嗎?
沒看到我上面說的第三條嗎?如果你不設(shè)置CMCON(內(nèi)部模擬比較器的控制寄存器),上電時(shí)默認(rèn)GP0,GP1是比較器的兩個(gè)模擬輸入口。由于“Read Modify Write”的特性(詳見精華區(qū)中的《關(guān)于“Read Modify Write”》貼 ),bcf一個(gè)口線時(shí),從GP0,GP1兩個(gè)模擬輸入腳讀到的電平是零(數(shù)據(jù)手冊里說明了),改寫回去后就輸出零了,也就是你看到的現(xiàn)象,只要執(zhí)行bcf GPIO的任何一位,GP0,GP1都會清零。
很簡單,把CMCON的低三位全部置一就好了。

6樓: >>參與討論
sunzefeng
太感謝斑主了!
按斑主說的一試,果然沒有這種現(xiàn)象了,原來這里涉及的地方這么多,哎,只能說自己是個(gè)進(jìn)底之蛙,想想我們這里的技術(shù)保密和斑主的無私奉獻(xiàn)真是太感動了

7樓: >>參與討論
eling
為什么都不好好看資料,真是無奈
 
參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
請問單片機(jī)雙字節(jié)定點(diǎn)運(yùn)算子程序哪里有下載?
PIC16LC711-04I/P的工作電壓問題
想學(xué)C編程,向高手請教
PIC16C73 異步通信問題
訂購PIC16C711
免費(fèi)注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入


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