- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
小型步进电机控制系统课程设计8086
设计题15:小型步进电机控制系统设计(限1-2人)
设计要求:
(1)、分别用C语言和汇编语言编程完成硬件接口功能设计;
(2)、基于80x86微机接口硬件电路设计调试;
(3)、控制功能要求:小键盘给定分段速度,数码管显示当前步进电机启动与停止、方向、速度信息;
(4)、具有本地与远程(串行方式下)功能。(由于技术有限,该功能没有实现)。
使用硬件:8086 PC,8255芯片,键盘数码管,步进电机驱动电路,步进电机
系统设计:
键盘采用实验板提供的4*4键盘,使用4个数码管实时显示系统当前状态。
键位分配:
第三行第一个键UP
第三行第一个键
UP
第四行前两个键R/LS/R
第四行前两个键
R/L
S/R
方向键(R/L):控制步进电机运行方向,无论电机处于运行或停止状态,每按下一次,电机转动方向反向;
暂停键/运行(S/R):控制电机运行与否。电机转动时按下,电机暂停,当前电机运行参数不变,再次按下时,电机继续按暂停前参数运行;
档位键(UP):无论电机处于任何状态,均可设定电机档位。(四档循环)
数码管显示信息:
左起第一个数码管显示当前电机的运行状态:S(Stop)表示当前电机为停止状态;E(Enable)表示当前电机为运行状态;P(Pause)表示当前电机为暂停状态。
第二个数码管未使用,只有小数点点亮。
第三个数码管显示电机运行方向:C(Clockwise)表示电机运行方向为顺时针;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(Grade):1 = 1 档
2 = 2档
3 = 3档
4 = 4档
C语言程序中:
char a[]={0x6d,0x76, 0x76,0x0e,0x06,0x5b,0x4f,0x66,0x80};
char b[]={0x00,0x09,0x04,0x05};
int dir=1;
int mode=0;
int grd=1;
数组a[]中存放数码管的编码,一次为:“S”、“R”、“R”、“L”、“1”、“2”、“3”、“4”、“.”
数组b[]中分别存放四个数码管应显示的编码在数组a[]中对应的位置,例如:b[]的初值为:0,9,4,5,则数码管会对应显示:“ S -L 1 ”。
汇编程序中:
DATA SEGMENT
DTABLE1 DB 6DH,79H,73H,77H,39H,06H,5BH,4FH,66H,80H
DATA ENDS
MOV SI,3000H
MOV [SI],00H
MOV [SI+2],09H
MOV [SI+4],04H
MOV [SI+6],05H
DTABLE1中存放数码管的编码。
[SI][SI+2][SI+4][SI+6] 中分别存放四个数码管应显示的编码在DTABLE1中对应的位置。
与C程序中不同,汇编程序中取消了dir、mode、grd三个独立的变量,而是直接用[SI][SI+4][SI+6]来代表,
即:[SI]=0时,表示停止状态;
[SI]=1时,表示运行状态;
[SI+4]=3时,表示方向为逆时针;
[SI+4]=4时,表示方向为顺时针;
[SI+6]=5时,表示档位为1档;
[SI+6]=6时,表示档位为2档;
[SI+6]=7时,表示档位为3档;
[SI+6]=8时,表示档位为4档。
键盘扫描与显示程序流程图:
C语言程序中:
void action(void)
{
if(n==0)
{
if(dir==1) dir=0;
else dir=1;
}
if(n==1)
{
if(mode==1) mode=2;
else mode=1;
}
if(n==2)
{
dir=1;
mode=0;
grd=1;
}
if(n==4) grd=1;
if(n==5) grd=2;
if
文档评论(0)