標題: 我的單片機溫度上下限報警器(上下限可調(diào))設(shè)計含源碼、原理圖及相關(guān)資料 [打印本頁]

作者: 惜緣2008    時間: 2017-5-5 18:17
標題: 我的單片機溫度上下限報警器(上下限可調(diào))設(shè)計含源碼、原理圖及相關(guān)資料
這是近期做的溫度上下限報警器課程設(shè)計,
單片機初學者,自己獨立完成,能夠達到
預(yù)期的效果,內(nèi)涵AD畫的PCB圖,protues仿真圖,
源碼、自己原創(chuàng),新手希望和大家一塊學習。[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)//寫數(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++)





歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1