⊙通用键盘显示板
☆测试程序入口地址
a:0400 检查 8031 P1口 (方波)
b:041O 检查 8155 内存 好显示gd
c:046O 检查 8155 PA PB PC口 (方波) d:0480 检查 6264
好显示 gd
e:O4BO 检查 0809
f:0500 检查 0832
☆数据采集及PC通讯子程序
a.FSDT三字节浮点数规格化子程序
地址为:0800H-082FH 三字节浮点数形式,数符阶符阶码尾数(高)尾数(低)
在执行浮点数的加减法之前必须先对阶,使两个操作数的阶码相等,通常是小阶对齐大阶,对阶
码小的浮点数进行右规操作,对于运算结果,进行左规操作使之转化为规格化浮点数.FSDT子程
序对浮点数进行左规或右规操作,其功能为:
若CY=0,FO=0,则对R6(阶)R2R3进行右规一位的操作右移输入位为
BIT39H;
若CY=0.FO=1,则对R7(阶)R4R5进行右规一位的操作右移输入位为BIT39H;
若CY=1,则对R6(阶)R2R3进行左规格化,第一次左移输入位为FO.
本程序使用A, CY, F0, R0-R7,BIT39H等
b.FABP三字节浮点数加减法,地址为0830H-08A5H
入口: BIT 3A=0 加 3A=1 减 R6 R2 R3 + R7 R4 B3--〉R4
R2 B3
FAVP子程序使用A.R0-R7.F0位单元38H.39H.3AH,并调用FSDT子程序
C.DMUL三字节原码小数乘法地址 08B0H-08DAH将(R4R5)和(R2R3)中的双字节纯小数相乘,结果送
到 R2R3R7.本子程序使用累加器A,寄存器B.R2.R3.R4.B5.R6.R7以及标志F0.
d.FMLD三字节浮点取数子程序,地址为08E0H-08FBH入口: R0.R1指向二个浮点数的阶码字节.
(R0)(R0+1)(R0+2)--〉R6 R2 R3 (R1)(R1+1)(R1+2)-->
R7 R4 R5
出口: R0.R1值不变,R6R2R3,R7R4R5
FMLD子程序使用累加器A,工作寄存器R0-R7
e.FADD三字节浮点数加法,地址为08F5H-O8FBH 入口: R0,R1 同上
(R0); (R0+1) (R0+2) +(R1) (R1+1) (R1+2)
R4 R2 R3
出口: R0,R1 值不变,R4 R2 R3
f.FSUB三字节浮点数减法子程序,地址为0900H-0906H 入口: R0
R1指向二个浮点数阶码字节
(R0) (R0+1) (R0+2) - (R1) (R1+1) (R1+2)
R4 R2 R3
出口: R0, R1值不变,R4 R2 R3 为结果
g.FSTR三字节存数子程序,地址为0907H-0911H 入口: R4 R2
R3, R1
R4 R2 R3--〉(R1)(R1+1)(R1+2)
出口: R1值不变
h.FMUL字节浮点数乘法子程序,地址为0915H-0930H
入口: R0,R1
(RO) (R0+1) (R0+2) * (R1) (R1+1) (R1+2) = R4 R2
R3
出口: R4 R2 R3,不改变R0,R1和 RAM 的内容.
FMUL子程序使用累加器 A,标志 F0,寄存器 R0-R7.
B 以及位单元32H,并调用子程序FMLD,FSDT等.
i.DDIV三字节原码小数除法子程序,地址0931H-095FH
将(R2R3)中双字节定点小数除以 (R4 R5)
中双字节定点小数,商送 R2 R3.
DDIV子程序使用累加器A,寄存器B,R0-R7,标志F0,CY等
j.FDIV三字节浮点除法子程序,地址0960H-0996H.
(R0)(R0)+1)(R0+2)/(R1)(R1+1)(R1+2)=R4 R2 R3
将(R0)指向的内部RAM中的浮点数除以(R1)指向的内部RAM中的浮点数,商送R4
R2 R3不改变
R0,R1和内部 RAM 中的操作数内容.
FDIV子程序使用累加器A,寄存器B,R0-R7,标志F0,CY位单元38H,39H,调用FMLD,FSDT等子程序.
k.EHTD三字节浮点数二翻十,地址为O9A0H-0A96H.
入口: (R0) (R0+1) (R0+2) 出口: (R1)
十进制阶码
(R1+1) 最高位 (R1+2) 最高位
(R1+3) 最高位
(R1+4) 最高位 (B1+5) 最高位
(R1+6) 最高位
注: 单字节BCD码
1.INTF 0AA0H-0AAFH,16位二进数--〉三字节浮点数
入口: 3CH,R2,R3,R1 出口: R6 R2,R3
将BIT 3CH (数符) R2 R3中的整数转换成三字节浮点数送(R1)指向的内部RAM单元中,INTF子
程序使用累加器A,R1R2,R3,R6,调用FSTR子程序.
m.IDTB: 四位十进制数-->二进制数,地址为0AB0H-0AD1H
设BCD码a1,a2,a3,a4分别放在40H-43H单元,二进制结果放在R3R4中.
该子程序使用A,B,R0,R2,R3,R4.
n.FBTF:二进制数-->三字节浮点数,地址为0AD2H-0ADDH
入口: 同1 出口: 同1
o.FLOUD存数程序,地址为0ADH-0AE4H.
入口: R4,R2,R3,R0,R4,R2,R3-->(R0) (R0+1) (R0+2)
出口: (R0)(R0+1)(R0+2)
p.FDTB 十进制数-->三字节浮点数,地址为0AE5H-0B84H
q.DAVG四取一数字滤波子程序,地址0B91H-0BDAH.
DAVG子程序连续执行4次数据采样,去掉其中最大值和最小值,然后取剩下两个数据的平均值送
到R6.R7中.
本程序调用A/D输入子程序RDAD,读入14位二进制数的A/D结果(在0-3FFFH范围内).程序中R0作
N计数器,R2 R3存放最大值,R4 R5存放最小值,R6 R7
存放累加和及最后结果.
r.RDAD 读 AD 样品子程序,地址为0BE0H-0BF0H. 入口: 61H. 60H
单元 出口: A. B
s.sin函数,sinX多项式计算子程序,地址0C00H-0FFFH
t.com IBM-PC 通讯子程序,地址为0F00H-0FFFH.
Bandrate = 1200 Band Frame: 起始位 十 D0-D7
十 停止位入口,先接来自 PC 的命令,
暂定为数字键d,开始发送把4000H-5FFfH,送入 PC,并创造用户文件,记录存盘.
BACK<<
>>NEXT |
 |