单片机原理与应用课程设计:当温度高于某值时,控制步进电机正转动;当温度低于某值时,控制步进电机反转动;同时温度只要超过测定范围,会发出报警声。

该博客介绍了使用单片机进行温度监测的课程设计,当温度超过预设范围时,系统会根据高低温触发步进电机正反转,并在超出范围时发出报警信号。
摘要由CSDN通过智能技术生成
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit DQ=P3^3;
sbit BEEP=P3^7;
sbit LCD_RS=P2^0;
sbit LCD_RW=P2^1;
sbit LCD_EN=P2^2;
sbit K1=P3^5;
uchar code Temp_Disp_Title[]={" Current Temp : "};
uchar Current_Temp_Display_Buffer[]={"TEMP:            "};
uchar code Alarm_Temp[]={"ALARM TEMP Hi Lo"};
uchar Alarm_HI_LO_STR[]={"Hi:     Lo:      "};
uchar code df_Table[]={0,1,1,2,3,3,4,4,5,6,6,7,8,8,9,9};
char Alarm_Temp_HL[2]={20,10};
uchar CurrentT=0;
uchar Temp_Value[]={0x00,0x00};
uchar Display_Digit[]={0,0,0,0};
bit HI_Alarm=0,LO_Alarm=0;
bit DS18B20_IS_OK=1;
uint Time0_Count=0;
void DelayMS(uint x){
	uchar i;
	while(x--)for(i=0;i<120;i++);
}

uchar Read_LCD_State(){
	uchar state;
	LCD_RS=0;LCD_RW=1;LCD_EN=1;DelayMS(1);state=P0;LCD_EN=0;DelayMS(1);
	return state;
}

void LCD_Busy_Wait(){
	while((Read_LCD_State()&0x80)==0x80);
	DelayMS(5);
}

void Write_LCD_Command(uchar cmd){
	LCD_Busy_Wait();
	LCD_RS=0;LCD_RW=0;LCD_EN=0;P0=cmd;LCD_EN=1;DelayMS(1);LCD_EN=0;
}

void Write_LCD_Data(uchar dat){
	LCD_Busy_Wait();
	LCD_RS=1;LCD_RW=0;LCD_EN=0;P0=dat;LCD_EN=1;DelayMS(1);LCD_EN=0;
} 
void DelayXus(int x)
{
	uchar i;
	while(x--)for(i=0;i<200;i++);
}
//ÑÓʱ
void Delay(uint num){
	while(--num);
}
uchar Init_DS18B20(){
	uchar status;
	DQ=1;Delay(8);
	DQ=0;Dela
  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值