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

正文內(nèi)容

基于usb接口的溫度控制器畢業(yè)設(shè)計(jì)-資料下載頁(yè)

2025-06-27 19:06本頁(yè)面
  

【正文】 求很高,所以溫度無(wú)法讀起,首先考慮到單片機(jī)無(wú)法正確按照DS18B20的時(shí)序讀取溫度。最后確實(shí)讀到了溫度數(shù)據(jù)。單片機(jī)的延時(shí)程序一般對(duì)系統(tǒng)來(lái)說(shuō),要求不是很精確,可是本次設(shè)計(jì)卻要求非常嚴(yán)格,這點(diǎn)必須注意。之外,上位機(jī)應(yīng)用軟件的編寫(xiě)工具是C++ builder , 國(guó)內(nèi)很多資料都是介紹的都是基本控件的使用,涉及到畫(huà)圖的資料比較少,特別是畫(huà)動(dòng)態(tài)圖象,本系統(tǒng)只能是另做窗體來(lái)畫(huà)出系統(tǒng)的溫度采集圖像。而且C ++的動(dòng)態(tài)連接問(wèn)題并不是書(shū)上介紹的那樣,真正操作起來(lái)碰到了不少問(wèn)題,連接錯(cuò)誤等等。謝 辭首先,我要感謝我的導(dǎo)師龍老師,在這次畢業(yè)設(shè)計(jì)的整個(gè)過(guò)程中,她給與我極大的幫助。經(jīng)過(guò)這次畢業(yè)設(shè)計(jì),使我真正的運(yùn)用了大學(xué)里學(xué)到的很多理論知識(shí),應(yīng)用到實(shí)際系統(tǒng)的設(shè)計(jì)中,這次畢業(yè)設(shè)計(jì)可以說(shuō)是一個(gè)實(shí)戰(zhàn),一個(gè)理論與實(shí)踐的有機(jī)結(jié)合,這次畢業(yè)設(shè)計(jì)歷程3個(gè)月,通過(guò)3個(gè)月的時(shí)間了,我不斷的學(xué)習(xí)新知識(shí),掌握新東西,并且即學(xué)即用,龍老師在這里畢業(yè)設(shè)計(jì)過(guò)程中就我碰到的問(wèn)題給以正確有效的引導(dǎo),使我能夠順利的做完畢業(yè)時(shí)間,她治學(xué)嚴(yán)謹(jǐn)、知識(shí)淵博、態(tài)度熱情認(rèn)真,給我留下了深刻的印象,所以我在這里非常的感謝我的導(dǎo)師老老師,也感謝學(xué)校給以我這樣的一次鍛煉的機(jī)會(huì),感謝本次畢業(yè)設(shè)計(jì)中給以我?guī)椭乃械睦蠋?、同學(xué)!參考文獻(xiàn)[1] [M] .清華大學(xué)出版社 .[2] ++ builder 6程序設(shè)計(jì)與實(shí)例[M] .[3] C++ Builder 5 實(shí)例精講[M] . [4] [M].電子可見(jiàn)大學(xué)出版社. [5] 陳啟美. 計(jì)算機(jī)USB接口技術(shù)[M] 南京大學(xué)出版社. [6] 徐科 ++ builder實(shí)用技術(shù)與經(jīng)典案例[M].清華大學(xué)出版社. [7] 王成儒 [M].[8] 沙占友 [M].[9] [M].[10] Universal Serial Bus Specification Revision . Compaq Computer Corporation,IntelCorporation,Microsoft Corporation,NEC Corporation: September 23, 1998.附 錄1. protel原理圖1 PCB圖2 本系統(tǒng)部分程序(1)下位機(jī)部分程序圖include include include define uchar unsigned chardefine uint unsigned intdefine VID 0x8888define PID 0x9999define USBCMD_WR 100 //上傳數(shù)據(jù)define USBCMD_RD 101 //設(shè)置報(bào)警溫度define DS18B20 102 //檢測(cè)是否有溫度傳感器define CH375PORT P2sbit CH375_WR=P0^5。 //控制CH372的寫(xiě)數(shù)據(jù)信號(hào)sbit CH375_RD=P0^6。 //控制CH372的讀數(shù)據(jù)信號(hào)sbit CH375_A0=P0^7。 //控制CH372的寫(xiě)命令信號(hào)data uchar buffer[64]。data uchar USBCMD。bit UsbRecvOk。sbit LED0=P1^1。sbit LED1=P1^2。sbit DQ=P1^0。static float bwendu。//DS18B20的程序void delaym(uchar time) //延時(shí)為(time*2+3)us { for(。time0。time)。 }uchar read_byte(void) {uchar i,value=0。 for(i=0。i8。i++) {value=1。 DQ=0。 //將總線DQ拉低開(kāi)始讀時(shí)序 DQ=1。 //釋放DQ。 delaym(1)。 if(DQ) value|=0x80。 delaym(6)。 //讀取時(shí)間間隙,要大于1us } return (value)。 }void write_byte(uchar value) { uchar i。 for(i=0。i8。i++) {DQ=0。 DQ=valueamp。0x01。 //每次寫(xiě)1位,通過(guò)val右移得到 delaym(5)。 //延時(shí)34us(15~60us采樣時(shí)間) DQ=1。 value=1。 } delaym(5)。 //2次寫(xiě)的時(shí)間間隙要大于1us }uchar DS18B20_RESET(void) {uchar da。 DQ=0。 delaym(29)。 //保持DQ低480us DQ=1。 delaym(3)。 //等待15~60us da=DQ。 delaym(25)。 return (da)。//有芯片應(yīng)答da=0,無(wú)則da=1 }unsigned int readtemperature(void) //讀溫度 { uchar a=0,b=0。 // c為溫度的小數(shù)部分? unsigned int t=0。 DS18B20_RESET()。 write_byte(0xCC)。 // 跳過(guò)讀序號(hào)列號(hào)的操作 write_byte(0x44)。 // 啟動(dòng)溫度轉(zhuǎn)換 DS18B20_RESET()。 write_byte(0xCC)。 //跳過(guò)讀序號(hào)列號(hào)的操作 write_byte(0xBE)。 //讀取溫度寄存器等(共可讀9個(gè)寄存器) 前兩個(gè)就是溫度 a=read_byte()。 b=read_byte()。 t=b。 t=8。 t=t|a。 return(t)。 }void Delayms(uint m){ uint i。 while(m0) for (i=0。 i500。 i++)。 }void CH375_CMD(uchar x) //向CH372寫(xiě)命令{ CH375_A0=1。 CH375PORT=x。 CH375_WR=0。 CH375_WR=1。}void CH375_DAT_WR(uchar x) //向CH372寫(xiě)數(shù)據(jù){ CH375_A0=0。 CH375PORT=x。 CH375_WR=0。 CH375_WR=1。}uchar CH375_DAT_RD() //從CH372讀數(shù)據(jù){ uchar x。 CH375_A0=0。 CH375PORT=0xff。 CH375_RD=0。 x=CH375PORT。 CH375_RD=1。 return x。}void CH375_Init( ) //CH372初始化{ CH375_CMD(CMD_SET_USB_ID)。 //寫(xiě) VID和PID CH375_DAT_WR(VIDamp。0xff)。 CH375_DAT_WR(VID8)。 CH375_DAT_WR(PIDamp。0xff)。 CH375_DAT_WR(PID8)。 CH375_CMD(CMD_SET_USB_MODE)。 CH375_DAT_WR(2)。 }void LoadUpData( uchar data *Buf, uchar Len ) //上傳數(shù)據(jù){ uchar i。 CH375_CMD(CMD_WR_USB_DATA7)。 CH375_DAT_WR(Len)。 for ( i=0。 iLen。 i++ ) CH375_DAT_WR(Buf[i])。 /* 加載數(shù)據(jù) */}void CH375Interrupt( ) interrupt 0 using 1{ unsigned char Status。 unsigned char length, i。 EX0 = 0。 CH375_CMD(CMD_GET_STATUS)。 Status = CH375_DAT_RD()。 switch(Status) { case USB_INT_EP2_OUT: /* 批量端點(diǎn)下傳成功 */ CH375_CMD(CMD_RD_USB_DATA)。 length = CH375_DAT_RD()。 if(length64) length=64。 for(i=0。 ilength。 i++) buffer[i] = CH375_DAT_RD()。 LED1=0。 UsbRecvOk=1。 USBCMD=buffer[0]。 break。 case USB_INT_EP2_IN: LED1=0。 CH375_CMD(CMD_UNLOCK_USB)。 break。 case USB_INT_EP1_IN: CH375_CMD(CMD_UNLOCK_USB)。 break。 } EX0 = 1。 }void main( ) { uint wendu。 float tt。 uchar a,b。 uchar reset。 //DS18B20復(fù)位成功 uint k。 EA=1。 EX0 = 1。 CH375_CMD(CMD_RESET_ALL)。 Delayms(50)。 CH375_Init()。 UsbRecvOk=0。 LED0=1。LED1=0。 while(1) { k++。 if(UsbRecvOk) { UsbRecvOk=0。 switch(USBCMD) { case USBCMD_RD: wendu=readtemperature()。 //讀溫度 b=wenduamp。0x0f。 a=(wendu4)amp。0xff。 buffer[0]=a。 //溫度整數(shù)部分 buffer[1]=b。 //溫度小數(shù)部分 LoadUpData(buffer,3)。 //上傳溫度 tt=a+b*。 break。 case USBCMD_WR: //設(shè)置報(bào)警溫度 bwendu=buffer[1]+buffer[2]*。 break。 case DS18B20 : //檢測(cè)有無(wú)溫度傳感器 reset=DS18B20_RESET()。 buffer[0]=reset。 LoadUpData(buffer,3)。 } } if(tt=bwendu) LED0=0。 else LED0=1。 } }(2)上位機(jī)部分程序://ifndef Unit1Hdefine Unit1H//include include include include include //class TForm1 : public TForm{__published: // IDEmanaged Components TButton *Button1。 TButton *Button2。 TButton *Button3。 TEdit *Edit1。 TEdit *Edit2。 TButton *Button4。 TL
點(diǎn)擊復(fù)制文檔內(nèi)容
化學(xué)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1