标题:谁能帮其找找错误啊 检查好几遍了 都没检查出来 求指导
取消只看楼主
zhangyali
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2014-5-15
结帖率:0
已结贴  问题点数:20 回复次数:2 
谁能帮其找找错误啊 检查好几遍了 都没检查出来 求指导
#include<reg52.h>
#include "LCD_drive.h"            //包含LCD驱动程序软件包
#include "DS18B20_drive.h"            //DS18B20驱动程序软件包
#define uchar unsigned char
#define uint  unsigned int
sbit SPEAK=P2^4;                //蜂鸣器
sbit RELAY=P3^6;                //继电器
sbit K1=P3^2;                    //按键K1
sbit K2=P3^3;                    //按键K2
sbit K3=P3^4;                    //按键K3
sbit K4=P3^5;                    //按键K4
bit  temp_flag ;        //判断DS18B20是否正常标志位,正常时为1,不正常时为0
bit  K1_flag=0 ;        //K1键按下时,该标志位为1,因为K1是一个双功能键,需要设置标志位进行区分
uchar count_50ms=0;        //50ms定时器计数器
bit flag_500ms=0;         //500ms标志位,满500ms时该位置1,用来控制小喇叭的闪烁频率
bit  key_up;            //按键加1减1标志位,用来控制K1键进行加1和减1的切换
uchar disp_buf[8]={0};    //显示缓冲
uchar  TH_buf[]={0};    //报警高位缓冲
uchar  TL_buf[]={0};    //报警低位缓冲
uchar  temp_comp;        //用来存放比较温度值(即温度值的整数部分),以便和报警值进行比较
uchar  temp_data[2] = {0x00,0x00};        //用来存放温度数据的高位和低位
uchar code  speaker[8] = {0x01,0x1b,0x1d,0x19,0x1d,0x1b,0x01,0x00};    //小喇叭的LCD点阵数据
uchar  temp_TH=38;        //高温报警温度初始值
uchar  temp_TL=37;        //低温报警温度初始值
uchar code  line1_data[] = "   DS18B20 OK   ";      //DS18B20正常时第1行显示的信息
uchar code  line2_data[] = " TEMP:          ";     //DS18B20正常时第2行显示的信息
uchar code  menu1_error[] = "   DS18B20 ERR  ";      //DS18B20出错时第1行显示的信息
uchar code  menu2_error[] = " TEMP: ----     ";     //DS18B20出错时第2行显示的信息
uchar code  menu1_set[] ="  SET TH:        ";      //设置菜单第1行温度设置信息
uchar code  menu2_set[] ="  SET TL:        ";     //设置菜单第2行温度设置信息
uchar code  menu2_H[] = ">H ";                  //温度过高时,第2行显示高温报警符号
uchar code  menu2_L[] ="<L";                 //温度度过低时,第2行显示低温报警符号
/********以下是函数声明,由于本例采用的函数较多,应加入函数声明部分********/
void timer0_init();            //定时器T0初始化函数声明
void SpeakerFlash();            //小喇叭符号闪烁函数声明
void  lcd_write_CGRAM();     //写CGRAM函数声明
void  TempDisp();            //温度值显示函数声明
void  SPEAK();                //蜂鸣器响一声函数声明
void  MenuError();            //DS18B20出错菜单函数声明
void  MenuOk();            //DS18B20正常菜单函数声明
void  THTL_Disp();            //报警温度值显示函数声明
void GetTemperture();            //读取温度值函数声明
void TempConv();            //温度值转换函数声明
void  Write_THTL() ;         //报警值写入函数声明(写入DS18B20的RAM和EEPROM)
void  ScanKey();            //按键扫描函数声明
void  SetTHTL();            //报警温度值设置函数声明
void  TempComp();            //温度比较函数声明
/********以下是温度值显示函数,负责将测量温度值显示在LCD上********/   
void  TempDisp()
{  
    lcd_wcmd(0x46 | 0x80);            //从第2行第6列开始显示温度值
     lcd_wdat(disp_buf[3]);              //百位数显示            
      lcd_wdat(disp_buf[2]);          //十位数显示              
      lcd_wdat(disp_buf[1]);          //个位数显示  
      lcd_wdat('.');                //显示小数点
      lcd_wdat(disp_buf[0]);          //小数位数显示
     lcd_wdat(0xdf);                //0xdf是圆圈°的代码,以便和下面的C配合成温度符号℃
      lcd_wdat('C');                 //显示C
}
/*********以下是蜂鸣器响一声函数********/
void  SPEAK()
{
  SPEAK =0;                   //蜂鸣器响
  Delay_ms(100);
  SPEAK =1;                   //关闭蜂鸣器
  Delay_ms(100);   
}
搜索更多相关主题的帖子: include 继电器 软件包 蜂鸣器 
2014-05-15 17:57
zhangyali
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2014-5-15
得分:0 
回复 3 楼 loveClangage
好啦  已经改好了
2014-05-15 22:33
zhangyali
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2014-5-15
得分:0 
回复 5 楼 杨攀好
好吧   那我要一个c语言编写的倒计时程序 也是单片机控制的去单片机论坛吗
2014-05-15 23:18



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-431595-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.133160 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved