caramoan tour package

caramoan tour package

Author Topic: 8051 Noob!!! heheh  (Read 4282 times)

Offline ATE

  • Size C Battery
  • *****
  • Posts: 225
  • Pogi/Ganda Points: 12
  • -.-
    • Volts and Bytes
Re: 8051 Noob!!! heheh
« Reply #20 on: September 18, 2009, 07:12:09 PM »
kuya, di po tuloy na compile... i looked at the library files (headers files), P1_0 talga...

here, i'm posting the whole header file:
Code: [Select]
/*--------------------------------------------------------------------------
AT89x051.H

Header file for the Atmel 89C1051U, 89C2051, 89C4051.
Copyright (c) 1988-2002 Keil Elektronik GmbH and Keil Software, Inc.
All rights reserved.
--------------------------------------------------------------------------*/

#ifndef __AT89x051_H__
#define __AT89x051_H__

/*------------------------------------------------
Byte Registers
------------------------------------------------*/
sfr SP      = 0x81;
sfr DPL     = 0x82;
sfr DPH     = 0x83;
sfr PCON    = 0x87;
sfr TCON    = 0x88;
sfr TMOD    = 0x89;
sfr TL0     = 0x8A;
sfr TL1     = 0x8B;
sfr TH0     = 0x8C;
sfr TH1     = 0x8D;
sfr P1      = 0x90;
sfr SCON    = 0x98;
sfr SBUF    = 0x99;
sfr IE      = 0xA8;
sfr P3      = 0xB0;
sfr IP      = 0xB8;
sfr PSW     = 0xD0;
sfr ACC     = 0xE0;
sfr B       = 0xF0;

/*------------------------------------------------
PCON Bit Values
------------------------------------------------*/
#define IDL_    0x01
#define STOP_   0x02
#define EWT_    0x04
#define EPFW_   0x08
#define WTR_    0x10
#define PFW_    0x20
#define POR_    0x40
#define SMOD_   0x80

/*------------------------------------------------
TCON Bit Registers
------------------------------------------------*/
sbit IT0  = 0x88;
sbit IE0  = 0x89;
sbit IT1  = 0x8A;
sbit IE1  = 0x8B;
sbit TR0  = 0x8C;
sbit TF0  = 0x8D;
sbit TR1  = 0x8E;
sbit TF1  = 0x8F;

/*------------------------------------------------
TMOD Bit Values
------------------------------------------------*/
#define T0_M0_   0x01
#define T0_M1_   0x02
#define T0_CT_   0x04
#define T0_GATE_ 0x08
#define T1_M0_   0x10
#define T1_M1_   0x20
#define T1_CT_   0x40
#define T1_GATE_ 0x80

#define T1_MASK_ 0xF0
#define T0_MASK_ 0x0F

/*------------------------------------------------
P1 Bit Registers
------------------------------------------------*/
sbit P1_0 = 0x90;
sbit P1_1 = 0x91;
sbit P1_2 = 0x92;
sbit P1_3 = 0x93;
sbit P1_4 = 0x94;
sbit P1_5 = 0x95;
sbit P1_6 = 0x96;
sbit P1_7 = 0x97;

sbit AIN0 = 0x90;       /* + Analog comparator input */
sbit AIN1 = 0x91;       /* - Analog comparator input */

/*------------------------------------------------
SCON Bit Registers
------------------------------------------------*/
sbit RI   = 0x98;
sbit TI   = 0x99;
sbit RB8  = 0x9A;
sbit TB8  = 0x9B;
sbit REN  = 0x9C;
sbit SM2  = 0x9D;
sbit SM1  = 0x9E;
sbit SM0  = 0x9F;

/*------------------------------------------------
IE Bit Registers
------------------------------------------------*/
sbit EX0  = 0xA8;       /* 1=Enable External interrupt 0 */
sbit ET0  = 0xA9;       /* 1=Enable Timer 0 interrupt */
sbit EX1  = 0xAA;       /* 1=Enable External interrupt 1 */
sbit ET1  = 0xAB;       /* 1=Enable Timer 1 interrupt */
sbit ES   = 0xAC;       /* 1=Enable Serial port interrupt */
sbit ET2  = 0xAD;       /* 1=Enable Timer 2 interrupt */

sbit EA   = 0xAF;       /* 0=Disable all interrupts */

/*------------------------------------------------
P3 Bit Registers (Mnemonics & Ports)
------------------------------------------------*/
sbit P3_0 = 0xB0;
sbit P3_1 = 0xB1;
sbit P3_2 = 0xB2;
sbit P3_3 = 0xB3;
sbit P3_4 = 0xB4;
sbit P3_5 = 0xB5;
/* P3_6 Hardwired as AOUT */
sbit P3_7 = 0xB7;

sbit RXD  = 0xB0;       /* Serial data input */
sbit TXD  = 0xB1;       /* Serial data output */
sbit INT0 = 0xB2;       /* External interrupt 0 */
sbit INT1 = 0xB3;       /* External interrupt 1 */
sbit T0   = 0xB4;       /* Timer 0 external input */
sbit T1   = 0xB5;       /* Timer 1 external input */
sbit AOUT = 0xB6;       /* Analog comparator output */

/*------------------------------------------------
IP Bit Registers
------------------------------------------------*/
sbit PX0  = 0xB8;
sbit PT0  = 0xB9;
sbit PX1  = 0xBA;
sbit PT1  = 0xBB;
sbit PS   = 0xBC;

/*------------------------------------------------
PSW Bit Registers
------------------------------------------------*/
sbit P    = 0xD0;
sbit FL   = 0xD1;
sbit OV   = 0xD2;
sbit RS0  = 0xD3;
sbit RS1  = 0xD4;
sbit F0   = 0xD5;
sbit AC   = 0xD6;
sbit CY   = 0xD7;

/*------------------------------------------------
Interrupt Vectors:
Interrupt Address = (Number * 8) + 3
------------------------------------------------*/
#define IE0_VECTOR 0  /* 0x03 External interrupt 0 */
#define TF0_VECTOR 1  /* 0x0B Timer 0 */
#define IE1_VECTOR 2  /* 0x13 External interrupt 1 */
#define TF1_VECTOR 3  /* 0x1B Timer 1 */
#define SIO_VECTOR 4  /* 0x23 Serial port */

#endif


oo nga 'no...

RC51 compiler pala yung nasa isip ko...

Philippine Electronics Forum

Re: 8051 Noob!!! heheh
« Reply #20 on: September 18, 2009, 07:12:09 PM »

Offline beginner wan

  • Diesel Generator
  • *
  • Posts: 1451
  • Pogi/Ganda Points: 46
  • Gender: Male
  • Think Positive! Matutupad yang dream mo!
    • [im]Duino
Re: 8051 Noob!!! heheh
« Reply #21 on: September 18, 2009, 11:26:30 PM »
......

sis, panay ang error ng M-IDE ko... access violation daw. eto sampol:


may special setup ka pa bang ginagawa?

isa pa nga pala, yung header files di automatic yung paghanap ng IDE. instead ganito pa ang ginagawa ko:
#include "C:\MIDE\sdcc\include\mcs51\at89x051.h"

yung error sir marce, galing yan dun sa latest na MIDE.exe. parang bug ata yan. lumalabas sakin yan pag humahaba yung comments ko sa code ko.. try mo sir marce download yung mas lumang MIDE.exe, mas ok gamitin yun..

dun naman sa header files, automatic naman sakin yan, baka dapat nasa tamang folder.. diko lang alam kung saan folder dapat, kasi matagal nako walang C eh..  :D :D :D
i;0.?QrEpM?4DEZZ]bkH{w@F<38.Jq@92Ds3KPQj60?EA7U\3M<A84J|AI.H
R@>&?Ej,@;5H)o::7KE/:?QcXf?gX'39=,Z_Q[eYXc

Philippine Electronics Forum

Re: 8051 Noob!!! heheh
« Reply #21 on: September 18, 2009, 11:26:30 PM »

Offline beginner wan

  • Diesel Generator
  • *
  • Posts: 1451
  • Pogi/Ganda Points: 46
  • Gender: Male
  • Think Positive! Matutupad yang dream mo!
    • [im]Duino
Re: 8051 Noob!!! heheh
« Reply #22 on: September 18, 2009, 11:39:32 PM »
oo sis... umaandara yun. RB0 ^= 1;

timer naman... ewan ko lang kung sa proteus. pero eto yung calculation ko. sa 12Mhz, may 1us each increment. dun sa posted code code ko, 16-bits ang intented na timer. so 1us x 65536 = 65.536ms ang bawat overflow. therefore kailangan ko ng 15-16 overflows to make a 1 second... tama ba sis?

so ganito ang ginawa ko...
Code: [Select]
#define OVERFLOW_1S 15
while(1)
{
if(TF0)
{
TF0 = 0;
overflows++;
if (overflows >= OVERFLOW_1S)
{
overflows = 0;
i++;
if (i>=8) i = 0;
P1 = MAP[i];
}
}
}

pero yung outcome, mabilis pa din... weirdly(or talagang di pa ako sanay... hehehe) kung ilagay ko OVERFLOW_1S = 150, parang tamang tama yung bilis.

......................

noted sir... i am struggling last night to make my M-IDE work. it always give a "runtime error". ewan ko po ngayong nagrestart na ako... ;D

sir marce, may suggestion po ako dun sa timer mo. try nyo nalang po magload ng 0xFFFF (which is max value ng 16-bit timer) - 10,000 = 0xD8EF sa timer registers nyo.. para sir saktong 10mSeconds yung inyong interrupt at approximately walang butal..

eto po pala sample ng timer interrupt routine ko in assembly.. 16-bit timer using timer0 to count upto 24 hours..

Code: [Select]
;------------------------interrupt service routine-----------------------------------------

    ORG TIMER0
   
    PUSH    ACC
    PUSH    PSW
   
    CLR     TR0                ; stop timer
   
    MOV    TH0,    #0FCh            ; set interrupt to occur
    MOV    TL0,    #17h            ; every 1 mSeconds
   
    SETB    TR0                ; run timer
   
    DJNZ    MILLISECONDS_LOW,    EXIT_INT        ; decrement MILLISECONDS_LOW and exit interrupt if MILLISECOND_LOW not zero
    MOV    MILLISECONDS_LOW,    #0FFh            ; if MILLISECONDS_LOW is zero, reload register with #0FF
    DJNZ    MILLISECONDS_HIGH,    EXIT_INT        ; decrement MILLISECONDS_HIGH and exit interrupt if MILLISECOND_HIGH not zero
    MOV    MILLISECONDS_HIGH,    #03h            ; if MILLISECONDS_HIGH is zero, reload register with #03h
    MOV    MILLISECONDS_LOW,    #0E8h            ; reload MILLISECONDS_LOW with #0E8h
   
    DJNZ    SECONDS,    EXIT_INT            ; decrement SECONDS and exit interrupt if SECONDS not zero
    MOV    SECONDS,    #60                ; reload SECONDS with 60
   
    DJNZ    MINUTES,    EXIT_INT            ; decrement MINUTES and exit interrupt if MINUTES not zero
    MOV    MINUTES,    #60                ; reload MINUTES with 60
   
    DJNZ    HOURS,        EXIT_INT            ; decrement HOURS and exit interrupt if HOURS not zero
    MOV    HOURS,        #24                ; reload HOURS with 24
   
EXIT_INT:
    POP    PSW
    POP    ACC


dun naman sir sa run time error, i think may problem po dyan yung location ng SDCC files nyo. maka-iba po siguro yung pwesto ng SDCC nyo sa nakalagay sa preferences nyo..


i;0.?QrEpM?4DEZZ]bkH{w@F<38.Jq@92Ds3KPQj60?EA7U\3M<A84J|AI.H
R@>&?Ej,@;5H)o::7KE/:?QcXf?gX'39=,Z_Q[eYXc

Philippine Electronics Forum

Re: 8051 Noob!!! heheh
« Reply #22 on: September 18, 2009, 11:39:32 PM »

insomartin

  • Guest
Re: 8051 Noob!!! heheh
« Reply #23 on: September 19, 2009, 01:53:11 AM »
i still can't understand.

Philippine Electronics Forum

Re: 8051 Noob!!! heheh
« Reply #23 on: September 19, 2009, 01:53:11 AM »

Offline leoren_tm

  • Size AAA Battery
  • ***
  • Posts: 87
  • Pogi/Ganda Points: 2
Re: 8051 Noob!!! heheh
« Reply #24 on: September 19, 2009, 12:48:47 PM »
hi, sa keil try using
#include <reg51.h>

sbit MY_PIN = P1^0;

MY_PIN~=MY_PIN;
MY_Delay(100);

Philippine Electronics Forum

Re: 8051 Noob!!! heheh
« Reply #24 on: September 19, 2009, 12:48:47 PM »

Offline marcelino

  • Technical People
  • Solar Power Satellite
  • *****
  • Posts: 6016
  • Pogi/Ganda Points: 258
  • ...keep moving forward! - Robinson's
Re: 8051 Noob!!! heheh
« Reply #25 on: September 19, 2009, 12:55:50 PM »
@wan, i think, tama sa location nga ng SDCC.

tapos prior kasi ng pag-install ko ng MIDE, nag-install na din ako ng SDCC... heheh ;D
uninstall ko lahat siguro, then install yung MIDE with SDCC.

;D
"Don't take life seriously. After all, no one has ever come out of it alive. -Bugs Bunny"

Offline rdpzycho

  • Technical People
  • Solar Power Satellite
  • *****
  • Posts: 10728
  • Pogi/Ganda Points: 632
  • Gender: Male
  • Respect Begets Respect
    • rdpzycho
Re: 8051 Noob!!! heheh
« Reply #26 on: September 19, 2009, 02:03:28 PM »
'yan sumagot na si wan. ;D ;D ;D
‎"Divide each difficulty into as many parts as is feasible and necessary to resolve it."
- Rene Descartes

"For every difficult problem there is always a simple answer and most of them are wrong."
- Clayton Paul

Offline beginner wan

  • Diesel Generator
  • *
  • Posts: 1451
  • Pogi/Ganda Points: 46
  • Gender: Male
  • Think Positive! Matutupad yang dream mo!
    • [im]Duino
Re: 8051 Noob!!! heheh
« Reply #27 on: September 19, 2009, 10:59:24 PM »
 ;D ;D ;D
i;0.?QrEpM?4DEZZ]bkH{w@F<38.Jq@92Ds3KPQj60?EA7U\3M<A84J|AI.H
R@>&?Ej,@;5H)o::7KE/:?QcXf?gX'39=,Z_Q[eYXc

Offline marcelino

  • Technical People
  • Solar Power Satellite
  • *****
  • Posts: 6016
  • Pogi/Ganda Points: 258
  • ...keep moving forward! - Robinson's
Re: 8051 Noob!!! heheh
« Reply #28 on: September 20, 2009, 10:15:16 AM »
thanks wan! pogi mo...

ok na ang compiler ko... nalito ng dalawa ang nakainstall na SDCC. heheh ;D
"Don't take life seriously. After all, no one has ever come out of it alive. -Bugs Bunny"

Offline beginner wan

  • Diesel Generator
  • *
  • Posts: 1451
  • Pogi/Ganda Points: 46
  • Gender: Male
  • Think Positive! Matutupad yang dream mo!
    • [im]Duino
Re: 8051 Noob!!! heheh
« Reply #29 on: September 20, 2009, 10:40:18 AM »
tnx sir marce! mabuti at ok na compiler mo..  :D :D :D
i;0.?QrEpM?4DEZZ]bkH{w@F<38.Jq@92Ds3KPQj60?EA7U\3M<A84J|AI.H
R@>&?Ej,@;5H)o::7KE/:?QcXf?gX'39=,Z_Q[eYXc

Offline clarkent

  • Lead Acid Battery
  • *******
  • Posts: 505
  • Pogi/Ganda Points: 20
  • Gender: Male
  • iehs
Re: 8051 Noob!!! heheh
« Reply #30 on: September 22, 2009, 06:35:27 PM »
mga sirs, plano ko po sanang gamitin yung ds89c450 ko from maxim. it has 6 external interrupts (ex0-ex5),i'm using mide pero ang problem po ay ang 8052 ng mide meron lang 2 external interrupts sa register file, pano po kaya magagamit yung 6 EXs?TIA
if you think you can or think you can't, you're probably right -h.ford

Offline ATE

  • Size C Battery
  • *****
  • Posts: 225
  • Pogi/Ganda Points: 12
  • -.-
    • Volts and Bytes
Re: 8051 Noob!!! heheh
« Reply #31 on: September 22, 2009, 08:13:08 PM »
^meron ka bang copy ng SFRs ng ds89c450?

Offline ATE

  • Size C Battery
  • *****
  • Posts: 225
  • Pogi/Ganda Points: 12
  • -.-
    • Volts and Bytes
Re: 8051 Noob!!! heheh
« Reply #32 on: September 22, 2009, 08:34:02 PM »
^may nakita ako sa datasheet pero di ako sure

ideclare mo yung SFR sa main program mo or pwede ka ring gumawa ng sarili mong header file

how to declare SFR:
sfr at 0xE8 EIE;
sfr at 0x91 EXIF;

sa mga bits naman:
sbit at 0xE8 EX2;
sbit at 0cE9 EX3;
sbit at 0cEA EX4;
sbit at 0cEB EX5;

(pakiverify na lang kung tama) ;D

yung address ng special function register (SFR) is 0xE8... yung name ng SFR na naghahandle ng mga external interrupts 2 to 5 is EIE...

yung EXIF naman na located sa 0x91, yun ata yung sa mga flags...

yung
EX2 nasa bit 0 ng EIE
EX3 bit1
EX3 bit2
EX4 bit3
EX5 bit4

yung mga flags naman
IE2 bit4 ng IXIF
IE3 bit5
IE4 bit6
IE5 bit7

kung di ako nagkakamali, same lang sila nung sa ex0 at ex1 sa pagaccess...

Offline rdpzycho

  • Technical People
  • Solar Power Satellite
  • *****
  • Posts: 10728
  • Pogi/Ganda Points: 632
  • Gender: Male
  • Respect Begets Respect
    • rdpzycho
Re: 8051 Noob!!! heheh
« Reply #33 on: September 22, 2009, 08:55:32 PM »
sa Maxim ata may headers. pero gumawa ako dati. medyo nakakatamad. hehehe.
‎"Divide each difficulty into as many parts as is feasible and necessary to resolve it."
- Rene Descartes

"For every difficult problem there is always a simple answer and most of them are wrong."
- Clayton Paul

Offline clarkent

  • Lead Acid Battery
  • *******
  • Posts: 505
  • Pogi/Ganda Points: 20
  • Gender: Male
  • iehs
Re: 8051 Noob!!! heheh
« Reply #34 on: September 24, 2009, 10:52:28 AM »
^diko mahanap yung mga header files.hehe
if you think you can or think you can't, you're probably right -h.ford

Offline ATE

  • Size C Battery
  • *****
  • Posts: 225
  • Pogi/Ganda Points: 12
  • -.-
    • Volts and Bytes
Re: 8051 Noob!!! heheh
« Reply #35 on: September 25, 2009, 07:57:26 PM »
^may nakita ako sa datasheet pero di ako sure

ideclare mo yung SFR sa main program mo or pwede ka ring gumawa ng sarili mong header file

how to declare SFR:
sfr at 0xE8 EIE;
sfr at 0x91 EXIF;

sa mga bits naman:
sbit at 0xE8 EX2;
sbit at 0cE9 EX3;
sbit at 0cEA EX4;
sbit at 0cEB EX5;

(pakiverify na lang kung tama) ;D

yung address ng special function register (SFR) is 0xE8... yung name ng SFR na naghahandle ng mga external interrupts 2 to 5 is EIE...

yung EXIF naman na located sa 0x91, yun ata yung sa mga flags...

yung
EX2 nasa bit 0 ng EIE
EX3 bit1
EX3 bit2
EX4 bit3
EX5 bit4

yung mga flags naman
IE2 bit4 ng IXIF
IE3 bit5
IE4 bit6
IE5 bit7

kung di ako nagkakamali, same lang sila nung sa ex0 at ex1 sa pagaccess...

nagkamali ata ako sa mga bits...pakicorrect na lang  ;D


Offline leoren_tm

  • Size AAA Battery
  • ***
  • Posts: 87
  • Pogi/Ganda Points: 2
Re: 8051 Noob!!! heheh
« Reply #36 on: September 25, 2009, 10:23:31 PM »
check mo sa keil.com may mga collection na header files,change ka nalng kunti if not supported un bit naming nila

Offline clarkent

  • Lead Acid Battery
  • *******
  • Posts: 505
  • Pogi/Ganda Points: 20
  • Gender: Male
  • iehs
Re: 8051 Noob!!! heheh
« Reply #37 on: September 26, 2009, 07:37:15 PM »
i found out that MIDE has ds89c420, tiningnan ko yung laman ng file, nandun na yung mga sfrs na hinahanap ko. ds89c420.mcu ung file.
if you think you can or think you can't, you're probably right -h.ford

Philippine Electronics Forum

Re: 8051 Noob!!! heheh
« Reply #37 on: September 26, 2009, 07:37:15 PM »

 

Privacy Policy

Contact Us: elabph@yahoo.com