资源简介
51单片机做的温度计和电压采样,温度计采用DS18B20,AD采样用的是ADC0809,然后在12864上显示温度值和电压值
代码片段和文件信息
#include
#include
typedef unsigned char uint8;
typedef unsigned int uint16;
#define adc0809_data P1
sbit STR =P3^4; //单片机P3.4接模块STR引脚 启动转换信号
sbit EOC =P3^5; //单片机P3.5接模块EOC, 转换结束信号,高电平有效
sbit OE =P3^6; //单片机P3.6接模块OE输出允许信号,高电平有效
sbit CLK =P3^3; //单片机P3.7接CLK ,ADC0809时钟输入50-800KHZ的频率
//一般选用500K
void Delay5Ms(void);
void Delay400Ms(void);
unsigned char AD_DATA[1]; //保存IN0通道转换后的数据
unsigned int addata2;
sbit DQ=P3^7;
sbit LCDRS=P0^7;
sbit LCDWE=P0^6;
sbit LCDEN=P0^5;
sbit LCDPSB=P0^4;
uint8 temp=80temp_Booktemp_Look;
uint8 teying[14]={“温度显示:“};
uint8 ying[15] ={“电压显示:“};
void Delay5Ms(void)
{
unsigned int TempCyc = 5552;
while(TempCyc--);
}
/***********AD转换函数**********/
void AD(void )
{
STR=0;
STR=1; //启动AD转换
STR=0;
while(0==EOC);//等待转换结束
OE=1;
AD_DATA[0]=adc0809_data; //读取AD数据,数据范围为0-255
OE=0;
}
/***********T0中断服务程序************/
void t0(void) interrupt 1 using 0
{
CLK=~CLK;
}
void delayms(unsigned int ms)
{
unsigned char i=100j;
for(;ms;ms--)
{
while(--i)
{
j=10;
while(--j);
}
}
}
void delay_ms(uint16 mao)
{
uint16 ab;
for(a=0;a for(b=0;b<120;b++);
}
void write_com(uint8 com)
{
LCDRS=0;
LCDWE=0;
LCDEN=0;
P2=com;
delay_ms(5);
LCDEN=1;
delay_ms(5);
LCDEN=0;
}
void write_data(uint8 date)
{
LCDRS=1;
LCDWE=0;
LCDEN=0;
P2=date;
delay_ms(5);
LCDEN=1;
delay_ms(5);
LCDEN=0;
}
void LCD_INIT(void)//????????
{
LCDPSB=1;
delay_ms(5);
write_com(0x30);
delay_ms(5);
write_com(0x30);
delay_ms(5);
write_com(0x0c);
delay_ms(5);
write_com(0x01);
delay_ms(20);
}
void display(void)//?????
{
uint8 i;
write_com(0x88);
for(i=0;i<14;i++)
{
write_data(teying[i]);
}
}
void display_Book()//??LCD12864???????????????????ISCii?
{
teying[10]=temp/10+0x30;
teying[11]=temp%10+0x30;
teying[12]=0x20;
teying[13]=0x02;
}
void display2(void)
{
uint8 i;
write_com(0x80);
for(i=0;i<13;i++)
{
write_data(ying[i]);
}
}
void display_Book2()
{
ying[10]=AD_DATA[0]/100+0x30;
ying[11]=AD_DATA[0]/10%10+0x30;
ying[12]=AD_DATA[0]%10+0x30;
}
void delay_us(uint8 m)//??
{
while(--m);
}
bit Inte_DS18B20(void)//??
{
bit DS18B20_EXIP;
DQ=1;
DQ=0;
delay_us(250);
DQ=1;
delay_us(30);
DS18B20_EXIP=DQ;
delay_us(200);
if(DS18B20_EXIP)
return 1;
else
return 0;
}
void write_DS18B20(uint8 num)
{
uint8 i;
for(i=0;i<8;i++)
{
DQ=1;
DQ=0;
_nop_();
DQ=num&0x01;
delay_us(20);
num=num>>1;
DQ=1;
delay_us(1);
}
}
uint8 Read_DS18B20() //???
{
uint8 inum;
for(i=0;i<8;i++)
{
DQ=1;
DQ=0;
delay_us(1);
DQ=1;
_nop_();
_nop_();
num=num>>1;
if(DQ)
num |=0x80;
delay_us(20);
}
return num;
}
void Get_Temp()
{
Inte_DS18B20();
write_DS18B20(0xCC);
wri
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 11180 2014-05-17 15:32 LCD+DS18B20+ADC0809\aa
文件 3633 2014-05-17 15:32 LCD+DS18B20+ADC0809\aa.c
文件 2168 2014-05-17 15:32 LCD+DS18B20+ADC0809\aa.hex
文件 36 2014-05-17 15:32 LCD+DS18B20+ADC0809\aa.lnp
文件 7957 2014-05-17 15:32 LCD+DS18B20+ADC0809\aa.LST
文件 16742 2014-05-17 15:32 LCD+DS18B20+ADC0809\aa.M51
文件 12943 2014-05-17 15:32 LCD+DS18B20+ADC0809\aa.OBJ
文件 11689 2014-05-17 15:32 LCD+DS18B20+ADC0809\aa.plg
....... 68633 2014-05-17 16:03 LCD+DS18B20+ADC0809\aa.uvgui.Administrator
....... 5030 2014-05-17 16:03 LCD+DS18B20+ADC0809\aa.uvopt
....... 13385 2014-05-17 16:03 LCD+DS18B20+ADC0809\aa.uvproj
....... 0 2014-05-17 14:39 LCD+DS18B20+ADC0809\aa_uvproj.bak
目录 0 2014-05-17 16:03 LCD+DS18B20+ADC0809
----------- --------- ---------- ----- ----
153396 13
- 上一篇:基于PLC的变频恒压供水的设计
- 下一篇:WEB浏览器设计 .
相关资源
- 基于51单片机的8路AD电压采集与测量
- 基于msp430f149的ds18b20显示程序
- adc0809原理图
- ADC0809 数字电压表
- AVR-mega128单片机实现温度DS18B20,prot
- 1602 基于89C51单片机的DS18B20恒温控制系
- DS18B20数码管显示温度
- DS18B20 STC1T系列单片机驱动程序
- 单片机程序DS18B20-液晶1602显示温度和
- 51单片机DS18B20程序及proteus仿真
- 基于VHDL控制的DS18B20温度测量程序
- 2线DS18B20程序 二线DS18B20程序 18B20寄生
- 基于DSP2812的DS18B20温度采集
- 基于单片机的温室大棚温湿度亮度自
- DS18B20中文资料--新版.pdf
- ADC0809.rar
- DS18B20温度采集+串口发送+模块化编程
- 基于STM32的温控系统原理图
- MSP430F149+DS18B20+1602程序绝对好用
- PID方式PWM输出温度控制stc12c5a+ds18b20
- DS18b20的VHDL程序
- dS18b20的C8051F020程序
- 51单片机的数字温度,使用DS18B20,数
- ad_0809 Verilog Hdl
- msp430 模块程序 包括DS18B20 PS2 串口 电
- 基于C8051F020的ds18b20的驱动程序,包可
- STC15系列读DS18B20程序,12Mhz时钟晶振
- 89c51+DS18B20 数码管
- ds18b20.zip
- DS18B20数码管显示温度VHDL程序
评论
共有 条评论