|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | 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 |
關(guān)于PIC的軟件延時(shí) |
| 作者:sfgreat 欄目:單片機(jī) |
各位大俠: 小弟用C語言做軟件延時(shí)10ms,如: void delay(void) { unsigned CHAR i; for(i=0;i<x;i++;); } 請問其中的x應(yīng)該取值多少?(PIC16F877,4MHZ晶振) 小弟先在這里拜謝各位! |
| 2樓: | >>參與討論 |
| 作者: sfgreat 于 2004/6/23 13:25:00 發(fā)布:
麻煩各位大俠想想看嘛! 這個(gè)問題很難嗎?我也知道這應(yīng)該是經(jīng)驗(yàn)值,請有這方面經(jīng)驗(yàn)的大俠賜教,小弟感涕萬分! |
|
| 3樓: | >>參與討論 |
| 作者: ttjlc 于 2004/6/23 16:12:00 發(fā)布:
自己根據(jù)晶振計(jì)算,要懂得看C編譯的匯編 12MHZ void delayMs(uint iMs) {uchar ucDelay; while(iMs) { ucDelay=248; while(ucDelay) { ucDelay--; NOP();NOP(); } iMs--; } } 對(duì)應(yīng)匯編 void delayMs(uint iMs) 155: {uchar ucDelay; 0004DC FFFF NOP 0004DE D01D BRA 0x51a 156: while(iMs) 0004E0 D013 BRA 0x508 000508 0100 MOVLB 0 00050A 51EC MOVF 0xec, W, BANKED 00050C 11EB IORWF 0xeb, W, BANKED 00050E A4D8 BTFSS 0xfd8, 0x2, ACCESS 000510 D001 BRA 0x514 000512 D001 BRA 0x516 000514 D7E6 BRA 0x4e2 157: { 158: ucDelay=248; 0004E2 0EF8 MOVLW 0xf8 0004E4 0100 MOVLB 0 0004E6 6FED MOVWF 0xed, BANKED 159: while(ucDelay) 0004E8 D005 BRA 0x4f4 0004F4 0100 MOVLB 0 0004F6 51ED MOVF 0xed, W, BANKED 0004F8 A4D8 BTFSS 0xfd8, 0x2, ACCESS 0004FA D001 BRA 0x4fe 0004FC D001 BRA 0x500 0004FE D7F5 BRA 0x4ea 160: { 161: ucDelay--; 0004EA 0E01 MOVLW 0x1 0004EC 0100 MOVLB 0 0004EE 5FED SUBWF 0xed, F, BANKED 162: NOP();NOP(); 0004F0 F000 NOP 0004F2 F000 NOP 163: } 164: iMs--; 000500 0100 MOVLB 0 000502 07EB DECF 0xeb, F, BANKED 000504 A0D8 BTFSS 0xfd8, 0, ACCESS 000506 07EC DECF 0xec, F, BANKED 165: } 166: } 000516 0012 RETURN 0 * - 本貼最后修改時(shí)間:2004-7-29 16:23:33 修改者:ttjlc |
|
| 4樓: | >>參與討論 |
| 作者: ttjlc 于 2004/6/23 16:14:00 發(fā)布:
高奇網(wǎng)站上也有一篇介紹這方面的 這是基本功 |
|
|
|
| 免費(fèi)注冊為維庫電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 www.udpf.com.cn 浙ICP證030469號(hào) |