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

正文內(nèi)容

基于at89s52單片機(jī)的多點溫度測量與監(jiān)控-資料下載頁

2024-12-04 13:13本頁面

【導(dǎo)讀】51單片機(jī)的結(jié)構(gòu)與原理。電路仿真及實物,并利用C語言進(jìn)行程序設(shè)計。以單片機(jī)AT89S52為控制器的數(shù)碼管動態(tài)顯示及。串口通信部分,可實時顯示溫度并將數(shù)值傳給電腦。成為一門關(guān)鍵的技術(shù)學(xué)科。表、汽車等產(chǎn)品中都可以看到單片機(jī)的身影。工具組件的過熱檢測,醫(yī)療與診斷設(shè)備的溫度測試等??垢蓴_性好,可以在惡劣的工作環(huán)境中進(jìn)行溫度測量。數(shù)字方式來讀取熱敏溫度傳感器的溫度值,就要安裝有模數(shù)轉(zhuǎn)換模塊。熱敏溫度傳感器往往需要使用者逐個校調(diào),而IC溫度傳感器在出廠時已完成這一步。在IC溫度傳感器中選擇平時接觸較多的

  

【正文】 up=P1^3。//加鍵 sbit down=P1^1。//減鍵 sbit sure=P1^4。//確定鍵 sbit cancel=P1^0。//取消鍵 void restart()。 void write_DS18B20(unsigned char z)。 unsigned char read_DS18B20(void)。 void delay(unsigned char)。 void set(unsigned char *)。 bit select_a_ds18b20() //返回值為 1則表示修改成功, 0表示失敗 { bit i=1。 unsigned char num=1。 while(i) { if(down==0) {delay(5)。if(down==0) {while(!down)。num。}if(num==0) num=5。} if(up==0) {delay(5)。if(up==0) {while(!up)。num++。}if(num==6) num=1。} if(sure==0) {delay(5)。if(sure==0) {while(!sure)。i=0。}} if(cancel==0) {delay(5)。if(cancel==0) {while(!cancel)。goto loop。}}//取消,則無條件轉(zhuǎn)移到最后 P2=0Xfe。 P0=ca[num]。 delay(1)。 } set(ROMdate[num1])。 loop:if(i) {return 0。} else {return 1。} } void set(unsigned char *p)//傳送要修改的 ds18b20的序列號的入口地址 { char i=1,TH,TL,th,tl。 restart()。//先讀出高低溫限 write_DS18B20(0x55)。 for(i=0。i8。write_DS18B20(p[i]),i++)。 write_DS18B20(0xbe)。 TH=read_DS18B20()。 TL=read_DS18B20()。 TH=read_DS18B20()。 TL=read_DS18B20()。 restart()。 th=TH。 while(i) { if(down==0) {delay(6)。if(down==0) {while(!down)。TH。}if(TH==56) {TH=125。}} if(up==0) {delay(6)。if(up==0) {while(!up)。TH++。}if(TH==56) {TH=125。}} if(sure==0) {delay(6)。if(sure==0) {while(!sure)。i=0。}} if(cancel==0) {delay(6)。if(cancel==0) {while(!cancel)。TH=th。i=0。}} P2=0Xfe。 P0=ca[TH%10]。 delay(1)。 P2=0Xfd。 P0=ca[TH/10%10]。 delay(1)。 if(TH99) { P2=0X0fb。 P0=ca[1]。 delay(1)。 } if(TH0) { P2=0Xfb。 P0=0xbf。 delay(1)。 } } i=1。 tl=TL。 while(i) { if(down==0) {delay(6)。if(down==0) {while(!down)。TL。}if(TL==56) TL=125。} if(up==0) {delay(6)。if(up==0) {while(!up)。TL++。}if(TL==56) TL=125。} if(sure==0) {delay(6)。if(sure==0) {while(!sure)。i=0。}} if(cancel==0) {delay(6)。if(cancel==0) {while(!cancel)。TL=tl。i=0。}} P2=0Xfe。 P0=ca[TL%10]。 delay(1)。 P2=0Xfd。 P0=ca[TL/10%10]。 delay(1)。 if(TL99) { P2=0Xfb。 P0=ca[1]。 delay(1)。 } if(TL0) { P2=0Xfb。 P0=0xbf。 delay(1)。 } } restart()。 write_DS18B20(0x55)。 for(i=0。i8。write_DS18B20(p[i]),i++)。 write_DS18B20(0x4e)。 write_DS18B20(TH)。 write_DS18B20(TL)。 restart()。 write_DS18B20(0xcc)。 write_DS18B20(0x48)。 delay(200)。 delay(200)。 } 定時器初始化 .c include void timer0_init(void) { TMOD=TMOD|0X01。//這樣做可不影響定時器 1的值 TH0=0。 TL0=0。 EA=1。 TR0=1。 ET0=1。 } 溫度轉(zhuǎn)換成顯示編碼 .c //預(yù)處理,將要顯示的十進(jìn)制數(shù)預(yù)先轉(zhuǎn)換成 8位數(shù)碼管可以顯示的編碼。 include extern unsigned char date[8]。//static extern unsigned char ca[12]。 void deal(unsigned char TH,unsigned char TL,bit zhengfu) { unsigned char i。 for(i=0。i8。date[i]=0xff,i++)。 if(zhengfu==0)//加負(fù)號 { if(TH10) date[5]=0XBF。 if(TH=10) date[6]=0XBF。 } date[4]=ca[TH%10]。 if(TH10) date[5]=ca[TH/10%10]。 if(TH100) date[6]=ca[TH/100%10]。 date[0]=ca[(TL*625)%10]。 date[1]=ca[(TL*625)/10%10]。 date[2]=ca[(TL*625)/100%10]。 date[3]=ca[(TL*625)/1000%10]。 date[4]=date[4]amp。0x7f。//date[4]=~(~(date[4])+0x80)。//加小數(shù)點 } 串口初始化 .c include void RS232_init(void) { TMOD=0X20。 TH1=0XFD。TL1=0XFD。 TR1=1。 SM1=1。 SM0=0。 REN=1。 EA=1。 ES=1。 } 串口發(fā)送 .c include void send(unsigned char z) { ES=0。 SBUF=z。 while(!TI)。 TI=0。 ES=1。 } 串口溫度數(shù)據(jù)發(fā)送 .c void send(unsigned char)。 void temperature_send(unsigned char TH,unsigned char TL,bit zhengfu) { if(zhengfu==0) send(39。39。)。 send(TH/10%10+48)。 send(TH%10+48)。 send(39。.39。)。 send((TL*625)/1000%10+48)。 send((TL*625)/100%10+48)。 send((TL*625)/10%10+48)。 send((TL*625)%10+48)。 send(39。 39。)。//換行 } 附錄 Ⅳ 上位機(jī) 程序 編程界面 Private Sub Form_Load() = 9600,N,8,1 39。波特率 9600bit/s,無校驗, 8位數(shù)據(jù), 1位停止位 = 1 39。設(shè)定串口, 1為 1 = 40 39。設(shè)置返回接收緩沖區(qū)的大小,以字符為單位 = 2 If = True Then = False 39。關(guān)串口 = 40 39。設(shè)置并返回產(chǎn)生 onm事件的字符數(shù),以字符為單位 = 1 = 0 39。設(shè)置從接收緩沖區(qū)讀取的字?jǐn)?shù),為 0讀取整個緩沖區(qū) = InputModeText 39。以文本方式接收 If = False Then = True = 0 39。清空接收緩沖區(qū) = 溫度 = End Sub Private Sub MSComm1_OnComm() Dim rec As String Select Case Case EvReceive rec = = rec = 0 End Select End S
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1