图9 8051单片机的下载界面
5.1.3 8051软核软件测试
向软核中下载程序代码有两种方法,如下:
1、Quartus II打开的工程,在工程管理窗,双击图左侧rom4KB,在右侧出现该元件文件,其初始化文件路径指示在1.HEX上,如图10。下载SOF文件后可以测试程序的功能了。
图10 ROM初始化文件路径
2、利用In-System Memory Content Editor下载。在单片机程序编译环境KEIL2中修改程序main. c,编译,并用“Tools”菜单中的工具:In-System Memory Content Editor,下载编译代码:1.hex,如图11。再观察软硬件的工作情况。8051的软件调试也可以使用In-System Memory Content Editor来完成[5-6]。
图11 利用In-System Memory Content Editor下载程序HEX代码
5.2 三相正弦波产生模块设计
5.2.1 ROM波形数据的获取
利用Quartus II中的Mega Wizard Plug-In Manager可以方便的生成任意大小和接口的ROM,关键是如何将波形表初始化到其中去。
获取正弦波形数据的方法有好几种,这里我将介绍一种用Excel来生成波形
数据的方法。如下所述:
在一个周期内ωt的取值范围为0~2π,对应y=f(x)形式,即0≤ x<2π,则
y sinx (0≤x<2π)
ROM地址范围的大小取决于所要求的数据表精度,地址范围越大数据表越精确,但需要的存储空间越大。在Excel表格中可以用下拉单元格的方式迅速生成地址,本设计中生成256个数据的数据表,地址范围0~255,即波形表中每种波形每周期取256点。首先在A1和B1两格中输入0和2,然后选中此两格,用下拉菜单的方法向后拖动,直到拖到最后一格刚好生成256个数据为止。然后在A2格输出公式“=sin((A1/256)*2* 3.1415926 ) ”,再利用下拉单元格的方式,得到各个地址单元所对应得正弦函数值。以上得到的正弦函数表往往不能被D/A转换器直接利用,需要将其值映射到D/A转换器所能接受的数据空间内。设计中所用D/A转换器为8位,其数据空间是0~255,可以在C1格输入公式“=127.5*(1+B1)”来映射数据,映射后的数据为小数,还须对其取整,即在A3格中输入公式“=INT(C1)”。最后,为使数据表能直接用于Quartus II程序中还须添加文本。添加语法文本可输入“=A1”、“=&D1”,再用下拉单元格方法,得到完整的数据表。已生成的带有语法文本的函数表,经复制后可以直接粘贴到用户程序中。ROM表中的数据如图12所示[3]。