将生成的高12位BCD码与低12位的BCD码相加,得到12位的BCD码,该结果即为所求的BCD码结果。如上述的2.56V的BCD码是0010 0101 0110,O.12V的BCD码是0000 0001 00lO。所以相加的结果是0010 0110 1000,即为2.68V。因此在电路中必须设计一个12位的BCD码加法程序,实现由8位二进制转换为12位BCD码硬件电路。在程序设计中应当注意的是BCD码相加时,由最低4位加起,且每4位相加的结果超过1001时,应加0110调整。该段程序的描述是通过一个进程Process(HB,LB,CEN)来实现。其中HB表示生成的高12位BCD码,LB表示生成的低12位BCD码.CEN表示系统提供的时钟信号。在时钟上升沿时刻进行BCD码相加,并判断结果是否超过1001,判断程序采用if…then…语句,实现条件判断电路。按照图4完成BCD码程序转换设计。将以上两段程序进行组合,最终获得由VHDL语言描述的BCD码转换程序。
1.5 A/D转换与BCD码合成系统电路
将A/D转换电路与BCD码转换电路组成统一系统,通过硬件编程语言VHDL中的进程语句将编制成功的A/D转换电路描述语句和BCD码转换电路描述语句组合成一个整体程序,通过QuartusⅡ软件生成系统图,如图5所示。
A/D转换结果由3位十进制数表示,每位十进制数由4位BCD码表示,总共有12位BCD码输出。将电路输出BCDOUT(11..0)分成BCDOUT(11..8),BCDOUT(7..4)和BCDOUT(3..0)三部分,通过三个进程Process()分别用VHDL语言编程描述LED显示驱动。对整个系统进行波形仿真,得到仿真波形如图6所示,最后在GW48-CK实训开发系统完成功能验证。
2 结 语
将CPLD和微机控制技术相结合,在智能仪表设计和控制系统设计领域提高了系统设计的灵活性,缩短了产品开发周期,同时使系统易于升级和扩展。因为采用了CPLD(复杂可编程逻辑器件),极大提高了系统I/O口利用率,缩小了印刷电路板面积,提高了系统集成度,在多输入/多输出的数据采集和控制系统领域有十分广阔应用前景。