




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
uln2803步进电机的控制原理电路图和源程序 步进电机的控制原理和程序 选自北航出版 耿德根主编高速嵌入式单片机原理与应用第七章7.4.2 源程序:SLAVR742.ASM 自从六十年代初期步进电机面世以来,在过去几年它的重要性大大提高了。它用来驱动时钟和其他采用指针的仪器,打印机、绘图仪、磁盘光盘驱动器、各种自动控制阀、各种工具,还有机器人等的机械装置。关于马进电机工作原理请参考有关资料。 下面用单极1-2相激磁方法步进电机做实验,即1极、2极、1极、2极、.极以次循环,如何用单极二相激该方法控制步进电机,由读者或用户自行编制程序实验。 ;实验选用4.5V步进电机,用5V即可,实验时节省一组步进电机驱动电源; ;型号:MA82135; 相数:2相; 电压:4.5V; 电流/相:0.12A; 电阻欧姆:34/相; 重量:30g ;* ;* 步进电机控制程序(单极1-2相) * ;* * ;*SLAVR742.ASM * ;*use ULN2803 ;使用PC0-PC3 驱动步进电机 * ;*use 11-17new bord * ;* .include8515def.inc .def temp =r16 .def dt =r19 .def np =r17 .def step =r18 .def TStep =r20 .def cnt =r21 .equ turntab=0x0200 .org $0000 rjmp RESET .cseg .org 0x010 RESET: ldi temp,low(RAMEND) ;设堆栈 out SPL,temp ldi temp,high(RAMEND) out SPL+1,temp ser TEMP ;C口设置为输出 OUT ddrc,TEMP ldi zl,low(turntab*2) ;步进电机旋转资料指针 ldi zh,high(turntab*2) ldi np,4 ldi temp,$44 out portc,temp ;初始化 ldi TStep,$25 rcall delay ldi cnt,10 clt rep: ldi step,192 ldi TStep,1 ;1-255 rcall turn dec cnt brne rep loop: nop rjmp loop ;* ; t=1 uncircle turn ;T=1逆时针转 * ; t=0 circle turn ;T=0顺时针转 * ; 96 step a turn * ; TStep is time of a step ; * ;* turn: brts uncircle ;判转向 inc np ;正转 cpi np,8 brne next clr np next: push zl add zl,np lpm out portc,r0 pop zl rcall delay dec step brne turn ret uncircle: ;反转 dec np cpi np,$ff brne next ldi np,$07 rjmp next delay: push TStep ;延时子程序 del1: ldi dt,70 del2: push dt del3: dec dt brne del3 pop dt dec dt brne del2 dec TStep brne del1 pop TStep ret .org turntab ; 0 1 2 3 4 5 6 7 ;步进电机旋转资料表 .db 0x11,0x99,0x88,0xcc,0x44,0x66,0x22,0x33i nclude#define uint unsigned int#define uchar unsigned char#define ms *77/ f = 12 M#define LEDLen 4#define Dj_star() IE=0x81; pri_dj=0; #define Dj_stop() IE=0x00; pri_dj=1; P1=0xff; shache=0; delay(800ms); delay(800ms);delay(400ms); shache = 1; #define Chilun_Num 8/* 齿轮数 8 个*/#define set_display_num() LEDBuf0 = tmp / 1000; LEDBuf1 = tmp / 100 % 10; LEDBuf2 = tmp / 10 % 10; LEDBuf3 = tmp % 10; uchar LEDBufLEDLen = 0,0,0,0;void read_num (); /* 读播码盘 到 set_round_num * 8 */void display ();void delay(uint delay_time) uint i; for (i=0; i = set_round_num ) Dj_stop(); EA = 0x81;void display() uchar i; uint tmp = 0; tmp = round_num / Chilun_Num ; set_display_num(); for(i = 0; i LEDLen ; i +) P0 = 0xf0; P0 = P0 | LEDBufi ; if(i=0) led_1000 = 0; /P04 if(i=1) led_100 = 0; /P05 if(i=2) led_10 = 0; /P06 if(i=3) led_1 = 0; /P07 P0 |= 0xf0; P0 = 0xf0;void read_num() /* 读播码盘 到 set_round_num ,set_pwm_width */ uchar tmp; P2 = 0xFF; P2 = 0xEF; / 1110 1111 delay ( 1ms ); tmp = (P2 | 0xF0); P2 = 0xDF; / 1101 1111 delay ( 1ms ); tmp = (P2 | 0xF0 ) * 10 + tmp; set_round_num = tmp; P2 = 0xBF; / 1011 1111 delay ( 1ms ); tmp = (P2 | 0xF0); P2 = 0x7F; / 0111 1111 delay ( 1ms ); tmp = (P2 | 0xF0) * 10 + tmp; set_round_num = set_round_num + tmp * 100; set_round_num = set_round_num * Chilun_Num; P2 = 0xFF; P1 = 0xbF; / 0111 1111 delay ( 1ms ); tmp = (P2 | 0xF0) ; P1 = 0xFF; P2 = 0xFF; P1 &= 0x7F; / 1011 1111 delay ( 1ms ); tmp = (P2 | 0xF0) * 10 + tmp ; set_pwm_width = tmp ; P1 = 0xFF; P2 = 0xFF;void fx_run() #define f_Delay_time 180 while ( bujin_fx_stop ) /* 反向 回车 直到 传感器 动作*/ P1 = 0xf3;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 个性化信托服务模式-洞察及研究
- 免疫治疗联合靶向策略-洞察及研究
- 云DNS故障预测与预防-洞察及研究
- 智能合约与实体支付-洞察及研究
- 安装施工安全防护-洞察及研究
- 养殖小区基础设施建设与管理协议
- 太赫兹频段在6G网络中的频谱共享技术-洞察及研究
- 2025至2030中国特别效果服务行业发展研究与产业战略规划分析评估报告
- 2025至2030中国水泥复合材料行业发展研究与产业战略规划分析评估报告
- 合作社农业项目资金运作协议
- 关于成立低空经济公司可行性分析报告
- 2024年第九届“学宪法、讲宪法”竞赛题库试卷及答案
- 北京教育出版社心理健康一年级教案
- 树木物候期观察讲解
- 电子离婚协议书模板
- GB 30180-2024煤制烯烃、煤制天然气和煤制油单位产品能源消耗限额
- 《祝福》(教学课件)- 统编版高中语文必修下册
- 兴城市2021年(中小学、幼儿园)教师招聘试题及答案
- 托班育儿知识讲座
- 危化品运输安全培训的事故案例与分析
- 流体力学在化工中的应用
评论
0/150
提交评论