|
这是近期做的温度上下限报警器课程设计,
单片机初学者,自己独立完成,能够达到
预期的效果,内涵AD画的PCB图,protues仿真图,
源码、自己原创,新手希望和大家一块学习。[code]#include<reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit DQ=P2^3;//ds18b20与单片机连接口
sbit lcden=P2^2;
sbit lcdrw=P2^1;
sbit lcdrs=P2^0;
sbit beep= P3^7;
sbit blue_led=P2^4;
sbit red_led=P2^5;
//sbit dula=P2^6;
//sbit wela=P2^7;
sbit s1=P1^0;
sbit s2=P1^1;
sbit s3=P1^2;
uchar code table[]="Current-T: ";
uchar code table1[]="Up:28 Dn:25 ";
uchar p=0,num,aa,bb,s1num,flag,flag1;
uint temp;//温度值
uchar tflag;//温度正负标志
char upvalue,downvalue;
//*************************lcd1602程序**************************/
void delay1ms(uint ms)//延时1毫秒
{
uint i,j;
for(i=0;i<ms;i++)
for(j=0;j<114;j++);
}
//*************************报警程序**************************/
/*void didi()
{
beep=0;
delay1ms(200);
beep=1;
}*/
void wr_com(uchar com)//写指令//
{
delay1ms(1);
lcdrs=0;
lcdrw=0;
lcden=0;
P0=com;
delay1ms(1);
lcden=1;
delay1ms(1);
lcden=0;
}
void wr_data(uchar date)//写数据//
{
delay1ms(1);
lcdrs=1;
lcdrw=0;
lcden=0;
P0=date;
delay1ms(1);
lcden=1;
delay1ms(1);
lcden=0;
}
void init()//初始化设置//
{
upvalue=28;
downvalue=25;
//dula=0;
//wela=0;
blue_led=1;
red_led=1;
beep=1;
wr_com(0x38);
wr_com(0x0c);
wr_com(0x04);
wr_com(0x01);
wr_com(0x80);
for(num=0;num<15;num++)
|
|