找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2387|回复: 1
收起左侧

单片机数字温度计proteus设计资料

[复制链接]
ID:307163 发表于 2018-4-13 10:45 | 显示全部楼层 |阅读模式
数字温度计
0.png 0.png

单片机源程序如下:
  1.   #include<reg51.h>
  2.   #define uchar unsigned char
  3.   #define uint unsigned int
  4.   sbit DS=P2^4;
  5.   uint temp;
  6.   int tempnew;
  7.   uchar a,b,test;
  8.   char num,temphigh=35,templow=1;
  9.   uchar code s7_table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x39,0x40};
  10.   uchar code s7_table1[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};
  11.   uchar weishidisplay[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
  12.   uchar wendu[7];
  13.   uchar wendu0[3];
  14.   void shuzu();
  15.   void display();
  16.   void displaynew();
  17.   void dsreset(void);
  18.   void tmpchange(void);
  19.   void tmpwritebyte(uchar dat);
  20.   void delay(uint count)
  21.   {
  22.   uint i;
  23.   while(count)
  24.   {
  25.   i=200;
  26.   while(i>0)
  27.   i--;
  28.   count--;
  29.   }
  30.   }
  31.   void dsreset(void)
  32.   {
  33.   uint i;
  34.   DS=0;
  35.   i=103;
  36.   while(i>0)i--;
  37.   DS=1;
  38.   i=4;
  39.   while(i>0)i--;
  40.   }         
  41.   bit tmpreadbit(void)
  42.   {
  43.   uint i;
  44.   bit dat;
  45.   DS=0;i++;
  46.   DS=1;i++;i++;
  47.   dat=DS;
  48.   i=8;
  49.   while(i>0) i--;
  50.   return(dat);
  51.   }
  52.   uchar tmpread(void)
  53.   {
  54.   uchar i,j,dat;
  55.   dat=0;
  56.   for(i=1;i<=8;i++)
  57.   {
  58.   j=tmpreadbit();
  59.   dat=(j<<7)|(dat>>1);
  60.   }
  61.   return(dat);
  62.   }
  63.   void tmpwritebyte(uchar dat)
  64.   {
  65.   uint i;
  66.   uchar j;
  67.   bit testb;
  68.   for(j=1;j<=8;j++)
  69.   {
  70.   testb=dat&0x01;
  71.   dat=dat>>1;
  72.   if(testb)
  73.   {
  74.   DS=0;
  75.   i++;i++;
  76.   DS=1;
  77.   i=8;
  78.   while(i>0) i--;
  79.   }
  80.   else
  81.   {
  82.   DS=0;
  83.   i=8;
  84.   while(i>0) i--;
  85.   DS=1;                                                                                                                   
  86.   i++;i++;
  87.   }
  88.   }
  89.   }
  90.   void tmpchange(void)
  91.   {
  92.   dsreset();
  93.   delay(1);
  94.   tmpwritebyte(0xcc);
  95.   tmpwritebyte(0x44);
  96.   }
  97.   void tmp()
  98.   {
  99.   float tt;
  100.   uchar a,b;
  101.   dsreset();
  102.   delay(1);
  103.   tmpwritebyte(0xcc);
  104.   tmpwritebyte(0xbe);
  105.   a=tmpread();
  106.   b=tmpread();
  107.   temp=b;
  108.   temp<<=8;
  109.   temp=temp|a;
  110.   if(temp<= 0x0fff)
  111.   {
  112.   test=0;                                                                                                                        
  113.   tt=temp*0.0625;
  114.   tempnew=tt*100;
  115.   }
  116.   else
  117.   {
  118.   temp=~temp+1;
  119.   tt=temp*0.0625;
  120.   tempnew=tt*100;
  121.   test=1;
  122.   }
  123.   }
  124. void shuzu()
  125. {
  126. uchar i,j;
  127. wendu0[0]=tempnew/100/100;
  128. wendu0[1]=tempnew/100%100;
  129. wendu0[2]=tempnew%100;                                   
  130. for(i=0,j=0;j<3;j++,i+=2)
  131. {
  132. wendu[i]=wendu0[j]/10;
  133. wendu[i+1]=wendu0[j]%10;
  134. }wendu[6]=10;
  135. }
  136. void display(uchar n)
  137. {
  138. uchar i,j;
  139. shuzu();
  140. for(j=0;j<=10;j++)
  141. {
  142. for(i=n;i<=6;i++)
  143. {if(i==3||i==3)
  144. {
  145. P0=0x00;
  146. P3=0xff;
  147. P3=weishidisplay[i-1];
  148. P0=P0=s7_table1[wendu[i]];
  149. delay(1);
  150. }
  151. else if(i==5) {
  152. P0=0x00;
  153. P3=0xff;
  154. P3=weishidisplay[i-1];
  155. P0=P0=0x63;
  156. delay(1);
  157. }
  158. else
  159. {
  160. P0=0x00;
  161. P3=0xff;
  162. P3=weishidisplay[i-1];
  163. P0=P0=s7_table[wendu[i]];
  164. delay(1);
  165. if(test==1)
  166. {
  167. P0=0x00;
  168. P3=0xff;
  169. P3=weishidisplay[0];
  170. P0=P0=s7_table[11];
  171. delay(1);
  172. ……………………

  173. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
数字温度计.rar (64.12 KB, 下载次数: 27)
回复

使用道具 举报

ID:461250 发表于 2019-1-3 20:50 | 显示全部楼层
你好,我下载的你那个64k的材料,里面都有是啥?能不能分类给我说一下?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表