毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 计算机安全 >> 正文

基于单片机的温度实时监控系统设计 第9页

更新时间:2014-6-29:  来源:毕业论文

基于单片机的温度实时监控系统设计 第9页

void main()               //主函数
{
uchar i;
int l_tmp;
  while(1)
  {
  tmpchange();      //温度转换
 l_tmp=tmp();
 if(l_tmp<0)  
 l_tmpdate[0]=10; //判断温度为负温度,前面加"-"
 else
 {
 l_tmpdate[0]=temp/1000; //显示百位,这里用1000,是因为我们之前乖以10位了
 if(l_tmpdate[0]==0)  
  l_tmpdate[0]=12;//判断温度为正温度且没有上百,前面不显示
 }
l_tmp=temp%1000;
l_tmpdate[1]=l_tmp/100;//获取十位
l_tmp=l_tmp%100;
l_tmpdate[2]=l_tmp/10;//获取个位
l_tmpdate[3]=11; 
l_tmpdate[4]=l_tmp%10;//获取小数第一位

for(i=0;i<10;i++){  //循环输出10次,提高亮度
display(l_tmpdate,5);  

   }             
}
 

}

void display(unsigned char *lp,unsigned char lc)//显示
{
 unsigned char i;  //定义变量
 P2=0;     //端口2为输出
 P1=P1&0xF8;    //将P1口的前3位输出0,对应138译门输入脚,全0为第一位数码管
 for(i=0;i<lc;i++){  //循环显示
 P2=table[lp[i]];  //查表法得到要显示数字的数码段
 delay();    //延时5个空指令 
 if(i==7)    //检测显示完8位否,完成直接退出,不让P1口再加1,否则进位影响到第四位数据
  break;
 P2=0;     //清0端口,准备显示下位
 P1++;     //下一位数码管
 }
}
void delay(void)        //空5个指令
{
_nop_();_nop_();_nop_();_nop_();_nop_();
}
void delayb(uint count)      //delay

{

  uint i;

  while(count)
  {

    i=200;

    while(i>0)

    i--;

    count--;

  }

}


void dsreset(void)       //DS18B20初始化

{

  uint i;               

  DS=0;

  i=103;

  while(i>0)i--;

  DS=1;

  i=4;

  while(i>0)i--;

}

 

bit tmpreadbit(void)       // 读一位

{

   uint i;

   bit dat;

   DS=0;i++;          //小延时一下

   DS=1;i++;i++;

   dat=DS;

   i=8;while(i>0)i--;

   return (dat);

}

uchar tmpread(void)   //读一个字节

上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9] [10]  ... 下一页  >> 

基于单片机的温度实时监控系统设计 第9页下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©751com.cn 辣文论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。