EDN China > 其它文章 > 嵌入式系统 > MCU(单片机应用) > 正文
? 2016博客大赛-不限主题,寻找电子导师,大奖升级??

简化微控制器编程的表格

Abel Raynus?? 马萨诸塞州Malden?? Armatron 国际公司?? 2010年06月30日 ?? 收藏0

  在制作微控制器固件时,经常需要与数据组打交道。表格可以简化数据组的工作,如数字码变换、传感器线性度的校正、复杂的计算,以及多输出的组织等。表1表示如何用一个表来组织数据。输出A、B和C的值均基于输入值V。

  当使用一个查找表时,选择适当的微控制器输入与输出。为表2中的输入输出数据分配值。这些数据可以包括二进制、十六进制或十进制格式的常数,或名称。对于每个名称可以分配一个常数值。例如:

\data1 equ $0a
data2 equ $0b
data3 equ $0c
data3 equ $0d

  然后,将表2中的数据放到ROM的开始或结尾,这样容易找到数据。在定义一个字节的数据存储时,要用伪操作码FCB或DB。对于2个字节的数据存储,用FDB或DW,如下例:

ORG ROM
VxFCB 0T, 2T, 4T, 6T
AxFCB data1, data2, data3, data4
BxFCB $aa, $bb, $cc, $dd
Cx FDB $1122, $3344,$5566, $7788

  注意要用逗号分隔数据。最后的数据后面不要放逗号,否则就会被认为是$00。在使用表格时,应采用索引寻址模式。它通过可变地址提供对数据的存取。大多数微控制器有两个索引寄存器,X和H。寄存器X包含操作数的低字节条件地址;寄存器H中为高字节。表格使用的算法很简单。当你探测到输入值后,就应将其与表格中的输入数据作比较。X索引确定这个值,它起始于X=0,结束于X=N。在本例中,N=4。当你发现表中数据等于输入值时,就用相应的X作为索引,用该值装入到输出寄存器。对于2字节的情况,应分别装入输出寄存器,先装高字节,再装低字节。图1表示了这个过程。

  在汇编码表中,可以对地址从$F800到$F813存储区的表格内容作再次检查。表中采用的是飞思卡尔的汇编器,因为多数相关应用都采用了飞思卡尔公司的HC08 Nitron系列8位微控制器。不过,你可以在任何种类的微控制器和汇编语言中使用这种方法。

表1


?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

微控制器? 编程?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈