ELEKTRONIKA
Shield-A, učilo za programiranje mikroupravljača (22) U ovom ćemo nastavku pokazati kako razvojni sustav Shield-A može prikazati numeričku informaciju na 7-segmentnom displeju. Koristit ćemo konfiguraciju prema Slici 69., u kojoj su na konektor J1 Shield-A spojena dva 7-segmentna displeja, jedan sa šest znamenaka i jedan satni, s četiri znamenke.
znamenke, a poslije treće znamenke ispisuje se decimalna točka. Rješenje Bascom-AVR-a (program ShieldA_19a.bas) Kako Bascom-AVR ne poznaje komunikacijski protokol koji podržava čip TM1637, pokušat ćemo iskoristiti njegovu sličnost s I2C-protokolom. Iz prošlog nastavka znamo kako su Primijetite kako izvodi na displejima nemaju signali START i STOP jednaki kod oba protokola, isti raspored, pa čak nisu ni jednako označeni, a slanje naredbi i podataka razlikuje se samo ali ipak imaju istu namjenu. Iz prošlog nastavka u redoslijedu kojim se šalju bitovi. Stoga ćemo znamo kako mikroupravljač ne može adresirati naredbama i podacima koje želimo poslati u čip ovakve displeje, pa će na oba biti ispisana ista TM1637 prije slanja zamijeniti redoslijed bitova, informacija. Program će dobro raditi i ako na nakon čega ih možemo poslati običnom naredShield-A spojite samo jedan od ova dva displebom I2cwrite. Ovaj posao obavlja potprogram ja, ili možda neki treći; bitno je samo da se na Send_tm_byte. Naredbu ili podatak koji želimo njemu nalazi integrirani krug TM1637. poslati upisujemo u varijablu Tm_byte i zatim 19. programski zadatak: Za sklop prema Slici pozivamo navedeni potprogram. U njemu ćemo 69. napisati program koji će na 7-segmentnim bit po bit prenositi sadržaj varijable Tm_byte u displejima ispisivati vrijeme u desetinkama varijablu Etyb_mt, mijenjajući im pritom redosekunde. Mjerenje počinje i zaustavlja se pritisslijed, a zatim tako “izokrenuti” sadržaj poslati kom na tipkalo SW1. Pritiskom na tipkalo SW2 čipu TM1637: mjerenje vremena počinje od nule. Na šestoznaSend_tm_byte: menkastom displeju koriste se samo prve četiri Etyb_mt.0 = Tm_byte.7 Etyb_mt.1 = Tm_byte.6 ... Etyb_mt.7 = Tm_byte.0 I2cwbyte Etyb_mt Return Još će nam trebati potprogrami za gašenje prikaza na displeju Disp_off: I2cstart Tm_byte = &B10000000 Gosub Send_tm_byte I2cstop Return kao i za ponovno uključenje prikaza: Disp_on: Set_int: I2cstart Tm_byte = Disp_int Or Slika 69. Konfiguracija od dva 7-segmentna displeja koju ćemo koristiti u 19. pro- &B10001000 gramskom zadatku
24