全自动洗衣机控制系统1(5)

2019-04-09 15:03

MOV AL,3 XLAT OUT DX,AL ;AB通电CD断开时,由于B相绕组的磁力线和1、4号齿之间磁力线的作用,

;使转子转动,同时A相绕组的磁力线和0、3号齿之间磁力线的作用 使1、4号齿不能和B相绕组的磁极对齐。因;此0、3号齿和A、B相绕组产生错齿,1、4号齿就和B、C相绕组磁极产生错齿,2、5号齿与C、D;产生错齿。(转动角度7.5°) CALL DELAY MOV AL,2 XLAT ;从存储单元[bx+al]中取一个字节送到al寄存器 OUT DX,AL ;A通电 B、C、D断开,A相磁极和转子0、3号齿对齐,同时,转子的1、4号 ;齿就和B、C相绕组磁极产生错齿,2、5号齿就和C、D相绕组磁极产生错齿 ;。初始状态 CALL DELAY LOOP fanzhuan pop cx dianjimov endp

DL500ms PROC NEAR PUSH AX PUSH DX MOV DX,500 ;延时500ms MOV AH,0FFH ;星研公司提供的软中断 INT 21H POP DX POP AX RET DL500ms ENDP

DL100ms PROC NEAR PUSH AX PUSH DX MOV DX,100 ;延时500ms MOV AH,0FFH ;星研公司提供的软中断

INT 21H POP DX POP AX RET DL100ms ENDP

DL1ms PROC NEAR PUSH AX PUSH DX MOV DX,1 MOV AH,0FFH INT 21H POP DX POP AX RET DL1ms ENDP

DELAY PROC NEAR PUSH CX MOV CX,55000 L: NOP

LOOP L POP CX RET DELAY ENDP

DELAY1 PROC NEAR PUSH CX MOV CX,50000 M: NOP LOOP M POP CX RET DELAY1 ENDP

DL3S PROC NEAR PUSH CX

;延时500ms

;星研公司提供的软中断

MOV CX,6 DL3S1: CALL DL500ms LOOP DL3S1 POP CX RET ENDP DL5S PROC NEAR PUSH CX MOV CX,10 DL5S1: CALL DL500ms LOOP DL5S1 POP CX RET ENDP

InitPCI PROC NEAR MOV AH,00H MOV AL,03H INT 10H ;清屏 MOV AH,0B1H MOV AL,01H INT 1AH CMP AH,0 JZ InitPCI2 LEA DX,msg0 InitPCI1: MOV AH,09H INT 21H JMP Exit

InitPCI2: MOV AH,0B1H MOV AL,02H MOV CX,Device_ID MOV DX,Vendor_ID MOV SI,0 INT 1AH JNC InitPCI3 ;是否存在Star PCI9052板卡 LEA DX,msg1 JMP InitPCI1

InitPCI3: MOV DI,PCIBAR3 MOV AH,0B1H MOV AL,09H INT 1AH ;读取该卡PCI9052基地址 JNC InitPCI4 LEA DX,msg2

JMP InitPCI1 InitPCI4: AND CX,0FFFCH MOV IO_Bit8_BaseAddress,CX RET InitPCI ENDP

ModifyAddress PROC NEAR ADD COM_ADD,CX ADD PA_ADD,CX ADD PB_ADD,CX ADD PC_ADD,CX RET

ModifyAddress ENDP Exit: MOV AH,4CH INT 21H END START

四.上机调试过程

1.硬件调试

在开始的设计中,我使用了直流电机来实现电机的转动,但后发现这样无法实现对电机的转反转控制,所以后来通过进一步论证采用了步进电机。 2.软件调试

初步实现功能后,由于程序过于复杂,太多没有必要的跳转,所以对程序进行了简化,将多个部分写入了子程序中,然后在主程序中进行调用。 3.联机调试:

联机调试,通过单步测试和断点调试,根据数码管显示的数据判断程序的问题:

1)打开主持人开关,数码管显示1后没有循环显示2,而是8,检查程序后发现,xlat命令是将BX的内容(代码首地址)与AL的内容(表格偏移量)相加作为有效地址,并从中取出此地址单元中的内容送到AL中,故AL中数据变换了,而程序要求循环显示1~8,Al应保持从0开始,始终加1,这就要保存AL的内容。

2)继续调试,之间的都是一些判断出错问题,一一单步调试解决,程序通过。

程序全速运行还有一些细节问题,就是全速运行时候LED小灯开始时刻不亮,而且开始时候的蜂鸣器也不响,后来通过延时的改变,解决了这一个问题。

五 .设计结果分析及问题讨论

1.课程设计结果及分析

本次课程设计结果达到预期目标,可以较好的实现任务的功能。实验成功后,可以实现电机的正转反转和通过led指示灯来表示各个洗衣的进程,并通过蜂鸣器来提示程序运行结束。对于此次课程设计,主要就是对于8255各个端口的控制字的初始化,以及对于程序流程的了解,实验内容因为相似度,所以较为简单。就是对于控制字的初始化的改变来达到实现不同接口工作的轮转。

2.问题讨论

本次实验遇到了如下的问题。

1)对于元件的原理不了解导致实验受阻。如继电器的应用,连接等等。解决时,通过对控制字的初始化来实现继电器的功能。

2)步进电机的原理理解。由于步进电机是新内容,对于其原理需要通过大量学习才知道怎么应用。

3)在调试步进电机时,由于单步执行,导致电机转速过慢,怎么调转动延时都不能达到快速,钻了牛角尖。对于时延的调节也了解到了通过计算机自减数字来达到同样的时延效果。

4)全速运行时,受控制字的初始化的影响,按键时要严格按照步骤来所以过程需要严谨而且调试麻烦。

5)编程时遇到了多次重复使用变量的问题,致使程序不能成功运行。

3.收获、体会和建议

本次课程设计给我最大的体会就是只要努力就有收获。由于平时学习不认真,汇编语言没学好,本来以为课程设计只能靠同学了,但是经过自己的努力,发现自己也可以独立完成这个程序,获得了很强的成就感,没克服一个难题我就会无比的高兴。因此我深刻的体会到毅力和努力探索是成功的关键。对于这样的课程设计,希望老师能多多帮助,就如设计时,指导老师张老师向我们讲授了很多新器件的原理,这让我们受益匪浅。


全自动洗衣机控制系统1(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:让五角大楼电击我的大脑 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: