元器件大全.doc_第1页
元器件大全.doc_第2页
元器件大全.doc_第3页
元器件大全.doc_第4页
元器件大全.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

请大家帮忙看看这个8086汇编程序子程序跳转部分如何正确实现字体: 小 中 大 | 打印 发表于: 2007-12-24 12:10 作者: 热风的沙漠 来源: 编程街 要求是获取偏差之后取绝对值与预值相比较,如果比预值大就跳PD子程序,比预值小就跳PID子程序。似乎子程序跳转的地方有点问题,请大家帮我看看,谢谢 D8251 EQU 8000H ;8251数据寄存器 C8251 EQU 8002H ;8251控制状态寄存器 CSAD1_0 EQU 80H ;软件示波器通道1 CSAD2_7 EQU 00A7H ;实验用AD,通道7,双极性接法-5V到5V CS0832 EQU 00H ;DA0832 Ts EQU 03H ;采样周期=Ts*5ms,默认为15毫秒 Kp EQU 60 ;比例的100倍,精度为小数点后两位 Ti EQU 100 ;积分时间常数 Td EQU 30 ;微分时间常数 A EQU 250 ;预值的100倍 DATA SEGMENT ;数据段为空,不可定义数据段 DATA ENDS ;变量和常数请放在程序段或段地址8500H STACK SEGMENT ;堆栈段为空,不可定义堆栈段 STACK ENDS ;堆栈监控程序已经设置好 CODE SEGMENT ASSUME CS:CODE START: ;代码段开始 MOV AX,8100H MOV DS,AX ;数据在代码段内 MOV AX,7000H ;ES寻址8251 MOV ES,AX mov dx, 0020h mov al, 13h ;ICW1,边缘触发,一片8259 out dx, al CALL DELAY2 mov dx, 0021h ;ICW2,IR0-IR7,08H-0FH mov al, 08h ;注意8253定时器0接到8259的IR0 out dx, al ;中断号为8,中断矢量为32-35,即20H-21H放PC,22H-23H放CS CALL DELAY2 mov dx, 0021h ;ICW4,缓冲方式 mov al, 0Fh out dx, al CALL DELAY2 mov dx, 0021h ;OCW1,开8253,timer0中断,屏蔽其他 mov al, 0FEH out dx, al CALL DELAY2 mov dx, 0020h ;OCW2,普通中断结束命令 mov al, 20h out dx, al mov dx, 0043H mov al, 36H ;8253,mode3,timer0,先写低8位再写高8位,方波发生器 out dx, al mov dx, 0040H mov al, 000H ;低八位 out dx, al mov al, 018H ;高八位 out dx, al ;8253,timer0,1800h,5ms xor ax,ax mov ds,ax ;中断向量的段地址为0000H mov si, 0020H ;15号中断向量的PC LEA AX,T0_INTERRUPT ;取中断服务子程序的有效地址 mov si, ax mov si, 0022H ;15号中断向量的CS mov ax, 8100h ;中断服务子程序的段地址 mov si, ax mov ds,ax ;恢复数据段地址 MOV AX,Ts MOV BX,Kp IMUL BX MOV BX,05H IMUL BX MOV BX,Ti XOR DX,DX DIV BX ;计算Ki=Kp*(Ts*5)/Ti MOV WORD TR DS:Ki,AX ;其中Kp是比例系数的100倍,Ts的单位是5ms, MOV AX,Td MOV BX,Kp IMUL BX MOV BX,Ts XOR DX,DX DIV BX MOV BX,5 XOR DX,DX DIV BX MOV WORD TR DS:Kd,AX ;计算Kd=Kp*Td/(Ts*5) STI WAIT_HERE: JMP WAIT_HERE T0_INTERRUPT: ;中断服务子程序 CLI ;关中断 DEC BYTE TR DS:COUNT JNZ L3 MOV BYTE TR DS:COUNT,Ts ;采样周期到 CALL KONGZHI ;进行PID控制 L3: MOV DX, CSAD1_0 ;写虚拟示波器CH1 OUT DX, AL CALL DELAY2 IN AL, DX ;读虚拟示波器CH1 MOV ES:D8251,AL ;回送数据 W_TXREADY: MOV AL,ES:C8251 AND AL,01H JZ W_TXREADY ;等待8251发送完成 INC DX OUT DX, AL ;写虚拟示波器CH2 CALL DELAY2 IN AL, DX ;读虚拟示波器CH2 MOV ES:D8251,AL ;回送数据 IRET DELAY2: MOV CX,64h ;延时子程序大于AD0809的转换时间100us L2: LOOP L2 RET KONGZHI: MOV DX,CSAD2_7 OUT DX,AL CALL DELAY2 IN AL,DX ;采样偏差e(k) XOR AH,AH ADD AX,0FF80H ;双极性接法,相当于SUB AX,80H MOV WORD TR DS:E0,AX ;保存e(k) ADD AX,WORD TR DS:ESUM ;累加e(j) MOV WORD TR DS:ESUM,AX IMUL WORD TR DS:Ki ;Ki*SUM(e(J) MOV WORD TR DS:P_i,AX MOV AX,WORD TR DS:E0 MOV BX,Kp IMUL BX ;Kp*e(k) MOV WORD TR DS:P_p,AX MOV AX,WORD TR DS:E0 ;Kd*e(k)-e(k-1) SUB AX,WORD TR DS:E_1 IMUL WORD TR DS:Kd MOV WORD TR DS:P_d,AX MOV AX,WORD TR DS:E0 TEST AX,8000H JZ OK NEG AX MOV BX,64H IMUL BX CMP AX,A JG PD JMP ID OK: PD: MOV AX,WORD TR DS:P_p ADD AX,WORD TR DS:P_D

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论