標(biāo)題: 智能熏蒸器51單片機(jī)代碼 [打印本頁]
作者: gongjx 時(shí)間: 2017-12-6 09:52
標(biāo)題: 智能熏蒸器51單片機(jī)代碼
include <reg52.h>
#include<intrins.h>
//
typedef unsignedchar U8; /* defined for unsigned 8-bits integervariable 無符號(hào)8位整型變量 */
typedefsigned char S8; /* defined for signed 8-bits integer variable 有符號(hào)8位整型變量 */
typedef unsignedint U16; /* defined for unsigned 16-bits integervariable 無符號(hào)16位整型變量 */
typedefsigned int S16; /* defined for signed 16-bits integer variable 有符號(hào)16位整型變量 */
typedef unsignedlong U32; /* defined for unsigned 32-bits integervariable 無符號(hào)32位整型變量 */
typedefsigned long S32; /* defined for signed 32-bits integer variable 有符號(hào)32位整型變量 */
typedeffloat F32; /* single precision floating pointvariable (32bits) 單精度浮點(diǎn)數(shù)(32位長度) */
typedefdouble F64; /* double precision floating pointvariable (64bits) 雙精度浮點(diǎn)數(shù)(64位長度) */
//
#define ucharunsigned char
#define uintunsigned int
#define Data_0_time 4
//----------------------------------------------//
//--------------步進(jìn)電機(jī)定義部分----------------//
//----------------------------------------------//
#define MotorDataP0 //步進(jìn)電機(jī)控制接口定義
uchar phasecw[4]={0x08,0x04,0x02,0x01};//正轉(zhuǎn) 電機(jī)導(dǎo)通相序 D-C-B-A
uchar phaseccw[4]={0x01,0x02,0x04,0x08};//反轉(zhuǎn) 電機(jī)導(dǎo)通相序 A-B-C-D
uchar speed;
//----------------------------------------------//
//----------------IO口定義區(qū)--------------------//
//----------------------------------------------//
sbit P1_0 =P1^0 ;
sbit P1_1 =P1^1 ;
//----------------------------------------------//
//----------------定義區(qū)--------------------//
//----------------------------------------------//
U8 U8FLAG,k;
U8 U8count,U8temp;
U8 U8T_data_H,U8T_data_L,U8RH_data_H,U8RH_data_L,U8checkdata;
U8 U8T_data_H_temp,U8T_data_L_temp,U8RH_data_H_temp,U8RH_data_L_temp,U8checkdata_temp;
U8 U8comdata;
U16U16temp1,U16temp2;
//----------------------------------------------//
//--------------步進(jìn)電機(jī)正反轉(zhuǎn)控制----------------//
//----------------------------------------------//
//ms延時(shí)函數(shù)
voidDelay_xms(uint x)
{
uint m,n;
for(m=0;m<x;m++)
for(n=0;n<112;n++);
}
//順時(shí)針轉(zhuǎn)動(dòng)
voidMotorCW(void)
{
uchar l;
for(l=0;l<4;l++)
{
MotorData=phasecw[l];
Delay_xms(speed);//轉(zhuǎn)速調(diào)節(jié)
}
}
//逆時(shí)針轉(zhuǎn)動(dòng)
voidMotorCCW(void)
{
uchar q;
for(q=0;q<4;q++)
{
MotorData=phaseccw[q];
Delay_xms(speed);//轉(zhuǎn)速調(diào)節(jié)
}
}
//停止轉(zhuǎn)動(dòng)
voidMotorStop(void)
{
MotorData=0x00;
}
void Delay(U16 j)
{ U8 i;
for(;j>0;j--)
{
for(i=0;i<27;i++);
}
}
void Delay_10us(void)
{
U8 i;
i--;
i--;
i--;
i--;
i--;
i--;
}
void COM(void)
{
U8 i;
for(i=0;i<8;i++)
{
U8FLAG=2;
while((!P1_0)&&U8FLAG++);
Delay_10us();
Delay_10us();
Delay_10us();
U8temp=0;
if(P1_0)U8temp=1;
U8FLAG=2;
while((P1_0)&&U8FLAG++);
//超時(shí)則跳出for循環(huán)
if(U8FLAG==1)break;
//判斷數(shù)據(jù)位是0還是1
// 如果高電平高過預(yù)定0高電平值則數(shù)據(jù)位為 1
U8comdata<<=1;
U8comdata|=U8temp; //0
}//rof
}
//--------------------------------
//-----濕度讀取子程序 ------------
//--------------------------------
//----以下變量均為全局變量--------
//----溫度高8位==U8T_data_H------
//----溫度低8位==U8T_data_L------
//----濕度高8位==U8RH_data_H-----
//----濕度低8位==U8RH_data_L-----
//----校驗(yàn) 8位 ==U8checkdata-----
//----調(diào)用相關(guān)子程序如下----------
//---- Delay();, Delay_10us();,COM();
//--------------------------------
void RH(void)
{
//主機(jī)拉低18ms
P1_0=0;
Delay(180);
P1_0=1;
//總線由上拉電阻拉高 主機(jī)延時(shí)20us
Delay_10us();
Delay_10us();
Delay_10us();
Delay_10us();
//主機(jī)設(shè)為輸入 判斷從機(jī)響應(yīng)信號(hào)
P1_0=1;
//判斷從機(jī)是否有低電平響應(yīng)信號(hào) 如不響應(yīng)則跳出,響應(yīng)則向下運(yùn)行
if(!P1_0) //T !
{
U8FLAG=2;
//判斷從機(jī)是否發(fā)出 80us 的低電平響應(yīng)信號(hào)是否結(jié)束
while((!P1_0)&&U8FLAG++);
U8FLAG=2;
//判斷從機(jī)是否發(fā)出 80us 的高電平,如發(fā)出則進(jìn)入數(shù)據(jù)接收狀態(tài)
while((P1_0)&&U8FLAG++);
//數(shù)據(jù)接收狀態(tài)
COM();
U8RH_data_H_temp=U8comdata;
COM();
U8RH_data_L_temp=U8comdata;
COM();
U8T_data_H_temp=U8comdata;
COM();
U8T_data_L_temp=U8comdata;
COM();
U8checkdata_temp=U8comdata;
P1_0=1;
//數(shù)據(jù)校驗(yàn)
U8temp=(U8T_data_H_temp+U8T_data_L_temp+U8RH_data_H_temp+U8RH_data_L_temp);
if(U8temp==U8checkdata_temp)
{
U8RH_data_H=U8RH_data_H_temp;
U8RH_data_L=U8RH_data_L_temp;
U8T_data_H=U8T_data_H_temp;
U8T_data_L=U8T_data_L_temp;
U8checkdata=U8checkdata_temp;
}
}
}
//----------------------------------------------
//main()功能描述: AT89C51 11.0592MHz 串口發(fā)
//送溫濕度數(shù)據(jù),波特率 9600
//----------------------------------------------
void main()
{
while(1)
{
RH();
while(U8T_data_H>0x23)
{
P1_1=0;
for(k=0;k<100;k++)
{
Delay(6000);
}
P1_1=1;
RH();
}
}
}
作者: gongjx 時(shí)間: 2017-12-6 09:53
實(shí)習(xí)代碼,請(qǐng)勿噴
歡迎光臨 (http://www.zg4o1577.cn/bbs/) |
Powered by Discuz! X3.1 |
主站蜘蛛池模板:
日韩av免费看
|
中文字幕国产一区
|
国产精品精品视频一区二区三区
|
黄色大片网
|
久久日韩精品一区二区三区
|
成人在线观看免费爱爱
|
精品免费国产一区二区三区
|
亚洲色视频
|
成人国产精品久久久
|
免费一区二区三区在线视频
|
欧美国产精品一区二区三区
|
综合久久av
|
欧美激情精品久久久久久
|
中国一级特黄视频
|
中文字幕国产一区
|
99精彩视频
|
男女下面一进一出网站
|
最新一级毛片
|
久久精品国产免费一区二区三区
|
国产网站在线免费观看
|
久久久久久久久久久久久9999
|
日本天天操
|
欧美日韩高清一区二区三区
|
99精品国产一区二区三区
|
国产高清精品一区
|
在线国产一区二区
|
四虎免费视频
|
久久1区|
99久久精品国产一区二区三区
|
91精品久久久久久久久久
|
1区2区视频
|
色综合一区二区
|
国产亚洲精品精品国产亚洲综合
|
日韩欧美成人一区二区三区
|
毛片免费观看视频
|
久久一区二区三区电影
|
中国91av|
成年视频在线观看福利资源
|
在线成人免费观看
|
成人妇女免费播放久久久
|
天天拍天天操
|