毕业设计附录.docx

上传人:b****2 文档编号:24622431 上传时间:2023-05-29 格式:DOCX 页数:40 大小:23.73KB
下载 相关 举报
毕业设计附录.docx_第1页
第1页 / 共40页
毕业设计附录.docx_第2页
第2页 / 共40页
毕业设计附录.docx_第3页
第3页 / 共40页
毕业设计附录.docx_第4页
第4页 / 共40页
毕业设计附录.docx_第5页
第5页 / 共40页
点击查看更多>>
下载资源
资源描述

毕业设计附录.docx

《毕业设计附录.docx》由会员分享,可在线阅读,更多相关《毕业设计附录.docx(40页珍藏版)》请在冰豆网上搜索。

毕业设计附录.docx

毕业设计附录

附录

附录.1

主机程序:

/*--------------------------------------------------------------------------

AT89X52.H

HeaderfileforthelowvoltageFlashAtmelAT89C52andAT89LV52.

Copyright(c)1988-2002KeilElektronikGmbHandKeilSoftware,Inc.

Allrightsreserved.

--------------------------------------------------------------------------*/

#ifndef__AT89X52_H__

#define__AT89X52_H__

/*------------------------------------------------

ByteRegisters

------------------------------------------------*/

sfrP0=0x80;

sfrSP=0x81;

sfrDPL=0x82;

sfrDPH=0x83;

sfrPCON=0x87;

sfrTCON=0x88;

sfrTMOD=0x89;

sfrTL0=0x8A;

sfrTL1=0x8B;

sfrTH0=0x8C;

sfrTH1=0x8D;

sfrP1=0x90;

sfrSCON=0x98;

sfrSBUF=0x99;

sfrP2=0xA0;

sfrIE=0xA8;

sfrP3=0xB0;

sfrIP=0xB8;

sfrT2CON=0xC8;

sfrT2MOD=0xC9;

sfrRCAP2L=0xCA;

sfrRCAP2H=0xCB;

sfrTL2=0xCC;

sfrTH2=0xCD;

sfrPSW=0xD0;

sfrACC=0xE0;

sfrB=0xF0;

sfrWDTRST=0xA6;//看门狗寄存器

/*------------------------------------------------

P0BitRegisters

------------------------------------------------*/

sbitP0_0=0x80;

sbitP0_1=0x81;

sbitP0_2=0x82;

sbitP0_3=0x83;

sbitP0_4=0x84;

sbitP0_5=0x85;

sbitP0_6=0x86;

sbitP0_7=0x87;

/*------------------------------------------------

PCONBitValues

------------------------------------------------*/

#defineIDL_0x01

#defineSTOP_0x02

#definePD_0x02/*Alternatedefinition*/

#defineGF0_0x04

#defineGF1_0x08

#defineSMOD_0x80

/*------------------------------------------------

TCONBitRegisters

------------------------------------------------*/

sbitIT0=0x88;

sbitIE0=0x89;

sbitIT1=0x8A;

sbitIE1=0x8B;

sbitTR0=0x8C;

sbitTF0=0x8D;

sbitTR1=0x8E;

sbitTF1=0x8F;

/*------------------------------------------------

TMODBitValues

------------------------------------------------*/

#defineT0_M0_0x01

#defineT0_M1_0x02

#defineT0_CT_0x04

#defineT0_GATE_0x08

#defineT1_M0_0x10

#defineT1_M1_0x20

#defineT1_CT_0x40

#defineT1_GATE_0x80

#defineT1_MASK_0xF0

#defineT0_MASK_0x0F

/*------------------------------------------------

P1BitRegisters

------------------------------------------------*/

sbitP1_0=0x90;

sbitP1_1=0x91;

sbitP1_2=0x92;

sbitP1_3=0x93;

sbitP1_4=0x94;

sbitP1_5=0x95;

sbitP1_6=0x96;

sbitP1_7=0x97;

sbitT2=0x90;/*ExternalinputtoTimer/Counter2,clockout*/

sbitT2EX=0x91;/*Timer/Counter2capture/reloadtrigger&dirctl*/

/*------------------------------------------------

SCONBitRegisters

------------------------------------------------*/

sbitRI=0x98;

sbitTI=0x99;

sbitRB8=0x9A;

sbitTB8=0x9B;

sbitREN=0x9C;

sbitSM2=0x9D;

sbitSM1=0x9E;

sbitSM0=0x9F;

/*------------------------------------------------

P2BitRegisters

------------------------------------------------*/

sbitP2_0=0xA0;

sbitP2_1=0xA1;

sbitP2_2=0xA2;

sbitP2_3=0xA3;

sbitP2_4=0xA4;

sbitP2_5=0xA5;

sbitP2_6=0xA6;

sbitP2_7=0xA7;

/*------------------------------------------------

IEBitRegisters

------------------------------------------------*/

sbitEX0=0xA8;/*1=EnableExternalinterrupt0*/

sbitET0=0xA9;/*1=EnableTimer0interrupt*/

sbitEX1=0xAA;/*1=EnableExternalinterrupt1*/

sbitET1=0xAB;/*1=EnableTimer1interrupt*/

sbitES=0xAC;/*1=EnableSerialportinterrupt*/

sbitET2=0xAD;/*1=EnableTimer2interrupt*/

sbitEA=0xAF;/*0=Disableallinterrupts*/

/*------------------------------------------------

P3BitRegisters(Mnemonics&Ports)

------------------------------------------------*/

sbitP3_0=0xB0;

sbitP3_1=0xB1;

sbitP3_2=0xB2;

sbitP3_3=0xB3;

sbitP3_4=0xB4;

sbitP3_5=0xB5;

sbitP3_6=0xB6;

sbitP3_7=0xB7;

sbitRXD=0xB0;/*Serialdatainput*/

sbitTXD=0xB1;/*Serialdataoutput*/

sbitINT0=0xB2;/*Externalinterrupt0*/

sbitINT1=0xB3;/*Externalinterrupt1*/

sbitT0=0xB4;/*Timer0externalinput*/

sbitT1=0xB5;/*Timer1externalinput*/

sbitWR=0xB6;/*Externaldatamemorywritestrobe*/

sbitRD=0xB7;/*Externaldatamemoryreadstrobe*/

/*------------------------------------------------

IPBitRegisters

------------------------------------------------*/

sbitPX0=0xB8;

sbitPT0=0xB9;

sbitPX1=0xBA;

sbitPT1=0xBB;

sbitPS=0xBC;

sbitPT2=0xBD;

/*------------------------------------------------

T2CONBitRegisters

------------------------------------------------*/

sbitCP_RL2=0xC8;/*0=Reload,1=Captureselect*/

sbitC_T2=0xC9;/*0=Timer,1=Counter*/

sbitTR2=0xCA;/*0=Stoptimer,1=Starttimer*/

sbitEXEN2=0xCB;/*Timer2externalenable*/

sbitTCLK=0xCC;/*0=SerialclockusesTimer1overflow,1=Timer2*/

sbitRCLK=0xCD;/*0=SerialclockusesTimer1overflow,1=Timer2*/

sbitEXF2=0xCE;/*Timer2externalflag*/

sbitTF2=0xCF;/*Timer2overflowflag*/

/*------------------------------------------------

T2MODBitValues

------------------------------------------------*/

#defineDCEN_0x01/*1=Timer2canbeconfiguredasup/downcounter*/

#defineT2OE_0x02/*Timer2outputenable*/

/*------------------------------------------------

PSWBitRegisters

------------------------------------------------*/

sbitP=0xD0;

sbitFL=0xD1;

sbitOV=0xD2;

sbitRS0=0xD3;

sbitRS1=0xD4;

sbitF0=0xD5;

sbitAC=0xD6;

sbitCY=0xD7;

/*------------------------------------------------

InterruptVectors:

InterruptAddress=(Number*8)+3

------------------------------------------------*/

#defineIE0_VECTOR0/*0x03ExternalInterrupt0*/

#defineTF0_VECTOR1/*0x0BTimer0*/

#defineIE1_VECTOR2/*0x13ExternalInterrupt1*/

#defineTF1_VECTOR3/*0x1BTimer1*/

#defineSIO_VECTOR4/*0x23Serialport*/

#defineTF2_VECTOR5/*0x2BTimer2*/

#defineEX2_VECTOR5/*0x2BExternalInterrupt2*/

#endif

 

附录.2

从机程序1:

#include//头文件

#include//包含_nop_()函数定义的头文件

#include

sfrWDTRST=0xA6;

#defineucharunsignedchar//宏定义

#definescharsignedchar

#defineuintunsignedint

#definesintsignedint

#defineulongunsignedlong

#defineslongsignedlong

#defineHIGH1

#defineLOW0

#defineDISABLEEA=0;//关所有中断

#defineENABLEEA=1;//开所有中断

#defineTXENP3_4=HIGH;P3_5=HIGH;//发送使能

#defineRXENP3_4=LOW;P3_5=LOW;//接收使能

#defineREG_BANK_00//寄存器组0

#defineREG_BANK_11//寄存器组1

#defineREG_BANK_22//寄存器组2

#defineREG_BANK_33//寄存器组

//中断入口地址

#defineINTERRUPT_INT00//0x0003

#defineINTERRUPT_T01//0x000b

#defineINTERRUPT_INT12//0x0013

#defineINTERRUPT_T13//0x001b

#defineINTERRUPT_UART4//0x0023

#defineTIME_10MS_12MHZ10000//12MHZ时,定时10mS

#defineTIME_25MS_12MHZ25000

#defineTIME_50MS_12MHZ50000

#defineTIME_10MS_11MHZ9216//11MHZ时,定时10mS

#defineTIME_25MS_11MHZ23040

#defineTIME_50MS_11MHZ46080

#defineBAUD9600_12M0xfd//波特率为9600时,定时器初始化的初值

#defineBAUD9600_11M0xfd

sbitBEEP=P2^4;//蜂鸣器报警驱动

ucharflag=0;//DS18B20读取温度标志

ucharTempL=0;//储存暂存器的温度低位

ucharTempH=0;//储存暂存器的温度高位

ucharTempN=0;//储存温度的整数部分

ucharTempD=0;//储存温度的小数部分

ucharTemperature=0;

ucharwenduH=99;//温度上限值

//ucharUpTempBuffer[14]={0x53,0x31,0x5f,0x55,0x54,0x3a,0x20,0x33,0x38,0x20,0x20,0xdf,0x43,'\0'};//显示从机1温度报警上限值S1_UT:

380C14个字符

//ucharCurrentTempBuffer[14]={0x53,0x31,0x5f,0x43,0x54,0x3a,0x20,0x20,0x20,0x2e,0x20,0xdf,0x43,'\0'};//显示从机1当前温度值S1_CT:

**.*0C14个字符

ucharcodetable[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//,0x88,0x83,//0xc6,0xa1,0x86,0x87

ucharcodetable1[]={0x89,0x86,0xc7,0xc0};

uchartemp_zshi=0,temp_zge=0,temp_xshi=0,temp_xge=0;//定义显示温度的整数的十位、个位,小数部分的第1位,第2位

sbitshudian=P0^7;

ucharaddr=0x00;//本机地址

/**********************************************************

*延时子程序x*0.14MS

**********************************************************/

voiddelay(ucharx)//x*0.14MS

{

uchari;

while(x--)

{

for(i=0;i<13;i++)

{

WDTRST=0x1E;//喂狗

WDTRST=0xE1;

}

}

}

/**********************************************************

*延时子程序ms毫秒

**********************************************************/

voiddelayms(uintms)

{

uchart;

while(ms--)

{

for(t=0;t<120;t++)

{

WDTRST=0x1E;//喂狗

WDTRST=0xE1;

}

}

}

/**********************************************************

*蜂鸣器响一声

**********************************************************/

voidbeep()

{

uchari;

for(i=0;i<180;i++)

{

delay(5);

BEEP=!

BEEP;//BEEP取反

}

BEEP=1;//关闭蜂鸣器

delayms(200);

}

/************************************************************************

以下是DS18B20的操作程序

************************************************************************/

sbitDQ=P3^3;

unsignedchartime;//设置全局变量,专门用于严格延时

/***********ds18b20子程序*************************/

/***********ds18b20延迟子函数(晶振12MHz)*******/

voiddelay_18B20(unsignedinti)

{

while(i--);

}

/*****************************************************

函数功能:

将DS18B20传感器初始化,读取应答信号

出口参数:

flag

***************************************************/

voidInit_DS18B20(void)

{

ucharx=0;

DQ=1;//DQ复位

delay_18B20(8);//稍做延时

DQ=0;//单片机将DQ拉低

delay_18B20(80);//精确延时大于480us

DQ=1;//拉高总线

delay_18B20(14);

x=DQ;//稍做延时后如果x=0则初始化成功x=1则初始化失败

delay_18B20(20);

}

/*****************************************************

函数功能:

从DS18B20读取一个字节数据

出口参数:

dat

***************************************************/

unsignedcharReadOneChar(void)

{

uchari=0;

uchardat=0;

for(i=8;i>0;i--)

{

DQ=0;//给脉冲信号

dat>>=1;

DQ=1;//给脉冲信号

if(DQ)

dat|=0x80;

delay_18B20(4);

WDTRST=0x1E;//喂狗

WDTRST=0xE1;

}

return(dat);

}

/*****************************************************

函数功能:

向DS18B20写入一个字节数据

入口参数:

dat

***

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1