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

正文內(nèi)容

基于at89s52單片機溫度控制系統(tǒng)畢業(yè)設(shè)計doc-資料下載頁

2025-06-18 15:28本頁面
  

【正文】 hardefine uint unsigned intdefine BUSY 0x80 //lcd 忙檢測標志define DATAPORT P0 //定義 P0 口為 LCD 通訊端口define PLAYE_ADDR XBYTE[0XBFFF] //語音報警地址sbit RED_ALARM=P1^0。 //紅色指示燈sbit WRITE_ALARM=P1^1。 //白色指示燈sbit GREEN_ALARM=P1^2。 //綠色指示燈sbit BLUE_ALARM=P1^3。 //藍色指示燈sbit P1_4=P1^4。 //時鐘調(diào)整sbit P1_5=P1^5。 //時鐘加sbit P1_6=P1^6。 //時鐘減sbit DQ = P1^7。 //定義 ds18b20 通信端口 sbit LCM_RS=P2^0。 //數(shù)據(jù)/命令端sbit LCM_RW=P2^1。 //讀/寫選擇端sbit LCM_EN=P2^2。sbit sda=P2^3。 //IO 口定義sbit scl=P2^4。 //LCD 使能信號sbit ad_busy=P3^2。 //adc 中斷方式接口sbit RECLED_EOC=P3^5。 //ISD1420 放音結(jié)束查詢標志sbit OUT=P3^7。uchar ad_data。 //ad 采樣值存儲uchar seconde。 //定義并初始化時鐘變量uchar minite。uchar hour。uchar mstt=0。uchar temp1,temp2,temp。 //溫度顯示變量uchar t,set。uchar K。bit ON_OFF=0。bit outflag。bit write=0。uchar code str0[]={ : : }。uchar code str1[]={SET: C SA: . C}。void delay_LCM(uint)。 //LCD延時子程序void initLCM( void)。 //LCD 初始化子程序void lcd_wait(void)。 //LCD檢測忙子程序void WriteCommandLCM(uchar WCLCM,uchar BusyC)。 //寫指令到 ICM 子函數(shù)void WriteDataLCM(uchar WDLCM)。 //寫數(shù)據(jù)到 LCM 子函數(shù)void DisplayOneChar(uchar X,uchar Y,uchar DData)。 //顯示指定坐標的一個字符子函數(shù)void DisplayListChar(uchar X,uchar Y,uchar code *DData)。 //顯示指定坐標的一串字符子函數(shù)void init_timer0(void)。 //定時器初始化void displayfun1(void)。void displayfun2(void)。void displayfun3(void)。void displayfun4(void)。void keyscan(void )。 //鍵盤掃描子程序void set_adj(void)。void inc_key(void)。void dec_key(void)。void delay_18B20(unsigned int i)。void Init_DS18B20(void) 。uchar ReadOneChar(void)。void WriteOneChar(unsigned char dat)。void ReadTemperature(void)。void ad0809(void)。void playalarm(void)。 /*********延時 K*1ms,**********/void delay_LCM(uint k){ uint i,j。 for(i=0。ik。i++) { for(j=0。j60。j++) {。} }} /**********寫指令到 LCM 子函數(shù)************/void WriteCommandLCM(uchar WCLCM,uchar BusyC){ if(BusyC)lcd_wait()。DATAPORT=WCLCM。 LCM_RS=0。 // 選中指令寄存器 LCM_RW=0。 // 寫模式 LCM_EN=1。 _nop_()。 _nop_()。_nop_()。 LCM_EN=0。 }/**********寫數(shù)據(jù)到 LCM 子函數(shù)************/void WriteDataLCM(uchar WDLCM){ lcd_wait( )。 //檢測忙信號 DATAPORT=WDLCM。 LCM_RS=1。 // 選中數(shù)據(jù)寄存器 LCM_RW=0。 // 寫模式 LCM_EN=1。 _nop_()。_nop_()。_nop_()。 LCM_EN=0。}/***********lcm 內(nèi)部等待函數(shù)*************/void lcd_wait(void){ DATAPORT=0xff。 LCM_EN=1。 LCM_RS=0。 LCM_RW=1。 _nop_()。 while(DATAPORTamp。BUSY){ LCM_EN=0。 _nop_()。 _nop_()。 LCM_EN=1。 _nop_()。 _nop_()。 } LCM_EN=0。}/**********LCM 初始化子函數(shù) ***********/void initLCM( ){ DATAPORT=0。delay_LCM(15)。WriteCommandLCM(0x38,0)。 //三次顯示模式設(shè)置,不檢測忙信號 delay_LCM(5)。 WriteCommandLCM(0x38,0)。 delay_LCM(5)。 WriteCommandLCM(0x38,0)。 delay_LCM(5)。 WriteCommandLCM(0x38,1)。 //8bit 數(shù)據(jù)傳送,2 行顯示,5*7 字型,檢測忙信號 WriteCommandLCM(0x08,1)。 //關(guān)閉顯示,檢測忙信號 WriteCommandLCM(0x01,1)。 //清屏,檢測忙信號 WriteCommandLCM(0x06,1)。 //顯示光標右移設(shè)置,檢測忙信號 WriteCommandLCM(0x0c,1)。 //顯示屏打開,光標不顯示,不閃爍,檢測忙信號}/****************顯示指定坐標的一個字符子函數(shù) *************/void DisplayOneChar(uchar X,uchar Y,uchar DData){ Yamp。=1。 Xamp。=15。 if(Y)X|=0x40。 //若 y 為 1(顯示第二行) ,地址碼+0X40 X|=0x80。 //指令碼為地址碼+0X80 WriteCommandLCM(X,0)。 WriteDataLCM(DData)。}/***********顯示指定坐標的一串字符子函數(shù) ***********/void DisplayListChar(uchar X,uchar Y,uchar code *DData){ uchar ListLength=0。 Yamp。=0x01。 Xamp。=0x0f。 while(X16) { DisplayOneChar(X,Y,DData[ListLength])。 ListLength++。 X++。 }}/***********ds18b20 延遲子函數(shù)(晶振 12MHz )*******/ void delay_18B20(unsigned int i){while(i)。}/**********ds18b20 初始化函數(shù) **********************/void Init_DS18B20(void) { unsigned char x=0。 DQ = 1。 //DQ 復(fù)位 delay_18B20(8)。 //稍做延時 DQ = 0。 //單片機將 DQ 拉低 delay_18B20(80)。 //精確延時 大于 480us DQ = 1。 //拉高總線 delay_18B20(14)。 x=DQ。 //稍做延時后 如果 x=0 則初始化成功 x=1 則初始化失敗 delay_18B20(20)。}/***********ds18b20 讀一個字節(jié) **************/ unsigned char ReadOneChar(void){uchar i=0。uchar dat = 0。for (i=8。i0。i) { DQ = 0。 // 給脈沖信號 dat=1。 DQ = 1。 // 給脈沖信號 if(DQ) dat|=0x80。 delay_18B20(4)。 } return(dat)。}/*************ds18b20 寫一個字節(jié) ****************/ void WriteOneChar(uchar dat){ unsigned char i=0。 for (i=8。 i0。 i) { DQ = 0。 DQ = datamp。0x01。 delay_18B20(5)。 DQ = 1。 dat=1。 }}/**************讀取 ds18b20 當前溫度************/void ReadTemperature(void){unsigned char a=0。unsigned char b=0。unsigned char t=0。Init_DS18B20()。WriteOneChar(0xCC)。 // 跳過讀序號列號的操作WriteOneChar(0x44)。 // 啟動溫度轉(zhuǎn)換delay_18B20(100)。 // this message is wery importantInit_DS18B20()。WriteOneChar(0xCC)。 //跳過讀序號列號的操作WriteOneChar(0xBE)。 //讀取溫度寄存器等(共可讀 9 個寄存器) 前兩個就是溫度delay_18B20(100)。a=ReadOneChar()。 //讀取溫度值低位b=ReadOneChar()。 //讀取溫度值高位temp1=b4。temp1+=(aamp。0xf0)4。temp2=aamp。0x0f。 temp=((b*256+a)4)。 //當前采集溫度值除 16 得實際溫度值}/***************液晶顯示子函數(shù) 1 正常顯示*****************/void displayfun1(void){WriteCommandLCM(0x0c,1)。 //顯示屏打開,光標不顯示,不閃爍,檢測忙信號DisplayListChar(0,0,str0)。DisplayListChar(0,1,str1)。 DisplayOneChar(3,0,hour/10+0x30)。 //液晶上顯示小時DisplayOneChar(4,0,hour%10+0x30)。DisplayOneChar(6,0,minite/10+0x30)。 //液晶上顯示分
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1