步进电机+数码管显示_第1页
步进电机+数码管显示_第2页
步进电机+数码管显示_第3页
步进电机+数码管显示_第4页
步进电机+数码管显示_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

1、/* 河南工业大学电气工程学院 测控 1001 刘欣 如有错误欢迎致电 共同学习 共同进步 */ /* * 程序名称 : 按键控制电机正反转,数码管动感显示正反转 说明:使用本程序你必须把 SE5 设置为 ON(2-3) 短接 ;FOSC = 12MHz ; 步进电机的驱动信号必须为脉冲信号 ! 转动的速度和脉冲的频率成正比 ! ; 本步进电机步进角为 5.625 度 . 一圈 360 度 , 需要 64 个脉冲完成 ! ; A 组线圈对应 P1.4 ; B 组线圈对应 P1.5 ; C 组线圈对应 P1.6 ; D 组线圈对应 P1.7 ; 正转次序 : AB 组-BC 组-CD 组-DA

2、组 ( 即一个脉冲 , 正转 5.625 度) 卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄*卄* */ /* 头文件 */ #include #include #define uint unsigned int #define uchar unsigned char #define _Nop() _nop_() /* 端口定义 */ #define sled_dm_port P0 #define sled_wm_port P2 /* /* 定义LED显示的段码数据脚*/ 定义LED显示的位码数据脚*/ #define motor P1 /*

3、sbit P33 = P 3人4; /* sbit P34 = P 1; /* sbit P10 = P 3人3; /* 步进电机接口 控制正转按键 控制电机停止 控制电机反转 */ */ */ */ uchar code table1=0 x3f,0 x6f,0 xcf,0 x9f; /* uchar code table2=0 x3f,0 x9f,0 xcf,0 x6f; /* 正转表 */ 反转表 */ /* 定义数码管显示字符跟数字的对应数组关系 uchar mun_to_char=0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8,0 x8

4、0,0 x90,0 x88,0 x83,0 xc6, 0 xa1,0 x86,0 x8e; /*0 1 2 3 4 5 6 7 8 9 a */ code b c d e f */ /* 定义需要点亮的数码管 */ uchar code sled_bit_table=0 x7f,0 xbf,0 xdf,0 xef,0 xf7,0 xfb,0 xfd,0 xfe; uchar data sled_data8=0 xff,0 xc0,0 xc0,0 xff,0 xff,0 xc0,0 xc0,0 xff; /*0-7 缓冲值 */ uchar data led_lighten_bit=0 ; /*

5、LED灯点亮标志位 0-7*/ uchar code SLED_TABLE= /* 数码管动感显示 */ 0 xff,0 xff,0 xce,0 xfe,0 xfe,0 xff,0 xff,0 xff, 0 xff,0 xff,0 xde,0 xfe,0 xfe,0 xfe,0 xff,0 xff, 0 xff,0 xff,0 xfe,0 xfe,0 xfe,0 xfc,0 xff,0 xff, 0 xff,0 xff,0 xff,0 xfe,0 xfe,0 xf8,0 xff,0 xff, 0 xff,0 xff,0 xff,0 xff,0 xfe,0 xf0,0 xff,0 xff, 0

6、xff,0 xff,0 xff,0 xff,0 xf7,0 xf0,0 xff,0 xff, 0 xff,0 xff,0 xff,0 xf7,0 xf7,0 xf1,0 xff,0 xff, 0 xff,0 xff,0 xf7,0 xf7,0 xf7,0 xf3,0 xff,0 xff, 0 xff,0 xff,0 xe7,0 xf7,0 xf7,0 xf7,0 xff,0 xff, 0 xff,0 xff,0 xc7,0 xf7,0 xf7,0 xff,0 xff,0 xff, 0 xff,0 xff,0 xc6,0 xf7,0 xff,0 xff,0 xff,0 xff, 0 xff,0

7、xff,0 xc6,0 xfe,0 xff,0 xff,0 xff,0 xff, 0 xff,0 xff,0 xc6,0 xf6,0 xf6,0 xf0,0 xff,0 xff, ; 号 SLED /* 显示部分程序,采用定时器0产生中断,1MS更新一次 */ void SLED_Disp() interrupt 1 using 3 TH0 = (65536-1000)/256; 输出段码数据到数码管 */ 输出位码数据到数码管 */ 位数码管全动态输出 */ TL0 = (65536-1000)/256; sled_wm_port = 0 xff; /*关闭显示 */ sled_dm_por

8、t = sled_dataled_lighten_bit; /* sled_wm_port = sled_bit_tableled_lighten_bit; /* led_lighten_bit+; if(led_lighten_bit=8) led_lighten_bit=0; /*8 void T0_valueSet() /* TMOD = 0 x01; /* TH0 = (65536-1000)/256; TL0 = (65536-1000)/256; TR0 = 1; EA = 1; ET0 = 1; return; /* /* /* 定义中断方式,中断时间 定时 0,工作在方式 1*

9、/ 启动计数 开总中断 开定时器 */ */ 0 中断 */ */ /*1MS 为单位的延时程序 */ void delay_1ms(uchar x) uchar j; while(x-) for(j=0;j=10) temp1 = 0; temp0+; if(temp011) temp0 = 0; /* else if(yunzhuang=2) motor = table2count; /* temp1+; if(temp110) temp1 = 0; temp0-; if(temp011) temp0 = 11; /* count+; if(count=4) count=0; delay_1ms(10); for(i=0;i8;i+) sled_datai = SLED_TABLEtemp0*8+i; /* 电机正转 */ 显示完成一个周期 */ 电机反转 */ 显示完成一个周期 */ 刷新显示 */ if(P33=0) delay_1ms

温馨提示

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

评论

0/150

提交评论