資源簡介
直接可以運行,端口都與設置好,也明確了端口可以靈活的更改,通俗易懂,代碼都有解釋

代碼片段和文件信息
/*******************************************************************************
*?單片機答辯
*?
*******************************************************************************/
#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版破解文件
評論
共有 條評論