582【畢設課設】基於微控制器溫溼度陽光co瓦斯氣壓光照環境監測系統設計
阿新 • • 發佈:2020-12-03
【資源下載】下載地址如下:
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();