天堂草原最受欢迎的角色,天堂动漫,天堂在线,色天堂下载,天堂中文在线资源,亚洲男人天堂

技術熱線: 4007-888-234
設計開發(fā)

專注差異化嵌入式產品解決方案 給智能產品定制注入靈魂給予生命

開發(fā)工具

提供開發(fā)工具、應用測試 完善的開發(fā)代碼案例庫分享

技術支持

從全面的產品導入到強大技術支援服務 全程貼心伴隨服務,創(chuàng)造無限潛能!

新品推廣

提供新的芯片及解決方案,提升客戶產品競爭力

新聞中心

提供最新的單片機資訊,行業(yè)消息以及公司新聞動態(tài)

何謂讀-修改-寫,導致的問題及其解決之道

更新時間: 2019-03-22
閱讀量:1885

十年單片機開發(fā)方案公司深圳英銳恩分享何謂讀-修改-寫,導致的問題及其解決之道 。
只要PICmicro的命令,所處理的FILE (暫存器,內存,和I/O的統(tǒng)稱),其最終的值,和命令處理前的值有關,那么,這種命令便是所謂的讀-修改-寫命令。因為這類命令的操作,可以再細分為三個小步驟,即是讀(READ),修改(MODIFY),接著才是寫(WRITE)。

如:ADDWF,DECF,IORWF,XORWF,BSF,BCF,‥‥等等皆是。

在使用這類命令的時候,如果所處理的FILE是I/O, 就必須要特別小心。因為,假設任務電壓為5V;而您在PORTB的8支腳,沒有串接電阻,分別接了8顆二極管(也許是LED)到地。如果,您在先前下了"BSF PORTB,0"這條命令,使得PORTB第0腳上的LED亮了。當您再運行了”BSF PORTB,1"這條命令后,雖然PORTB第1腳上的LED亮了,但是,PORTB第0腳上的LED卻會熄掉。原因是因為,運行”BSF PORTB,1”時,會先將整個PORTB的值往回讀,而它讀到的PORTB第0腳,卻是相當於低電位(被二極管拉為0.7V)。當它再把整個PORTB的值寫出去的時候,PORTB第0腳就被寫成低電位,自然燈就熄了。

解決之道是:串電阻,或者不要直接對I/O作讀-修改-寫命令。

另外還有一類要注意的狀況是:如當您將”BSF PORTB,0”和”BSF PORTB,1”兩條命令連在一起,沒有空運行時,縱使您沒有上一段所述線路設計不良之狀況,有時候您也會發(fā)現PORTB, 0的高電位也會不見了。導致這個現象的原因是:因為也許您這兩支腳的外面接了長導線,有相當大的電容、電感性會阻止電位的變化;而且,PIC命令運行是在最后1/4周期時”寫出”,而在第一個1/4周期時”讀入”,PORTB,0還來不及升至高電位,便被下一個命令讀回去了。

解決之道是:通常在兩道命令間插入個NOP命令就可以了

(文源網絡,侵刪)

联系我们: 宁都县| 汤阴县| 高雄县| 禹城市| 图木舒克市| 丽江市| 马关县| 那曲县| 改则县| 宝清县| 辉南县| 玉树县| 田林县| 微博| 巴南区| 石柱| 汤阴县| 富民县| 建阳市| 玉龙| 大连市| 壶关县| 仁化县| 麻栗坡县| 邵东县| 佛山市| 平定县| 息烽县| 衡阳县| 乌拉特后旗| 卢湾区| 衡水市| 碌曲县| 冷水江市| 余姚市| 凤山县| 大安市| 兴山县| 安岳县| 方山县| 炎陵县|