完善资料让更多小伙伴认识你,还能领取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 |
|
|
|
我这里不需要锁定直流电机,只要能够把它上面接的一个棍塞入或抽出小鼠的转轮里就行了 |
|
|
|
|
|
|
|
厉害!真没想到你能回复这么快,下载到单片机试了,就是我想要的效果!万分感谢!!
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
644 浏览 0 评论
求助一下关于51系列单片机的Timer0的计时问题,TH0、TL0+1的时间是怎么算的?
1819 浏览 1 评论
【RA-Eco-RA4E2-64PIN-V1.0开发板试用】开箱+Keil环境搭建+点灯+点亮OLED
1262 浏览 0 评论
【敏矽微ME32G070开发板免费体验】使用coremark测试敏矽微ME32G070 跑分
1136 浏览 0 评论
【敏矽微ME32G070开发板免费体验】开箱+点灯+点亮OLED
1357 浏览 2 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12031 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-24 21:36 , Processed in 0.772090 second(s), Total 83, Slave 66 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号