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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機溫度計仿真問題 加減控制不了數碼管的變化

[復制鏈接]
跳轉到指定樓層
樓主


數碼管顯示只有這個界面:


整體為


我在傳感器上加減控制不了數碼管的變化。

單片機源程序如下:
  1. #include <REG52.H>
  2. #define uchar unsigned char
  3. #define uint unsigned int      
  4. sbit DQ = P1^0;
  5. sbit RS = P1^4;
  6. sbit RW = P1^6;
  7. sbit EN = P1^5;
  8. union {
  9.     uchar c[2];
  10.         uint x;
  11. } temp;
  12. uchar flag;
  13. uint cc,cc2;
  14. float cc1;
  15. uchar buff1[13] = {"temperature:"};
  16. uchar buff2[6] = {"+00.0"};
  17. //檢查忙函數
  18. void fbusy()
  19. {
  20.     P2 = 0xff;
  21.         RS = 0;
  22.         RW = 1;
  23.         EN = 1;
  24.         EN = 0;
  25.         while((P2 & 0x80))
  26.         {
  27.            EN = 0;
  28.            EN = 1 ;
  29.         }
  30. }
  31. //寫命令函數
  32. void wc51r(uchar j)
  33. {
  34.    fbusy();
  35.    EN = 0;
  36.    RS = 0;
  37.    RW = 0;
  38.    EN = 1;
  39.    P2 = j;
  40.    EN = 0;
  41. }
  42. //寫數據函數
  43. void wc51ddr(uchar j)
  44. {
  45.    fbusy();
  46.    EN = 0;
  47.    RS = 1;
  48.    RW = 0;
  49.    EN = 1;
  50.    P2 = j;
  51.    EN = 0;
  52. }
  53. void init()
  54. {
  55.    wc51r(0x01);
  56.    wc51r(0x38);
  57.    wc51r(0x0c);
  58.    wc51r(0x06);
  59. }
  60. //unchar useconds;
  61. void delay(uint useconds)
  62. {
  63.    for(; useconds>0; useconds--);
  64. }
  65. uchar ow_reset(void)
  66. {
  67.    uchar presence;
  68.    DQ = 0;
  69.    delay(50);
  70.    DQ = 1;
  71.    delay(3);
  72.    presence = DQ;
  73.    delay(25);
  74.    return(presence);
  75. }
  76. uchar read_byte(void)
  77. {
  78.    uchar i;
  79.    uchar value = 0;
  80.    for (i=8; i>0; i--)
  81.    {
  82.      value >>= 1;
  83.          DQ = 0;
  84.          DQ = 1;
  85.          delay(1);
  86.          if(DQ) value |=0x80;
  87.          delay(6);
  88.         }
  89.         return(value);
  90. }
  91. void write_byte(uchar val)
  92. {
  93.    uchar i;
  94.    for (i=8; i>1; i--)
  95.    {
  96.      DQ = 0 ;
  97.          DQ = val&0x01;
  98.          delay(5);
  99.          DQ=1;
  100.          val = val/2;
  101.    }
  102.    delay(5);
  103. }

  104. void Read_Temperature(void)
  105. {
  106.    ow_reset();
  107.    write_byte(0xCC);
  108.    write_byte(0xBE);
  109.    temp.c[1] = read_byte();
  110.    temp.c[0] = read_byte();
  111.    ow_reset();
  112.    write_byte(0xCC);   
  113.    write_byte(0x44);
  114.    return;
  115. }
  116. void main()
  117. {
  118.    uchar k;
  119.    delay(10);
  120.    EA = 0;
  121.    flag = 0;
  122.    init();
  123.    wc51r(0x80);
  124.    for (k=0; k<13; k++)
  125.    {wc51ddr(buff1[k]);}
  126.    while(1)
  127.    {
  128.      delay(10000);
  129.          Read_Temperature();
  130.          cc = temp.c[0]*256.0 + temp.c[1];
  131.          if  (temp.c [0] > 0xf8)   {flag=1; cc=~cc+1;}
  132.          else flag=0;
  133.          cc1 = cc*0.0625;
  134.          cc2 = cc1*100;
  135.          buff2[1] = cc2/1000 + 0x30;
  136.          if (buff2[1] == 0x30)
  137.              buff2[1] = 0x20;
  138.                  buff2[2] = cc2/100        - (cc2/1000)*10 + 0x30;
  139.                     buff2[4] = cc2/10        - (cc2/100)*10 + 0x30;
  140.                  if (flag==1)
  141.                  buff2[0] = '-';
  142.      else
  143.              buff2[0] = '+';
  144.      wc51r(0xc5);
  145.          for (k=0; k<6; k++)
  146.          { wc51ddr (buff2[k]);}
  147.    }
  148. }   
復制代碼

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

使用道具 舉報

沙發
ID:111634 發表于 2017-12-12 17:54 | 只看該作者
本帖最后由 zl2168 于 2017-12-12 18:00 編輯

給你介紹一個正確有效看得懂的案例,自己對照查錯吧!
實例97  一線式DS18B20測溫
⒈ DS18B20簡介
⑴ 內部組織結構    …
⑵ 操作步驟和操作指令    …
⒉ 電路設計    …
⒊ 程序設計    …
⒋ Keil調試    …
⒌ Proteus仿真    …
實例97 DS18B20測溫.rar (51.78 KB, 下載次數: 9)

Proteus仿真一下,確認有效。以上摘自張志良編著《80C51單片機仿真設計實例教程——基于Keil CProteus》清華大學出版社ISBN 978-7-302-41682-1內有常用的單片機應用100案例,用于仿真實驗操作,電路與程序真實可靠可信可行。仿真電路和Hex文件能在清華出版社網站免費下載,程序源代碼只能到書上看了。到圖書館借,或到新華書店翻閱,或到網上書店打折購買。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 一区二区三区欧美在线 | 欧美色999| 日韩爱爱网 | 久久国产免费 | 免费午夜剧场 | 九九综合九九 | 久久久一区二区三区 | 成人在线精品视频 | 丁香久久 | 亚洲成人精 | 久久久九九| 国产婷婷在线视频 | 久久国产精品-久久精品 | 日本韩国欧美在线观看 | 色综合视频 | 欧美一级欧美一级在线播放 | 久久久久久久久久久久亚洲 | 干干干操操操 | 成年人在线视频 | 精品久久久久久久久久 | 自拍偷拍第1页 | 秋霞电影一区二区 | 天堂网av在线 | 亚洲成人一区二区在线 | www.五月天婷婷 | a毛片视频网站 | 国产精品一区在线 | 一区二区三区av | 精品成人在线观看 | 国产免费一区二区三区 | 国产欧美日韩综合精品一区二区 | 男人av网 | 成人久久久 | 欧洲亚洲精品久久久久 | 亚洲一区二区三区视频 | 男插女下体视频 | 91偷拍精品一区二区三区 | 亚州精品天堂中文字幕 | 久久久精品综合 | www.亚洲一区二区三区 | 亚洲一区二区久久 |