Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

Проста програма, симулирана с Proteus
http://mcu-bg.com/mcu_site/viewtopic.php?f=7&t=8587
Страница 1 от 1

Автор:  lifenergy [ Съб Фев 26, 2011 5:37 pm ]
Заглавие:  Проста програма, симулирана с Proteus

4 команди, а 2 от тях не се изпълняват : (
ето кода на програмата :


;This program is about to test blinking diode
;Version:1.00 Date: 26.2.2011 MCU: PIC16F84A
;Made by: Nikolay Yanakiev

PROCESSOR 16F84A
#include "p16f84a.inc"

__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC

; Declaring variables

Cblock 0x0C
WCYCLE
PRESCwait
endc

org 0x00
goto Main

org 0x04
goto Main

#include "bank.inc"
;BANK0 macro
;bcf STATUS,RP0 ;Select memory bank 0
;endm

;BANK1 macro
;bsf STATUS,RP0 ;Select memory bank 1
;endm
#include "WAIT.inc"
; ***** Declaring constants *****
;
; CONSTANT PRESCstd = .1 ;standard prescaler value for TMR0
;
;***** MACROS *****
;
;WAIT macro timeconst_1
; movlw timeconst_1
; call WAITstd
; endm
;
;WAITX macro timeconst_2, PRESCext
; movlw timeconst_2
; movwf WCYCLE ;set the delay time period
; movlw PRESCext ;write specific prescaler value
; call WAIT_x
; endm
;
;***** Subprograms *****
;
;WAITstd
; movwf WCYCLE ;set the delay time period
; movlw PRESCstd ;write specific prescaler value
;WAIT_x
; clrf TMR0
; BANK1 ;need to include bank.inc
; movwf OPTION_REG ;assign the prescaler to TMR0 timer
; BANK0 ;need to include bank.inc
;
;WAITa bcf INTCON,T0IF ;erase TMR0 overflow flag
;WAITb btfss INTCON,T0IF ;check whether it is erased, skip if it isn't
;
; goto WAITb ;Wait loop
; decfsz WCYCLE,1 ;repeat the loop if dellay period
; ;has not run out
; goto WAITa
; RETURN

Main
clrf WCYCLE
clrf PRESCwait

BANK1
movlw 0x00
movwf TRISB

clrf PORTB

Loop
movlw 0xff
movwf PORTB
WAIT .200
movlw 0x00
movwf PORTB
WAIT .200
goto Loop

End


резултатът, който получавам се вижда на прикачения файл - закъсненията не се получават. отчитам го от графиката на тока - тя е непрекъсната. моля, помогнете ми с идеи и предложения какво не съм направил както трябва. ако проблема е в програмата много ще се израдвам :D, защото само чакам да ми дойде бредборда от Китай и започвам истинските тестове : ) (втори месец пътува обаче :( І

Прикачени файлове:
blink diode.jpg
blink diode.jpg [ 144.44 KiB | Прегледано 788 пъти ]

Автор:  fan [ Съб Фев 26, 2011 7:10 pm ]
Заглавие: 

...
BANK1
movlw 0x00
movwf TRISB
BANK0
clrf PORTB
...
:)

Автор:  lifenergy [ Съб Фев 26, 2011 7:30 pm ]
Заглавие: 

fan написа:
...
BANK1
movlw 0x00
movwf TRISB
BANK0
clrf PORTB
...
:)


наглед толкова просто ... благодаря ти, човече, златен си ! програмата си бачка вече, даже анимация има ;)

Страница 1 от 1 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/