- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE
PAGE 17
2011 - 2012 学年 第 1 学期
学生课程实习报告
环节名称
计算机控制技术课程实习
所属课程
计算机控制技术
学生姓名
冼燎刚
学号
200811631128
所在班级
电气1081
成绩
评语
指导教师签名
设计题目: 控制步进电机LCD显示
设计要求:
设计一个单片机三相步进电机控制系统,要求系统具有以下功能。(1)用K0-K2作为通电方式选择键,K0为单三拍,K1为双三拍,K2为三相六拍。
(2)K3-K4作为启动和方向控制。
(3)正转时红色指示灯亮,反转时黄色指示灯亮,不转时绿灯亮。
(4)可通过键盘设定步进电机步数给定值。
(5)用三位LED数码管显示剩余工作步数
系统总体框图与原理说明
系统的整体框图
硬件电路图
程序流程图
开始
开始
键盘读取步数
键盘读取正反转
键盘读取工作方式
键盘读取是否按下
ENTER
液晶显示数字
液晶显示数字
液晶显示数字
相应的灯发光
步进电机转动一拍
总步数减一并显示
总步数是否为0
显示OVER
Y
N
结束
仿真说明
输入一个三位数
按下DIRECTION 选择方向 相应的灯会亮
选择不同的工作方式
按下START按钮,倒数开始,电机按剩余步数转动。
倒数完毕,显示OVER,绿灯亮。
心得体会
通过自己几天的辛勤努力并查阅诸多资料,终于完成了本次课程设计。从系统框图到程序,自己逐一完成。程序虽然很长,但通过分成不同的H文件,有序地把它们分割成几部分。不仅对于自己,还对查看程序的人有不少的帮助。设计的思路按照对于仿真的步骤编程。从按下第一个按键开始,就已经进入到设计者的程序当中。程序有较强的逻辑性,这些都依赖于平时的练习及老师的教导。
附录:程序清单
//***************************程序的总体文件*************************//
#includereg51.h
#includeled_show.h
#includekeyscan.h
#includekeycount.h
void initial();
un i,motor_step=0,time_control=0;
uc keyscan();
uc loop1[2][4]={{0x01,0x02,0x04,0x08},{0x08,0x04,0x02,0x01}}; //A B C D
uc loop2[2][4]={{0x03,0x06,0x0C,0x09},{0x09,0x0C,0x06,0x03}}; //AB BC CD DA
uc loop3[2][8]={{0x01,0x03,0x02,0x06,0x04,0x0C,0x08,0x0A},{0x0A,0x08,0x0C,0x04,0x06,0x02,0x03,0x01}}; //A AB B BC C CD D DA
void initial_show(); //函数申明
void clr();
void wirte_com(uc com);
void wirte_data(uc date);
void delay(unsigned int z);
void input_keycode() ;
void output_key();
void count();
void swith();
void test();
void main() //主函数
{
initial(); //初始化
initial_show();
clr();
while(1)
{
input_keycode();
output_key();
TMOD=0x01; // fangshi yi
TL1=0xB0;
TH1=0x3C;
ET0=1; //yun xu TO zhongduan
TR0=1;
EA=1;
while(1);
}
}
/*************中
文档评论(0)