-1-计算机系综合性实验实验报告课程名称微机原理与接口技术A实验学期2010至2011学年第2学期学生所在系部电子信息工程系专业班级学生姓名学号任课教师实验成绩计算机系制-2-《小直流电机转速控制》课程综合性实验报告开课实验室:微机与接口实验室2011年5月29日实验题目小直流电机转速控制实验一、实验目的1、了解计算机控制直流电机原理2、掌握直流电机正转反转设置方法。3、掌握前向通道各部件工作原理及程序控制原理。二、设备与环境DAC08328255并行接口芯片98系统微机。三、实验原理简述小直流电机的转速是由Ub输出脉冲的占空比来决定的,正向占空比越大转速越快,反之越慢。见下面图例:-3-在本实验中,模拟量输出Ub为双极性,当输入数字量小于80H时输出为负,输入等于80H时为0V,输入大于80H时输出为正。因而本实验中,DAC0832输入数字量只有2个(80H和FFH),通过不同的延迟时间达到改变小电机转速的目的四、实验内容1、按图55线路接线。DAC0832的CS接290H~297H,Ub接DJ插孔。8255CS接288H~28FH。2、编程利用DAC0832输出一串脉冲,经放大后驱动小直流电机,利用开关K0~K5控制改变输出脉冲的电平及持续时间,达到使电机加速,减速之目的。五、实验流程设计-4-六、程序段分析(1)数据段DATASEGMENTIoportequ0c8ooh-0280hPORT1EQUioport+290HPORT2EQUioport+28BHPORT3EQUioport+28AHBUF1DW?BUF2DW?DATAENDS功能说明:DATA是段的名字,DATAENDS段程序的结束。数据定义伪指令用来为数据分配存储单元,建立变量与存储单元之间的联系。dw定义类型属性为字,?表示预留空间,内容不定。(2)代码段CODESEGMENTASSUMECS:CODE,DS:DATACODE是代码段,一个汇编语言程序中,代码段是不可缺少的,其他段可视具体情况而定。-5-ASSUME用于明确段与段寄存器的关系。START:MOVAX,DATAMOVDS,AXMOVDX,PORT2MOVAL,8BHOUTDX,AL;8255PORTCINPUT功能说明:该段程序用于8255芯片的初始化,8255的写入方式控制字,由实验原理图知,8255的C口作为输入口,8255的A口作为输出口,由8255的写入方式控制字格式和8255的工作方式易知控制字为8BH或是89H。本次实验用的是8BH。LLL:MOVAL,80HMOVDX,PORT1OUTDX,AL;D/AOUTPUT0VpushdxMOVAH,06hmovdl,0ffhINT21HpopdxJEINTK;NOTANYKEYJMPINTKMOVAH,4CHINT21H;EXITTODOS功能说明:当输入数字量为80H时D/A输出为0V。程序调用06H功能,在键盘无键按下时ZF=1,当有键按下时ZF=0。JEINTK所以当没有键按下时ZF=1,当执行“JEINTK”时,程序将会跳到INTK程序中,当有键按下时,程序执行MOVAH,4CHINT21H从而结束程序。内中断21H是操作系统向用户提供服务程序的窗口,4CH功能服务用于结束用户程序,操作系统收回CPU的控制权。INTK:MOVDX,PORT3INAL,DX;READSWITCHTESTAL,01HJNZK0TESTAL,02HJNZK1TESTAL,04HJNZK2TESTAL,08HJNZK3-6-TESTAL,10HJNZK4TESTAL,20HJNZK5JMPLLL功能说明:该段程序主要用于判断开关K0~K5那个键被按下,采用的是查询方式,其中开关K0键到K5键的优先权递减,即当K0按下时,其他键的状态对实验结果没有影响。K0:MOVBUF1,0400HMOVBUF2,0330HDELAY:MOVCX,BUF1DELAY1:LOOPDELAY1MOVAL,0FFHMOVDX,PORT1OUTDX,ALMOVCX,BUF2DELAY2:LOOPDELAY2JMPLLL功能说明:K0设置延时常数。DELAY:MOVCX,BUF1目的是消除按键抖动。DELAY1的功能是使D/A输出为5V,因为当输入的数字量为FFH时输出为5V,同时BUF2为延迟时间,BUF2的值越大,延迟时间越长,代表对电动机供电时间越长,因此电动机转的越快。0000H为特殊情况,当CX减1时处于最大值,因此此时的转速最快。DELAY2使循环回到LLL。K1~K5的分析同上。七、附录asm原程序:DATASEGMENTIoportequ0c800h-0280hPORT1EQUioport+290HPORT2EQUioport+28BHPORT3EQUioport+28AHBUF1DW?BUF2DW?DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVDX,PORT2MOVAL,8BHOUTDX,AL;8255PORTCINPUTLLL:MOVAL,80H-7-MOVDX,PORT1OUTDX,AL;D/AOUTPUT0VpushdxMOVAH,06hmovdl,0ffhINT21HpopdxJEINTK;NOTANYKEYJMPINTKMOVAH,4CHINT21H;EXITTODOSINTK:MOVDX,PORT3INAL,DX;READSWITCHTESTAL,01HJNZK0TESTAL,02HJNZK1TESTAL,04HJNZK2TESTAL,08HJNZK3TESTAL,10HJNZK4TESTAL,20HJNZK5JMPLLLK0:MOVBUF1,0400HMOVBUF2,0100HDELAY:MOVCX,BUF1DELAY1:LOOPDELAY1MOVAL,0FFHMOVDX,PORT1OUTDX,ALMOVCX,BUF2DELAY2:LOOPDELAY2JMPLLLK1:MOVBUF1,0400HMOVBUF2,0300HJMPDELAYK2:MOVBUF1,0400HMOVBUF2,0600HJMPDELAYK3:MOVBUF1,0400HMOVBUF2,0900HJMPDELAY-8-K4:MOVBUF1,0400HMOVBUF2,1200HJMPDELAYK5:MOVBUF1,0400HMOVBUF2,1500HJMPDELAYCODEENDSENDSTART教师评价评定项目ABCD评定项目ABCD算法正确界面美观,布局合理程序结构合理操作熟练语法、语义正确解析完整实验结果正确文字流畅报告规范题解正确其他:评价教师签名:年月日-9-