久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 1627|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

高中生,研究了大半個(gè)月的成果,51單片機(jī)lcd顯示溫度計(jì)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:577690 發(fā)表于 2019-7-4 10:45 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
#include"reg52.h"
#include "temp.h"
#include"xianshi.h"
#include "fmq.h"

typedef unsigned int u16;
typedef unsigned char u8;

u8 DisPlayDate[8];

void datapros(int temp)
{
        float tp;
        if(temp<0)
        {
                DisPlayDate[0] = '-';
                 
                temp = temp-1;
                temp=~temp;
                tp =temp;
                temp = tp*0.0625*100+0.5;//100為了保留兩位小數(shù)                 
        }
        else
        {
                DisPlayDate[0] = '+';
                tp = temp;
                temp = tp*0.0625*100+0.5;//100為了保留兩位小數(shù)                 
        }

        DisPlayDate[1] = temp/10000;
        DisPlayDate[2] = temp%10000/1000;
        DisPlayDate[3] = temp%1000/100;
        DisPlayDate[4] = temp%100/10;
        DisPlayDate[5] = temp%10;
        if(temp/100>32)
        {
                beep();
        }
               
        lcd_w_cmd(0x82);
        lcd_w_dat('0'+DisPlayDate[1]);

        lcd_w_cmd(0x83);
        lcd_w_dat('0'+DisPlayDate[2]);
       
        lcd_w_cmd(0x84);
        lcd_w_dat('0'+DisPlayDate[3]);


        lcd_w_cmd(0x85);
        lcd_w_dat('.');

        lcd_w_cmd(0x86);
        lcd_w_dat('0'+DisPlayDate[4]);

        lcd_w_cmd(0x87);
        lcd_w_dat('0'+DisPlayDate[5]);
}                                                          

void main()
{
        init();
        lcd_w_cmd(0x88);
        lcd_w_dat('c');
        while(1)
        {
                datapros(ds18b20readtemp());
               
        }

}




#include "temp.h"

void delay1ms(uint y)
{
        uint x;
        for(;y>0;y--)
        {
                for(x=100;x>0;x--);
        }
}

uchar DS18B20init()
{
        uchar i=0;
        DSPORT = 0;
        i=70;
        while(i--);//642us        480~960之間
        DSPORT = 1;
        i = 0;
        while(DSPORT)
        {
                delay1ms(1);
                i++;
                if(i>5)
                {
                        return 0;
                }               
        }
        return 1;//1為初始化成功,0為初始化失敗
}

void ds18b20_write(uchar dat)        //寫字節(jié)函數(shù)
{
        uchar i,j;
        for(j=0;j<8;j++)
        {
                DSPORT = 0;
                i++;
                DSPORT = dat&0x01;
                i=6;
                while(i--);//大約68us
                DSPORT = 1;
                dat>>=1;                               
        }
}

uchar ds18b20_read()
{
        uint i,j;
        uchar bi,byte;
        for(j=8;j>0;j--)
        {
                DSPORT = 0;
                i++;
                DSPORT = 1;
                i++;
                i++;
                bi = DSPORT;
                byte = (byte>>1)|(bi<<7);
                i = 4;
                while(i--);
        }
        return byte;
}

void ds18b20change()
{
        DS18B20init();
        delay1ms(1);
        ds18b20_write(0xcc);
        ds18b20_write(0x44);               
}

void ds18b20ReadTempCom()//發(fā)送溫度轉(zhuǎn)化
{
        DS18B20init();
        delay1ms(1);
        ds18b20_write(0xcc);
        ds18b20_write(0xbe);
}

int ds18b20readtemp()
{
        int temp=0;
        uchar tmh,tml;
        ds18b20change();
        ds18b20ReadTempCom();
        tml = ds18b20_read();
        tmh        = ds18b20_read();
        temp = tmh;
        temp<<=8;
        temp |=        tml;
        return temp;
}


#ifndef _TEMP_H
#define _TEMP_H

#include<reg52.h>

#ifndef uchar
#define uchar unsigned char
#endif

#ifndef uint
#define uint unsigned char
#endif

sbit DSPORT = P3^7;

int ds18b20readtemp();


#endif




#include"xianshi.h"

void delay(unsigned int k)
{
        while(k--);
}

unsigned char lcd_r_start()
{
        unsigned char s;
        RW = 1;
        delay(2);
        RS = 0;
        delay(2);
        EN = 1;
        delay(2);
        s = P0;
        delay(2);
        EN = 0;
        delay(2);
        return s;
}

void lcd_w_cmd(unsigned char com)
{
        unsigned char i;
        do
        {
                i=lcd_r_start();
                i&=0x80;
                delay(2);
        }while(i!=0);
        RW = 0;
        delay(2);
        RS = 0;
        delay(2);
        EN = 1;
        delay(2);
        P0 = com;
        delay(2);
        EN = 0;
        delay(2);
}

void lcd_w_dat(unsigned char dat)
{
        unsigned char i;
        do
        {
                i=lcd_r_start();
                i&=0x80;
                delay(2);
        }while(i!=0);
        RW = 0;
        delay(2);
        RS = 1;
        delay(2);
        EN = 1;
        delay(2);
        P0 = dat;
        delay(2);
        EN = 0;
        delay(2);
}

void init()
{
        lcd_w_cmd(0x38);
        lcd_w_cmd(0x0c);
        lcd_w_cmd(0x01);
        lcd_w_cmd(0x06);
        lcd_w_cmd(0x80);               
}





#ifndef _XIANSHI_H
#define _XIANSHI_H

#include"reg52.h"
sbit RS=P2^6;
sbit RW=P2^5;
sbit EN=P2^7;

void init();
unsigned char lcd_r_start();
void lcd_w_cmd(unsigned char com);
void lcd_w_dat(unsigned char dat);
void delay(unsigned int k);


#endif




#include"fmq.h"

void delayws(unsigned int k)
{
        while(k--);
}

void beep()
{
        unsigned int i,j;
        for(i=0;i<250;i++)
        {
                bp=0;
                delayws(150);
                bp=1;
                delayws(150);
        }
        for(j=0;j<100;j++)
        {
                bp=0;
                delayws(300);
                bp=1;
                delayws(300);
        }
}




#ifndef _FMQ_H
#define _FMQ_H

#include"reg52.h"
sbit bp=P1^5;

void beep();
void delay(unsigned int k);

#endif




分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:677168 發(fā)表于 2019-12-31 15:00 來(lái)自觸屏版 | 只看該作者
沒(méi)有圖呀
回復(fù)

使用道具 舉報(bào)

板凳
ID:325624 發(fā)表于 2020-3-9 15:13 | 只看該作者
同是高中生,為何你如此突出
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 日韩一区二区福利视频 | 日韩在线小视频 | 成人在线视频一区二区三区 | 欧美大片一区 | 波多野结衣一区二区三区 | 日韩精品区 | 日韩欧美三区 | 婷婷综合网| 精品久久久久久久久久久久久久久久久 | 亚洲午夜网 | 99这里只有精品 | 国产精品免费福利 | 亚洲一区二区在线视频 | 福利国产 | 亚洲精品久久久久久一区二区 | 国产精品久久国产精品久久 | 国产精品免费一区二区三区 | 波多野结衣在线观看一区二区三区 | 欧美日韩亚洲在线 | 中文字幕在线观看 | 国产精品一区在线 | 亚洲精品乱码久久久久久蜜桃91 | 亚洲国产一区在线 | 亚洲国产精品91 | 亚洲国产欧美91 | 91精品国产91久久久久福利 | 欧美日韩在线视频一区 | 天堂久久天堂综合色 | 一级少妇女片 | 免费观看一级特黄欧美大片 | 欧美日韩国产一区二区三区 | 亚洲毛片网站 | 久久www免费视频 | 黄色av免费网站 | 一区二区av| 国产午夜精品一区二区三区四区 | 久久久久久久久中文字幕 | 在线观看一区 | 欧美 日韩 亚洲91麻豆精品 | 国产综合久久 | 中国一级毛片免费 |