用51单片机做的一个红外摇控电机的风扇
直接可以运行,端口都与设置好,也明确了端口可以灵活的更改,通俗易懂,代码都有解释
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1410048 2018-04-01 16:37 基于红外电风扇系统设计-单片机20150610046黄冠杰.doc
文件 4092 2018-04-01 17:44 基于红外电风扇系统设计-单片机main.c
文件 13081 2017-06-02 15:17 基于红外电风扇系统设计-单片机main.LST
文件 10466 2017-06-02 15:17 基于红外电风扇系统设计-单片机main.OBJ
文件 8976 2017-06-02 15:17 基于红外电风扇系统设计-单片机 emplate
文件 3045 2017-06-02 15:17 基于红外电风扇系统设计-单片机 emplate.hex
文件 44 2017-06-02 15:17 基于红外电风扇系统设计-单片机 emplate.lnp
文件 14858 2017-06-02 15:17 基于红外电风扇系统设计-单片机 emplate.M51
文件 207 2018-04-03 10:52 基于红外电风扇系统设计-单片机 emplate.plg
....... 55762 2018-04-03 10:53 基于红外电风扇系统设计-单片机 emplate.uvopt
文件 13229 2017-05-25 22:07 基于红外电风扇系统设计-单片机 emplate.uvproj
....... 55770 2017-12-19 00:59 基于红外电风扇系统设计-单片机 emplate_uvopt.bak
文件 13259 2016-05-17 10:17 基于红外电风扇系统设计-单片机 emplate_uvproj.bak
目录 0 2018-04-03 10:53 基于红外电风扇系统设计-单片机
----------- --------- ---------- ----- ----
1602837 14
/*******************************************************************************
* 单片机答辩
*
*******************************************************************************/
#include “reg52.h“ //此文件中定义了单片机的一些特殊功能寄存器
#define uchar unsigned char
#define uint unsigned int
typedef unsigned int u16; //对数据类型进行声明定义
typedef unsigned char u8;
sbit IRIN=P3^2; //红外
u8 IrValue[6];
u8 Time;
#define MotorIN P1 //步进电机控制接口定义
uchar MotorRS;//转速
uchar MotorPD[4] ={0x080x040x020x01};//正转
uchar MotorND[4]={0x010x020x040x08};//反转
sbit Dcmotor=P2^0; //直流电机定义
u16 Htemp;
u16 Ltemp;
u8 DisplaySmg;
u8 code Smgduan[3]={0xcf0xa40xb0}; //
void delay(u16 i) //i=1 10微秒
{
while(i--);
}
void Delay_xms(uint x)
{
uint ij;
for(i=0;i for(j=0;j<112;j++);
}
void MotorCW() //顺时针转动
{
uchar i;
for(i=0;i<4;i++)
{
MotorIN=MotorPD[i];
Delay_xms(MotorRS);//转速调节
}
}
void MotorCCW() //逆时针移动
{
uchar i;
for(i=0;i<4;i++)
{
MotorIN=MotorND[i];
Delay_xms(MotorRS);//转速调节
}
}
//停止转动
void MotorStop(void)
{
MotorIN=0x00;
}
void IrInit() //初始化红外线接收
{
IT0=1;//下降沿触发
EX0=1;//打开中断0允许
EA=1; //打开总中断
IRIN=1;//初始化端口
}
void timer0init() //定时器0初始化
{
TMOD=0x01;
TH0=Htemp;
TL0=Ltemp;
ET0=1;
EA=1;
}
void timer0() interrupt 1
{
TH0=Htemp;
TL0=Ltemp;
Dcmotor=~Dcmotor;
}
void main() //主函数
{
uint i=0;
int c=0;
int MS=1;
int Derection=0;
IrInit();
timer0init();
MotorRS=20;
Dcmotor=0;
while(1)
{
if(IrValue[2]/16==4&&IrValue[2]%16==5)
{
MS++;
if(MS%2==0){
c=1;
IrValue[2]=12;
}
else{
IrValue[2]=20;
c=0;
}
}
else if(IrValue[2]==20)
{
DisplaySmg=0x00;
P2=0;
P0=0;
TR0=0;
}
else if(c==1)
{
if((IrValue[2]/16==1&&IrValue[2]%16==6)||Derection==1)
{
if(IrValue[2]/16==1&&IrValue[2]%16==6)
{
if(Derection==1)
{
Derection=0;
}
else
{
Derection=1;
}
IrValue[2]=10;
}
else
{
i++;
if(i<100) MotorCW();
else if(i==100)
{
Delay_xms(400);
MotorStop();
}
else if(i<200&&i>100)
{
MotorCCW();
}
else i=0;
}
}
if((IrValue[2]/16==0&&IrValue[2]%16==12))
{
DisplaySmg=Smgduan[0];
Htemp=0xfc;
Ltemp=0x18;
TR0=1;
}
else if((IrValue[2]/16==1&&IrValue[2]%16==8))
{
DisplaySmg=Smgduan[1];
Htemp=0xfd;
Ltemp=0x12;
TR0=1;
}
else if((IrValue[2]/16==5&&IrValue[2]%16==14))
{
DisplaySmg=Smgduan[2];
TR0=0;
Dcmotor=1;
}
}
else;
P0=DisplaySmg;
}
}
void ReadIr() interrupt 0
{
u8 jk;
u16 err;
Time=0;
delay(700); //7ms
if(IRIN==0) //确认
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1410048 2018-04-01 16:37 基于红外电风扇系统设计-单片机20150610046黄冠杰.doc
文件 4092 2018-04-01 17:44 基于红外电风扇系统设计-单片机main.c
文件 13081 2017-06-02 15:17 基于红外电风扇系统设计-单片机main.LST
文件 10466 2017-06-02 15:17 基于红外电风扇系统设计-单片机main.OBJ
文件 8976 2017-06-02 15:17 基于红外电风扇系统设计-单片机 emplate
文件 3045 2017-06-02 15:17 基于红外电风扇系统设计-单片机 emplate.hex
文件 44 2017-06-02 15:17 基于红外电风扇系统设计-单片机 emplate.lnp
文件 14858 2017-06-02 15:17 基于红外电风扇系统设计-单片机 emplate.M51
文件 207 2018-04-03 10:52 基于红外电风扇系统设计-单片机 emplate.plg
....... 55762 2018-04-03 10:53 基于红外电风扇系统设计-单片机 emplate.uvopt
文件 13229 2017-05-25 22:07 基于红外电风扇系统设计-单片机 emplate.uvproj
....... 55770 2017-12-19 00:59 基于红外电风扇系统设计-单片机 emplate_uvopt.bak
文件 13259 2016-05-17 10:17 基于红外电风扇系统设计-单片机 emplate_uvproj.bak
目录 0 2018-04-03 10:53 基于红外电风扇系统设计-单片机
----------- --------- ---------- ----- ----
1602837 14
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)