微机原理与接口技术实验指导_第1页
微机原理与接口技术实验指导_第2页
微机原理与接口技术实验指导_第3页
微机原理与接口技术实验指导_第4页
微机原理与接口技术实验指导_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

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

文档简介

1、精选文档微机原理及接口技术实 验 指 导 书杨霞 周林英 编长安大学电子与控制工程学院2009年9月前 言本实验指导是为适应各大、中专院校开设微机原理及应用方面的课程需做大量软硬件实验的需要而编写的,供学生编程用。完成本实验指导中的实验,可使学生基本掌握8086/8088的结构原理、接口技术、程序设计技巧。手册中详细叙述了各实验的目的、内容,列出了接线图、程序框图和实验步骤。主要学习内容为80X86语言实验环境配置、汇编源语言格式、输出字符、循环结构、子程序调用,以及加减乘除等指令操作、通用接口芯片的接口编程与使用。所有实验都是相互独立的,次序上也没有固定的先后关系,在使用本书进行教学时,教师

2、可根据教学要求,选择相应实验。学习结束后,要求学生能够独立编写出综合加减乘除等指令,以及循环结构、子程序调用等程序控制程序、看懂一般接口芯片电路图。目 录实验一 清零程序4实验二 拆字程序6实验三 数据区移动8实验四 多分支程序设计10实验五 多字节减法运算13实验六 显示程序16实验七 8251串口实验25实验八 步进电机控制29附录一 汇编语言的存储模型36附录二 8279键值显示程序37实验一 清零程序一、实验目的   掌握8088汇编语言程序设计和调试方法。二、实验设备STAR系列实验仪一套、PC机一台。三、实验内容     

3、 把RAM区内4000H-40FFH单元的内容清零 。四、程序框图五、源程序清单.MODEL TINY.STACK 100.DATA.CODEORG 0100HSTART:MOV BX,4000HMOV AX,0000HMOV CX,80HL1: MOV BX,AXINC BXINC BXLOOP L1JMP $END START六、实验步骤      手动修改RAM区内4000H-40FFH的内容,连续或单步方式运行程序,检查4000-40FFH内容 执行程序前后的变化。七、思考1、把4000H-40FFH中的内容改成FF,如何修改程序。2、把4000

4、H-40FFH中的内容改成00FF,如何修改程序。实验二 拆字程序一、实验目的    掌握汇编语言设计和调试方法。 二、实验设备STAR系列实验仪一套、PC机一台。三、实验内容     把4000H单元的内容拆开,高位送4001H低位,低位送4002H低位,4001H、4002H 的高位清零,一般本程序用于把数据送显示缓冲区时用。 四、程序框图五、源程序.MODEL TINY.STACK.DATA.CODESTART:MOV BX,4000HMOV AL,BXMOV AH,ALMOV CL,4SHR AH,CLIN

5、C BXMOV BX,AHAND AL,0FHINC BXMOV BX,ALJMP $六、实验步骤     手动修改4000H的内容,用连续或单步方式运行程序,检查4000H-4002H中内容变化情况。七、思考   1.如何用断点方式调试本程序。2.把4000H、4001H单元低位的内容合成一字送4002H单元。实验三 数据区移动一、实验目的    掌握RAM中的数据操作。二、实验设备STAR系列实验仪一套、PC机一台。三、实验内容    把41

6、00H源RAM区首址内的16字节数据传送到4200H目标RAM区。四、设计思想     程序要求把内存中某一数据区(称为源数据块)传送到另一存储区(称为目的数据块)。源数据块和目的数据块在存储器中可能有三种情况,如下图:     对于两个数据块分离的情况,如图(a),数据的传送从数据块的首址开始,或者从数据块的末址开始均可。但对于有部分重叠的情况,则要加以分析,否则重叠部分会因“搬移”而遭破坏。     可以得出以下结论:当源数据首址目的块首址时,从数据块首址开始传送数据。

7、当源数据块首址目的块首址时,从数据块末地址开始传送数据。五、程序框图六、源程序清单 .MODEL TINY.STACK.DATA.CODEORG 0100HSTART0: MOV CX,0010HMOV SI,4100HMOV DI,4200HCMP SI,DIJA A42ADD SI,CXADD DI,CXA41: DEC SI DEC DIMOV AL,SIMOV DI,ALLOOP A41 JMP $A42: MOV AL,SIMOV DI,ALINC SIINC DILOOP A42JMP $END START0七、实验步骤     调试运行30

8、60程序,检查4100-410FH中内容是否和4200-420FH中内容完全一致。 八、思考    1.把4200H源RAM区首址内的16字节数据传送到4100H目标RAM区。2.把4100H源RAM区首址内的16字节数据传送到410AH目标RAM区。实验四 多分支程序设计一、实验目的     掌握汇编语言的编程,熟悉程序散转的设计方法。二、实验设备STAR系列实验仪一套、PC机一台。三、实验内容编写程序,根据接收到的键值,作不同的处理。四、设计思想    多分支结构相当于一

9、个多路开关,在程序设计中通常是根据某寄存器或某单元的内容进行程序转移。在设计多分支转移程序时,如果分支太多,则平均转移速度太慢,本实验采用转移地址表实现多分支转移,可以提高平均转移速度。 五、程序框图六、实验步骤1、连线说明:E5区 :CLKB2区:2ME5区 :CSA3区:CS5E5区 :A0A3区:A0E5区 :A、B、C、DG5区:A、B、C、D2、在G5区的键盘上输入1位数3、使用各种手段调试程序3、结果显示在G5区的数码管上七、源程序清单;调用GetKeyB返回键值,根据键值执行相应的程序.MODELTINYEXTRNDisplay8:NEAR, GetKeyB:NEAR.STACK

10、100.DATABUFFERDB8 DUP(?).CODESTART:MOVAX,DATAMOVDS,AXMOVES,AXNOPSTART1:CALLGetKeyB;键值存放在AL中CMPAL,8JBSTART2XORAL,AL;大于7,作0处理START2:XORAH,AHMOVBX,AXSHLBX,1LEADI,Table_1JMPCS:DIBXTable_1: DWKey0, Key1, Key2, Key3, Key4, Key5, Key6, Key7Key0:MOVAL,1JMPKeyKey1:MOVAL,2JMPKeyKey2:MOVAL,3JMPKeyKey3:MOVAL,4J

11、MPKeyKey4:MOVAL,5JMPKeyKey5:MOVAL,6JMPKeyKey6:MOVAL,7JMPKeyKey7:MOVAL,8JMPKeyKey:MOVCX,8LEADI,BUFFERREPSTOSBLEASI,BUFFERCALLDisplay8MOVCX,60000LOOP$;延时JMPSTART1ENDSTART实验五 多字节减法运算一、实验目的     掌握BCD码、补码,熟悉多文件、多模块汇编语言程序设计的方法。 二、实验设备STAR系列实验仪一套、PC机一台。三、实验内容 从键盘上输入4位被减数、减数,实现双字节BCD码(四位

12、数)的减法,结果显示在数码管上;进一步熟悉使用断点、单步进入、单步、运行到光标处、修改PC指针、全速运行等各种调试手段;熟悉查看特殊功能寄存器、CS段、DS段存贮器的各种方法。四、程序框图五、实验步骤1、连线说明:E5区 :CLKB2区:2ME5区 :CSA3区:CS5E5区 :A0A3区:A0E5区 :A、B、C、DG5区:A、B、C、D2、在G5区的键盘上输入4位被减数、减数3、结果显示在G5区的数码管上六、源程序清单.MODELTINY.STACK100.DATAResultDB5 DUP(?)minuendDW88H,44H,66H,00H,99H;被减数N1 = $-minuend;

13、被减数长度subtrahendDW22H,55H,88H;减数N2 = $-subtrahend ;减数长度.CODESTART:MOVAX,DATAMOVDS,AXMOVES,AXPUSH DS XOR AX,AX PUSH AX STD;清方向标志 ;显示被减数 ; LEA SI,minuend ; ADD SI,N1-1 ; MOV CX,N1 ; CALL EX21 ; CALL PP2 ; ;显示减数 ; LEA SI,subtrahend ; ADD SI,N2-1 ; MOV CX,N2 ; CALL EX21 ; CALL PP2 ;计算结果 CALL EX22 ;显示结果 L

14、EA SI,minuend ADD SI,N1-1 MOV CX,N1 CALL EX21 jmp $;模块名称:EX21;功 能:显示运算结果;入口参数:;出口参数:EX21 PROC near PUSH AX PUSH DXF: LODSBLEA BX,ResultADD BX,CXMOV BX,AL ;用十六进制数显示一个字节的内容 ; MOV DL,' '显示一个空格符 ; MOV AH,2; ; INT 21H; LOOP F POP DX POP AX RETEX21 ENDP ;模块名称:EX22;功 能:进行多字节减法运算;入口参数:;出口参数:相减的那结果存在

15、EX22 PROC near LEA SI,minuend LEA DI,subtrahend MOV BX,N1 MOV CX,N2 CLCMM: MOV AL,DI SBB SI,AL INC DI INC SI DEC BX LOOP MMM1: JZ EXIT22;因LOOP指令对标志位无影响,所以此处的转移是对DEC BX而言。 ;处理被减数的位数多于减数的位数的情况 JNC EXIT22;无借位则直接退出 SBB BYTE PTR SI,0;影响CF标志位 INC SI;不影响CF标志位 DEC BX;不影响CF标志位,影响ZF标志位 JMP M1EXIT22: RETEX22 E

16、NDP END start.MODELTINYEXTRNDisplay8:NEAR, GetBCDKey:NEAREXTRNF1:BYTE.STACK100.DATABUFFERDB8 DUP(?)minuendDW1 DUP(?);被减数subtrahendDW1 DUP(?);减数.CODESTART:MOVAX,DATAMOVDS,AXMOVES,AXNOPMOVF1,0;先清除显示,再接收键输入START1:LEADI,minuendMOVCX,4;按键次数CALLGetBCDKey;得到双字节十进制数(被减数)MOVF1,1;接收到第一个键,才清除显示LEADI,subtrahend

17、MOVCX,4;按键次数CALLGetBCDKey;得到双字节十进制数(减数)MOVAX,minuendMOVBX,subtrahendMOVDL,10HCMPAX,BXJNBSTART2XCHGAX,BXMOVDL,11H;负数START2:SUBAL,BL;低位DASXCHGAL,AHSBBAL,BH;高位DASXCHGAL,AHCLDLEADI,BUFFER;存放显示结果CALLB1toB2;低位MOVAL,AHCALLB1toB2;高位MOVAL,10H;最高三位消隐STOSBSTOSBSTOSBSTOSBLEASI,BUFFER+3MOVCX,3CALLBlackDisplay;将高

18、位0消隐LEASI,BUFFERCALLDisplay8JMPSTART1;将一个字节压缩BCD码转换成二个字节非压缩BCD码B1toB2PROCNEARPUSHAXANDAL,0FHSTOSBPOPAXANDAL,0F0HRORAL,4STOSBRETB1toB2ENDPBlackDisplayPROCNEAR;将高位0消隐BlackDisplay1:MOVAL,SICMPAL,0JNZExitMOVAL,10HMOVSI,ALDECSILOOPBlackDisplay1Exit:CLDMOVSI+1,DLRETBlackDisplayENDPENDSTART七、思考从键盘上输入4位被加数、

19、加数,实现双字节BCD码(四位数)的加法,结果显示在数码管上。实验六 显示程序一、实验目的 1、熟悉8255的功能,理解LED显示原理及控制方法;2、学会使用LED点阵液晶显示字体和图形;3、认真预习本节实验内容,可尝试自行编写程序,做好实验准备工作,填写实验报告。二、实验设备STAR系列实验仪一套、PC机一台。三、实验内容1、编写程序,用8255的PA、PB口控制LED的位选和段选,(1)编写程序,控制8位数码管跑马灯形式显示0;(2)编写程序,控制8位数码管静态显示指定字符1-8;(3)编写程序,控制8位数码管动态循环显示8位字符;2、按图连接线路,运行程序,观察实验结果。四、实验原理图五

20、、实验步骤1、主机连线说明:B4区:CS(8255)A3区:CS1B4区:A0、A1A3区:A0、A1B4区:JP56、JP53G5区:JP 41、 JP 422、运行程序,验证显示结果。六:源程序(1) 控制8位数码管依次显示0;.MODELTINY.STACK100.DATAIO8255_ConEQU0F003H;CS3IO8255_AEQU0F000H;AIO8255_BEQU0F001H;BLED_TAB:DB03FH,06H,05BH,04FH,66H,6DH,7DH,07HDB07FH,6FH,77H,7CH,39H,05EH,79H,71H .CODESTART:MOVAX,DA

21、TAMOVDS,AXMOVES,AXMOVDX,IO8255_ConMOVAL,80H;方式0,A,B,C均为输出OUTDX,ALMOVAL,0FEH;8255 PC输出MOVCX,8GOON:MOVDX,IO8255_A;位选OUTDX,ALROLAL,1MOVAH,ALMOVDX,IO8255_BMOVAL,03FHOUTDX,ALMOVAL,AH;0FFH->8255 PACALLDelayJMPGOONDelayPROCNEARPUSHCXMOVCX,20000Delay1:LOOPDelay1POPCXRETENDPENDSTART (2) 编写程序,控制8位数码管依次显示任意

22、指定字符(0-F);.MODELTINY.STACK100.MODELTINY.STACK100.DATAIO8255_ConEQU0F003H;CS3IO8255_AEQU0F000H;AIO8255_BEQU0F001H;BF1 DB 0LED_TAB:DB03FH,06H,05BH,04FH,66H,6DH,7DH,07HDB07FH,6FH,77H,7CH,39H,05EH,79H,71H .CODESTART:MOVAX,DATAMOVDS,AXMOVES,AX;MOVF1,0MOVDX,IO8255_ConMOVAL,80H;方式0,A,B,C均为输出OUTDX,ALMOVAL,0

23、FEH;8255 PC输出MOVCX,8GOON:MOVDX,IO8255_B ;段选MOVBX, LED_TAB ;装入表头PUSHAXMOVAL,F1XLAT ;AL放字形码OUTDX,ALPOPAXMOVAL,AHMOVDX,IO8255_A;位选OUTDX,ALROLAL,1MOVAH,ALINCF1;0FFH->8255 PACALLDelayJMPGOONDelayPROCNEARPUSHCXMOVCX,800Delay1:LOOPDelay1POPCXRETENDPENDSTART(3) 编写程序,控制8位数码管同时显示0、1、F:.MODELTINY.STACK100.M

24、ODELTINY.STACK100.DATAIO8255_ConEQU0F003H;CS3IO8255_AEQU0F000H;AIO8255_BEQU0F001H;BLED_TAB:DB03FH,06H,05BH,04FH,66H,6DH,7DH,07HDB07FH,6FH,77H,7CH,39H,05EH,79H,71H F1DB0.CODESTART:MOVAX,DATAMOVDS,AXMOVES,AXMOVDX,IO8255_ConMOVAL,80H;方式0,A,B,C均为输出OUTDX,ALMOVAX,0FEFEH;8255 PC输出MOVCX,1600LEABX,LED_TABGOO

25、N:MOVAL,F1XLATMOVDX,IO8255_B;段选OUTDX,ALMOVAL,AHMOVDX,IO8255_A;位选OUTDX,ALROLAL,1MOVAH,ALCALLDL500msLOOPGOON;8段数码管显示当前值MOVCX,1600;8段数码管显示完成,则显示下个字符MOVAL,AH;CALLDL3SINCF1CMPF1,10H;是否显示完了JZEXITJMPGOONDL500msPROCNEARPUSHCXMOVCX,400DL500ms1:LOOPDL500ms1POPCXRETDL500msENDPEXIT:ENDSTART七、思考 (4)编写程序,控制8位数码管显

26、示当前日期以及时间;实验七 8251串口实验 一、实验目的与要求了解8251的内部结构、工作原理;了解8251与8088的接口逻辑;掌握对8251的初始化编程方法,学会使用8251实现设备之间的串行通信。复习本节实验内容,可尝试自行编写程序,做好实验准备工作,填写实验报告。二、实验设备STAR系列实验仪一套、PC机一台三、实验内容1、编制程序:实现8251A与PC机的串行通讯,使用8253作分频器提供8251的收发时钟。2、连接线路,从微机接收一批数据,接收完毕,再将它们回送给微机。四、程序框图开始初始化8253(定时器0,方式3,BCD码计数,CLK0/26)初始化8251接收10个字节数据

27、子程序将接收到的10个字节数据通过8251发送给微机初始化8251:开始允许接收和发送数据清错误标志复位8251波特率系数为16,8个数据位,一个停止位,偶校验返回接收10个字节数据子程序:开始读入状态有数据读数据->缓冲区接收了10个字节数据返回NNYY发送了10个字节数据子程序:开始读入状态有数据发送发送了10个字节数据NNYY返回五、实验原理图六、实验步骤1、连线说明:C5区:CS(8253)、A0、A1A3区:CS5、A0、A1C5区:CLK0B2区:2MC5区:GATE0C1区的VCCC5区:OUT0C5区:RxC、TxCC5区:CS(8251)、C/DA3区:CS1、A0C5

28、区:CLKB2区:4MC5区:RXD、TXDE7区:RXD、TXD2、运行程序3、运行“串口助手(ComPort.EXE)”,设置串口(波特率4800,8个数据位,一个停止位,偶校验),打开串口,选择“HEX发送”、“HEX显示”,向8251发送10个字节数据(输入数据之间用空格分隔),是否能接收到10个字节数据,接收到的数据是否与发送数据一致。4、改变传输数据的数目,重复实验,观察结果。七、演示程序.MODELTINY;使用8253的计数器0,外接2Mhz,经26分频后,送给8251,产生4800bpsCTL_ADDREQU0FF01H;控制字或状态字DATA_ADDREQU0FF00H;读

29、写数据W_8253_T0EQU0BF00H;计数器0地址W_8253_CEQU0BF03H;控制字.STACK100.DATAReceive_BufferDB10 DUP(0);接受缓冲器Send_BufferEQUReceive_Buffer;发送缓冲器.CODESTART:MOVAX,DATAMOVDS,AXMOVES,AXNOPCALLINIT_8253CALLINIT_8251START1:MOVCX,10CALLReceive_GroupMOVCX,10CALLSend_GroupJMP START1INIT_8253PROCNEARMOVDX,W_8253_CMOVAL,37H;定

30、时器0,方式3OUTDX,ALMOVDX,W_8253_T0MOVAL,26H;BCD码26(2000000/26)=16*4800OUTDX,ALMOVAL,0OUTDX,ALRETINIT_8253ENDPINIT_8251PROCNEARCALLRESET_8251MOVDX,CTL_ADDRMOVAL,7EH;波特率系数为16,8个数据位OUTDX,AL;一个停止位,偶校验CALLDLTIME;延时MOVAL,15H ;允许接收和发送发送数据,清错误标志OUTDX,ALCALLDLTIMERETINIT_8251ENDPReset_8251PROCNEARMOVDX,CTL_ADDRM

31、OVAL,0OUTDX,AL;向控制口写入"0"CALLDLTIME;延时,等待写操作完成OUTDX,AL;向控制口写入"0"CALLDLTIME;延时OUTDX,AL;向控制口写入"0"CALLDLTIME;延时MOV AL,40H;向控制口写入复位字40HOUTDX,ALCALLDLTIMERETReset_8251ENDP;接受一组数据,CX-接受数目Receive_GroupPROCNEARLEADI,Receive_BufferReceive_Group1: CALLReceive_ByteSTOSBLOOPReceive_

32、Group1RETReceive_GroupENDP;接受一个字节Receive_BytePROCNEARMOVDX,CTL_ADDRReceive_Byte1:INAL,DX;读入状态TESTAL,2JZReceive_Byte1;有数据吗?MOVDX,DATA_ADDR;有INAL,DXRETReceive_ByteENDP;发送一组数据,CX-发送数目Send_GroupPROCNEARLEASI,Send_BufferSend_Group1:LODSBCALLSendByteLOOPSend_Group1RETSend_GroupENDP;发送一个字节SendbytePROCNEARP

33、USHAXMOVDX,CTL_ADDR;读入状态Sendbyte1:INAL,DXTESTAL,1JZSendbyte1;允许数据发送吗?POPAX;发送MOVDX,DATA_ADDROUTDX,ALRETSendbyteENDP;延时DLTIMEPROCNEARMOVCX,10LOOP$RETDLTIMEENDPENDSTART八、实验扩展及思考请读者思考,如何修改程序实现8251的自发自收功能?实验八 步进电机控制一、实验目的与要求1、了解步进电机的基本原理,掌握步进电机的转动编程方法2、了解影响电机转速的因素有那些二、实验设备STAR系列实验仪一套、PC机一台。三、实验内容编写程序:使用

34、G5区的键盘控制步进电机的正反转、调节转速,连续转动或转动指定步数;将相应的数据显示在G5区的数码管上。四、控制原理步进电机的驱动原理是通过它每相线圈的电流的顺序切换来使电机作步进式旋转,驱动电路由脉冲来控制,所以调节脉冲的频率便可改变步进电机的转速,微控制器最适合控制步进电机。另外,由于电机的转动惯量的存在,其转动速度还受驱动功率的影响,当脉冲的频率大于某一值(本实验为f.>100hz)时,电机便不再转动。实验电机共有四个相位(A,B,C,D),按转动步骤可分单4拍(A->B->C->D->A),双4拍(AB->BC->CD->DA->A

35、B)和单双8拍(A->AB->B->BC->C->CD->D->DA->A).五、程序框图NYNYNNNN0->需要刷新显示标志1->步进电机未转动过标志1->转动方向标志(1:表示顺时针方向)33H->下次送给步进电机值5->步进电机转速初始化8255(PC口输出)初始化8253(计数器T0设置在模式2状态,BCD码计数,CLK0/210)初始化8259(允许8253中断)初始化8253中断向量初始化显示缓冲区:(数码管第8位:0,顺时针方向;5、7位消隐;6位:转速;1、2、3、4位:0,表示连续转动,其他值表示

36、需要转动的步数)调用显示子程序有键按下需要刷新显示标志=10->需要刷新显示标志调用步数调整子程序关中断(终止步进电机转动)数码管的1、2、3位->2、3、4位键值送给数码管的第一位调用改变转向子程序键值>9键值=0AH调用增速子程序调用减速子程序调用启动步进电机子程序Y键值=0BH键值=0CH键值=0DH开始YYY改变方向子程序:YYNNY开始转动方向标志=091H->下次送给步进电机值下次送给步进电机值循环右移二次1->转动方向标志0->送给数码管的第7位步进电机未转动过标志33H->下次送给步进电机值下次送给步进电机值循环左移二次0->转动

37、方向标志1->送给数码管的第7位步进电机未转动过标志返回启动步进电机子程序:YNY开始0->步进电机未转动过标志取转动步数取转速对应的延时值(转速延时)初始转速延时1=初始转速延时转速延时< 50初始转速延时=50返回开中断初始转速延时=转速延时增速子程序:YN开始转速=11转速+1转速送给数码管第5位返回减速子程序:NY开始转速=0转速-1转速送给数码管第5位返回定时中断程序:NNYNNNYYNY初始转速延时1=转速延时初始转速延时 -1=0时初始转速延时1 - 1初始转速延时=初始转速延时11-1转动方向标志=0时下次送给步进电机值循环右移一次1-1转动步数=0时1-&g

38、t;需要刷新显示标志转动步数减一1-1转动步数=0时关中断清中断标志开始下次送给步进电机值循环左移一次1-1返回下次送给步进电机值->8255的PC口(控制步进电机转动一步)Y六、实验原理图七、实验步骤1、主机连线说明:E1区:A、B、C、DB4区:PC0、PC1、PC2、PC3E5区:CLKB2区:2M E5区:CS、A0A3区:CS5、A0E5区:A、B、C、DG5区:A、B、C、DB3区:CS、A0A3区:CS1、A0B3区:INT、INTAES8688:INTR、INTAC5区:CS(8253)、A0、A1A3区:CS2、A0、A1C5区:GATE0C1区:VCCC5区:CLK0

39、B2区:1MC5区:OUT0B3区:IR0B4区:CS(8255)、A0、A1A3区:CS3、A0、A12、调试程序,查看运行结果是否正确八、演示程序 .MODELTINYEXTRNDisplay8:NEAR, SCAN_KEY:NEARIO8259_0EQU0F000HIO8259_1EQU0F001HCon_8253EQU0E003HT0_8253EQU0E000HIO8255_ConEQU0D003H;CS3IO8255_PCEQU0D002H.STACK100.DATAStepControlDB0;下一次送给步进电机的值bufferDB8 DUP(0);显示缓冲区,8个字节buffer

40、1DB8 DUP(0);显示缓冲区,8个字节SpeedNoDB0;选择哪一级速度StepDelayDB0;转动一步后,延时常数StartStepDelayDB0;若选择速度过快,延时由长到短,最终使用对应延时常数StartStepDelay1 DB0;StartStepDelaybFirstDB0;有没有转动过步进电机bClockwiseDB0 ; =1 顺时针方向 =0 逆时针方向转动bNeedDisplayDB0;已转动一步,需要显示新步数StepCountDW0;需要转动的步数StepDelayTab:DB250,125,83,62,50,42,36,32,28,25,22,21.COD

41、ESTART:MOV AX,DATAMOVDS,AXMOVES,AXNOPMOVbFirst,1;有没有转动过步进电机MOVbClockwise,1;顺时针方向MOVStepControl,33H;下一次送给步进电机的值MOVSpeedNo,5;第五级速度CALLInit8255CALLInit8253CALLInit8259CALLWriIntverMOVbuffer,0;显示缓冲器初始化MOVbuffer+1,0MOVbuffer+2,0MOVbuffer+3,0MOVbuffer+4,10HMOVAL,SpeedNoMOVbuffer+5,ALMOVbuffer+6,10HMOVbuff

42、er+7,0STAR2:LEASI,bufferLEADI,buffer1MOVCX,8REPMOVSBLEASI,buffer1CALLDisplay8STAR3:CALLScan_KeyJBSTAR5CMPbNeedDisplay,0JZSTAR3MOVbNeedDisplay,0CALLStep_SUB_1JMPSTAR2STAR5:CLI;终止步进电机转动CMPAL,10JNBSTAR1MOVAH,buffer+2MOVbuffer+3,AHMOVAH,buffer+1MOVbuffer+2,AHMOVAH,bufferMOVbuffer+1,AHMOVbuffer,ALJMPSTAR2STAR1:CMPAL,14JNBSTAR3LEASI,DriverTabSUBAL,10SHLAL,1XORAH,AHMOVBX,AXJMPCS:SI+BXDriverTab:DWDirection;转动方向DWSpeed_up;提高转速DWSpeed_Down;降低转速DWExec ;步进电机根据方向、转速、步数开始转动Direction:CMPbClockwise,0JZClockwiseMOVbClockwise,0MOVbuffer+7,1AntiClockwi

温馨提示

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

评论

0/150

提交评论