温度控制器程序
//PT100自身温度范围
#define M_temper_MIN -200 //最低温度
#define M_temper_MAX 500 //最高温度
//CPU引脚定义
#define P_LED P0
sbit LED_S1 = P2 ^ 0; //LED1位选
sbit LED_S2 = P2 ^ 1; //LED2位选
sbit LED_S3 = P2 ^ 2; //LED3位选
sbit LED_S4 = P2 ^ 3; //LED4位选
sbit KEY_S1 = P1 ^ 0; //上下限温度设置
sbit KEY_S2 = P1 ^ 1; //温度加
sbit KEY_S3 = P1 ^ 2; //温度减
//全局变量寄存器
uchar M_LED1, M_LED2, M_LED3, M_LED4; //4位LED显示寄存器
uchar LED_DISP_TAB[] = //LED编码表
{
0X3f, 0X06, 0X5b, 0X4f, 0X66,
0X6d, 0X7d, 0X07, 0X7f, 0X6f, //0-9
0X40, 0X23, 0X1c, 0X58 //字符: - n u c
};
uchar Set_count; //温度设置按钮计数
uchar T0_count; //T0定时中断计数
uint T1_count; //T1定时中断计数
char M_temper_up; //温度上限
char M_temper_down; //温度下限
char M_temper_AI; //设置中温度
char M_temper_conver; //当前温度
bit B_set,B_set_AI; //温度设置标志
bit B_set_T0,B_set_T1; //定时器中断标志
//函数声明
void T1int_init();
/* 定时器T1初始化:
设置工作方式
赋初值
开启中断*/
void T0int_init();
/* 定时器T0初始化:
设置工作方式
赋初值
开启中断*/
void Set_temper();
/*设置上下限温度: 按键次数=1:显示上限温度并
处于操作状态
按键次数=2:显示下限温度并处于操作状态
按键次数=3:保存设置值并退出
*/
void Inc_temper();
/*提高设置的温度*/
void Dec_temper();
/*降低设置的温度*/
void LED_data_BCD(char Disp_dat);
/*数码管显示温度*/
void PT100_delay(uint count);
/* PT100延时程序*/
void PT100_reset(void);
/*PT100复位初始程序:根据PT100要求对其进行复位初始控制*/
bit PT100_readbit(void) ;
/*PT100位读子程序: 从PT100取出一位数据*/
uchar PT100_readbyte(void);
/*PT100字节读子程序: 读出的一字节数据并返回数据值*/
void PT100_writebyte(uchar dat);
/*PT100字节写子程序: 将输入参数值写入PT100 */
void PT100_change(void); //启动PT100温度转换
uchar PT100_Gettemper(void);
/*读取PT100温度数据:单线方式读取PT100转换的温度数据,
并返回处理后的温度值*/
void Delay_ms(uint count); //延时子程序:延时 count (ms)
void main() {
uchar M_temper_curr;
SP=0x50; //堆栈起始地址
M_temper_up =100; //初始温度上下限
M_temper_down=0;
Delay_ms(500);
T0int_init(); //T0 T1初始化
T1int_init();
while(1)
{
if (B_set_T0) //T0定时读取温度标志
{
EA=0; //关总中断
B_set_T0=0;
if(!B_set) //上下限设置状态时,取消温度读取
{
PT100_change(); //读取温度
M_temper_curr=PT100_Gettemp
温度控制器程序 来自淘豆网www.taodocs.com转载请标明出处.