• PUDN用户
    了解作者
  • Visual C++
    开发工具
  • 1KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • 1 积分
    下载积分
  • 13
    下载次数
  • 2012-02-10 09:10
    上传日期
耳温枪程序设计源码,他是基于C环境下的汇编程序
Ear-temperature-gun.rar
  • Ear temperature gun.c
    4.3KB
内容介绍
/******************************************************************** * 文件名 : 温度采集DS18B20.c * 描述 : 该文件实现了用温度传感器件DS18B20对温度的采集,并在数码管上显示出来。 * 创建人 : 东流,2009年4月10日 * 版本号 : 2.0 ***********************************************************************/ #include<reg52.h> #define uchar unsigned char #define uint unsigned int sbit k1=P1^2; sbit k2=P1^3; sbit DQ1 = P1^6; //DS18B20数据口 sbit DQ2 = P1^7; uchar code table[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; void Delay_1ms(uint i)//1ms延时 { uchar x,j; for(j=0;j<i;j++) for(x=0;x<=20;x++); //148 } /******************************************************************** * 名称 : Reset() * 功能 : 复位DS18B20 * 输入 : 无 * 输出 : 无 ***********************************************************************/ //////////////////以下是DS18B20驱动程序//////////////// //延时函数 void delay(unsigned int i) { while(i--); } //初始化函数 Init_DS18B201(void) { unsigned char x=0; DQ1 = 0; //单片机将DQ拉低 delay(90); //精确延时 大于 480us DQ1 = 1; //拉高总线 delay(14); x=DQ1; //稍做延时后 如果x=0则初始化成功 x=1则初始化失败 delay(20); } Init_DS18B202(void) { unsigned char x=0; DQ2 = 0; //单片机将DQ拉低 delay(90); //精确延时 大于 480us DQ2 = 1; //拉高总线 delay(14); x=DQ2; //稍做延时后 如果x=0则初始化成功 x=1则初始化失败 delay(20); } //读一个字节 ReadOneChar1(void) { unsigned char i=0; unsigned char dat = 0; for (i=8;i>0;i--) { DQ1 = 0; // 给脉冲信号 dat>>=1; DQ1 = 1; // 给脉冲信号 if(DQ1) dat|=0x80; delay(4); } return(dat); } ReadOneChar2(void) { unsigned char i=0; unsigned char dat = 0; for (i=8;i>0;i--) { DQ2 = 0; // 给脉冲信号 dat>>=1; DQ2 = 1; // 给脉冲信号 if(DQ2) dat|=0x80; delay(4); } return(dat); } //写一个字节 WriteOneChar1(unsigned char dat) { unsigned char i=0; for (i=8; i>0; i--) { DQ1 = 0; DQ1 = dat&0x01; delay(5); DQ1 = 1; dat>>=1; } } WriteOneChar2(unsigned char dat) { unsigned char i=0; for (i=8; i>0; i--) { DQ2 = 0; DQ2 = dat&0x01; delay(5); DQ2 = 1; dat>>=1; } } //读取温度 ReadTemperature1(void) { unsigned char a=0; unsigned char b=0; unsigned int t=0; float tt=0; Init_DS18B201(); WriteOneChar1(0xCC); // 跳过读序号列号的操作 WriteOneChar1(0x44); // 启动温度转换 Init_DS18B201(); WriteOneChar1(0xCC); //跳过读序号列号的操作 WriteOneChar1(0xBE); //读取温度寄存器等(共可读9个寄存器) 前两个就是温度 a=ReadOneChar1(); b=ReadOneChar1(); t=b; t<<=8; t=t|a; tt=t*0.0625; //将温度的高位与低位合并 t= tt*10; //对结果进行4舍5入+0.5 return(t); } ReadTemperature2(void) { unsigned char a=0; unsigned char b=0; unsigned int t=0; float tt=0; Init_DS18B202(); WriteOneChar2(0xCC); // 跳过读序号列号的操作 WriteOneChar2(0x44); // 启动温度转换 Init_DS18B202(); WriteOneChar2(0xCC); //跳过读序号列号的操作 WriteOneChar2(0xBE); //读取温度寄存器等(共可读9个寄存器) 前两个就是温度 a=ReadOneChar2(); b=ReadOneChar2(); t=b; t<<=8; t=t|a; tt=t*0.0625; //将温度的高位与低位合并 t= tt*10; //对结果进行4舍5入+0.5 return(t); } void read1() { uint temp; temp=ReadTemperature1(); P3=0xfe; P0 = table[temp/100]; Delay_1ms(25);//8 P3=0xff; P0=0x00;// Delay_1ms(25); P3=0xfd; P0 = table[temp%100/10]+0x80; Delay_1ms(25); P3=0xff; P0=0x00; Delay_1ms(25); P3=0xfb; P0=table[temp%10]; Delay_1ms(25); P3=0xff; P0=0x00; Delay_1ms(25); } void read2() { uint temp; temp=ReadTemperature2(); P3=0xef; P0 = table[temp/100]; Delay_1ms(25); P3=0xff; P0=0x00; Delay_1ms(25); P3=0xdf; P0 = table[temp%100/10]+0x80; Delay_1ms(25); P3=0xff; P0=0x00; Delay_1ms(25); P3=0xbf; P0=table[temp%10]; Delay_1ms(25); P3=0xff; P0=0x00; Delay_1ms(25); } /******************************************************************** * 名称 : Main() * 功能 : 主函数 * 输入 : 无 * 输出 : 无 ***********************************************************************/ void main() { while(1) { if(k1==0&&k2==1)read1(); //Delay_1ms(10); if(k2==0&&k1==1)read2(); //Delay_1ms(10); } }
评论
    相关推荐
    • Hangman.rar
      simple hangman game,using python,word bank included
    • Acoustical-Design-For-Architects.zip
      Acoustical Design For Architects
    • 200Circuit--transistor.rar
      this doc have 200 practical circuit by transistor.
    • Python实现猜词游戏 Hangman Game(不带提示和带提示版本)
      利用python语言编写一个猜词游戏程序Hangman Game,从words.txt加载单词,然后供玩家猜测。在此过程中涉及的知识点包括函数构建、分支(if语句)、循环(while和for语句)以及字符串(string)和列表(list)等结构化类型的...
    • 开心农场java源码-FindAnagrams:Android开发者面试测试任务
      开心农场java源码查找字谜 以下测试不意味着额外的解释。 如有任何问题或误解,应遵循保持简单。 简介 考试的目的是检查特别是 Java 语言和一般计算机科学的实践经验。 在测试实施期间,您可以使用: ...
    • c3ms - Comic Creation CMS-开源
      Comic Creation CMS将是一个集成的CMS / Groupware / Portal Web应用程序,用于创建适用于Web和电子出版的Comics / Graphic Novels。 雄心勃勃还为活动的多媒体内容漫画创建了通用的XML文件格式(以及更多...)
    • breadth_first_search.rar
      Breadth First Search Java samples
    • 字符串查找.rar
      将字典中的单词输出并查找包含某一串字符的所有单词
    • hangman.zip
      这是一个经典单词游戏Hangman的变形设计。此处第二玩家始终是计算机,它会随机选择一个单词(即下文经常用到的secretWord)。
    • Proteus7.12.rar
      Proteus7.12完美破解版.rar电路仿真软件很好用可以仿真单片数字模拟电路