PDA

View Full Version : help! code ko chạy


luongnhut
09-01-2011, 11:54 AM
Em có 2 đoạn code sau
Đoạn viết bằng c sau khi nạp thì chạy tốt:
#include <16f877a.h>
#include <def_877a.h>
#device *=16 ADC=8
#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT
#use delay(clock=20000000)
void main()
{
// Thiet lap che do cho PORTB
TRISB = 0x00;
PORTB = 0xFF;
While(1)
{
PORTB = 0;
delay_ms(250);
PORTB = 0xFF;
delay_ms(250);
}}

đoạn viết bằng asm sau khi nạp thì không chạy(biên dich không có lỗi) bác nào giúp e với
Processor P16f877a
include <P16f877a.inc>
__Config _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_OFF & _HS_OSC & _WRT_OFF & _LVP_OFF & _CPD_OFF

de1 equ 0x10
de2 equ 0x11
org 0x00
goto start

start org 0x05
bcf STATUS,RP0
bsf STATUS,RP1

clrf TRISB
bcf STATUS,RP0
bcf STATUS,RP1
be movlw 0x00
movwf PORTB
call delay
movlw 0xff
movwf PORTB
call delay
goto be

delay clrf de1
da2 clrf de2
da1 decfsz da2
goto da1
decfsz da1
goto da2
return
end


e xài 16f877a, dao động 20mHz

vidieukhiencdn
09-01-2011, 01:01 PM
Bạn sửa lại ct delay thử:

delay clrf de1
da2 clrf de2
da1 decfsz de2
goto da1
decfsz de1
goto da2
return
end

luongnhut
09-01-2011, 10:42 PM
mình đã tìm ra nguyên nhân rồi
1 phần do ct con delay
nhưng nguyên nhân chính là thanh ghi 10h, 11h là thanh ghi chức năng nên không được sử dụng như trên được