资源简介
直接可以运行,端口都与设置好,也明确了端口可以灵活的更改,通俗易懂,代码都有解释
代码片段和文件信息
/*******************************************************************************
* 单片机答辩
*
*******************************************************************************/
#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 基于红外电风扇系统设计-单片机\template
文件 3045 2017-06-02 15:17 基于红外电风扇系统设计-单片机\template.hex
文件 44 2017-06-02 15:17 基于红外电风扇系统设计-单片机\template.lnp
文件 14858 2017-06-02 15:17 基于红外电风扇系统设计-单片机\template.M51
文件 207 2018-04-03 10:52 基于红外电风扇系统设计-单片机\template.plg
....... 55762 2018-04-03 10:53 基于红外电风扇系统设计-单片机\template.uvopt
文件 13229 2017-05-25 22:07 基于红外电风扇系统设计-单片机\template.uvproj
....... 55770 2017-12-19 00:59 基于红外电风扇系统设计-单片机\template_uvopt.bak
文件 13259 2016-05-17 10:17 基于红外电风扇系统设计-单片机\template_uvproj.bak
目录 0 2018-04-03 10:53 基于红外电风扇系统设计-单片机
----------- --------- ---------- ----- ----
1602837 14
- 上一篇:数字图像处理 刚萨雷斯 第三版中文版答案
- 下一篇:ADS2011版破解文件
相关资源
- KR-2807单片机最小系统使用说明
- 单片机实验程序,全
- STM32f103C8t6型单片机用于超声波测距
- 基于单片机的数字万用表设计PCB文件
- 单片机脉搏测量器
- stm32f103iic读取AT24XX全系eeprom
- 21个单片机设计题目和设计资料合集
- 郭天祥十天学会单片机PPT课件(完整
- 基于单片机的室内环境监测系统的研
- 基于单片机的多路模拟量采集模块设
- 基于AT89C51单片机信号发生器设计.pd
- 基于单片机控制和超声波传感器的液
- 基于51单片机的温度检测系统的设计与
- 新手怎样学习单片机,推荐一套很好
- 89C51单片机最小系统PCB
- 基于51单片机的NRF2401无线火灾的报警
- 51单片机两轮自平衡小车全套设计方案
- 基于STC89C52单片机的数字时钟
- 单片微型计算机原理与接口技术_课后
- 单片机原理及应用 杨恢先 课件及部
- 单片机控制上位机端软件
- 单片机波形发生器 lcd显示出来
- 微型计算机及接口技术课程设计_彩灯
- 基于STC89C52单片机空气PM2.5系统设计资
- 基于单片机的数字时钟系统设计
- 基于单片机的空调温度控制器设计
- 基于Pic16F877A单片机的出租车计价系统
- 基于单片机的教室灯光控制系统
- 基于单片机的晶闸管触发装置设计
- 基于51单片机的脉搏监测系统
评论
共有 条评论