访问电脑版页面

导航:老古开发网手机版AVR单片机AVR单片机编程

在AT90S1200 中如何实现常数表功能?

导读:
关键字:


由于AT90S1200 没有LPM 指令,比较有效的方法是将一个较小的常数表放置在EEPROM 中

你可以使用EEPROM 地址寄存器和EEPROM 数据寄存器有效地直接访问常数表



.ESEG 定义EEPROM 段

.db my_var00=$45

.db my_var01=$4c

.db my_var02=$5f

.CSEG 定义通用代码段

如果你的表不适合于放置在EEPROM 中你可以象下面这样放置在FLASH 中

.def tp =r16 表指针表索引

.def output=r17 输出表的中常数

table

ldi output,$45

cpi tp,01

breq end

ldi output,$4c

cpi tp,02

breq end

ldi output,$5f

cpi tp,03

breq end

end

ret

为了访问表中的2 号元素可以这样做

ldi tp 2

rcall table

当从表格子程序返回时“output”将包括“$4c”



来源:   作者:  2004/12/29 2:32:48
栏目: [ AVR单片机编程]

相关阅读

在AVR 汇编器中怎样定义字符串常量

AVR Studio 问题!为什么我在串口中断程序中设置的断点,却不产生中断??

怎样在CodeVision中使用结构型数组的用法实例 作者[xiaoqi]©

AVR汇编语言如何实现如 LJMP @A+DPTR这样的散转结构

AVR单片机驱动无源蜂鸣器

AVR单片机CRC校验码的查表与直接生成

AVR单片机的RC5和RC6算法比较与改进

AVR单片机GCC编程

在AT90S1200 中如何实现常数表功能?

AVR单片机定点运算及数制转换子程序

基于AVR单片机的LED显示屏的灰度设计与实现

基于AVR单片机USART与PC机的串行通信