【正文】
entity ADC0809 is 實(shí)體名為: ADC0809 port ( CLK,EN : in std_logic 。 定義輸入端口 ADDA,共有三位 ALE ,EOC : in std_logic 。 定義輸出端口 ADC_DISPLY,共有 8 位 LOCK,start : in std_logic。 定義輸入端口 Din ,共有 8 位 end ADC0809。 用枚舉類型進(jìn)行狀態(tài)定義 SIGNAL REGL : std_logic_vector(7 DOWNTO 0)。 信號(hào) Dout 的范圍從 0 到 255 變化 signal buf7,buf6,buf5,buf4,buf3,buf2,buf1,buf0 : integer range 0 to 255。 signal add:std_logic_vector(2 downto 0)。 variable data_out :integer range 0 to 1:=0。 if data128 then data_out := 1。 end if。 end division。 Dout_int=conv_integer(Din)。 if start39。139。V1=0。V3=0。V5=0。V7=0。 V7=division(Dout_int)。 V6=division(buf6)。 V5=division(buf5)。 V4=division(buf4)。 V3=division(buf3)。 V2=division(buf2)。 V1=division(buf1)。 V0=division(buf0)。139。 ELSE next_state=st2。 when st3= if V0=0 then REGL(0)=39。 else REGL(0)=39。 end if。039。139。 if V2=0 then REGL(2)=39。 else REGL(2)=39。 end if。039。139。 if V4=0 then REGL(4)=39。 else REGL(4)=39。 end if。039。139。 if V6=0 then REGL(6)=39。 else REGL(6)=39。 end if。039。139。 if en=39。 then REGL=00000000。139。 END IF。 when st4=next_state=st0。 END CASE。 process(CLK,current_state,next_state) begin if (CLK39。139。 end if。 process(ADDA,ALE,add) begin if ALE=39。then add=ADDA。 end if。 END behav?;旧蠈?shí)現(xiàn)的溫度的測量和發(fā)送。 五, 心得體會(huì); 1, 程設(shè)計(jì) 和室友在一起討論商量,最后才寫完程序,完成此次數(shù)電課程設(shè)計(jì)。國慶節(jié) 間,開始動(dòng)手編寫程序。 在最后的編譯仿真階段,遇到了更多的問題,最終一一排除了,得到了一個(gè)大致合理的仿真結(jié)果,不甚滿意,卻實(shí)在力不從心。遇到最大的困難還是沒有具體實(shí)物,那個(gè) ADC0809 八位集成 A/D 轉(zhuǎn)換器的各個(gè)引腳還可以知道,對(duì)于那個(gè) FPGA,沒有一個(gè)具體概念,在編寫程序,定義端口的問題上,糾結(jié)了很久。通過此次課程設(shè)計(jì),筆者覺得課堂上學(xué)習(xí)的那點(diǎn)數(shù)電知識(shí)或者說課本知識(shí), 對(duì)于實(shí)際問題真的是冰山一角,更為嚴(yán)重的是,平時(shí)學(xué)習(xí)東西的時(shí)候,太粗 糙,太死板,學(xué)出的東西是死的,壓根就不能用于實(shí)際的問題解決上面,在解決實(shí)際問題的時(shí)候,思路很狹隘,常常走進(jìn)死胡同。 4, 總的來說,本次課程設(shè)計(jì),收獲還是蠻多的。 04113068 秦耀龍