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

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

QQ登錄

只需一步,快速開(kāi)始

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

單片機(jī)熱電偶溫度表數(shù)碼管顯示量程0-999度源程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主

說(shuō)明:程序是根據(jù)串口時(shí)序圖做的,在時(shí)鐘高電平期間讀取,不是在時(shí)鐘下降沿讀取。手冊(cè)上舉例說(shuō)明強(qiáng)調(diào)時(shí)鐘下降沿讀取,目前網(wǎng)上程序有這二種。

單片機(jī)源程序:
  1. #include "reg51.h"
  2. #include "intrins.h" //_nop_();延時(shí)函數(shù)用
  3. #define  uchar unsigned char        //用uchar代替unsigned char,1字節(jié)0-255
  4. #define  uint  unsigned int        //用uint代替nsigned int,2字節(jié)0-26653
  5. sfr P3M0=0XB2;
  6. sfr P3M1=0XB1;
  7. sbit SO = P1 ^ 0;        //P1.0口與SO相連
  8. sbit SCK = P1 ^ 1;        //P1.1口與SCK相連
  9. sbit CS = P1 ^ 2;        //P1.2口與CS相連
  10. uint j;
  11. uint wendu;
  12. uint Read_AD();        //AD轉(zhuǎn)換數(shù)據(jù)數(shù)據(jù)讀取,并返回值
  13. void Display_temp();        //溫度顯示
  14. uchar qian = 0, bai = 0, shi = 0, ge = 0, xiao = 0;        //初始化LED
  15. uint temp;
  16. uchar code tab_1[10] = { 0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90 };        //共陽(yáng)LED段碼表
  17. uchar code tab_2[10] = { 0x40, 0x79, 0x24, 0x30, 0x19, 0x12, 0x02, 0x78, 0x00, 0x10 };
  18. //含小數(shù)點(diǎn)共陽(yáng)段碼 "0"   "1"  "2"  "3"  "4"  "5"  "6"  "7"  "8"  "9"
  19. uchar code tab_3[4] = { 0x01, 0x02, 0x04, 0x08 };        //位碼

  20. uint Read_AD()// AD轉(zhuǎn)換數(shù)據(jù)讀取子函數(shù),并返回值
  21. {
  22.         uchar i;
  23.         unsigned int Temp_2;
  24.         Temp_2 = 0;
  25.         CS = 0;
  26.         _nop_();        
  27.         for (i = 0; i < 16; i++)        //16位數(shù)據(jù)讀取
  28.         {
  29.                 Temp_2 <<= 1;//向左移一位        
  30.                 SCK = 1;//上升沿脈沖
  31.                 _nop_();
  32.                 _nop_();
  33.                 _nop_();
  34.                 if (SO == 1) Temp_2 = Temp_2 | 0x01;               
  35.                 SCK = 0;
  36.         }
  37.         CS = 1;
  38.         SCK = 0;
  39.         Temp_2 = Temp_2 & 0x7FF8;        //取3-14位,變換為溫度值
  40.         Temp_2 = Temp_2 >>3;         
  41.         return (Temp_2);        
  42. }
  43. void zhuanhuan()
  44. { uint tempB;
  45.         tempB = (wendu&3)*25;        
  46.         wendu=wendu>>2;
  47.         wendu = wendu;
  48.         
  49.           if (wendu >= 999)        //最高讀取溫度設(shè)定為999攝氏度
  50.                         wendu=999;
  51.                 bai = wendu / 100;        //取百位數(shù)字
  52.                 wendu = wendu % 100;
  53.                 shi = wendu / 10;        //取十位數(shù)字
  54.                 wendu = wendu % 10;
  55.                 ge = wendu %10;        //取個(gè)位數(shù)字               
  56.                 xiao = tempB / 10;
  57.         
  58. }

  59. void Display_temp()        //溫度顯示子函數(shù)
  60. {

  61.                 P3 = 0x00;
  62.                 P0 = tab_1[bai];
  63.                 P3 = tab_3[0];//顯示百位數(shù)字
  64.                 for (j = 300; j > 0; j--) ;        //延時(shí)
  65.                
  66.                 P3 = 0x00;               
  67.                 P0 = tab_1[shi];
  68.                 P3 = tab_3[1];//顯示十位數(shù)字
  69.                 for (j = 300; j > 0; j--) ;
  70.                
  71.                 P3 = 0x00;
  72.                 P0 = tab_2[ge];
  73.                 P3 = tab_3[2];        //顯示個(gè)位數(shù)字
  74.                 for (j = 300; j > 0; j--) ;
  75.                
  76.                 P3 = 0x00;
  77.                 P0 = tab_1[xiao];
  78.                 P3 = tab_3[3];//顯示小數(shù)位               
  79.                 for (j = 300; j > 0; j--) ;
  80.         
  81. }
  82. void main()        //主程序
  83. { unsigned char i;
  84.         P3M0=0X00;
  85.         P3M1=0X0F;        
  86.         CS = 1;
  87.         SCK = 0;
  88.         for (j = 300; j > 0; j--) ;
  89.         while (1)
  90.         {
  91.                 wendu = Read_AD();        // 熱電偶數(shù)據(jù)讀取,返回溫度
  92.                 zhuanhuan();
  93.                 for(i=20;i>0;i--)
  94.                         Display_temp();        //溫度顯示
  95.         }
  96. }
復(fù)制代碼



評(píng)分

參與人數(shù) 1黑幣 +100 收起 理由
admin + 100 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

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

使用道具 舉報(bào)

沙發(fā)
ID:89286 發(fā)表于 2018-1-19 20:34 | 只看該作者
thanks for sharing
回復(fù)

使用道具 舉報(bào)

板凳
ID:262356 發(fā)表于 2018-1-19 23:13 | 只看該作者
謝謝分享
回復(fù)

使用道具 舉報(bào)

地板
ID:136090 發(fā)表于 2018-3-21 15:29 | 只看該作者
這能能不能用?
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 日韩综合在线 | 精品欧美乱码久久久久久 | 国产福利在线小视频 | 日韩视频在线免费观看 | 国产激情一区二区三区 | 国产一级片一区二区 | 成人性生交大片免费看r链接 | 国产精品久久久久久久久久不蜜臀 | 久久国产精品久久久久久 | 国产成人自拍一区 | 国产欧美在线一区二区 | 久久久精品影院 | 午夜网站视频 | 极品电影院 | 欧美极品视频在线观看 | 国产在线精品一区二区三区 | 91深夜福利视频 | 精品电影 | 综合久久综合久久 | 色啪网 | 日韩在线第一 | 成人一区二区在线 | 久久里面有精品 | 欧美在线一区二区视频 | 九色 在线 | 中文字幕人成乱码在线观看 | 99综合网| 一级一片在线观看 | 成人亚洲| 久久新| 欧美一级欧美三级在线观看 | 国产免费一区二区 | 亚洲精品在线视频 | av一级毛片 | 国产精品一区一区 | 成人精品在线视频 | 久久久久久91 | 精品国产青草久久久久96 | 国产成人免费 | 不卡一区二区三区四区 | 国产精品人人做人人爽 |