如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
请大家帮忙看看这个8086汇编程序子程序跳转部分如何正确实现~~字体:HYPERLINK"javascript:;"小HYPERLINK"javascript:;"中HYPERLINK"javascript:;"大|HYPERLINK"javascript:;"打印发表于:2007-12-2412:10作者:热风的沙漠来源:编程街要求是获取偏差之后取绝对值与预值相比较,如果比预值大就跳PD子程序,比预值小就跳PID子程序。似乎子程序跳转的地方有点问题,请大家帮我看看,谢谢~~~~D8251EQU8000H;8251数据寄存器C8251EQU8002H;8251控制状态寄存器CSAD1_0EQU80H;软件示波器通道1CSAD2_7EQU00A7H;实验用AD,通道7,双极性接法-5V到5VCS0832EQU00H;DA0832TsEQU03H;采样周期=Ts*5ms,默认为15毫秒KpEQU60;比例的100倍,精度为小数点后两位TiEQU100;积分时间常数TdEQU30;微分时间常数AEQU250;预值的100倍DATASEGMENT;数据段为空,不可定义数据段DATAENDS;变量和常数请放在程序段或段地址8500HSTACKSEGMENT;堆栈段为空,不可定义堆栈段STACKENDS;堆栈监控程序已经设置好CODESEGMENTASSUMECS:CODESTART:;代码段开始MOVAX,8100HMOVDS,AX;数据在代码段内MOVAX,7000H;ES寻址8251MOVES,AXmovdx,0020hmoval,13h;ICW1,边缘触发,一片8259outdx,alCALLDELAY2movdx,0021h;ICW2,IR0-IR7,08H-0FHmoval,08h;注意8253定时器0接到8259的IR0outdx,al;中断号为8,中断矢量为32-35,即20H-21H放PC,22H-23H放CSCALLDELAY2movdx,0021h;ICW4,缓冲方式moval,0Fhoutdx,alCALLDELAY2movdx,0021h;OCW1,开8253,timer0中断,屏蔽其他moval,0FEHoutdx,alCALLDELAY2movdx,0020h;OCW2,普通中断结束命令moval,20houtdx,almovdx,0043Hmoval,36H;8253,mode3,timer0,先写低8位再写高8位,方波发生器outdx,almovdx,0040Hmoval,000H;低八位outdx,almoval,018H;高八位outdx,al;8253,timer0,1800h,5msxorax,axmovds,ax;中断向量的段地址为0000Hmovsi,0020H;15号中断向量的PCLEAAX,T0_INTERRUPT;取中断服务子程序的有效地址mov[si],axmovsi,0022H;15号中断向量的CSmovax,8100h;中断服务子程序的段地址mov[si],axmovds,ax;恢复数据段地址MOVAX,TsMOVBX,KpIMULBXMOVBX,05HIMULBXMOVBX,TiXORDX,DXDIVBX;计算Ki=Kp*(Ts*5)/TiMOVWORDTRDS:[Ki],AX;其中Kp是比例系数的100倍,Ts的单位是5ms,MOVAX,TdMOVBX,KpIMULBXMOVBX,TsXORDX,DXDIVBXMOVBX,5XORDX,DXDIVBXMOVWORDTRDS:[Kd],AX;计算Kd=Kp*Td/(Ts*5)STIWAIT_HERE:JMPWAIT_HERET0_INTERRUPT:;中断服务子程序CLI;关中断DECBYTETRDS:[COUNT]JNZL3MOVBYTETRDS:[COUNT],Ts;采样周期到CALLKONGZHI;进行PID控制L3:MOVDX,CSAD1_0;写虚拟示波器CH1OUTDX,ALCALLDELAY2INAL,DX;读虚拟示波器CH1MOVES:[D8251],AL;回送数据W_TXREADY:MOVAL,ES:[C8251]ANDAL,01HJZW_TXREADY;等待8251发送完成INCDXOUTDX,AL;写虚拟示波器CH2CALLDELAY2INAL,DX;读虚拟示波器CH2MOVES:[D8251],AL;回送数据IRETDELAY2:MOVCX,64h;延时子程序大于AD0809的转换时间100usL2:LOOPL2RETKONGZHI:MOVDX,CSAD2_7OUTDX,ALCALLDELAY2INAL,DX;采样偏差e(k)XORAH,AHADDAX,0FF80H;双极性接法,相