Proteus仿真 您所在的位置:网站首页 proteus中lcd1602在哪 Proteus仿真

Proteus仿真

2024-03-13 03:30| 来源: 网络整理| 查看: 265

一、硬件链接

在元件库中搜索DS18B20,按下图的连接方式链接。

 二、驱动代码

#define uchar unsigned char #define uint unsigned int sbit DS1820_dat=P3^2; void DS18B20_delay(uint T) //???? { while(T--); } void Initial() { DS1820_dat=1; DS18B20_delay(8); //??16?? DS1820_dat=0; DS18B20_delay(80); DS1820_dat=1; DS18B20_delay(15); } void Input(uchar f) //18B20??????? { uchar j; for (j=0;j>=1; } } uchar Output() //18b20 ???????? { uchar j,b; for (j=0;j>=1; DS1820_dat=1; if (DS1820_dat) { b=b|0x80; } DS18B20_delay(10); } return(b); } int Temper() { int Store; int Store_2,Store_1; Initial(); //对 DS18B20 复位 Input(0xcc); //跳过 ROM Input(0x44); //启动温度转换 Initial(); //对 DS18B20 复位 Input(0xcc); //跳过 ROM Input(0xbe); //读 RAM 命令 Store_1=Output(); //读温度的低字节 Store_2=Output(); //读温度的高字节 Store_2=(Store_2*256)+Store_1; //合起来为温度的整数部分 Store=(int) Store_2*0.625; return Store; }

三、软件示例

完整代码功能为51单片机温度控制系统,proteus仿真资料 功能: 1、低于设定最低温度时加热丝加热,高于最高温度时停止加热。可用按键设置高低温度。

2、显示当前时间,时间可设置。 3、DAC液位监测,液位低于10%开启电机上水,高于90%关闭电机上水,百分比可在程序中修改

/*****************主函数********************/ void main() { beep = 0; //开机蜂鸣器叫一声 delay_1ms(200); P0 = P1 = P2 = P3 = 0xff; //初始化IO口 init_time0(); //初始化定时器 init_1602(); //lcd1602初始化 init_1602_dis_csf(); //lcd1602初始化显示 do { temp=Temper(); } while(temp==850); //因为DS18B20上电之后会读出来850,但不是温度值,所以等待读出温度值 delay_1ms(100); while(1) { key(); //按键程序 if(key_can > 0) { beep = 0; delay_1ms(50); beep = 1; key_with(); } if(flag_200ms == 1) { flag_200ms = 0; if(menu_1 == 0) { read_time(); //读时间 init_1602_ds1302(); //显示时钟 vol_value=VOL_VAL*A_D()/256; //获取模拟电压值 percent = 100.0*vol_value/VOL_VAL; display_temp(55); } } delay_1ms(1); } }

关注下方公众号,回复公众号“204”获取完整工程文件



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有