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

正文內容

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

2025-06-27 19:06本頁面
  

【正文】 求很高,所以溫度無法讀起,首先考慮到單片機無法正確按照DS18B20的時序讀取溫度。最后確實讀到了溫度數據。單片機的延時程序一般對系統(tǒng)來說,要求不是很精確,可是本次設計卻要求非常嚴格,這點必須注意。之外,上位機應用軟件的編寫工具是C++ builder , 國內很多資料都是介紹的都是基本控件的使用,涉及到畫圖的資料比較少,特別是畫動態(tài)圖象,本系統(tǒng)只能是另做窗體來畫出系統(tǒng)的溫度采集圖像。而且C ++的動態(tài)連接問題并不是書上介紹的那樣,真正操作起來碰到了不少問題,連接錯誤等等。謝 辭首先,我要感謝我的導師龍老師,在這次畢業(yè)設計的整個過程中,她給與我極大的幫助。經過這次畢業(yè)設計,使我真正的運用了大學里學到的很多理論知識,應用到實際系統(tǒng)的設計中,這次畢業(yè)設計可以說是一個實戰(zhàn),一個理論與實踐的有機結合,這次畢業(yè)設計歷程3個月,通過3個月的時間了,我不斷的學習新知識,掌握新東西,并且即學即用,龍老師在這里畢業(yè)設計過程中就我碰到的問題給以正確有效的引導,使我能夠順利的做完畢業(yè)時間,她治學嚴謹、知識淵博、態(tài)度熱情認真,給我留下了深刻的印象,所以我在這里非常的感謝我的導師老老師,也感謝學校給以我這樣的一次鍛煉的機會,感謝本次畢業(yè)設計中給以我?guī)椭乃械睦蠋?、同學!參考文獻[1] [M] .清華大學出版社 .[2] ++ builder 6程序設計與實例[M] .[3] C++ Builder 5 實例精講[M] . [4] [M].電子可見大學出版社. [5] 陳啟美. 計算機USB接口技術[M] 南京大學出版社. [6] 徐科 ++ builder實用技術與經典案例[M].清華大學出版社. [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)下位機部分程序圖include include include define uchar unsigned chardefine uint unsigned intdefine VID 0x8888define PID 0x9999define USBCMD_WR 100 //上傳數據define USBCMD_RD 101 //設置報警溫度define DS18B20 102 //檢測是否有溫度傳感器define CH375PORT P2sbit CH375_WR=P0^5。 //控制CH372的寫數據信號sbit CH375_RD=P0^6。 //控制CH372的讀數據信號sbit CH375_A0=P0^7。 //控制CH372的寫命令信號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) //延時為(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拉低開始讀時序 DQ=1。 //釋放DQ。 delaym(1)。 if(DQ) value|=0x80。 delaym(6)。 //讀取時間間隙,要大于1us } return (value)。 }void write_byte(uchar value) { uchar i。 for(i=0。i8。i++) {DQ=0。 DQ=valueamp。0x01。 //每次寫1位,通過val右移得到 delaym(5)。 //延時34us(15~60us采樣時間) DQ=1。 value=1。 } delaym(5)。 //2次寫的時間間隙要大于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)。//有芯片應答da=0,無則da=1 }unsigned int readtemperature(void) //讀溫度 { uchar a=0,b=0。 // c為溫度的小數部分? unsigned int t=0。 DS18B20_RESET()。 write_byte(0xCC)。 // 跳過讀序號列號的操作 write_byte(0x44)。 // 啟動溫度轉換 DS18B20_RESET()。 write_byte(0xCC)。 //跳過讀序號列號的操作 write_byte(0xBE)。 //讀取溫度寄存器等(共可讀9個寄存器) 前兩個就是溫度 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寫命令{ CH375_A0=1。 CH375PORT=x。 CH375_WR=0。 CH375_WR=1。}void CH375_DAT_WR(uchar x) //向CH372寫數據{ CH375_A0=0。 CH375PORT=x。 CH375_WR=0。 CH375_WR=1。}uchar CH375_DAT_RD() //從CH372讀數據{ 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)。 //寫 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 ) //上傳數據{ uchar i。 CH375_CMD(CMD_WR_USB_DATA7)。 CH375_DAT_WR(Len)。 for ( i=0。 iLen。 i++ ) CH375_DAT_WR(Buf[i])。 /* 加載數據 */}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: /* 批量端點下傳成功 */ 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復位成功 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。 //溫度整數部分 buffer[1]=b。 //溫度小數部分 LoadUpData(buffer,3)。 //上傳溫度 tt=a+b*。 break。 case USBCMD_WR: //設置報警溫度 bwendu=buffer[1]+buffer[2]*。 break。 case DS18B20 : //檢測有無溫度傳感器 reset=DS18B20_RESET()。 buffer[0]=reset。 LoadUpData(buffer,3)。 } } if(tt=bwendu) LED0=0。 else LED0=1。 } }(2)上位機部分程序://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
點擊復制文檔內容
化學相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1