Kuidas muuta COM1 või COM2 parameetrid aega Port on avatud

Aegunud teabebaasisisu lahtiütlus

See artikkel käsitleb selliseid tooteid, millele Microsoft enam tugiteenuseid ei paku. Seetõttu esitatakse selle artikli teave „olemasoleval kujul“ ja edaspidi seda ei värskendata.

Kokkuvõte

Kasutamisel side portidesse Basic, kui COM-port on avatud (OPEN avatud "COM2:..." või "COM1:..." lause), selle pordi konfigureerimise tavaliselt ei saa seda muuta mis tahes tavaline lause ilma sulgeda ja uuesti avada COM-porti. Kuid parameetrid COM-porti (edastuskiirusele, paarsus, stop bits, bitti, jne) saab muuta otse suhtlemine Basic läbi ja INP avalduste UART. IBM PC UART (Universal Asynchronous transiiver) on 8250 asünkroonne side Element, spetsiaalne mikroprotsessor kiibi.


Artikkel sisaldab kogenud programmeerija teavet ja tohib kasutada ainult kogenud programmeerijad, kes pole tuttav side portidesse toiminguid. See teave kehtib Microsofti QuickBasic versiooni 4.00 ning 4.00b 4,50; Microsoft Basic kompilaator versioonide 6.00 ja 6.00b jaoks MS-DOS-i; ja et Microsoft Basic Professional arendus System (PDS) 7.00 ja 7.10 MS-DOS-i versioonide.

Lisateabe saamiseks

COM-pordi side parameetrite muutmiseks peate keelama side katkestused. Saate selleks 4 bit seadmine (jaoks COM1) või 3 (COM2) katkestada Mask registri bittide (IMR, I/O porti ja H21) (kui bits on nummerdatud alates natukene null; 0, 1, 2, jne.). Pange tähele, et kui see on tehtud, muud bitti registri peaks ei muutu, seega peaksite "või" bit väärtus vajalik ja koht kehtivat väärtust uue väärtuse tagasi registrisse. Näiteks on järgmised keelab COM1:

   OUT &H21, INP(&H21) OR 16
Järgmine keelab COM2:

   OUT &H21, INP(&H21) OR 8
Kui COM katkestus on keelatud, saab muuta parameetrite abil. Parameetrid, mis võivad muuta esimene on boodikiirus. Selleks peate esmalt määrama rida kontrolli registri lubamiseks muuta boodikiirus saates a & H80 pordiga ja H3FB rida-juhtelemendi registreerimine COM1 või port ja H2FB, rida juhtelemendi registreerimine COM2-porti. Seejärel saada sobivat least significant byte (LSB) ja kõige rohkem olulisi bait (MSB) soovitud boodikiiruse Porte ja H3F8 ja & H3F9, vastavalt COM1, või Porte ja H2F8 ja & H2F9, COM2 puhul vastavalt. Järgmises tabelis on toodud LSB ja MSB baiti boodi määr:

   Baud Rate    MSB    LSB
--------- --- ---

300 01H 80H
600 00H C0H
1200 00H 60H
2400 00H 30H
3600 00H 20H
4800 00H 18H
9600 00H 0CH

Nüüd, kui boodikiirus muutunud muid parameetreid seatakse (nt paarsuse tüüp, stop bits, bitti, jne.). Need parameetrid on seatud, saates vastava baidi rida kontrolli registri (pordi ja H3FB COM1, või port & H2FB COM2). Baidi saatmine kindlaks määrates asjakohase BITS-i skeemi alusel:
                          THE LINE-CONTROL REGISTER

|-----|-----|-----|-----|-----|-----|-----|-----|
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|-----|-----|-----|-----|-----|-----|-----|-----|
| \ | | | | | | Character
| \ | | | | | | length
I/O Addressing < \ | | | | 0 + 0 = 5 bits
0 = Normal value \__| | | | 0 + 1 = 6 bits
1 = To address baud | | | | 1 + 0 = 7 bits
rate divisor | | | | 1 + 1 = 8 bits
registers | | | |
| | | > Stop bits
Set these bits to 0 < | | 0 = 1 stop bit
| | 1 = 1.5 stop bits if 5-bit
| | character length
| | 1 = 2 if 6-, 7-, or 8-bit
| | character length
Parity type < > Parity
0 = even 0 = No parity bit generated
1 = odd 1 = Parity bit generated

(See tabel on võetud lehel 180 "8088 Assembler keeles programmeerimine: IBM PC, Second Edition" Willen ja Krantz [Howard W. Sams & Company, Inc., 1988]. Lugege peatükis 7 "Seerianumber side," muid tehnilisi andmeid.)


Pärast nende parameetrite seadistamisel saate COM katkestuse reenabled määrates bitine COM pordi 0 on IMR. Nagu varem, peate olema ettevaatlik, et mitte häirida mõnda muud bitti registrisse, nii et mask natuke loogiliselt 0, eriti "Ja" register 255 bitine väärtus miinus kerimisriba kehtivat väärtust. Näiteks:
   OUT &H21, INP(&H21) AND 239    'enables COM1 (255 - 16 = 239)   OUT &H21, INP(&H21) AND 247    'enables COM2 (255 - 8 = 247)

Kui see samm on tehtud, saab side jätkata uue side sätted. Allpool on koodi näidis loetletakse selle muudatused boodikiiruse ja parameetrid COM1 9600, N, 8, 1.


Järgmine raamat sisaldab rohkem teavet riistvara aadressid:
"On programmeerija PC Sourcebook,", Thom Hogan (Microsoft Press, 1988)
Koodi näide on järgmine:
     x% = INP(&H21)                    'disable COM1...      x% = x% OR 16
OUT &H21, x%
OUT &H3FB, &H80 'set for BAUD change
REM OUT &H3F8, &H60 'BAUD-rate-divisor register; &H60 sets 1200 baud
OUT &H3F8, &H0C 'BAUD-rate-divisor register; &H0C sets 9600 baud
OUT &H3F9, &H0 'High byte of BAUD-rate-divisor register
OUT &H3FB, &H3 'N,8,1
x% = INP(&H21) 'reenable COM1...
x% = x% AND 239
OUT &H21, x% 'all done!

Atribuudid

Artikli ID: 39255 – viimati läbi vaadatud: 26. jaan 2017 – redaktsioon: 1

Tagasiside