miten voit lähettää (int) 8-bittisen siirroksen 8051? qk auttaa pls

E

evilheart

Guest
Hei Se on ensimmäinen mikrokontrolleri projekti joten olen newbie. Käytän 8051, C-kieli, Keil kuin kääntäjän olen nyt suunnittelemassa ja ohjelmointi askel, ja haluan lähettää tietoja 8051 toiseen satamalaitteiden 0 (8-bittinen) ja myös lähettää tiedot lcd 16x2, ongelma, että yksi tietojen Haluan lähettää on (int) ja tarkistetaan c kirjoja huomasin, että (int) tietotyyppi vie 16-bittinen, joten en tiedä mitä tapahtuu, jos minä lähetän int portissa 0, tai kuinka 8051 toimii tässä tapauksessa. EX int x; P0 = x; odottaa ur mielipiteitä ........
 
Jos käytät int x; P0 = x; P0 tulee lähtö vain alemman 8-bittiä x (katkaistun / typecasted). lähtöön 16-bittiä, sinun on käytettävä yhden pin, joka osoittaa, mitä olet lähettämässä on P0. Vaikka lähettämällä pienempi 8-bittiä, pitää tämän pin alhainen ja lähetettäessä korkeamman 8-bittiä pitää tämä pin korkea. Koodi on jotain tällaista int x; P1 ^ 0 = 0; / / Lähetin pienempi 8-bittiä P0 = (unsigned char) x; P1 ^ 0 = 1; / / Lähetin ylemmät 8 bittiä P0 = (unsigned char) (x>> 8); LCD, muuntaa int ASCII merkkijono (sprintf on helpoin toiminto tähän) ja lähettää ASCII yksitellen LCD.
 
THX CMOS ur apua oli hyvin arvokasta, mutta mikä on kirjaston fn (sprintf)? ja haluan myös tietää koko ilmaus se. Minulla on toinen kysymys, mutta johdotus tällä kertaa, kun kytken liittimen ja maadoituksen Täytyykö minun laittaa vastus ja kondensaattori sarjaan? Muistan, että kuulin jotain mutta en muista yksityiskohtia.
 
Näin käytät sprintf.
Code:
 # include void print_integer (int x) {char strAscii [10] = {0}; sprintf (strAscii, "% d", x), puts (strAscii); / / Tulosta merkkijono LCD / / lcd_puts (strAscii ); / / Tämä on muokatun LCD-toiminto, joka hyväksyy osoitin char array}
Sinun ei tarvitse käyttää kondensaattori / vastuksen maadoitus Digitaalinen sisääntuloliitin.
 

Welcome to EDABoard.com

Sponsor

Back
Top