freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于單片機的溫濕度控制系統(tǒng)-資料下載頁

2025-06-19 12:57本頁面
  

【正文】 RST:復(fù)位輸入。當振蕩器復(fù)位器件時,要保持 RST 腳兩個機器周期的高電平時間。ALE/PROG:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在 FLASH 編程期間,此引腳用于輸入編程脈沖。在平時,ALE 端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的 1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數(shù)據(jù)存儲器時,將跳過一個ALE 脈沖。如想禁止 ALE 的輸出可在 SFR8EH 地址上置 0。此時, ALE 只有在執(zhí)行MOVX,MOVC 指令是 ALE 才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài) ALE 禁止,置位無效。/PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN 有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/PSEN 信號將不出現(xiàn)。EA/VPP:當/EA 保持低電平時,則在此期間外部程序存儲器(0000HFFFFH) ,不管是否有內(nèi)部程序存儲器。注意加密方式 1 時,/EA 將內(nèi)部鎖定為 RESET;當/EA 端保持高電平時,此間內(nèi)部程序存儲器。在 FLASH 編程期間,此引腳也用于施加 12V 編程電源(VPP) 。XTAL1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。XTAL2:來自反向振蕩器的輸出。XTAL1 和 XTAL2 分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內(nèi)振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時鐘源驅(qū)動器件,XTAL2 應(yīng)不接。有余輸入至內(nèi)部時鐘信號要通過一個二分頻觸發(fā)器,因此對外部時鐘信號的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度。附錄 B 硬件原理圖附錄 C 程序清單//****************************************************************////單片機 : STC89C52RC // 功能 :串口發(fā)送溫濕度數(shù)據(jù) 晶振 波特率 9600 //硬件連接: 口為通訊口連接 DHT11,DHT11 的電源和地連接單片機的電源和地,單片機串口加 MAX232 連接電腦 //****************************************************************//include include include typedef unsigned char U8。 /* defined for unsigned 8bits integer variable 無符號 8 位整型變量 */typedef unsigned int U16。 /* defined for unsigned 16bits integer variable 無符號 16 位整型變量 */define lcd_Hinclude define HIGH 1define LOW 0define TRUE 1define FALSE 0define ZERO 0define MSB 0x80define LSB 0x01//********液晶屏部分 **** define LINE1 0define LINE2 1define LINE1_HEAD 0x80define LINE2_HEAD 0xC0define DATA_MODE 0x38define OPEN_SCREEN 0x0Cdefine DISPLAY_ADDRESS 0x80define CLEARSCREEN LCD_en_(0x01)define LCDIO P1sbit LCD1602_RS = P2^4。 //定義端口 sbit LCD1602_RW = P2^3。sbit LCD1602_EN = P2^2。//////IO 口定義區(qū)//////sbit P2_0 = P2^0 。sbit SPK=P0^7。int t1,t2,ss。//////定義區(qū)//////U8 U8FLAG。U8 U8count,U8temp。U8 U8T_data_H,U8T_data_L,U8RH_data_H,U8RH_data_L,U8checkdata。U8 U8T_data_H_temp,U8T_data_L_temp,U8RH_data_H_temp,U8RH_data_L_temp,U8checkdata_temp。U8 U8data。unsigned char str1[]={39。s39。,39。h39。,39。i39。,39。d39。,39。u39。,39。:39。}。unsigned char str2[]={39。w39。,39。e39。,39。n39。,39。d39。,39。u39。,39。:39。}。LCD_init()。 void Delay(U16 j) { U8 i。 for(。j0。j) { for(i=0。i27。i++)。 } } void Delay_10us(void) { U8 i。 i。 i。 i。 i。 i。 i。 } void COM(void) { U8 i。 for(i=0。i8。i++) { U8FLAG=2。 while((!P2_0)amp。amp。U8FLAG++)。Delay_10us()。 Delay_10us()。Delay_10us()。 U8temp=0。 if(P2_0)U8temp=1。 U8FLAG=2。 while((P2_0)amp。amp。U8FLAG++)。 //超時則跳出 for 循環(huán) if(U8FLAG==1)break。 //判斷數(shù)據(jù)位是 0 還是 1 // 如果高電平高過預(yù)定 0 高電平值則數(shù)據(jù)位為 1 U8data=1。 U8data|=U8temp。 //0 }//rof }void LCD_Read_BF(void){ unsigned char read=0。LCD1602_RS=LOW。LCD1602_RW=HIGH。LCD1602_EN=HIGH。LCDIO=0XFF。read=LCDIO。}void LCD_en_(unsigned char mand)//寫指令 {LCD_Read_BF()。LCD1602_RS=LOW。LCD1602_RW=LOW。LCD1602_EN=HIGH。LCDIO=mand。LCD1602_EN=LOW。}void LCD_en_dat(unsigned char dat)//寫數(shù)據(jù) {LCD_Read_BF()。LCD1602_RS=HIGH。LCD1602_RW=LOW。LCD1602_EN=HIGH。LCDIO=dat。LCD1602_EN=LOW。}void LCD_set_xy(unsigned char x,unsigned char y) //寫入地址函數(shù) { unsigned char address。 if(y==LINE1) address=LINE1_HEAD+x。 else address=LINE2_HEAD+x。LCD_en_(address)。}void LCD_write_char(unsigned char x,unsigned char y,unsigned char dat)//寫入字符函數(shù) { LCD_set_xy(x,y)。 LCD_en_dat(dat)。}void LCD_write_string(unsigned char x,unsigned char y,unsigned char *s)//寫入字符串函數(shù) {LCD_set_xy(x,y)。while(*s){LCDIO=*s。LCD_en_dat(*s)。s++。}} void LCD_Init(void) //初始化函數(shù) { LCD_en_(0x38)。 /*顯示模式設(shè)置*/ Delay(5)。 LCD_en_(0x38)。 Delay(5)。 LCD_en_(0x38)。 Delay(5)。 LCD_en_(0x38)。 LCD_en_(0x08)。 /*顯示關(guān)閉*/ LCD_en_(0x01)。 /*顯示清屏*/ LCD_en_(0x06)。 /*顯示光標移動設(shè)置*/ Delay(5)。 LCD_en_(0x0C)。 /*顯示開及光標設(shè)置*/ }////濕度讀取子程序 ////以下變量均為全局變量 //溫度高 8 位== U8T_data_H//溫度低 8 位== U8T_data_L//濕度高 8 位== U8RH_data_H//濕度低 8 位== U8RH_data_L//校驗 8 位 == U8checkdata//調(diào)用相關(guān)子程序如下 // Delay()。, Delay_10us()。,COM()。 //void RH(void){ //主機拉低 18ms P2_0=0。 Delay(180)。 P2_0=1。 //總線由上拉電阻拉高 主機延時 20us Delay_10us()。 Delay_10us()。 Delay_10us()。 Delay_10us()。 //主機設(shè)為輸入 判斷從機響應(yīng)信號 P2_0=1。 //判斷從機是否有低電平響應(yīng)信號 如不響應(yīng)則跳出,響應(yīng)則向下運行 if(!P2_0) //T ! { U8FLAG=2。 //判斷從機是否發(fā)出 80us 的低電平響應(yīng)信號是否結(jié)束 while((!P2_0)amp。amp。U8FLAG++)。 U8FLAG=2。 //判斷從機是否發(fā)出 80us 的高電平,如發(fā)出則進入數(shù)據(jù)接收狀態(tài) while((P2_0)amp。amp。U8FLAG++)。 //數(shù)據(jù)接收狀態(tài) COM()。 U8RH_data_H_temp=U8data。 COM()。 U8RH_data_L_temp=U8data。 COM()。 U8T_data_H_temp=U8data。 COM()。 U8T_data_L_temp=U8data。 COM()。 U8checkdata_temp=U8data。 P2_0=1。 //數(shù)據(jù)校驗 U8temp=(U8T_data_H_temp+U8T_data_L_temp+U8RH_data_H_temp+U8RH_data_L_temp)。 if(U8temp==U8checkdata_temp) { U8RH_data_H=U8RH_data_H_temp。 U8RH_data_L=U8RH_data_L_temp。 U8T_data_H=U8T_data_H_temp。 U8T_data_L=U8T_data_L_temp。 U8checkdata=U8checkdata_temp。 } //濕度整數(shù)部分 str1[6] = (char)(0X30+U8RH_data_H/10)。 str1[7] = (char)(0X30+U8RH_data_H%10)。 //濕度小數(shù)部分 str1[9] = (char)(0X30+U8RH_data_L/10)。 //溫度整數(shù)部分 str2[6] = (char)(0X30+U8T_data_H/10)。 str2[7] = (char)(0X30+U8T_data_H%10)。 //溫度小數(shù)部分 str2[9] = (char)(0X30+U8T_data_L/10)。 t1=(int)(0X30+U8T_data_H/10)。 t2=(int)(0X30+U8T_data_H%10)。 ss=t1*10+t2。 }}void xianshi(void){ LCD_write_char(0x00,0,39。s39。)。 LCD_write_char(0x01,0,
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1