| Laatija | Viesti |
|---|
winit_a
Liittynyt: 16 marraskuu 2003 Posts: 17
| 15 helmikuu 2004 5:42 How to Create UART Software (ei käytetä SBUF) on 8051 | | |
|
| How to Create UART Software? Projektiini Käytetyt 3 UART (normaali on 1 UART kanssa HARDWARE P3.0 ja P3.1)
8051 MCU@11.0592MHz How to Create UART käytetään P2 tai P1-Interface RS-232 |
|
| Palaa alkuun | |
 |
pisoiu
Liittynyt: 31 joulukuu 2002 Posts: 723 Auttanut: 24 Sijainti: Romania
| 15 helmikuu 2004 11:58 Re: How to Create UART Software (ei käytetä SBUF) on 8051 | | |
|
| Hei, Minun mielipiteeni: se on pirun kova. Sinun täytyy tehdä sen käyttämällä keskeyttää, mutta 8051 on suhteellisen hidas ohjain, sen suorituskyky pysyy alle 1mips klo 11,0592 MHz kello on klassinen 8051-versioita (1instruction sykli = 12 vuorokauden ajan). Useampi kuin yksi sarjaportti toteutetaan ohjelmisto syö lähes kaikki prosessori aikaa, varsinkin jos haluat mennä jopa 115200bps niihin satamiin, tai jos haluat toteuttaa kaikki mahdolliset parametrit (6/7/8 Databitit selecteble, 1 / 2 pysäkki bittiä, pariteetti pariton / jopa / merkki / tila / ei ole, virtaus valvonta valittavissa xon-xoff/hard/none). Oma sugestion on käyttää muunnettu arkkitehtuuri 8051 alkaen sypressi, tai käyttää scenix mikro (www.ubicom.com). Saat scenix valvoja Voin antaa koodi 8 uarts samanaikaisesti. Tämä, jos haluat ohjelmistototeutuksen. Jos Yau halua laitteisto, voit käyttää max3100 (Maxim).
Paras, |
|
| Palaa alkuun | |
 |
Ajay
Liittynyt: 29 helmikuu 2004 Posts: 31
| 01 maaliskuu 2004 0:10 Re: How to Create UART Software (ei käytetä SBUF) on 8051 | | |
|
| Voit luoda yhden UART (lisäksi käyttämällä SBUF) käyttämällä oma ajastin ja kirjallisesti hyvin nopeasti koodi kiertää vähän. Käytössä saapuvan puolella (RXD), sinun on käytettävä keskeyttää nastainen. Kun keskeyttää tulee aloittaa ajastimet lukemaan nastainen tuoda kuljettaa, käännä ja luoda saapuvat tavua. Toimii hyvin enintään 9600 Baud (olen käyttänyt sitä).
Kuitenkin luoda kaksi samaan aikaan? Unohda se. Vaikka sinulla käyttää kahta omistettu ajastimet, keskeytyspyyntölinjan rutiineja tullut niin iso, että jää bittiä.
Jos etsit hidas UARTs (1200 Baud tai hitaampi), sitten tämä tekniikka toimii enintään 2 UART's. Muista, että sinun tulee antaa kaikki kolme ajastimet (jota käytetään baudinopeus gen varten SBUF, yksi portti 1 ja yhden sataman 2 ajoitus) sekä niin keskeyttää.
Niin, parempi suunnittelu on käyttää ARM-siru, jossa on kaksi UART: n (Olen luonut 2 ylimääräisiä UARTs osoitteessa 19200 Baud kanssa ARM) tai käytä Rabbit valvojalle tai jokin sellainen asia.
Ajay |
|
| Palaa alkuun | |
 |
beuch
Liittynyt: 06 kesäkuu 2001 Posts: 65 Paikka: Ranska
| 03 maaliskuu 2004 14:45 Re: How to Create UART Software (ei käytetä SBUF) on 8051 | | |
|
| Hei,
on katsottava liitteenä olevan tiedoston Philips Internetissä.
AN446
hei
|
|
| Palaa alkuun | |
 |
crazytnt
Liittynyt: 02 helmikuu 2004 Posts: 8
| 03 maaliskuu 2004 17:43 Re: How to Create UART Software (ei käytetä SBUF) on 8051 | | |
|
| Se on erittäin vaikeaa. Ehdota käyttäen laitteistoa. |
|
| Palaa alkuun | |
 |
J_expoler2
Liittynyt: 10. toukokuuta 2003 Posts: 179 Auttanut: 19
| 03 maaliskuu 2004 18:00 Re: How to Create UART Software (ei käytetä SBUF) on 8051 | | |
|
| Hei Minulla on muutama idea UART mutta lähettää tietoja vain käyttämällä ajastin 0 bittinen T232 kuin TXD MOV TMOD, # 22h MOV TH0, # 70H MOV TL0, # 70H SETB EA SETB ET0 SETB TR1 ; ; ; ; toiminto lähettää tiedot: CLR T232; START BIT SETB TR0 MOV R7, # 8
TX_LOOP: RRC A JNB TF0, $ MOV T232, C CLR TF0 DJNZ R7, TX_LOOP JNB TF0, $ SETB T232; STOP BIT CLR TF0 JNB TF0, $ RET se ehkä auttaa u BR. |
|
| Palaa alkuun | |
 |
Google AdSense

| 03 maaliskuu 2004 18:00 Mainokset | | |
|
|
|
|
| Palaa alkuun | |
 |
fireplus
Liittynyt: 31 lokakuu 2003 Posts: 195 Auttanut: 5
| 04 maaliskuu 2004 3:29 Re: How to Create UART Software (ei käytetä SBUF) on 8051 | | |
|
| Yritän, että
[hr: 5c6e3c7296] Fire in The Wire: SM2:
|
|
| Palaa alkuun | |
 |
Ajay
Liittynyt: 29 helmikuu 2004 Posts: 31
| 08 maaliskuu 2004 12:28 Re: How to Create UART Software (ei käytetä SBUF) on 8051 | | |
|
| | J_expoler2 wrote: | Hei Minulla on muutama idea UART mutta lähettää tietoja vain käyttämällä ajastin 0 bittinen T232 kuin TXD MOV TMOD, # 22h MOV TH0, # 70H MOV TL0, # 70H SETB EA SETB ET0 SETB TR1 ; ; ; ; toiminto lähettää tiedot: CLR T232; START BIT SETB TR0 MOV R7, # 8
TX_LOOP: RRC A JNB TF0, $ MOV T232, C CLR TF0 DJNZ R7, TX_LOOP JNB TF0, $ SETB T232; STOP BIT CLR TF0 JNB TF0, $ RET se ehkä auttaa u BR. |
Tämä on vain hyvä lähetystehoa. Ongelma tulee, kun yritetään saada mahdollisimman hyvin. Ensinnäkin, tämä menetelmä ei toimi täysin kaksisuuntainen toiminta ellet käytä kahta eri laskurit.
Lisäksi vastaanottamiseen, sinun on käytettävä laitteisto keskeyttää joka juuri Käynnistä ajastin juuri oikeaan aikaan ja sitten auttaa siirtää tietoja. Jälleen kerran tämä menetelmä on vain hyvä kuin puoli kaksisuuntaisen viestinnän.
Toinen monimutkaisuus tulee siitä, että keskeyttää rutiineja tulee pitkä, ja se aiheuttaa ongelmia puuttuvien bittiä. Pidä mielessä, että virhe kertyy ajan myötä!
Paras tapa on käyttää siru, jolla on enemmän sarjaporttia (ARM, uPSD St jne.)
Ajay |
|
| Palaa alkuun | |
 |