我需要帮助了解这个时延码!

G

Ghalebi

Guest
[颜色=蓝色]萨拉姆大家好,我是用一个4 MHz的振荡器一PIC16F84A某种目的..喂,有人用下面的代码给我,以便制定一个5秒的延迟.. [代码],5秒钟的延迟。 DELAY5 CLRF TMR0的,启动TMR0的。 LOOPB MOVF TMR0的,瓦;读TMR0的探索INQUIRY瓦特SUBLW和0.160,时间 - 160 BTFSS状态,ZEROBIT。检查探源转到LOOPB;差异不为零RETLW 0,时间为160,返回[/代码]他以为频率振荡器的是32千赫..我需要了解他是如何使他的假设之间的频率和数量160获得5秒延时一个关系.. TMR0的设置为1:256 ..任何形式的帮助appriciated ..在此先感谢:)[/彩色]
 
fosc的内部时钟为32 768Hz,MCU时钟分频器1:256为FOSC / 4 = 8192Hz,从预分频器的输出8192Hz / 256 = 32Hz周期为T = 1 /女= 1 / 32Hz = 0,03125的延时为T × 160 = 0, 03125s × 160 = 5秒此代码片段是坏,零is'nt最好的考验。
 
感谢名单了很多人,所以清楚..但你喜欢的片段didn't,可你给乌尔建议,以改善它..非常感谢:)
 
下面是代码:[代码] 5秒钟的延迟,fosc的32 768Hz DELAY5 CLRF TMR0的;清除TMR0的。 LOOPB MOVF TMR0的,瓦;读TMR0的探索INQUIRY瓦特SUBLW和0.160,时间 - 160 BTFSS状态,ç,检查不能借转到LOOPB; RETLW 0,时间为160,返回[/代码]它是低预分频因子可行了。 ,没有无限循环。
 
再次感谢主席先生,但检查的幻灭与进位位的差异,而不是零!和怎么样,如果我工作为FOSC = 4 MHz的..问候:)
 
[代码];---------变量定义的#define RAM_Start 0x20 CBLOCK RAM_Start counterLo counterMi counterHi ENDC ;------------------------ ----------------------;为FOSC = 4MHz时,延迟4,999994 s ;------------------ ---------------------------- delay5 2(从电话)一条MOVLW 0x70; 3 movwf counterLo 4一条MOVLW 0x10; 5 movwf counterMi;六一条MOVLW 0xF9; 7 movwf counterHi,8环incf counterLo,女,1 btfsc状态和Z 3 incf counterMi,女4 btfsc状况和Z 6 incf counterHi; 7 btfss状态和Z,9页转到循环; 11 retlw 0x00 ; 10 [/代码]
 

Welcome to EDABoard.com

Sponsor

Back
Top