7 szegmenses kijelzo meghajtasa FPGA-val

Erdos Zoltan silverst at axelero.hu
Sun Jan 29 22:37:04 CET 2006


Klasszikus hiba, procis meghajtasnal is be szokott jonni.
Arrol van szo, hogy mielott digitet leptetsz, a szegmens meghajtast ki 
kell oltani, kulonben "szellemkepes" lesz a kijelzo, azaz a szomszed 
digit is megkapja a jelet egy kis idore.
A helyes megoldas:

kijelzes
idozites
kioltas
leptetes
kijelzes... es igy tovabb

Z.

hoyuka wrote:

> Sziasztok,
> 
> Probalkoztam a dologgal, azt vettem eszre, hogyha megfeleloen leosztom az
> orajelet, akkor a
> 3210 sokkal dominansabban (kb. 95%-os fenyero) latszik, mint a
> 0321  (kb. 5%-os fenyero)
> 
> Most az osztas ilyen:
>       reg [10:0] clkCnt;
> 	wire clk;
> 	assign clk=clkCnt[10];
> 	always @(posedge clk0) clkCnt<=clkCnt+1;
> 
> clk0 frekije 50Mhz.
> 
> Mi a bubanattol lehet ez? Olyasmire gondolok, hogy amikor a selCnt erteke
> megvaltozik, akkor az uj erteke joval hamarabb kikerul az adott 7
> szegmenses cuccosra, mint az uj, szinten selCnt alapjan eloallitott
> szelektalo jel.
> Vagy valami kapacitiv moka lehet? Ugy ertem, hogy a szelektalo labak
> vmiert nagy kapaitasuak, ezert lassu a szelektalas?
> 
> A design report szerint 13 flip-flop van felhasznalva, ebbol 11 az
> orajelosztas, 2 a selCnt, tehat ezekken kivul elvileg minden kombinacios
> halozattal van megvalositva.
> 
> udv.
> hoyuka
> 
> hoyuka said:
> 
>>Sziasztok!
>>
>>Jo egyszerunek kinezo feladat, megis szopok vele vagy fel napja. A
>>Spartan3 starter kit-en talalhato 4db. 7 szegmenses kijelzorol van szo.
>>Biztosan megint valami nagyon alapveto dolgot neztem el.
>>Itt a forras, utanna leirom, hogy hogyan mukodik (hibasan):
>>
>>module Seven(clk0, select, seven, dot);
>>	input wire clk0;
>>	output wire [3:0] select;   // ez valasztja ki a 7 szegmenses kijelzot
>>	output wire [6:0] seven;    // ez van rakotve a szegmensekre
>>	output wire dot;            // ez a pont szegmensre
>>
>>      // itt orajelet osztok le, hogy konyebb legyen merni
>>	reg [3:0] clkCnt;
>>	wire clk;
>>	assign clk=clkCnt[3];
>>	always @(posedge clk0) clkCnt<=clkCnt+1;
>>
>>      // ez a szamlalo cimzi meg az adott 7 szegmensest
>>      reg [1:0] selCnt;
>>
>>      // ez a dekoder selCnt alapjan kivalasztja a 4 kijelzo egyiket
>>	decoder dd(selCnt, select);
>>
>>      // ez meg a selCnt erteket (0,1,2,3) konvertalja 7 szegmenses
>>ertekke
>>      BCD2Seven b2s({2'b00,selCnt},seven);
>>
>>      assign dot=1;   // a tizedespont sosem vilagit (aktiv 0-as
>>meghajtas)
>>
>>      // selCnt-et minden orajelben novelem, ez cimzi meg az adott 7
>>      // szegmensest
>>	always @(posedge clk) selCnt<=selCnt+1;
>>
>>	initial begin
>>		selCnt=0;   // nullazom, bar felesleges szerintem
>>	end
>>
>>endmodule
>>
>>// dekoder, az adott 7 szegmenses kijelzo szelektalasara szolgal
>>module decoder(in,out);
>>	input  wire[1:0] in;
>>	output reg [3:0] out;
>>
>>	always @(in) begin
>>		case (in)
>>			0: out='b1110;
>>			1: out='b1101;
>>			2: out='b1011;
>>			3: out='b0111;
>>		endcase
>>	end
>>endmodule
>>
>>// kombinacios halo: 4bit binaris -> 7 szegmenses hexa szam
>>module BCD2Seven(BCD, seven);
>>
>>    input wire [3:0] BCD;
>>    output reg [6:0] seven;
>>
>>    always @(BCD) begin
>>        case (BCD)
>>                       //gfedcba
>>            0:  seven=~'b0111111;
>>            1:  seven=~'b0000110;
>>            2:  seven=~'b1011011;
>>            3:  seven=~'b1001111;
>>            4:  seven=~'b1100110;
>>            5:  seven=~'b1101101;
>>            6:  seven=~'b1111101;
>>            7:  seven=~'b0100111;
>>                       //gfedcba
>>            8:  seven=~'b1111111;
>>            9:  seven=~'b1101111;
>>            10: seven=~'b1110111;	// a
>>            11: seven=~'b1111100;	// b
>>            12: seven=~'b0111001;	// c
>>            13: seven=~'b1011110;	// d
>>            14: seven=~'b1111001;	// e
>>            15: seven=~'b1110001;	// f
>>        endcase
>>    end
>>endmodule
>>
>>Ok, ennyi a kod. Ennek szerintem azt kellene csinalnia, hogy a 7szegmenses
>>kijelzokon megjeleniti ezt:
>>3210
>>
>>Es szerintem azt csinalja, hogy nagyon gyorsan valtogatva ezt a ket
>>erteket jeleniti meg:
>>3210
>>0321
>>Na ez mi a bubanattol lehet??????
>>
>>udv.
>>hoyuka
>>
>>--
>>http://hoyuka.myip.hu
>>-------------------------------------
>>C2 MAIL: Levelezés felsõfokon. http://mail.c2.hu
>>
>>-----------------------------------
>> Szponzorunk: http://tonerbolt.hu/
>>
> 
> 
> 





More information about the Elektro mailing list