资源简介
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浏览器设计 .
相关资源
- 单片机和adc0809数字电压表
- 单片机与温度传感器DS18B20的程序设计
- 毕业论文之温度传感器DS18B20(源码
- stm32 ds18b20 温度传感器 测试通过
- 51单片机读取温度数据存储到SD卡中并
- STM32F103 DS18B20 V3.5.0固件库驱动程序工
- DS18B20分布式多点测温的Proteus仿真
- ADC0809数字电压表 LCD1602显示 汇编程序
- 单片机 DS18B20 温度控制系统
- 课程设计蔬菜大棚自动控制系统,包
- ADC0832ADC0809DAC0832三种芯片程序,c程序
- ds18b20温度传感是什么传感器
- DS18B20_Serial_println.ino
- ds18b20测温例程tm4c123x
- STM32F103C8T6读取DS18B20串口显示程序.r
- DS18B20温度+DHT11湿度+LCD1602
- TM4C系列ds18b20温度传感器例程
- 读写ds18b20内部eeprom
- 基于FPGA的DS18B20单总线控制+数码管显
- STM32F103C8T6读取DS18B20串口显示程序
- STM32F103读取ds18b20温度传感器
- DS18B20-液晶1602显示温度和控制(代码
- 基于FPGA的LCD1602实时显示DS18b20温度
- 通过DS18B20检测环境温度,并在LCD128
- FPGA实现的DS18B20温度传感器
- stm32f407对ds18b20温度传感器数据的采集
- 基于zigbee的温度传感器DS18B20
- 数字电子秤设计(ADC0809)
- DS18B20 AT89C51 单片机 protus keil 温度传感
- FPGA综合系统设计二基于FPGA的温度采集
评论
共有 条评论