完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
6个回答
|
|
/****************************************************************************************** 使用STC15F101W单片机,使用内部时钟11.0592MHz,如果使用51单片机改换头文件 功能:OUT1、OUT2高电平1秒,停1小时,OUT3、OUT4高电平1秒,停1小时,周而复始。 *******************************************************************************************/ #include "STC15Wxxxx.H" //STC15单片机通用头文件 //#include #define uint unsigned int //宏定义uint为无符号整型数据(0-65535) ***it OUT1=P3^0; //OUT1端口定义 ***it OUT2=P3^1; //OUT2端口定义 ***it OUT3=P3^2; //OUT3端口定义 ***it OUT4=P3^3; //OUT4端口定义 bit Z_sign=0; //正转标志 bit F_sign=1; //反转标志 void Timer0Init(void) //1毫秒@11.0592MHz { AUXR &= 0x7F; //定时器时钟12T模式(用51单片机去掉此条代码) TMOD &= 0xF0; //设置定时器模式 TMOD |= 0x01; //设置定时器模式 TL0 = 0x66; //设置定时初值 TH0 = 0xFC; //设置定时初值 TF0 = 0; //清除TF0标志 TR0 = 1; //定时器0开始计时 EA=1; //开总中断 ET0=1; //开定时器0中断 } void main() { OUT1=0; //初始化输出端口 OUT2=0; // OUT3=0; // OUT4=0; // Timer0Init(); //初始化定时器 while(1); } void timer0() interrupt 1 //定时器0中断服务程序 { static uint Cnt1ms=0; //毫秒计数变量 static uint Cnt1min=0; //分计数变量 static bit Enable=1; //使能标志 TL0 = 0x66; //设置重载值 TH0 = 0xFC; //设置重载初值 if(Z_sign==0) //正转标志为0 { Cnt1ms++; //毫秒自+1 if(Enable==1) //电机使能为1 { OUT1=1; //电机正转 OUT2=1; OUT3=0; OUT4=0; } if(Cnt1ms>=1000) //达到1秒 { Enable=0; //电机使能清0 OUT1=0; //电机停 OUT2=0; OUT3=0; OUT4=0; if(Cnt1ms>=60000) //60000=1分钟 { Cnt1ms=1000; //重新计数 Cnt1min++; //分钟自+1 if(Cnt1min>=61) //1小时到 { Cnt1ms=0; //毫秒计数变量清0 Cnt1min=0; //分钟计数变量清0 Enable=1; //电机使能置1 Z_sign=1; //正转标志置1 F_sign=0; //反转标志清0 } } } } if(F_sign==0) //反转标志为0 { Cnt1ms++; //毫秒自+1 if(Enable==1) //电机使能为1 { OUT1=0; //电机反转 OUT2=0; OUT3=1; OUT4=1; } if(Cnt1ms>=1000) //达到1秒 { Enable=0; //电机使能清0 OUT1=0; //电机停 OUT2=0; OUT3=0; OUT4=0; if(Cnt1ms>=60000) //60000=1分钟 { Cnt1ms=1000; //重新计数 Cnt1min++; //分钟自+1 if(Cnt1min>=61) //1小时到 { Cnt1ms=0; //毫秒计数变量清0 Cnt1min=0; //分钟计数变量清0 Enable=1; //电机使能置1 Z_sign=0; //正转标志清0 F_sign=1; //反转标志置1 } } } } }
最佳答案
|
|
|
|
本帖最后由 wulinwl 于 2017-4-20 11:24 编辑
楼主前后表述的不一致,貌似要求马达正转一秒停止一小时,再反转一秒停止一小时,如此重复。普通直流电机是卡不住的,步进电机才有锁定功能。 |
|
|
|
转轮自身是没有动力的,小鼠只有在转轮里面爬才可以带动转轮,相当于人的跑步机一样,我的直流马达上面接了一根直角棍,马达正转就能把棍塞到转轮的缝隙里,从而卡住转轮不在转动了,反转就会把这个棍抽出,小鼠就又能在转轮上跑了。 转轮的构造就像这里的http://www.instrument.com.cn/netshow/sh101886/C210263.htm |
|
|
|
我这里不需要锁定直流电机,只要能够把它上面接的一个棍塞入或抽出小鼠的转轮里就行了 |
|
|
|
|
|
|
|
厉害!真没想到你能回复这么快,下载到单片机试了,就是我想要的效果!万分感谢!!
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-LCD显示图片编程示例之介绍mmap
238 浏览 0 评论
《DNESP32S3使用指南-IDF版_V1.6》第二章 常用的C语言知识点
629 浏览 0 评论
【RA-Eco-RA2E1-48PIN-V1.0开发板试用】(第三篇)ADC采集+PWM输出
552 浏览 0 评论
《DNK210使用指南 -CanMV版 V1.0》第四十五章 人脸识别实验
552 浏览 0 评论
1074 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11765 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-23 15:15 , Processed in 0.732626 second(s), Total 82, Slave 65 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号