我不懂cpld 也不懂vhdl 做个数字式气温计
我不懂cpld 也不懂vhdl 谁帮帮我我要做个数字式气温计, 其中数字信号输出,然后在max里对cpld设计
它的功能是实现时序信号产生,数据采集,码制转换,数据显示等工作
老师说要设计电路 挺简单 可我不会
或用vhdl设计 那是不是就不用别的 只在max里设计程序就行了呢?
然后仿真,不用硬件 直接在电脑上实现 你不会vhdl, 你可以试试原理图,也许好懂一些。<br>
做完以后要下载到cpld,不然就没意义了 先找本VHDL和CPLD方面的书看看,搞清楚VHDL和CPLD是怎么回事情,然后在考虑你的课题 谢谢<br>
我正在看 我那必须用vhdl 讲的是这个 <br>
是不是用他编程就可以<br>
就能实现我说的功能<br>
不用在画图了??????? 努力吧<br>
呵呵 可别真跳楼了啊 毕高太恶心了,我做一个单片机的小系统,不难,一样焦头烂额的 如果要一个实际能用的结果的话,肯定需要布PCB板,而且一定会有模拟电路、AD转换和FPGA部分,显示部分。电脑上一般还不好把这整个系统仿真出来的。你先看看怎么划分电路功能,即模拟电路做什么,FPGA做什么,搞清楚再说吧。 我也是搞DVB的,兄弟介绍几个好点的公司,我明年毕业 V<=(D&0’) -”100010001”;<br>
T<=(7 downto 0); 得到温度二进制值<br>
下面是将BCD转换成二进制<br>
Value<=”000000000000”when T=0else<br>
“000000000001”when T=else<br>
………<br>
…….<br>
“000000010001”when T=11else<br>
…..<br>
…..<br>
“000010011001”whenT=99 else<br>
“000100000000”<br>
下面是数据采集与adc0804连接的 片选是cs写信号是wr读信号是rd中断是intr<br>
PROCESS(CP,RST)<br>
BEGIN<br>
IF RST=1 Then<br>
nCS<=1’;<br>
nWR<=1’;<br>
nRD<=1’;<br>
EC<=0’;<br>
State <=S0;<br>
ElsIF CPEvent And CP=1’ Then<br>
CASE State IS<br>
WHEN S0 =><br>
nCS<=0’;<br>
nWR<=0’;<br>
nRD<=1’;<br>
EC<=0’;<br>
State <=S1;<br>
WHEN S1 =><br>
nCS<=1’;<br>
nWR<=1’;<br>
nRD<=1’;<br>
EC<=0’;<br>
If nIN=0’Then<br>
Stat <=S2;<br>
End if ;<br>
WHEN S2=><br>
nCS<=0’;<br>
nWR<=1’;<br>
nRD<=0’;<br>
EC<=1’;<br>
State <=S3;<br>
<br>
WHEN S3=><br>
nCS<=1’;<br>
nWR<=1’;<br>
nRD<=1’;<br>
EC<=0’;<br>
State<=S0;<br>
WHEN OTHERS=><br>
State<=S0;<br>
END CASE; <br>
End If;<br>
END PROCESS;<br>
下面是七段扫描驱动显示和十六进制与七段显示码转换电路<br>
Signal Q : STD_LOGIC_VECTOR(15 DOWNTO 0);<br>
PROCESS (CP)<br>
Begin<br>
IF CP Event AND CP =1’ then <br>
Q<=Q+1;<br>
END IF;<br>
ST<=Q(15 DOWNTO 14);<br>
SEL<=”110” WHEN ST =0 ELSE<br>
“101” WHEN ST =1 ELSE<br>
“011” WHEN ST =2ELSE<br>
“111”<br>
<br>
NUM<=Value(3 DOWNTO 0) WHEN ST =0 ELSE<br>
Value(7DOWNTO 4) WHEN ST =1ELSE<br>
Value(11DOWNTO 8);<br>
SEG <= “0111111” WHEN NUM = 0 ELSE <br>
“0000110” WHEN NUM = 1 ELSE <br>
“1011011” WHEN NUM = 2 ELSE <br>
…..<br>
….<br>
“1110001” WHEN NUM = 15 ELSE <br>
“0000000”;