毕业设计(论文)-基于单片机的家庭防火防盗系统(8)

2019-04-23 20:31

信息工程学院 家用多功能报警器的设计

附录B 程序

#include #include

#define uchar unsigned char #define uint unsigned int

#define ufloat unsigned float

#define LED_DUAN P0 //断码 #define LED_WEI P2 //位选 //单片机I/O使用位定义

sbit DIAN=P0^5; //小数点位

sbit DQ=P3^2; //ds18b20的数据接口 sbit BEEP=P3^4; //蜂鸣器接口 sbit JC_HW=P3^6; //检测红外 sbit JC_YG=P3^7; //检测烟感

bit presence=0; //ds18b20的上电正确判断位 bit BS_W=0; //半秒位

bit KEY_PB=0; //赋值屏蔽位 bit MEUN_N=0; //显示切换

bit HW_PB=0; //红外检测屏蔽位 bit YG_PB=0; //烟感检测屏蔽位 bit WD_PB=0; //温度检测屏蔽位 bit Z_PB=0; //总屏蔽位

//***********数组定义****************

uchar code wei_chose[]={0x08,0x02,0x04,0x01}; //数码管的位选 uchar code duan_ma[]={0xa0,0xbe,0x64,0x2c,0x3a,0x29,0x21,0xbc,0x20,0x28,0xe3,0xe1,0xff};//数码管的段码值

//0 1 2 3 4 5 6 7 8 9 L C

uchar data temp_data[2] = {0x00,0x00} ; //温度数据转换的临时储存空间 uchar code ditab[16] = {0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,

0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09} ;//温度转换后的小数部分的查询值 uchar led_dis_temp[]={0,0,0,12,0}; //led显示测量的值的临时储存区 uchar data wd_set[4]={0,6,12,12}; //温度设置值的储存空间 uchar dis_w=0; //显示位

uint wd_value=0; //温度值暂存 uint t0_1=0; //t0定时器

uchar set_wd=60; // 设置的温度值

信息工程学院 家用多功能报警器的设计

uchar key_zhi=0; //调整值

//***********变量定义*****************

//果错误跳出按键等待 ==0 正确 ==1错误

//**************************** /*************************** 函数名称: 函数功能:

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

/*************************** 函数名称:delay(uint s) 函数功能:毫秒延时函数

***************************/ void Delay(uint s) {

while(s--){;} }

/*************************** 函数名称:delay_ms(uint ms) 函数功能:毫秒延时函数

***************************/ void delay_ms(uint ms) {

uint ms_i; while(ms--) {

for(ms_i=0;ms_i<200;ms_i++) {

_nop_(); _nop_(); } } }

void beep() {

BEEP=0; delay_ms(20); BEEP=1; }

/*初始化ds1820 */

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

信息工程学院 家用多功能报警器的设计

Init_DS18B20(void) {

DQ = 1 ; //DQ复位 Delay(8) ; //稍做延时

DQ = 0 ; //单片机将DQ拉低 Delay(90) ; //精确延时 大于 480us

DQ = 1 ; //拉高总线 Delay(8) ;

presence = DQ ; //如果=0则初始化成功 =1则初始化失败 Delay(100) ; DQ = 1 ;

return(presence) ; //返回信号,0=presence,1= no presence }

/* 读一个字节 */

/*******************************************************************/ ReadOneChar(void) {

unsigned char i = 0 ; unsigned char dat = 0 ;

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

DQ = 0 ; // 给脉冲信号 dat >>= 1 ;

DQ = 1 ; // 给脉冲信号

if(DQ)

dat |= 0x80 ; Delay(4) ; }

return (dat) ; }

/* 写一个字节 */

/*******************************************************************/ WriteOneChar(unsigned char dat) {

信息工程学院 家用多功能报警器的设计

unsigned char i = 0 ; for (i = 8 ; i > 0 ; i--) {

DQ = 0 ;

DQ = dat&0x01 ; Delay(5) ;

DQ = 1 ; dat>>=1 ; } }

/* 数据转换与温度显示 */ /*******************************************************************/ Disp_Temperature() {

led_dis_temp[4]=temp_data[0]&0x0f ;

led_dis_temp[0]=ditab[led_dis_temp[4]] ; //查表得小数位的值 led_dis_temp[4]=((temp_data[0]&0xf0)>>4)|((temp_data[1]&0x0f)<<4) ; wd_value=led_dis_temp[4];

//led_dis_temp[3]=led_dis_temp[4]/100 ; led_dis_temp[1]=led_dis_temp[4]0 ; led_dis_temp[2]=led_dis_temp[1]/10 ; led_dis_temp[1]=led_dis_temp[1] ;

//if(led_dis_temp[3]==0) //高位为0,不显示 {

//led_dis_temp[3]=12 ;

if(led_dis_temp[2]==0) //次高位为0,不显示 led_dis_temp[2]=12 ; } }

/*************************** 函数名称:panduan() 函数功能:显示扫描程序

***************************/ void panduan() {

if((WD_PB==0)&&(set_wd<=wd_value))WD_PB=1,BEEP=0,led_dis_temp[3]=1; else

if((set_wd>wd_value)&&(WD_PB==1))BEEP=1,led_dis_temp[3]=12,WD_PB=0; if(HW_PB==0) {

信息工程学院 家用多功能报警器的设计

if(JC_HW==1)BEEP=0,led_dis_temp[3]=2; }

if(YG_PB==0) {

if(JC_YG==0)BEEP=0,led_dis_temp[3]=3; } }

/*************************** 函数名称:dis_play() 函数功能:显示扫描程序

***************************/ void dis_play() {

//if(dis_w==4) //if(meun_n<2)

LED_DUAN=0XFF; //消隐

if(MEUN_N==0) {

LED_WEI=wei_chose[dis_w]; //位选

LED_DUAN=duan_ma[led_dis_temp[dis_w]]; //段选 if(dis_w==1)DIAN=0; } else {

LED_WEI=wei_chose[dis_w]; //位选

LED_DUAN=duan_ma[wd_set[dis_w]]; //段选 }

dis_w++;

if(dis_w==4)dis_w=0; }

uchar anjian() {

uchar scan; P1=0xf0;

if((P1&0xf0)!=0xf0) {

delay_ms(50);//10ms延时 //scan=P2;

if((P1&0xf0)!=0xf0) {


毕业设计(论文)-基于单片机的家庭防火防盗系统(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:飞机的空气动力学

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: