|
這是近期做的溫度上下限報警器課程設(shè)計,
單片機(jī)初學(xué)者,自己獨立完成,能夠達(dá)到
預(yù)期的效果,內(nèi)涵AD畫的PCB圖,protues仿真圖,
源碼、自己原創(chuàng),新手希望和大家一塊學(xué)習(xí)。[code]#include<reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit DQ=P2^3;//ds18b20與單片機(jī)連接口
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;//溫度正負(fù)標(biāo)志
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)//寫數(shù)據(jù)//
{
delay1ms(1);
lcdrs=1;
lcdrw=0;
lcden=0;
P0=date;
delay1ms(1);
lcden=1;
delay1ms(1);
lcden=0;
}
void init()//初始化設(shè)置//
{
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++)
|
|