µÚÒ»·¶ÎÄÍø - רҵÎÄÕ·¶ÀýÎĵµ×ÊÁÏ·ÖÏíÆ½Ì¨

»ùÓÚFPGAµÄ΢²¨Â¯¿ØÖÆÆ÷Éè¼Æ - ±ÏÒµÉè¼ÆÂÛÎÄ

À´Ô´£ºÓû§·ÖÏí ʱ¼ä£º2025/11/27 1:12:08 ±¾ÎÄÓÉloading ·ÖÏí ÏÂÔØÕâÆªÎĵµÊÖ»ú°æ
˵Ã÷£ºÎÄÕÂÄÚÈݽö¹©Ô¤ÀÀ£¬²¿·ÖÄÚÈÝ¿ÉÄܲ»È«£¬ÐèÒªÍêÕûÎĵµ»òÕßÐèÒª¸´ÖÆÄÚÈÝ£¬ÇëÏÂÔØwordºóʹÓá£ÏÂÔØwordÓÐÎÊÌâÇëÌí¼Ó΢ÐźÅ:xxxxxxx»òQQ£ºxxxxxx ´¦Àí£¨¾¡¿ÉÄܸøÄúÌṩÍêÕûÎĵµ£©£¬¸ÐлÄúµÄÖ§³ÖÓëÁ½⡣

»ùÓÚFPGA µÄ΢²¨Â¯¿ØÖÆÆ÷Éè¼Æ

4.2.4. ζȿØÖÆ

ζȿØÖÆ×ÓÄ£¿é£¬Ö÷񻃾¼°µ½Î¶ȵIJⶨºÍ¿ØÖÆ¡£±¾Éè¼Æ²ÉÓÃÄ£Äâζȴ«¸ÐÆ÷AD590ºÍÄ£Êýת»»Æ÷ADC0809ʵÏÖ¶Ôζȵļì²â¡£

AD590ÓÃÓÚÄ£Äâ΢²¨Â¯ÄÚʳƷµÄζȣ¬AD590ζȴ«¸ÐÆ÷µÄ¸Ð²âÄÜÁ¦ÊÇζÈÿÉý¸ß1K¾ÍÔö¼Ó1¦ÌAµÄµçÁ¿£¬¸ÃµçÁ÷Á÷Èë10k¦¸µç×èºó£¬½«²úÉú10mV(0.01V)µÄµçѹ¡£¶ø0¡æ(µÈÓÚ273K)ʱ£¬Êä³öµçÁ÷273 ¦ÌA£¬¾­I£¯Vת»»ºó£¬½«²úÉú2.73 VµÄµçѹ¡£Èç¹û²âµ½µÄµçѹΪx Vʱ£¬Ôò¿ÉÓÉ( x-2.73)¡Â0.01µÃµ½Òª²âÁ¿µÄζȡ£Î¶ȴ«¸ÐÆ÷AD590µÄÊä³ö¾­¹ý·Å´óÆ÷ºó£¬½«µçѹÒýÈëADC0809µÄVin (+) ¹Ü½Å£¬ÓÉADC0809½øÐÐÄ£Êýת»»¡£

ADC0809ÊÇ8λģÊýת»»Æ÷£¬²âÁ¿¾«¶ÈΪ0.02 V£¬µ±ADC0809µÄת»»ÖµÎªx ʱ£¬Ëù²âζÈΪ£ºT=(x ¡Á0.02-2.73)¡Â0.01=x ¡Á2-273¡£ADC0809½«µ±Ç°Î¶Èת»»³ÉÊý×ÖÁ¿ºóËÍÈëFPGA¿ØÖÆÐ¾Æ¬£¬¿ØÖÆÐ¾Æ¬¶ÔÓɼüÅÌÊäÈëµÄ¼ÓÈÈ×î¸ßζȸø¶¨Öµ½øÐбȽϣ¬¼´Í¨¹ýÖ±½Ó±È½ÏÉ趨ֵºÍ²âµÃÖµµÄBCD±àÂ룬µ±Â¯ÄÚζȸßÓÚ¸ø¶¨Î¶Èʱ£¬Á¢¼´Í£Ö¹¼ÓÈÈ£¬²¢Êä³ö¿ØÖÆÐźÅÌáʾ±¨¾¯µÆÁÁ£¬´Ó¶øÊµÏÖ¶ÔζȵĿØÖÆ¡£

¾ßÌåÉè¼Æ¹ý³ÌÖУ¬Éæ¼°µ½Êý¾ÝµÄ²É¼¯¡¢Ê±ÖÓ¶¨Ê±ºÍζȿØÖÆ¡£Êý¾Ý²É¼¯Ö÷ÒªÍê³ÉζȵĴ¦Àí£¬Ê±ÖÓ¶¨Ê±Ö÷Òª¶ÔÎÂ¶ÈÆð¶¨Ê±×÷Óã¬Î¶ȿØÖƲ¿·ÖµÄÊäÈëÐźÅÀ´×ÔÊý¾Ý´¦ÀíºÍʱÖÓ¶¨Ê±ºóµÄÊä³ö£¬µ±Êµ¼ÊÊä³öζÈСÓÚÔ¤Êä³öζÈֵʱ£¬Êä³öÐźſØÖÆÎ¢²¨Â¯¼ÌÐø¼ÓÈÈ¡£

ÒÔÏÂÊǸÃÉè¼ÆµÄÁ÷³Ìͼ£¬Èçͼ4.16Ëùʾ£º

- 25 -

Î÷ÄÏʯÓÍ´óѧ±¾¿Æ±ÏÒµÉè¼Æ£¨ÂÛÎÄ£©

ͼ4.16 ζȿØÖƲ¿·ÖÁ÷³Ìͼ

Êý¾Ý²É¼¯Ö÷ÒªÍê³ÉζȵĴ¦Àí£¬ÊµÏÖT=(x¡Á0.02-2.73)¡Â0.01µÄÔËË㣬Êý¾Ýµ÷ÕûΪ¶ÔÓ¦µÄÊý×ÖÐźţ¬ÔÚ¶ÁÈ¡ADC0809µÄÊý¾Ýºó£¬ÏȽ«×ª»»Êý¾Ý×óÒÆ1λ(Ï൱ÓÚ³ËÒÔ2)£¬È»ºó¼õÈ¥273£¬µ±Î¶ȴﵽijһÊýֵʱ£¬Ê¹ÄÜÐźźÍÇåÁãÐźÅΪ?1?£¬´ËʱʱÖÓ¿ªÊ¼¼ÆÊ±¡£

¸ù¾ÝÉÏÊö·ÖÎö£¬±àд¸ÃζȿØÖÆÆ÷µÄVHDL³ÌÐò£¬ÆäÖ÷Òª³ÌÐòÈçÏ£º --Êý¾Ý²É¼¯²¿·Ö

PROCESS (CLK,DATA) BEGIN

IF (CLK'EVENT AND CLK=1) THEN

IF (tout>=(cout-6) AND tout<=(cout+5)) THEN --É趨ֵÉÏÏÂ5¶ÈµÄ·¶Î§ÄÚ¿ªÊ¼¼ÆÊ±

enout<=1; ELSE enout<=0; END IF;

- 26 -

»ùÓÚFPGA µÄ΢²¨Â¯¿ØÖÆÆ÷Éè¼Æ

-- ʱÖÓ¶¨Ê±²¿·Ö

PROCESS (CLK ,clearing , enin )

VARIABLE s , m : INTEGER RANGE 0 TO 60; VARIABLE e : INTEGER RANGE 0 TO 24; VARIABLE d : BIT; BEGIN

d:=clearing XOR enin; IF (d=0) THEN s:=0; m:=0' e:=0;

ELSIF (CLK'EVENT AND CLK=1) THEN s:=s+1; IF (s=10) THEN s:=0;m:=m+1; IF (m=10) THEN m:=0;e:=e+1; IF (e=24) THEN e:=0; ¡­ hourout <= e; --¿ØÖƲ¿·Ö BEGIN

IF (tin<(cin+5)) THEN --cinÊDzÎÊýÉ趨ֵ temp<=1; ELSE temp<=0; END IF;

IF (CLK'EVENT AND CLK=1) THEN control_bcd<=temp; END IF;

- 27 -

Î÷ÄÏʯÓÍ´óѧ±¾¿Æ±ÏÒµÉè¼Æ£¨ÂÛÎÄ£©

IF (hour>hourin) THEN ALARM<=1; ELSE ALARM<=0; END IF;

½«¸÷²¿·Ö½øÐÐÔª¼þÀý»¯£¬Éú³ÉÏàÓ¦µÄµç··ûºÅ£¬Á¬½Ó³É¸ÃζȿØÖÆÆ÷µÄÄÚ²¿Ô­Àíͼ£¬Èçͼ4.17Ëùʾ£º

clockCLKeninclearininst1ddataCLKINPUTVCCINPUTVCChourout[3..0]ccontrolCLKDATA[7..0]enoutclearouttout[7..0]cout[7..0]data[7..0]CLKtin[7..0]cin[7..0]hourin[3..0]COOKLOADRESETinst7control_bcd[15..0]ALARMOUTPUTOUTPUTcontrol_bcd[15..0]ALARMinstCOOKINPUTVCCINPUTVCCINPUTVCCLOADRESET ͼ4.17 ζȿØÖÆÆ÷ÄÚ²¿×é³ÉÔ­Àíͼ

ÆäÖУ¬ÊäÈëÐźÅCLKΪϵͳʱÖÓÂö³å£¬DATAΪÊäÈëÊý¾Ý£¬Êä³öÐźÅcontrol_bcdΪÊä³ö¿ØÖÆÐźţ¬Íâ½ÓÒëÂëµç·£¬ALARMΪ·äÃùÌáʾ¡£

4.2.5. ¿ØÖÆÄ£¿éµÄʵÏÖ

×ÛºÏÉÏÊö·ÖÎö£¬¶Ô¸Ã¿ØÖÆÄ£¿é½øÐÐÍêÕûÉè¼Æ£¬ÒÔÏÂÊǸÃÄ£¿é¶¥²ãÎļþ¹Ø¼ü´úÂë¡£ U1:KZQ PORT MAP

(RESET,SET_T,START,TEST,CLK,DONE,COOK_TMP,TEST_TMP,CLK_TMP,DONE_TMP,ALARM); U2:ZZQ PORT MAP

(DATA1,TEST_TMP,CLK_TMP,DONE_TMP,DATA_TMP,LOAD_TMP,ALARM); U3:KWQ PORT MAP

(CLK,DATA_TMP,COOK_TMP,LOAD_TMP,RESET_TMP,control,ALARM); U4:JSQ PORT MAP

(COOK_TMP,LOAD_TMP,CLK,DATA_TMP,SEC_L,SEC_H,MIN_L,MIN_H,DONE,ALARM);

- 28 -

»ùÓÚFPGAµÄ΢²¨Â¯¿ØÖÆÆ÷Éè¼Æ - ±ÏÒµÉè¼ÆÂÛÎÄ.doc ½«±¾ÎĵÄWordÎĵµÏÂÔØµ½µçÄÔ£¬·½±ã¸´ÖÆ¡¢±à¼­¡¢ÊղغʹòÓ¡
±¾ÎÄÁ´½Ó£ºhttps://www.diyifanwen.net/c0yiv5420xf3j4le875q1_8.html£¨×ªÔØÇë×¢Ã÷ÎÄÕÂÀ´Ô´£©

Ïà¹ØÍÆ¼ö£º

ÈÈÃÅÍÆ¼ö
Copyright © 2012-2023 µÚÒ»·¶ÎÄÍø °æÈ¨ËùÓÐ ÃâÔðÉùÃ÷ | ÁªÏµÎÒÃÇ
ÉùÃ÷ :±¾ÍøÕ¾×ðÖØ²¢±£»¤ÖªÊ¶²úȨ£¬¸ù¾Ý¡¶ÐÅÏ¢ÍøÂç´«²¥È¨±£»¤ÌõÀý¡·£¬Èç¹ûÎÒÃÇ×ªÔØµÄ×÷Æ·ÇÖ·¸ÁËÄúµÄȨÀû,ÇëÔÚÒ»¸öÔÂÄÚ֪ͨÎÒÃÇ£¬ÎÒÃǻἰʱɾ³ý¡£
¿Í·þQQ£ºxxxxxx ÓÊÏ䣺xxxxxx@qq.com
ÓåICP±¸2023013149ºÅ
Top