控制步进电机LCD显示.

上传人:最**** 文档编号:117132000 上传时间:2019-11-18 格式:DOC 页数:18 大小:218KB
返回 下载 相关 举报
控制步进电机LCD显示._第1页
第1页 / 共18页
控制步进电机LCD显示._第2页
第2页 / 共18页
控制步进电机LCD显示._第3页
第3页 / 共18页
控制步进电机LCD显示._第4页
第4页 / 共18页
控制步进电机LCD显示._第5页
第5页 / 共18页
点击查看更多>>
资源描述

《控制步进电机LCD显示.》由会员分享,可在线阅读,更多相关《控制步进电机LCD显示.(18页珍藏版)》请在金锄头文库上搜索。

1、2011 - 2012 学年 第 1 学期学生课程实习报告 环节名称计算机控制技术课程实习所属课程计算机控制技术学生姓名冼燎刚学号200811631128所在班级电气1081成绩评语指导教师签名一、 设计题目: 控制步进电机LCD显示二、 设计要求: 设计一个单片机三相步进电机控制系统,要求系统具有以下功能。(1)用K0-K2作为通电方式选择键,K0为单三拍,K1为双三拍,K2为三相六拍。(2)K3-K4作为启动和方向控制。(3)正转时红色指示灯亮,反转时黄色指示灯亮,不转时绿灯亮。(4)可通过键盘设定步进电机步数给定值。(5)用三位LED数码管显示剩余工作步数三、 系统总体框图与原理说明 系

2、统的整体框图四、 硬件电路图 五、 程序流程图开始键盘读取步数键盘读取正反转键盘读取工作方式键盘读取是否按下 ENTER液晶显示数字液晶显示数字液晶显示数字相应的灯发光步进电机转动一拍总步数减一并显示总步数是否为0显示OVERYN结束六、 仿真说明 输入一个三位数 按下DIRECTION 选择方向 相应的灯会亮 选择不同的工作方式 按下START按钮,倒数开始,电机按剩余步数转动。 倒数完毕,显示OVER,绿灯亮。七、 心得体会通过自己几天的辛勤努力并查阅诸多资料,终于完成了本次课程设计。从系统框图到程序,自己逐一完成。程序虽然很长,但通过分成不同的H文件,有序地把它们分割成几部分。不仅对于自

3、己,还对查看程序的人有不少的帮助。设计的思路按照对于仿真的步骤编程。从按下第一个按键开始,就已经进入到设计者的程序当中。程序有较强的逻辑性,这些都依赖于平时的练习及老师的教导。 附录:程序清单 /*程序的总体文件*/#include #include #include #include void initial(); un i,motor_step=0,time_control=0;uc keyscan();uc loop124=0x01,0x02,0x04,0x08,0x08,0x04,0x02,0x01; /A B C Duc loop224=0x03,0x06,0x0C,0x09,0x0

4、9,0x0C,0x06,0x03; /AB BC CD DAuc loop328=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

5、 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 zhongduanTR0=1; EA=1;while(1);/*中断服务函数*/void T0_time() interrupt 1/ TL1=0xB0; TH1=0x3C;time_control+; if(a0) if(

6、time_control=2)swith(); else red=1;green=0;yellow=1; wirte_com(0xc0+10);for(i=0;i4;i+) / over wirte_data(table6i); void count()t=a/100;f=a%100/10;g=a%10;wirte_com(0xC0+10); /rewrite stepwirte_data(tablet);wirte_data(tablef);wirte_data(tableg);void swith() switch(motor1) case 0: if(motor_step4) P3=lo

7、op1fanzhuanmotor_step ; else motor_step=0; P3=loop1fanzhuanmotor_step ; motor_step+; break; case 1: if(motor_step4) P3=loop2fanzhuanmotor_step ; else motor_step=0; P3=loop2fanzhuanmotor_step ; motor_step+; break; case 2: if(motor_step8) P3=loop3fanzhuanmotor_step ; else motor_step=0; P3=loop3fanzhua

8、nmotor_step ; motor_step+; break; count(); time_control=0; a-; /zong bu shu/*键盘扫描电路*/uc temp,ge,shi,bb,num;uc keyscan()/键盘扫描子程序 while(1)P1=0xfe; temp=P1;temp=temp&0xf0;if(temp!=0xf0)delay(10); temp=P1; /重新赋值bb=P1;/保留值 temp=temp&0xf0;/去抖动 if(temp!=0xf0)temp=P1;switch(temp) case 0xee:num=0;break;case

9、0xde:num=1;break;case 0xbe:num=2;break;case 0x7e:num=3;break;default:break;while(P1=bb); / 等待放手delay(10);while(P1=bb); P1=0xfd; temp=P1;bb=P1;temp=temp&0xf0;if(temp!=0xf0)delay(10); temp=P1; temp=temp&0xf0; if(temp!=0xf0)temp=P1;switch(temp) case 0xed:num=4;break;case 0xdd:num=5;break;case 0xbd:num=6;break;case 0x7d:num=7;break;default:break;while(P1=bb);delay(10);while(P1=bb);

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号