Aktyw Forum

Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.

Sprawdź punkty Zarejestruj się

Keil i bibpioteka #include dla 89s51

siewnik
-
-
Posty: 3
Rejestracja: 18 gru 2007, o 23:58
Lokalizacja: Piła

Keil i bibpioteka #include dla 89s51

Postautor: siewnik » 19 gru 2007, o 00:04

chce napisac program w Keilu dla uC 89s51, ale jest problem nie moge znalezc biblioteki dla niego jest taka "89x51" ale w opisie pisze ze to dla uC AT89C51 and AT89LV51 jest tez dla 89s53 ale nie wiem czy biblioteka bedzie pasowala. Jezeli ktos wie ktora biblioteka pasuje do 89s51 to prosze o pomoc albo gdzie moge sciagnac biblioteke do tego uC dla KEILA

dziekuje i pozdrawiam

tomek_j
-
-
Posty: 264
Rejestracja: 14 sty 2004, o 09:06

Re: Keil i bibpioteka #include dla 89s51

Postautor: tomek_j » 19 gru 2007, o 11:47

chce napisac program w Keilu dla uC 89s51, ale jest problem nie moge znalezc biblioteki dla niego jest taka "89x51" ale w opisie pisze ze to dla uC AT89C51 and AT89LV51 jest tez dla 89s53 ale nie wiem czy biblioteka bedzie pasowala. Jezeli ktos wie ktora biblioteka pasuje do 89s51 to prosze o pomoc albo gdzie moge sciagnac biblioteke do tego uC dla KEILA

dziekuje i pozdrawiam
pliki z rozszerzeniem .h nie sa "bibliotekami" tylko plikami nagłówków.
otwórz w edytorze tekstowym (lub środowisku uVison) plik 89x51.h i zobacz czy sa definicje wszsytkicj rejestrów dla wersji 89s51(dane w datasheet). pewnie 99.9% bedzie pasowało. Moze brakowac definicji dla rejestrów właściwych tej wersji np trybów obnizonej energii ( nie znam tej wersji '51). jezeli nie wykorzystujesz tych rejetrów, to nie musisz ich dopisywac do 89x51.h

siewnik
-
-
Posty: 3
Rejestracja: 18 gru 2007, o 23:58
Lokalizacja: Piła

Postautor: siewnik » 19 gru 2007, o 16:00

wszystko fajnie pieknie, przegladnalem i nie widze spisu rejestrow w pdf-ie a moze zle szukam... za bardzo sie nie orientuje bo dopiero zaczynam, dlatego proslibym o wskazanie mi nr strony z pdf-a badz krotkie wyjasnienie jak sprawdzac czy czego sluchac
pozdrawiam


www.atmel.com/dyn/resources/prod_documents/doc2487.pdf

Kod: Zaznacz cały

/*-------------------------------------------------------------------------- AT89X51.H Header file for the low voltage Flash Atmel AT89C51 and AT89LV51. Copyright (c) 1988-2002 Keil Elektronik GmbH and Keil Software, Inc. All rights reserved. --------------------------------------------------------------------------*/ #ifndef __AT89X51_H__ #define __AT89X51_H__ /*------------------------------------------------ Byte Registers ------------------------------------------------*/ sfr P0 = 0x80; 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 P2 = 0xA0; sfr IE = 0xA8; sfr P3 = 0xB0; sfr IP = 0xB8; sfr PSW = 0xD0; sfr ACC = 0xE0; sfr B = 0xF0; /*------------------------------------------------ P0 Bit Registers ------------------------------------------------*/ sbit P0_0 = 0x80; sbit P0_1 = 0x81; sbit P0_2 = 0x82; sbit P0_3 = 0x83; sbit P0_4 = 0x84; sbit P0_5 = 0x85; sbit P0_6 = 0x86; sbit P0_7 = 0x87; /*------------------------------------------------ PCON Bit Values ------------------------------------------------*/ #define IDL_ 0x01 #define STOP_ 0x02 #define PD_ 0x02 /* Alternate definition */ #define GF0_ 0x04 #define GF1_ 0x08 #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; /*------------------------------------------------ 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; /*------------------------------------------------ P2 Bit Registers ------------------------------------------------*/ sbit P2_0 = 0xA0; sbit P2_1 = 0xA1; sbit P2_2 = 0xA2; sbit P2_3 = 0xA3; sbit P2_4 = 0xA4; sbit P2_5 = 0xA5; sbit P2_6 = 0xA6; sbit P2_7 = 0xA7; /*------------------------------------------------ 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; sbit P3_6 = 0xB6; 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 WR = 0xB6; /* External data memory write strobe */ sbit RD = 0xB7; /* External data memory read strobe */ /*------------------------------------------------ IP Bit Registers ------------------------------------------------*/ sbit PX0 = 0xB8; sbit PT0 = 0xB9; sbit PX1 = 0xBA; sbit PT1 = 0xBB; sbit PS = 0xBC; sbit PT2 = 0xBD; /*------------------------------------------------ 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
Edit: Prosze uzywac znacznikow

Kod: Zaznacz cały

do umieszczania listingow programow[/color]

Ostatnio zmieniony 19 gru 2007, o 18:05 przez siewnik, łącznie zmieniany 1 raz.

siewnik
-
-
Posty: 3
Rejestracja: 18 gru 2007, o 23:58
Lokalizacja: Piła

Postautor: siewnik » 19 gru 2007, o 16:10

z tego co sie zorientowalem to w tym pliku 89x51.h nie ma nic o programowaniu ISP a wlasnie chcialbym zeby miec taka mozliwosc...

TA CZEXC SIE ZGADZA

Kod: Zaznacz cały

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 WR = 0xB6; /* External data memory write strobe */ sbit RD = 0xB7;
ALE NIE wiem co oznacza 0xB0 i w pdf tego nie widze....


Edit: Prosze uzywac znacznikow

Kod: Zaznacz cały

do umieszczania listingow programow[/color]
Ostatnio zmieniony 19 gru 2007, o 18:06 przez siewnik, łącznie zmieniany 1 raz.

Awatar użytkownika
pajaczek
Moderator
Moderator
Posty: 2650
Rejestracja: 24 sty 2005, o 00:39
Lokalizacja: Winny gród

Postautor: pajaczek » 19 gru 2007, o 18:19

W kodzie programu nie musisz miec niczego by moc programowac ISP, to kwestia raczej takiej mozliwosci w procesorze, oraz odpowiedniego podlaczenia (i programatora oraz programu "wgrywajacego"). Tryb programowania to specyficzny stan procesora (chyba ze mowimy o bootloaderze, ale to jeszcze inna kwestia), zas listing opisuje tryb normalnej pracy.

Generalnie 0xB0 to zapisana heksadecymalnie liczba, zapis bitowy - b10110000, lub jak wolisz liczba dziesietnie 176.

Btw. ten naglowek wyglada mi dziwnie, ale nie uzywalem Keila za czesto wiec moze to jakas specyficzna kwestia.

tomek_j
-
-
Posty: 264
Rejestracja: 14 sty 2004, o 09:06

Postautor: tomek_j » 20 gru 2007, o 08:23


Btw. ten naglowek wyglada mi dziwnie, ale nie uzywalem Keila za czesto wiec moze to jakas specyficzna kwestia.
Nagłówek jest ok - taki kompilator (troche z boku ANSI :610: )

Dołacz ten nagłówek i na razie dalej sie nim nie przejmuj

Na poczatku programu

Kod: Zaznacz cały

#include 89x51.h

Wróć do „AVR/AVR32”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 27 gości