wwwxxx国产_337p日本欧洲亚洲大胆张筱雨_免费在线看成人av_日本黄色不卡视频_国产精品成熟老女人_99视频一区_亚洲精品97久久中文字幕_免费精品视频在线_亚洲色图欧美视频_欧美一区二三区

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7453|回復: 10
打印 上一主題 下一主題
收起左側

18b20+1602制作數字溫度計的C51程序

  [復制鏈接]
跳轉到指定樓層
樓主
閑來無事,用18b20溫度傳感器和1602液晶做了一個溫度計,學習一下有關傳感器的時序和操作,以及1602液晶顯示程序.
效果如下:

[分享]18b20+1602制作數字溫度計的C51程序硬件連接:
1、18b201腳接GND,3腳接5V電源,2腳接P2.7,并將2腳與電源間串一4.7K電阻;
2、1602 VDD接5V電源,VSS接GND;A接5V電源,K接GND;
3、VO串一1K電阻接5V電源;
4、RS接P1.0,RW接P1.1;
5、使能信號端E接P1.2;
6、D0-D7分別接P0.0-P0.7.

程序如下(些段程序是用很多別人的程序拼湊的,功能能實現,但肯定不是最優化的代碼):
#include
#include

typedef unsigned char uint8;
typedef unsigned int uint16;
typedef char int8;
typedef int int16;

sbit DQ  = P2^7;                  //溫度輸入口
sbit RS = P1^0 ;
sbit RW = P1^1 ;
sbit EN = P1^2 ;
sbit BUSY = P0^7;
#define nops();  {_nop_(); _nop_(); _nop_(); _nop_();} //定義空指令

   uint8 i;
         uint16 temp,temp2;
         unsigned char xiaoshu1,xiaoshu2,xiaoshu;
void wait(void)
{
         P0 = 0xFF;
                   do
         {
                   RS = 0;
                   RW = 1;
                   EN = 0;
                   EN = 1;
         }while (BUSY == 1);
         EN = 0;
}

void w_dat(uint8 dat)
{
         wait();
         EN = 0;
         P0 = dat;
         RS = 1;
         RW = 0;
         EN = 1;
         EN = 0;
}

void w_cmd(uint8 cmd)
{
         wait();
         EN = 0;
         P0 = cmd;
         RS = 0;
         RW = 0;
         EN = 1;
         EN = 0;
}

void w_string(uint8 addr_start, uint8 *p)
{
         w_cmd(addr_start);
         while (*p != '\0')
         {
                   w_dat(*p++);
         }
}

void Init_LCD1602(void)
{
         w_cmd(0x38);  // 16*2顯示,5*7點陣,8位數據接口
         w_cmd(0x0C);  // 顯示器開、光標開、光標允許閃爍
         w_cmd(0x06);  // 文字不動,光標自動右移
         w_cmd(0x01);  // 清屏
}

void delay(uint16 n)
{
         while (n--);
}

void delay_ms(uint16 n)
{
         uint8 m=120;
         while (n--)
                   while (m--);
}

void DS18b20_reset(void)
{
         bit flag=1;
         while (flag)
         {
                   while (flag)
                 {
                           DQ = 1;
                            delay(1);
                           DQ = 0;
                           delay(50); // 550us
                           DQ = 1;
                           delay(6);  // 66us
                           flag = DQ;
               }
                   delay(45);    //延時500us
                   flag = ~DQ;
         }
         DQ=1;
}

void write_byte(uint8 val)
{
         uint8 i;
         for (i=0; i<8; i++)
         {
                   DQ = 1;
                   _nop_();
                   DQ = 0;
                   nops(); //4us
                   DQ = val & 0x01;      //最低位移出
                   delay(6);           //66us
                   val >>= 1;          //右移一位
         }
         DQ = 1;
         delay(1);
}

uint8 read_byte(void)
{
         uint8 i, value=0;
         for (i=0; i<8; i++)
         {
                   DQ=1;
                   _nop_();
                   value >>= 1;
                   DQ = 0;
                   nops();   //4us
                   DQ = 1;
                   nops();   //4us
                   if (DQ)
                            value|=0x80;
                   delay(6);           //66us
         }
         DQ=1;
         return(value);
}

void start_temp_sensor(void)
{
         DS18b20_reset();
         write_byte(0xCC); // 發Skip ROM命令
         write_byte(0x44); // 發轉換命令
}

int16 read_temp(void)
{
         uint8 temp_data[2]; // 讀出溫度暫放
         DS18b20_reset();  // 復位
         write_byte(0xCC); // 發Skip ROM命令
         write_byte(0xBE); // 發讀命令
         temp_data[0]=read_byte();  //溫度低8位
         temp_data[1]=read_byte();  //溫度高8位
         temp = temp_data[1];
         temp2=temp_data[1];
         temp <<= 8;
         temp |= temp_data[0];
         temp >>= 4;
         xiaoshu1 = (temp_data[0]&0x0f)*10/16; //小數第一位
         xiaoshu2 = (temp_data[0]&0x0f)*100/16;//小數
         xiaoshu=xiaoshu1*10+xiaoshu2; //小數
         //return temp;
}
unsigned char code word1[]={"Temperature:"};
uint8  table1[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07};  //自定義字符數據地址
unsigned char table[]={0x10,0x06,0x09,0x08,0x08,0x09,0x06,0x00};//字符℃
uint16 a,j,k,n;

main()
{
         while (1)
         {
                   start_temp_sensor();
                   delay_ms (100); // 延時0.1秒
                   read_temp();
         a=temp/100;
         j=temp/10;
         k=temp-100*a-10*j;
         Init_LCD1602();
                                     w_cmd(0x40);
             for(n=0;n<8;n++)//寫入溫度符號代碼
              {
               w_dat(table[n]);
               delay(1);
              }
         w_string(0x80,word1);
   w_cmd(0xC4);
         if(temp2>0x7f){
                   w_dat(45);       }//如果溫度為負,顯示負號
         if(a!=0){
        w_dat(a+48);}//如果百位是零則不顯示
   w_dat(j+48);//十位
         w_dat(k+48);//個位
    w_dat(46);
         w_dat(xiaoshu1+48);
         w_dat(xiaoshu2+48);
   w_dat(table1[0]);//溫度符號
}
}

在編寫程序中,有很多感慨,畢竟自己不是電子專業,純屬業余愛好而已,所以編寫程序中遇到了一些意想不到的麻煩.
1、在寫延時程序時,這是在編寫數碼管顯示程序時遇到的,當時想改編一下別人的程序:
void led_delay(void)
{
   unsigned char i,j;
         for(i=0;i<250;i++)
           for(j=0;j<250;j++)
             ;
}
程序中有一嵌套.我想加長延時的時間,所以就想將i或j改大一些,改成300或以上,但燒錄后,卻不成功,當時百思不得其解啊.后來才恍然大悟,char最大取值是255!所以就又加了一層嵌套.
2、在用1602顯示溫度時,顯示簡單漢字和英文均正常,但讀取18b20的溫度數值,顯示到1602時,一直是亂碼.當時想了各種辦法,怎么也不成功,從變量到顯示函數都認真研究了一遍,就是找不到問題.偶然機會,在網上看到,向1602發送的數字,1602當ASCII碼!一語驚醒夢中人啊,將溫度數字加上48后,一切正常!

    發生了這么兩件簡單的事情后,我發現,不是專業出身,沒有經過系統學習是不行的!所以我從網上找了一套單片機學習教程,系統的學習了一遍,雖然沒有達到精通的程度,但確實有了很大程度的進步!
這套教程由淺入深,循序漸進,有大量資料和說明,并配有教程中的所有程序,學習起來非常方便.

現在只傳了一部分,其余部分陸續上傳

評分

參與人數 1威望 +20 黑幣 +20 收起 理由
admin + 20 + 20 很給力!

查看全部評分

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

使用道具 舉報

12#
ID:80736 發表于 2016-4-16 01:11 | 只看該作者
贊一個
回復

使用道具 舉報

11#
ID:70769 發表于 2014-12-26 02:43 | 只看該作者
GOOD!!!
回復

使用道具 舉報

10#
ID:70683 發表于 2014-12-22 14:41 | 只看該作者
大神 做過數顯油箱油量測量控制設計?
回復

使用道具 舉報

9#
ID:70769 發表于 2014-12-20 04:35 | 只看該作者
學習了
回復

使用道具 舉報

8#
ID:70769 發表于 2014-12-20 04:26 | 只看該作者
很好,正需要
回復

使用道具 舉報

7#
ID:69706 發表于 2014-12-4 14:26 | 只看該作者
由原理圖嗎
回復

使用道具 舉報

6#
ID:67292 發表于 2014-10-12 22:00 | 只看該作者
回復

使用道具 舉報

5#
ID:67292 發表于 2014-10-12 21:59 | 只看該作者
******************
回復

使用道具 舉報

無效樓層,該帖已經被刪除
板凳
ID:65209 發表于 2014-8-18 22:38 來自觸屏版 | 只看該作者
可以再加上濕度測量就完美了
回復

使用道具 舉報

沙發
ID:29926 發表于 2014-8-13 14:17 | 只看該作者
學習了支持。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
视频在线观看入口黄最新永久免费国产 | 欧美一级片免费| 亚洲欧美小视频| 国产一二三av| 国产传媒免费在线观看| 懂色av蜜桃av| 日本一级特级毛片视频| 紧身裙女教师波多野结衣| 操她视频在线观看| 午夜国产福利一区二区| 久久免费视频99| 中日韩精品视频在线观看| 久久艹免费视频| 伊人手机在线视频| 亚洲黄网在线观看| 无码人妻丰满熟妇奶水区码| 糖心vlog精品一区二区| 一区二区自拍偷拍| 国产黄a三级三级三级| 丰满人妻一区二区三区四区53| 午夜精品一区二区三| 人妻夜夜爽天天爽| 欧美性xxxx交| 91精品国产福利尤物| 免费三级毛片| 日本女优北野望在线电影| 天海翼一区二区三区四区在线观看| 两个人看的免费完整在线观看| 三区在线观看| 蜜芽在线免费观看| 久草在线资源站手机版| 韩漫成人漫画| 久久久国产精品入口麻豆| 国产精品极品| 天天操综合网| 免费中文字幕日韩欧美| 毛片av一区二区三区| 成人福利在线看| 国产精品久久久久久亚洲毛片| 一区精品在线播放| 在线观看亚洲成人| 精品免费日韩av| 亚洲视频网站在线观看| 欧美国产精品人人做人人爱| 国产精品久久视频| 精品一区2区三区| 男人天堂新网址| 538任你躁在线精品免费| 精品中文字幕在线播放| 久久久久亚洲AV| av片免费播放| 91中文字幕| 97福利网站在线观看视频| 2019中文字幕在线视频| 无人区在线高清完整免费版 一区二| 8848成人影院| 亚洲激情女人| 97精品超碰一区二区三区| 亚洲视频一区二区免费在线观看| 色噜噜狠狠一区二区三区果冻| 亚洲国产精品一区二区三区| 久久99热这里只有精品国产 | 欧美精品第一区| 国产精品外国| 久久蜜桃av一区二区天堂| 午夜私人影院久久久久| 亚洲第一偷拍网| 午夜精品在线视频| 欧美在线视频二区| www日韩在线观看| 国产黄色大片免费看| 亚洲国产欧美91| youjizz亚洲女人| 国产欧美第一页| 九色porn蝌蚪| 色视频在线播放| 欧美gv在线观看| 怕怕欧美视频免费大全| 久久精品免费看| 亚洲一区二区三区不卡国产欧美| 亚洲精品一区二区三区香蕉| 91精品国产一区| 秋霞毛片久久久久久久久| 国产精品久久久久久久久久小说| 日韩尤物视频| 26uuu国产| 午夜精品一区二| 66av国产| www红色一片_亚洲成a人片在线观看_| 亚洲va欧美va人人爽成人影院| 亚洲精品一二| 国产精品免费aⅴ片在线观看| 91精品久久久久久久99蜜桃| 2019中文字幕免费视频| 在线看视频不卡| 天天插天天射天天干| 亚洲中文字幕在线观看| www.精选视频.com| 亚洲电影观看| 黄色成人av网站| 国产精品不卡一区| 亚洲欧美日韩直播| 国产精品美女xx| 在线观看日本www| 日本熟妇一区二区三区| 第四色在线视频| 中文字幕无线码一区| 凹凸日日摸日日碰夜夜| 蜜桃视频在线观看播放| 综合久久十次| 国产精品福利一区| 在线不卡国产精品| 欧美日韩在线精品一区二区三区| 在线看黄色的网站| 国产自产一区二区| 每日更新av在线播放| 欧美亚洲大陆| 不卡的av网站| 日韩电影中文字幕一区| 欧美高清一区二区| 国产高清一区二区三区四区| 亚洲av成人精品日韩在线播放| 国产视频第一页在线观看| 国产精品嫩草影院在线看| 国产欧美视频一区二区三区| 一区二区三区高清国产| 五码日韩精品一区二区三区视频| 午夜在线观看一区| 欧美1区二区三区公司| 久草在线视频福利| 一区二区精品| 欧美性受xxxx黑人xyx| 国产精品视频导航| 日韩av.com| 性猛交富婆╳xxx乱大交天津| 免费毛片在线| 在线成人直播| 欧美日韩国产专区| 国产欧美日韩中文| 亚洲熟女一区二区三区| 天天插天天干天天操| 在线观看免费版| 国内综合精品午夜久久资源| 亚洲国产精品一区二区久久| 97在线视频免费| 中文字幕欧美人妻精品一区| 亚洲永久精品视频| 波多野结衣在线影院| 欧美在线免费| 欧美性色综合网| http;//www.99re视频| 欧美 日本 国产| 另类国产精品一区二区| 在线免费日韩片| 国内精品自线一区二区三区视频| 精品三级在线看| 亚洲精品国产精品国自产| 性色av无码久久一区二区三区| 老女人av在线| 亚洲免费成人av在线| 亚洲三级电影网站| 97香蕉久久夜色精品国产| 中文字幕一区二区三区四区在线视频| 国产黄色大片网站| 青青青草视频在线| 久草精品在线观看| 中文字幕av一区| 男人的天堂99| 无码精品人妻一区二区| 欧美aa免费在线| 精品在线观看入口| 高跟丝袜一区二区三区| 91嫩草在线| 肉色超薄丝袜脚交69xx图片| 成人免费xx| 精品久久影院| 日本精品一区二区三区四区的功能| 国产精品亚洲综合| 九九精品在线观看视频| 日日噜噜噜夜夜爽爽狠狠视频| 日韩国产一区二区| 欧美在线999| 欧美一区二区三区四区夜夜大片| 日韩 欧美 精品| 毛片在线播放网站| 日韩高清在线一区| 伊人亚洲福利一区二区三区| 黄色高清无遮挡| 先锋影视中文字幕| 国产麻豆一区二区三区| 亚洲精品伦理在线| 国产视频999| 亚洲精品电影院| 亚洲网站情趣视频| 韩国亚洲精品| 日韩av网站免费在线| 国产一区二区黑人欧美xxxx| 欧美黑人又粗又大又爽免费| 亚洲免费国产| 国产精品白浆| 91九色02白丝porn| 国产精品夜夜夜爽张柏芝| 国产偷拍一区二区| 九七电影院97理论片久久tvb| 亚洲天堂精品视频| 精品欧美一区二区久久久伦| 国产精品久久久久久久久夜色| 色av手机在线| 亚洲国产精品黑人久久久| 成人av资源在线播放| 日韩av在线电影| 在线免费观看a视频| caoporen国产精品视频| 国产精品久久久久国产a级| 欧美日韩成人免费观看| 韩国av网站在线| 久久免费午夜影院| 成人情视频高清免费观看电影| 精品人妻一区二区三区免费看| 国产羞羞视频在线播放| 国产精品你懂的| 久久精品久久精品国产大片| 国产精品一区二区av白丝下载 | 乳奴隷乳フ辱julia在线观看| 欧美日韩国产一区二区三区不卡| 日韩欧美中文一区二区| 久久九九国产视频| 18av视频| 久久亚洲影院| 1769国产精品| 全部毛片永久免费看| 爱搞国产精品| 国产精品毛片av| 一本色道久久综合精品婷婷| 在线观看美女av| 欧美日韩在线精品一区二区三区激情综| 久久亚洲不卡| 91精品国产91久久久| 成年人网站在线观看视频| 日本不卡视频| 国产偷国产偷亚洲高清人白洁| 国产91视觉| 男男做爰猛烈叫床爽爽小说| 美女网站在线| 成人激情小说网站| 99在线看视频| 免费成人在线看| 日韩中文av| 亚洲精品美女免费| 日本一区二区三区网站| 日本美女在线中文版| 国产亚洲美州欧州综合国| 久久手机视频| 免费不卡中文字幕视频| 亚洲乱码免费伦视频| 久久久精品免费| 欧美 日韩 国产 一区二区三区| 高h视频在线播放| 欧美日韩国产精品| 无码aⅴ精品一区二区三区浪潮| wwwwww色| 国产在线精品国自产拍免费| 亚洲直播在线一区| 秋霞网一区二区| 亚洲成人三区| 午夜精品免费视频| 自拍偷拍校园春色| 一区二区三区在线免费看| 欧美成人三级电影在线| 网站免费在线观看| 成人免费一级视频| 精品国内自产拍在线观看视频| 一区二区三区国产视频| 精品日韩在线视频| 日韩脚交footjobhd| 欧美日免费三级在线| 手机看片国产精品| 一级日本在线| 欧美日韩在线看| av在线网站免费观看| 国产三级视频在线| 亚洲国产成人91porn| 天天色综合社区| 国产高清视频在线观看| 亚洲成人精品在线观看| 色www免费视频| 欧美日韩在线资源| 精品日本美女福利在线观看| 91欧美一区二区三区| 免费黄网站在线播放| 欧美性20hd另类| 中国极品少妇xxxx| 在线免费av资源| 日韩欧美色电影| 国产3级在线观看| 日韩电影免费观看高清完整版在线观看| 精品免费一区二区三区| 亚洲波多野结衣| 亚洲日本va午夜在线电影| 神马久久桃色视频| 国模私拍一区二区| 久久久久久福利| 亚洲欧洲精品一区二区三区波多野1战4| 在线播放日韩av| 日本一二三区在线| 超碰在线观看免费版| 动漫精品一区二区| 国产不卡一二三| 欧美一区国产| 亚洲精品日韩欧美| 五月天激情国产综合婷婷婷| 成人羞羞网站入口| 国产区精品在线观看| 四虎4hu影库永久地址| 久久精品久久综合| 最近中文字幕免费mv| 在线观看av片| 色噜噜狠狠色综合欧洲selulu| 精品人妻一区二区三区蜜桃视频| 99tv成人影院| 欧美精品aaa| 男女爱爱网站| 欧美激情综合| 久久gogo国模啪啪裸体| av先锋资源| 亚洲欧美成人vr| 日本一本a高清免费不卡| 一区二区三区在线|网站| 青青草伊人久久| 天天干天天操天天干天天操| 嫩草嫩草嫩草嫩草| 精品成人在线视频| 手机看片国产日韩| 亚洲最好看的视频| 成人激情视频在线| jiuse九色最新地址| 亚洲欧洲中文日韩久久av乱码| 中国特级黄色片| 亚洲青青一区| 国产91精品不卡视频| 欧美艾v福利视频在线观看| a在线欧美一区| 久久久久xxxx| 亚洲网站三级| 日本一欧美一欧美一亚洲视频| 欧美 日韩 国产一区| 国产精品普通话| 岛国中文字幕| 91在线免费视频观看| 8x8x成人免费视频| 日韩电影大全网站| 欧美高跟鞋交xxxxxhd| 日韩欧美在线视频一区二区| 91色在线porny| 黑人性生活视频| 欧洲大片精品免费永久看nba| 日本精品免费观看| 黄色免费观看| 无码av免费一区二区三区试看| 少妇高潮一区二区三区喷水| 水蜜桃精品av一区二区| 欧美激情第一页在线观看| 欧美777四色影视在线| 精品日韩一区二区三区| 99在线观看免费| 成人动漫一区二区三区| 成人在线短视频| 久久狠狠久久| 国产亚洲二区| 国产黄色在线| 黑人巨大精品欧美一区免费视频| 午夜视频一区在线观看| 五月激情综合婷婷| 手机在线国产视频| 疯狂欧洲av久久成人av电影| 国产精品白丝jk喷水视频一区| 精品日韩在线视频| 成人3d精品动漫精品一二三| 欧美精品欧美精品系列c| 国产小视频在线播放| 亚洲欧美另类人妖| 四虎wwwcom| 亚洲午夜激情网站| 国产污视频在线观看| 久久男女视频| 在线观看的毛片| 高清精品视频| 久久久国产精品一区二区三区| 99免在线观看免费视频高清| 在线亚洲欧美视频| 成人欧美精品久久久久影院| 精品国产鲁一鲁一区二区张丽| 精品亚洲永久免费| 久久精品国产免费看久久精品| 国产精品自拍视频在线| 成人乱码手机视频| 一区二区电影在线观看| 国际精品欧美精品| 国产日韩精品一区二区| 粉嫩tv在线播放|