新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 利用全局及外部变量实现C51无能数化调用A51函数

利用全局及外部变量实现C51无能数化调用A51函数

作者:时间:2012-03-08来源:网络收藏

在研制无纸记录仪之前,作者用MASM51开发了其他仪表,采样部分有些相同,因此这次采样程序并不是重新编写,而是把以前的MASM51程序按的规则来修改。以前ASM的程序(数据段部分)如下所示:
bseg

write_alw bit 00h;
vz_bit bit 01h
fs_bit bit 02h
ce_bit bit p1.6
ram_cs bit p1.2
b373 bit p1.1
bit_dog bit p1.4
data_bit bit P2.6
sclk_bit bit P3.4
drdy_bit bit p3.3
ends
;
dseg
org 08h
org 28h
sample_w; ds 12
sa_p: ds 1 ;当前通道号
ram_point: ds 2
sa_timer: ds 8 ;0,1,2,3每通道两字节
sa_vzt: ds 8 ;0,1,2,3 vz
ends
;
cseg
org 0h
begin: reti
org 03h
lcall sample
reti
sample:
……
ends

从上述程序可以看出,在采样程序中所用到的并不少,定义在数据存储区28H单元起始的空间中。这样安排,对汇编程序没什么问题,但与主程序连接的时候,并不一定好,很多时候碰到地址空间溢出的问题(主程序编译连接后将近16K字节,CPU采用ATMEL公司的AT89C55WD)。如何调整这些的分配,并非容易。另外,随时要用到采样单元sample_w[12]的值,如果采用一般的参数传递,将是相当复杂而繁琐的;而采用C51无参数经,极大简化了这些工作,大大提高了工作效率。

本文第2部分的程序,采用Keil公司的Keil C V6.10集成开发工具包完成。所研制的无纸记录仪已经通过福建省科技厅的鉴定。


上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭