毕业设计附录.docx
- 文档编号:24622431
- 上传时间:2023-05-29
- 格式:DOCX
- 页数:40
- 大小:23.73KB
毕业设计附录.docx
《毕业设计附录.docx》由会员分享,可在线阅读,更多相关《毕业设计附录.docx(40页珍藏版)》请在冰豆网上搜索。
毕业设计附录
附录
附录.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
#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
***
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计 附录