1. 程式人生 > 實用技巧 >582【畢設課設】基於微控制器溫溼度陽光co瓦斯氣壓光照環境監測系統設計

582【畢設課設】基於微控制器溫溼度陽光co瓦斯氣壓光照環境監測系統設計

【資源下載】下載地址如下:
https://docs.qq.com/doc/DTlRSd01BZXNpRUxl

使用proteus開啟原理圖檔案,雙擊AT89C52,將hex檔案新增,執行即可。如需要更改程式碼,在main.c中更改即可。

sbit CS=P1^1; //ADC片選
sbit DI=P1^4; //ADC輸入
sbit DO=P1^5; //ADC輸出 
sbit CLK=P1^0; //ADC時鐘訊號 

sbit FAN=P2^5;
sbit SP2=P2^6;
sbit LEDR=P1^6;
sbit LEDG=P1^7;

sbit SCK=P1^2;
sbit DATA=P1^3;

sbit ADCS=P0^0;
sbit ADCLK=P0^1;
sbit ADDO=P0^2;
sbit HEAT=P0^3;

sbit s485_s = P3^3; //485控制訊號
#define DISPLAY_LEFT_TO_RIGHT	1//從左邊數計算列位置,每寫完一個位元組,列數自動向右移動一個
#define DISPLAY_RIGHT_TO_LEFT	0//從右邊數計算列位置,每寫完一個位元組,列數自動向左移動一個
#define uchar unsigned char

/*                            1光強              6溫度                10溼度               14CH4            18CO              22氣壓             26加熱爐溫度      */
char data_res[32]={' ',0x30,0x30,0x30,' ','+',0x30,0x30,0x30,' ',0x30,0x30,0x30,' ',0x30,0x30,0x30,' ',0x30,0x30,0x30,' ',0x30,0x30,0x30,' ',0x30,0x30,0x30,' '};	//資料返回形式1
char data_n[10]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39};
int Num;
/*
void busy_1602()		   //判忙LCD忙閒? 
{  
   do
   {
   	P2=0xff;
    RS=0;		//RS=0,RW=1時才可讀忙訊號  
	RW=1;
	E=0;
	_nop_();
	E=1;
   }while(bflag);	//當其值為0時,表示不忙,才可以接收命令或者資料訊號
}

void wreg_1602(unsigned char com)	 //函式功能:寫指令函式 
{
   busy_1602();
   RS=0;		//當RS=0,RW=0時,表明寫入的是命令
   RW=0;
   E=1;
   P2=com;		//當使能由高到低時,LCD執行相應命令
   E=0;
}

void wdata_1602(unsigned char dat)	 //函式功能:寫資料函式 
{
   busy_1602();