mdizi

    1. ucos最小微内核代码(对ucos-II进行剪裁后的代码) 27/18757 实时操作系统RTOS 2015-11-12
      ucos最小微内核代码(对ucos-II进行剪裁后的代码),,,,,没有 使用方法,,,,,  如何使用...?
    2. 基于DS18B20+液晶1602构成的高精度温度计 下载 基于DS18B20+液晶1602构成的高精度温度计 源程序 /************************************************** ; 伟维电子单片机工作室 ;  http://www.mdizi.com ; Copyright 2009 mdizi McuStudio ; All rights Reserved ;作者:周洵名 QQ:491069539 电话:13528913615 ;连线图: ; DB0---DPROT.0 DB4---DPROT.4 RS-------------P1.2 ; DB1---DPROT.1 DB5---DPROT.5 RW-------------P1.3 ; DB2---DPROT.2 DB6---DPROT.6 E--------------P1.4 ; DB3---DPROT.3 DB7---DPROT.7 VLCD接10K可调电阻到GND* ; DQ----P1.1 ;AT89S52 晶振频率为11.0592MHz 指令周期:1.085069us 本程序在: 本站的单片机学习板上调试完成: 型号:TL-SST89E、TL-AT89S51、TL-SST89H、TL-SST89A、TL-STC89C、TL-Min51 ;功能说明:1602液晶显示温度程序,正负温度自动转换。 温度测量范围:-55℃~125℃; 温度测量精度:0.0625℃ 显示精度: 0.0625 ;********************************************************************************************/ #include "reg52.h"//头文件 #include "intrins.h" #define uchar unsigned char//宏定义 #define uint unsigned int//宏定义 sbit RS=P1^2;//定义I/O的硬件接口 sbit RW=P1^3; sbit E=P1^4; sbit led_7=P1^7;//;;;LED秒闪烁 sbit DQ=P1^1;////定义I/O的硬件接口--温度 uint Temperature;//温度暂存单元 uint Negative_Temperature;//负温度暂存单元 bit Negative_sign=1;//负温度标志 unsigned long TEMP;//长整形单元 #define DPDR P0//并行数据接口定义 uchar code DispTab_1[]={'0','1','2','3','4','5','6','7','8','9',' ','-'};//1602:0-9 数字 uchar DispBuf[6]; //6字节的显示缓冲区 char char_char_1[]={" www.mdizi.com "};//定义字符串 void delay(uint z)//1ms延时 { uchar x,x1; for(;z>0;z--) { for(x=0;x1; DQ=1; } } read_DB18B20()//读DB18B20 { uint temp_1; uchar i; for(i=0;i>1; DQ=1; _nop_(); DQ=0; _nop_(); DQ=1; _nop_(); _nop_(); _nop_(); _nop_(); if(DQ==1) temp_1=temp_1|0x8000; //else // temp_1=temp_1|0x0000; delay1(5);//程序5次延时时间为 54.25us } return temp_1;//返回温度值 } void Negative()//温度为零度以下时,将变换温度 { Negative_Temperature=Temperature; Negative_Temperature=Negative_Temperature&0xf800; if(Negative_Temperature==0xf800) { Temperature=~Temperature; Temperature=Temperature+1; Negative_sign=0; } } void main() { LCD_init();//LCD复位 while(1) { DB18B20_init();//DB18B20复位 write_DB18B20(0xcc);//写DB18B20;0xcc 跳过 ROM 指令 write_DB18B20(0x44);//写DB18B20;0x44 启动温度转换指令 delay(1000);//延时1秒 DB18B20_init();//DB18B20复位 write_DB18B20(0xcc);//写DB18B20;0xcc 跳过 ROM 指令 write_DB18B20(0xbe);//写DB18B20;0xbe 读温度指令 Temperature=read_DB18B20();//读 DB18B20 温度,读出的温度在 Temperature Negative();//温度为零度以下时,将变换温度,否则不变 TEMP=Temperature*0.0625*10000;//转换成 十进制(*10000,表示,显示到小数点后4位:0.0000) write_Data_String();//显示温度 } }

最近访客

< 1/1 >

统计信息

已有66人来访过

  • 芯积分:5
  • 好友:--
  • 主题:--
  • 回复:2

留言

你需要登录后才可以留言 登录 | 注册


现在还没有留言