搜索
bottom↓
回复: 4

MAX6675温度程序

[复制链接]

出0入0汤圆

发表于 2010-9-25 23:56:07 | 显示全部楼层 |阅读模式
MAX6675温度程序本来写了很久都不正常,硬件连接是正确的,源码如下,数码管是共阳显示的,请高手纠错
#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int

code unsigned char tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};


sbit SO=P1^0;;;;;6675的7脚
sbit CS=P1^1;;;;;6675的6脚
sbit SCK=P1^2;;;;;6675的5脚
uchar StrTab[4],disnum,id,item;
char EPdata;
int dat0;






void delay_ms(int ntimes)
{
int delayi;
while(--ntimes)
{
for(delayi=0;delayi<1000;delayi++)
{;}
}

}
/**************************************************************
//FUNCTION:delay_ms(uchar ntimes)
//parameter: nTimes--延迟的微秒数
//sample:delay_ms(10);
//cai 2006.05.20
//*************************************************************/
void delay_us(int ntimes)
{
int delayi;
while(--ntimes)
{

}  
}
/********************
初始化定时器1
***********************/
void Init_Timer1(void)
{
    TMOD |=0x10; //定时器1用于动态扫描
    TH1=0xF8;    //初值
    TL1=0xf0;
    ET1=1;
    TR1=1;
EA=1;

}



void Displaypro(void)                              //温度显示
{

            StrTab[0]=tab[dat0/1000];   
            StrTab[1]=tab[dat0/100%10];
            StrTab[2]=tab[dat0/10%10];
            StrTab[3]=tab[dat0%10];

}



/********************************
//读取MAX6675
*********************************/
void Read_6675()
{ uint i;
int dat_temp0;
  i=0;
  dat_temp0=0;


  CS=0;
  delay_us(220);
  SCK=0;
  delay_us(220);

  for(i=0;i<16;i++)
  {   
   SCK=1;  
   dat_temp0=dat_temp0<<1;

   if(SO==1) dat_temp0=dat_temp0|0x01;

   SCK=0;
   delay_us(220);
  }
  CS=1;
  dat_temp0=dat_temp0<<1;
  dat_temp0=dat_temp0>>4;
  dat_temp0=dat_temp0/4;

  dat0 = dat_temp0;

}








/***********************************************
键盘操作
设定
**********************************/











/* *******************************
//显示
*********************************/
void Time1_isr(void) interrupt 3 using 0//定时器1用来动态扫描
{
    TH1=0xF8;//重入初值
    TL1=0xf0;
    switch (disnum){
     case 0:P2=0xFE;P0=StrTab[disnum];break; //分别调用缓冲区的值进行扫描
    case 1:P2=0xFD;P0=StrTab[disnum];break;
    case 2:P2=0xFB;P0=StrTab[disnum];break;
     case 3:P2=0xF7;P0=StrTab[disnum];break; //分别调用缓冲区的值进行扫描

    default:break;
}
disnum++;     //扫描3次,使用3个数码管
if(disnum==4)
   disnum=0;
}









/*********************************
主程序
**********************************/
main()
{

uchar i;
Init_Timer1();

while(1)
  {

//读取MAX6675的温度值
    Read_6675();

   
    Displaypro();  



    for(i=0;i<50;i++) delay_ms(200);

  }
}

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2011-9-23 22:29:30 | 显示全部楼层
围观

出0入0汤圆

发表于 2011-9-28 14:11:17 | 显示全部楼层
好用

出0入0汤圆

发表于 2012-10-26 21:35:54 | 显示全部楼层
学习学习

出0入53汤圆

发表于 2013-6-15 14:58:17 | 显示全部楼层
这个芯片用K热电偶能稳定到多少度?
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-23 16:11

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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