资源描述:
《微机课程设计报告-小型步进电机控制系统设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、设计题15:小型步进电机控制系统设计(限1-2人)设计要求:(1)、分别用C语言和汇编语言编程完成硬件接口功能设计;(2)、基于80x86微机接口硬件电路设计调试;(3)、控制功能要求:小键盘给定分段速度,数码管显示当前步进电机启动与停止、方向、速度信息;(4)、具有本地与远程(串行方式下)功能。(由于技术有限,该功能没有实现)。使用硬件:8086PC,8255芯片,键盘数码管,步进电机驱动电路,步进电机系统设计:键盘采用实验板提供的4*4键盘,使用4个数码管实时显示系统当前状态。键位分配:第三行第一个键UP第四行前两个键R/LS/R方向键(R
2、/L):控制步进电机运行方向,无论电机处于运行或停止状态,每按下一次,电机转动方向反向;暂停键/运行(S/R):控制电机运行与否。电机转动时按下,电机暂停,当前电机运行参数不变,再次按下时,电机继续按暂停前参数运行;档位键(UP):无论电机处于任何状态,均可设定电机档位。(四档循环)数码管显示信息:左起第一个数码管显示当前电机的运行状态:S(Stop)表示当前电机为停止状态;E(Enable)表示当前电机为运行状态;P(Pause)表示当前电机为暂停状态。第二个数码管未使用,只有小数点点亮。第三个数码管显示电机运行方向:C(Clockwise)
3、表示电机运行方向为顺时针;A(Anti-clockwise)表示电机运行方向为逆时针。第四个数码管显示电机的档位:1、2、3、4分别表示1、2、3、4档。键盘数码管内部连线如下图:数码管显示最高位为当前运行状态(S/R)第二位不使用一直显示“-”第三位显示当前的运行方向(R/L)第四位显示当前你的运行档位数码管和小键盘内部接线图如下:键盘扫描与显示程序设置三个标志位:1.运行状态标志MODE:0=停止(Stop)1=运行(Run)2.方向标志DIR(Direction):0=逆时针(Right)1=顺时针(Left)3.档位标志GRD(Grad
4、e):1=1档2=2档3=3档4=4档C语言程序中:chara[]={0x6d,0x76,0x76,0x0e,0x06,0x5b,0x4f,0x66,0x80};charb[]={0x00,0x09,0x04,0x05};intdir=1;intmode=0;intgrd=1;数组a[]中存放数码管的编码,一次为:“S”、“R”、“R”、“L”、“1”、“2”、“3”、“4”、“.”数组b[]中分别存放四个数码管应显示的编码在数组a[]中对应的位置,例如:b[]的初值为:0,9,4,5,则数码管会对应显示:“S-L1”。汇编程序中:DATASE
5、GMENTDTABLE1DB6DH,79H,73H,77H,39H,06H,5BH,4FH,66H,80HDATAENDSMOVSI,3000HMOV[SI],00HMOV[SI+2],09HMOV[SI+4],04HMOV[SI+6],05HDTABLE1中存放数码管的编码。[SI][SI+2][SI+4][SI+6]中分别存放四个数码管应显示的编码在DTABLE1中对应的位置。与C程序中不同,汇编程序中取消了dir、mode、grd三个独立的变量,而是直接用[SI][SI+4][SI+6]来代表,即:[SI]=0时,表示停止状态;[SI]=
6、1时,表示运行状态;[SI+4]=3时,表示方向为逆时针;[SI+4]=4时,表示方向为顺时针;[SI+6]=5时,表示档位为1档;[SI+6]=6时,表示档位为2档;[SI+6]=7时,表示档位为3档;[SI+6]=8时,表示档位为4档。键盘扫描与显示程序流程图:C语言程序中:voidaction(void){if(n==0){if(dir==1)dir=0;elsedir=1;}if(n==1){if(mode==1)mode=2;elsemode=1;}if(n==2){dir=1;mode=0;grd=1;}if(n==4)grd=1;
7、if(n==5)grd=2;if(n==6)grd=3;if(n==7)grd=4;}voidputbuf(void){b[0]=mode;b[2]=dir+3;b[3]=grd+4;dis();clear();ccscan();while(cc){dis();clear();ccscan();}}汇编程序中:PUTBUFPROCNEAR;保存键值子程序MOVSI,3000HCMPAL,00HJNZMODEDIR:CMP[SI+4],03HJZDIR1MOV[SI+4],03HJMPLASTDIR1:MOV[SI+4],04HJMPLASTMO
8、DE:CMPAL,01HJNZSTOPCMP[SI],01HJZMODE1MOV[SI],01HJMPLASTMODE1:MOV[SI],02HJMP