资源简介

基于STC12C5608AD单片机和AD590温度传感器设计的温度检测系统。

资源截图

代码片段和文件信息

 #include
 sbit ch451_dclk=P3^4;                    //串行数据时钟上升延激活
sbit ch451_din=P3^3;                     // 串行数据输出,接CH451的数据输人
sbit ch451_load=P2^3;                    //串行命令加载,上升延激活
sbit ch451_dout=P2^2;               //键值数据输入,接ch451数据输出  
 #define uchar unsigned char
#define uint unsigned int
uint display[8]={0x0a000x09000x0b000x0800
    0x0c000x0d000x0e000x0f00};
uchar BCD[10]={0xbe0x240xea0xe6    //0123
               0x740xd60xde0xa4   //4567
               0xfe0xf6     //89
   };
unsigned int v=0;
 /***********************CH451宏定义************************/
#define CH451_RESET     0x0201             //复位
#define CH451_LEFTMOV   0x0300             //设置移动方式-作移
#define CH451_LEFTCYC   0x0301             //设置移动方式-左循
#define CH451_RIGHTMOV  0x0302             //设置移动方式-右移
#define CH451_RIGHTCYC  0x0303             //设置移动方式-右循 
#define CH451_SYSOFF    0x0400             //关显示、键盘、看门狗
#define CH451_SYSON1    0x0401             //开显示
#define CH451_SYSON2    0x0403             //开显示、键盘
#define CH451_SYSON3    0x0407             //开显示、键盘、看门狗功能
#define CH451_DSP       0x0500             //设置默认显示方式
#define CH451_BCD       0x0580             //设置BCD译码方式
#define CH451_TWINKLE   0x0600             //设置闪烁控制——正常显示
#define CH451_DIG0      0x0800             //数码管位0显示
#define CH451_DIG1      0x0900             //数码管位1显示 
#define CH451_DIG2      0x0a00             //数码管位2显示
#define CH451_DIG3      0x0b00             //数码管位3显示
#define CH451_DIG4      0x0c00             //数码管位4显示
#define CH451_DIG5      0x0d00             //数码管位5显示 
#define CH451_DIG6      0x0e00             //数码管位6显示 
#define CH451_DIG7      0x0f00             //数码管位7显示
/*************************************************************/


void delay_ms(unsigned int x)    //延时1ms
{
unsigned int ij;  
for(i=x;i>0;i--)
for(j=270;j>0;j--);
}

void ad_init()    //AD外设初始化
{
// P1M0|=0x04;    //设置P1.2漏极开路
// P1M1|=0x04;
// ADC_CONTR|=0x02;    //选择P1.2作输入
P1M0|=0x01;    //设置P1.0(漏极开路)
P1M1|=0x00;
ADC_CONTR|=0x00;    //选择P1.0作输入
delay_ms(1);
}
void timer_init() //定时器初始化
{
TMOD=0x01; //定时器0 16位
TH0=(65536-18518)/256; //10ms
TL0=(65535-18518)%256;
EA=1;
ET0=1;
}
unsigned int ad_result()     //读AD结果的函数
{
unsigned int a=0;
unsigned char d;
ADC_CONTR|=0x80; //AD电源打开
ADC_CONTR|=0x60;
delay_ms(1); //延时1ms
ADC_DATA=0; //结果寄存器清零
ADC_LOW2=0;
ADC_CONTR|=0x08; //开始转换
while((d=ADC_CONTR&0x10)==0);
ADC_CONTR&=0xef; //标志位清零
a=ADC_DATA;
a<<=2;
a|=ADC_LOW2;
ADC_CONTR&=0x7f; //AD电源关闭
return a;

/*********************************CH451**********************/
 //********************************************
//设置定时器中断__定时扫描键盘
void ch451_init()
{
  ch451_din=0;              //先低后高,选择4线输入
  ch451_din=1;
//  TMOD=0x10;    //设置定时器T1工作在16位计时状态
// EA=1;        //开中断总开关
//  ET1=1;                   //允许中断
//  TR1=1; 

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2013-06-03 13:48  基于AD590的温度检测系统\
     文件     1074547  2012-03-27 21:59  基于AD590的温度检测系统\2012-01-09 21.15.35.jpg
     目录           0  2013-06-03 13:48  基于AD590的温度检测系统\ad测试\
     文件       95227  2012-06-15 06:40  基于AD590的温度检测系统\ad测试\ad测试.uvgui.Administrator
     文件        5625  2012-06-03 15:04  基于AD590的温度检测系统\ad测试\ad测试.uvopt
     文件       13430  2012-05-28 19:04  基于AD590的温度检测系统\ad测试\ad测试.uvproj
     文件        5112  2012-05-31 22:02  基于AD590的温度检测系统\ad测试\main.c
     文件        6376  2009-05-07 14:37  基于AD590的温度检测系统\ad测试\STARTUP.A51
     文件       17151  2011-04-24 19:13  基于AD590的温度检测系统\ad测试\stc12c.h
     文件         399  2011-04-23 10:24  基于AD590的温度检测系统\keilkilll.bat
     目录           0  2013-06-03 13:48  基于AD590的温度检测系统\两路显示\
     文件        1304  2012-01-08 11:47  基于AD590的温度检测系统\两路显示\ad.c
     文件         167  2012-01-08 11:48  基于AD590的温度检测系统\两路显示\ad.h
     文件         840  2012-01-08 11:47  基于AD590的温度检测系统\两路显示\ad_def.h
     文件        3635  2012-01-08 12:17  基于AD590的温度检测系统\两路显示\ch451.c
     文件         209  2012-01-08 12:20  基于AD590的温度检测系统\两路显示\ch451.h
     文件        5744  2012-01-08 18:19  基于AD590的温度检测系统\两路显示\main.c
     文件        6376  2009-05-07 14:37  基于AD590的温度检测系统\两路显示\STARTUP.A51
     文件       17151  2011-04-24 19:13  基于AD590的温度检测系统\两路显示\stc12c.h
     文件       21924  2012-01-08 18:19  基于AD590的温度检测系统\两路显示\两路显示
     文件        7483  2012-01-08 18:19  基于AD590的温度检测系统\两路显示\两路显示.hex
     文件       21642  2012-01-08 18:19  基于AD590的温度检测系统\两路显示\两路显示.M51
     文件       58603  2012-01-08 11:54  基于AD590的温度检测系统\两路显示\两路显示.uvopt
     文件       13722  2012-01-07 21:06  基于AD590的温度检测系统\两路显示\两路显示.uvproj
     目录           0  2013-06-03 13:48  基于AD590的温度检测系统\实验版测试\
     文件       16839  2012-01-07 19:31  基于AD590的温度检测系统\实验版测试\main.c
     文件        6376  2009-05-07 14:37  基于AD590的温度检测系统\实验版测试\STARTUP.A51
     文件       22205  2012-01-08 16:52  基于AD590的温度检测系统\实验版测试\整版测试
     文件        7461  2012-01-08 16:52  基于AD590的温度检测系统\实验版测试\整版测试.hex
     文件       23129  2012-01-08 16:52  基于AD590的温度检测系统\实验版测试\整版测试.M51
     文件       70820  2012-04-14 14:37  基于AD590的温度检测系统\实验版测试\整版测试.uvgui.litong
............此处省略2个文件信息

评论

共有 条评论