电子工程师技术服务社区
公告
登录
|
注册
首页
技术问答
厂商活动
正点原子
板卡试用
资源库
下载
文章
社区首页
问答
求大神帮忙编一个C51单片机的程序
已解决
73482
个问题
已帮助
5993
位优秀工程师
求大神帮忙编一个C51单片机的程序
皇甫随心
2015-06-17
浏览量:921
本设计中的蜂鸣器是在最后程序技术的时候起提醒人们的作用。。。。。。。
打开开关,首先是电机
1
开始工作,工作时间为
10
秒后停止;其次是电机
2
开始工作,工作
5
秒后停止;在其次是电机
3
和电机
4
同时工作,电机
3
工作
5
秒后停止,电机
4
工作
10
秒后停止;最后电机
5
开始工作,工作
5
秒后停止。
显示全部
单片机
关注问题
写回答
0
0
收起
我来回答
上传资料:
选择文件
文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
李瑞涛
¡ñ 0ºÅ¶¨Ê±Æ÷ÉèÖÃ×Ó³ÌÐò
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// º¯ÊýÃû£º SetTimer0
// ¹¦ÄÜ˵Ã÷£º ÅäÖö¨Ê±¼ÆÊýÆ÷0
// Èë¿Ú²ÎÊý£º ¹¤×÷·½Ê½
// ¶¨Ê±¼ÆÊýģʽ
// ¿ØÖÆ·½Ê½Ñ¡Ôñ
// µÚÒ»³õÖµ
// µÚ¶þ³õÖµ
// ·µ»Ø²ÎÊý£º ²Ù×÷½á¹û
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
char SetTimer0(char mode, char tc,char ctrl,int value0,int value1)
{
switch(mode) //¹¤¼þ·½Ê½ÉèÖÃ
{
case 0: //¹¤×÷·½Ê½0
TMOD = (TMOD & 0xF0) | 0x00;
TH0 = value0 >> 0x05;
TL0 = value0 << 0x03;
break;
case 1: //¹¤×÷·½Ê½1
TMOD = (TMOD & 0xF0) | 0x01;
TH0 = value0 >> 0x08;
TL0 = value0 ;
break;
case 2: //¹¤×÷·½Ê½2
TMOD = (TMOD & 0xF0) | 0x02;
TH0 = value0 ;
TL0 = value0 ;
break;
case 3: //¹¤×÷·½Ê½3
TMOD = (TMOD & 0xF0) | 0x03;
TH0 = value0;
TL0 = value1;
break;
default:
return 0;
}
switch(tc) //¶¨Ê±¼ÆÊýÆ÷ģʽ
{
case 0: //¶¨Ê±Æ÷
TMOD |= 0x00;
break;
case 1: //¼ÆÊýÆ÷
TMOD |= 0x04;
break;
default:
return 0;
}
switch(ctrl) //Æô¶¯Ä£Ê½
{
case 0: //TR0¿ØÖÆÆô¶¯
TMOD |= 0x00;
break;
case 1: //Òý½Å/INT0¿ØÖÆÆô¶¯
TMOD |= 0x08;
break;
default:
return 0;
}
return 1;
}
¡ñ ´ò¿ª0ºÅ¶¨Ê±Æ÷×Ó³ÌÐò
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// º¯ÊýÃû£º OpenTimer0
// ¹¦ÄÜ˵Ã÷£º ´ò¿ª¶¨Ê±¼ÆÊýÆ÷0
// Èë¿Ú²ÎÊý£º ¹¤×÷·½Ê½
// ·µ»Ø²ÎÊý£º ²Ù×÷½á¹û
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
char OpenTimer0(char mode)
{
switch(mode) //¹¤¼þ·½Ê½ÉèÖÃ
{
case 0: //¹¤×÷·½Ê½0
ET0 = 1;
EA = 1;
TR0 = 1;
break;
case 1: //¹¤×÷·½Ê½1
ET0 = 1;
EA = 1;
TR0 = 1;
break;
case 2: //¹¤×÷·½Ê½2
ET0 = 1;
EA = 1;
TR0 = 1;
break;
case 3: //¹¤×÷·½Ê½3
ET0 = 1;
ET1 = 1;
EA = 1;
TR0 = 1;
TR1 = 1;
break;
default:
return 0;
}
return 1;
}
¡ñ 1ºÅ¶¨Ê±Æ÷ÉèÖÃ×Ó³ÌÐò
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// º¯ÊýÃû£º SetTimer1
// ¹¦ÄÜ˵Ã÷£º ÅäÖö¨Ê±¼ÆÊýÆ÷1
// Èë¿Ú²ÎÊý£º ¹¤×÷·½Ê½
// ¶¨Ê±¼ÆÊýģʽ
// ¿ØÖÆ·½Ê½Ñ¡Ôñ
// µÚÒ»³õÖµ
// ·µ»Ø²ÎÊý£º ²Ù×÷½á¹û
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
char SetTimer1(char mode, char tc,char ctrl,int value0)
{
switch(mode) //¹¤¼þ·½Ê½ÉèÖÃ
{
case 0: //¹¤×÷·½Ê½0
TMOD = (TMOD & 0x0F) | 0x00;
TH0 = value0 >> 0x05;
TL0 = value0 << 0x03;
break;
case 1: //¹¤×÷·½Ê½1
TMOD = (TMOD & 0x0F) | 0x10;
TH0 = value0 >> 0x08;
TL0 = value0 ;
break;
case 2: //¹¤×÷·½Ê½2
TMOD = (TMOD & 0x0F) | 0x20;
TH0 = value0 ;
TL0 = value0 ;
break;
default:
return 0;
}
switch(tc) //¶¨Ê±¼ÆÊýÆ÷ģʽ
{
case 0: //¶¨Ê±Æ÷
TMOD |= 0x00;
break;
case 1: //¼ÆÊýÆ÷
TMOD |= 0x40;
break;
default:
return 0;
}
switch(ctrl) //Æô¶¯Ä£Ê½
{
case 0: //TR0¿ØÖÆÆô¶¯
TMOD |= 0x00;
break;
case 1: //Òý½Å/INT0¿ØÖÆÆô¶¯
TMOD |= 0x80;
break;
default:
return 0;
}
return 1;
}
¡ñ ´ò¿ª1ºÅ¶¨Ê±Æ÷×Ó³ÌÐò
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// º¯ÊýÃû£º OpenTimer1
// ¹¦ÄÜ˵Ã÷£º ´ò¿ª¶¨Ê±¼ÆÊýÆ÷1
// Èë¿Ú²ÎÊý£º ¹¤×÷·½Ê½
// ·µ»Ø²ÎÊý£º ²Ù×÷½á¹û
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
char OpenTimer1(char mode)
{
switch(mode) //¹¤¼þ·½Ê½ÉèÖÃ
{ case 0: //¹¤×÷·½Ê½0
ET1 = 1;
EA = 1;
TR0 = 1;
break;
case 1: //¹¤×÷·½Ê½1
ET1 = 1;
EA = 1;
TR0 = 1;
break;
case 2: //¹¤×÷·½Ê½2
ET1 = 1;
EA = 1;
TR0 = 1;
break;
default:
return 0;
}
return 1;
}
根据这个定时器的设置做五次就可以,给不了你太多
记得ic 币
发布于
2015-06-17
举报
评论 0
0
0
其他答案
数量:
6
马超飞燕
你把Proteus仿真文件发上么
帮顶一个
发布于
2015-06-17
举报
评论 0
0
0
孙涛
很好,这明显是一个Proteus仿真
发布于
2015-06-17
举报
评论 0
0
0
紫夜心语
51单片机控制电机代码直接一改动就好了,网上很多
发布于
2015-06-18
举报
评论 0
0
0
s112
图看的不是很清楚啊,最好把原仿真文件发上来
发布于
2015-06-18
举报
评论 0
0
0
执念
这个程序不难写,,先帮顶了,明天给你试试..
发布于
2015-07-02
举报
评论 0
0
0
littleHi
楼上是可以的
发布于
2015-07-09
举报
评论 0
0
0
相关问题
问题达人
换一批
文章
知识经验换现金
换一批
求大神帮忙编一个C51单片机的程序
写回答
关注问题
×
我要举报该内容,理由是:
内容质量差:
内容太水、伸手党
垃圾广告信息:
广告、招聘、推广、测试内容等
偏离问答主题:
与技术无关、讨论类
与社区已有内容重复:
违规内容:
色情、暴力、血腥、敏感信息等
不友善内容:
人事攻击、挑衅辱骂、恶意行为
以上选项都不是: