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

正文內(nèi)容

基于以太網(wǎng)的防火報(bào)警系統(tǒng)測(cè)控楊龍畢業(yè)設(shè)計(jì)(參考版)

2025-06-22 12:44本頁(yè)面
  

【正文】 }。 if(temp)return 1。}bit MQ_TEST(){ bit temp=0。return(y3)。y2=tem[1]4。flag=1。if(tem[1]127) {tem[1]=(255tem[1])。tem[0]=tmrbyte()。tmwbyte(0xcc)。tmpre()。}uchar tmrtemp(void){uchar y1,y2,y3。tmwbyte(0xcc)。tmpre()。 i++。 TMDAT=1。 i=8。 while(i0) i。 TMDAT=1。 i++。 dat=dat1。j++) { testb=dat amp。for(j=1。uchar j。}return(dat)。i++){ j=tmrbit()。for(i=1。}uchar tmrbyte(void){uchar i,j,dat。while(i0) i。dat=TMDAT。i++。i++。bit dat。while(i0) i。while(~TMDAT)。}void tmpre(void){uint i。i=4。while(i0) i。TMDAT=0。i125。//溫度正負(fù)標(biāo)志位/*****************DS18B20函數(shù)體定義****************/void dmsec(uint count){uint i。 } }endifDS18b20驅(qū)動(dòng)程序:/***************************************************************************功能:DS18B20 驅(qū)動(dòng)c文件*版本: for AT89S52*時(shí)間:*作者:楊龍*關(guān)于硬件:AT89S52 時(shí)鐘12MHz I/O使用模擬單總線**************************************************************************/include uchar tem[2]。 tmstart()。 if(itcount==0) { last=tmrtemp()。 TH0=0X3C。 if(get_data[1]) { beeping()。 jieshou_init()。 if(tem_mq_data[1]) beeping()。 tem_mq_data[1]=MQ_TEST()。 while(1) { tmstart()。}void main(){///////////////////////////////////////////////////////// ifdef fasong uchar tem_mq_data[2]。 beep_init()。 beep_init()。 MQ_init()。 delay_ms(30)。 dmsec(1)。 ET0=1。 TH0=0x3C。 }}void time_intrrupt_init(){ TMOD=0x01。n950。mt。//定時(shí)器延時(shí)計(jì)數(shù)endif//******DELAY延時(shí)程序***************************/void delay_ms(uint t){ uint m,n。附 錄1基于以太網(wǎng)的智能防火報(bào)警原理圖附 錄2程序清單:主函數(shù):include include include include include define jieshouifdef fasonguchar last=0。他們使我更新了知識(shí)結(jié)構(gòu),提高了我的理論水平。學(xué)習(xí)時(shí)間雖短,但覺(jué)受益匪淺,開(kāi)闊了眼界、增長(zhǎng)了見(jiàn)識(shí),這無(wú)疑會(huì)給我在今后的工作學(xué)習(xí)中倍添力量和信心。導(dǎo)師嚴(yán)謹(jǐn)求實(shí)、刻意創(chuàng)新的治學(xué)精神,工作踏實(shí)、對(duì)事業(yè)無(wú)私奉獻(xiàn)的作風(fēng),以及淵博的知識(shí)和敏捷的思維,使我受益匪淺。只要我遇到了問(wèn)題,她就盡最大的努力幫我解決,不厭其煩的為我講解,熱情解答我在設(shè)計(jì)中所遇到的所有問(wèn)題。通過(guò)這次畢業(yè)設(shè)計(jì),對(duì)我進(jìn)行了很好的鍛煉,我的專業(yè)知識(shí)得到了鞏固、完善和提高,這對(duì)我一個(gè)即將跨出學(xué)校大門的學(xué)生來(lái)說(shuō)尤其重要。通過(guò)這次學(xué)習(xí),讓我們對(duì)以太網(wǎng)電路都有了更為詳細(xì)的理解,對(duì)于我們以后的學(xué)習(xí)有很大的幫助。在本設(shè)計(jì)的過(guò)程中,雖然我們花去了很多功夫,但設(shè)計(jì)的結(jié)果不能完全達(dá)到最滿意的效果,在程序設(shè)計(jì)上還有很多值得改進(jìn)地方。在方案設(shè)計(jì)方面,討論篩選出最優(yōu)的設(shè)計(jì)方案,比如在設(shè)計(jì)顯示電路時(shí)我們放棄LCD液晶來(lái)顯示,而直接運(yùn)用了數(shù)碼管顯示電路。結(jié) 論本次設(shè)計(jì)綜合運(yùn)用了各類傳感器。在調(diào)試過(guò) 不程中與硬件的調(diào)試相結(jié)合,提高了調(diào)試效率。本程序較大,采用C語(yǔ)言編寫。硬件故障(如各個(gè)部件內(nèi)部存在的故障和部件之間連接的邏輯錯(cuò)誤)主要是靠聯(lián)機(jī)仿真來(lái)排除的,分別打開(kāi)樣機(jī)和仿真器電源后,便可開(kāi)始聯(lián)機(jī)仿真調(diào)試,進(jìn)行動(dòng)態(tài)調(diào)試。聯(lián)機(jī)檢查即檢查上述連接是否正確,是否連接暢通、可靠。首先要對(duì)系統(tǒng)進(jìn)行靜態(tài)調(diào)試,靜態(tài)調(diào)試的目的主要是排除明顯的硬件故障,這部分工作主要由負(fù)責(zé)硬件設(shè)計(jì)的同學(xué)完成。主要包括系統(tǒng)的測(cè)試儀器及測(cè)試結(jié)果。 //have a new packet } } return 0。 … … { recv_data[iii]=temp_data[iii]。 ii=recv_data[16]。//write to bnry return 0。 if(bnry0x4c)bnry=0x7f。//page1 page(0)。0x01)==0)||recv_data[1]0x7f||recv_data[1]0x4c||recv_data[2]0x06) { //接收狀態(tài)錯(cuò)誤,下一頁(yè)指針錯(cuò)誤,長(zhǎng)度錯(cuò)誤,將丟棄所有數(shù)據(jù)包 page(1)。 recv_data[2]=i。 //把幀長(zhǎng)數(shù)據(jù)高低位反轉(zhuǎn) i=recv_data[3]。0xff00。 if(bnry0x7f) bnry=0x4c。 … … if(curr==0) return 0。}****從網(wǎng)絡(luò)接收數(shù)據(jù)****bit recv_packet(uchar* recv_data){ … … page(0)。 reg0a=0。i++) { buffer[i]=reg10。//address high … …for(i=0。 page(0)。 }temp=DMA_PORT。 } else { =temp。i++){temp=DMA_PORT。//DMA read and startfor(i=0。page(0)。數(shù)據(jù)接收子程序流程圖如圖317所示。在接收一個(gè)數(shù)據(jù)包的時(shí)候要先讀出這4個(gè)字節(jié),通過(guò)第一字節(jié)的接收狀態(tài)判斷數(shù)據(jù)包接收是否正確,如果是正確接收的數(shù)據(jù)包,則根據(jù)接收字節(jié)計(jì)數(shù)器的值修改遠(yuǎn)程DMA計(jì)數(shù)器RBCRl,RBCR0的值,讀出整個(gè)數(shù)據(jù)包。(2)第二個(gè)字節(jié)表示下一個(gè)包的存放頁(yè)地址,讀取該數(shù)據(jù)包后要根據(jù)該值的新BNRY寄存器。CRC:CRC錯(cuò)誤置位。MPA:數(shù)據(jù)包因?yàn)楸O(jiān)視模式或者緩沖區(qū)滿丟包時(shí)置位。DIS:接收禁止,當(dāng)RTL8019AS512作于監(jiān)視模式時(shí)置位。前4個(gè)字節(jié)的格式如圖316所示。如果CURR≠BNRY+1時(shí),說(shuō)明收到新的數(shù)據(jù)包,用戶可以讀取數(shù)據(jù)。當(dāng)CURR=BNRY時(shí),表示緩沖區(qū)全部被存滿,數(shù)據(jù)沒(méi)有被用戶取走,這時(shí)芯片停止往內(nèi)存中寫數(shù)據(jù),新收到的數(shù)據(jù)包被丟棄,但不覆蓋原來(lái)的數(shù)據(jù)。CURR指向當(dāng)前正在寫的頁(yè)的下一頁(yè),BNRY指向第一個(gè)接收緩沖區(qū)的頁(yè)。相對(duì)于發(fā)送數(shù)據(jù),數(shù)據(jù)的接收更為復(fù)雜,其過(guò)程大致可分為三個(gè)步驟:;,進(jìn)行CRC校驗(yàn),正確則接收,否則丟棄:,送到相應(yīng)的處理模塊。本節(jié)注重介紹主控節(jié)點(diǎn)是如何接收數(shù)據(jù)包并如何通過(guò)單片機(jī)實(shí)現(xiàn)各種功能。 while(i) { uchartodectoseg(date)。//最后一位顯示攝氏度符號(hào)Creturn seg。seg[n]=x00。//取十位x=xx%10。//取百位xx=unm%100。}uchar * uchartodectoseg(uchar unm){uchar x00,xx,x0,x,n。uchar seg[4]={0}。具體的是:從正面看,數(shù)碼管有引腳的一面向下,按逆時(shí)針為:12:下面一排是1到6,上面一排是7到12,具體如下;1af23b(上排),edpcg4(下排)其中1234為位選,p為點(diǎn)。在輪流顯示過(guò)程中,每位元數(shù)碼管的點(diǎn)亮?xí)r間為1~2ms,由于人的視覺(jué)暫留現(xiàn)象及發(fā)光二極體的余輝效應(yīng),盡管實(shí)際上各位數(shù)碼管并非同時(shí)點(diǎn)亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示資料,不會(huì)有閃爍感,動(dòng)態(tài)顯示的效果和靜態(tài)顯示是一樣的,能夠節(jié)省大量的I/O埠,而且功耗更低。B、動(dòng)態(tài)顯示驅(qū)動(dòng): 數(shù)碼管動(dòng)態(tài)顯示介面是單片機(jī)中應(yīng)用最為廣泛的一種顯示方式之一,動(dòng)態(tài)驅(qū)動(dòng)是將所有數(shù)碼管的8個(gè)顯示筆劃a,b,c,d,e,f,g,dp 的同名端連在一起,另外為每個(gè)數(shù)碼管的公共極COM增加位元選通控制電路,位元選通由各自獨(dú)立的I/O線控制,當(dāng)單片機(jī)輸出字形碼時(shí),所有數(shù)碼管都接收到相同的字形碼,但究竟是那個(gè)數(shù)碼管會(huì)顯示出字形,取決于單片機(jī)對(duì)位元選通COM端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開(kāi),該位元就顯示出字形,沒(méi)有選通的數(shù)碼管就不會(huì)亮。靜態(tài)驅(qū)動(dòng)的優(yōu)點(diǎn)是編程簡(jiǎn)單,顯示亮度高,缺點(diǎn)是占用I/O埠多,如驅(qū)動(dòng)5個(gè)數(shù)碼管靜態(tài)顯示則需要58=40根I/O埠來(lái)驅(qū)動(dòng),要知道一個(gè)89S51單片機(jī)可用的I/O埠才32個(gè)呢。A、靜態(tài)顯示驅(qū)動(dòng): 靜態(tài)驅(qū)動(dòng)也稱直流驅(qū)動(dòng)。abcdefgdpVT圖314 共陽(yáng)極LED數(shù)碼管的內(nèi)部結(jié)構(gòu)原理圖共陰極LED數(shù)碼管的內(nèi)部結(jié)構(gòu)原理如圖315所示。這樣才能顯示的。led數(shù)碼管原理如圖313所示。圖312 引腳定義數(shù)碼管分為共陽(yáng)極的LED數(shù)碼管、共陰極的LED數(shù)碼管兩種。下面將介紹常用LED數(shù)碼管內(nèi)部引腳圖。LED數(shù)碼管廣泛用于儀表,時(shí)鐘,車站,家電等場(chǎng)合。共陰和共陽(yáng)極數(shù)碼管的內(nèi)部電路,它們的發(fā)光原理是一樣的,只是它們的電源極性不同而已。LED數(shù)碼管常用段數(shù)一般為7段有的另加一個(gè)小數(shù)點(diǎn),還有一種是類似于3位“+1”型。 if(get_data[1]) { beeping()。 jieshou_init()。 disp_init()。部分程序如下:define jieshouvoid jieshou_init(){ rtl8019as_setup()。 圖311 主控節(jié)點(diǎn)主程序流程圖主控節(jié)點(diǎn)要實(shí)現(xiàn)數(shù)據(jù)接收,數(shù)碼管顯示,報(bào)警三個(gè)主要功能。以太網(wǎng)控制器的特性和蜂鳴器程序設(shè)計(jì)在前面一節(jié)已經(jīng)進(jìn)行介紹,在此節(jié)將不在介紹。 } 主控節(jié)點(diǎn)主程序設(shè)計(jì)主控節(jié)點(diǎn)在通過(guò)以太網(wǎng)收到的數(shù)據(jù)包經(jīng)過(guò)以太網(wǎng)控制器進(jìn)行接受,將處理后數(shù)據(jù)傳送給單片機(jī),單片機(jī)通過(guò)P1口傳輸?shù)綌?shù)碼管進(jìn)行顯示。 //low byte counter reg00=0x3E。 reg06=0x00。 else reg04=0x46。 } if(write_dma_flag) reg04=0x40。0x01)!=0) break。0x04)==0) break。ii1000。i6。 else write_dma(0x4c00,0x3c,buffer)。 } } write_dma_flag=!write_dma_flag。i14+length。 buffer[13]=0x3c。01 buffer[6]=mynodeid[0].。0f。00。02 buffer[0]=0xf0。f0。00。 uchar xdata buffer[40]。 }temp=DMA_PORT。 } else { =temp。//RSAR0 DMA read lowadddress=0… …{temp=DMA_PORT。//start read address 0x4000reg09=0。 //寫入命令寄存器}****讀取網(wǎng)卡物理地址****void readmynodeid(){uchar data i,temp。//將底兩位移到高端 temp|=pagenumber。=0x3b。 temp=reg00。 while(i)。 RESET_PORT=temp。 while(i)。 reset_rtl8019as=0。//冷復(fù)位 reset_rtl8019as=1。//兩頁(yè)發(fā)送緩沖區(qū)使用標(biāo)志****RTL8019AS復(fù)位函數(shù)****void rtl8019as_reset(){ uint i=//存儲(chǔ)網(wǎng)卡的物理地址union ad
點(diǎn)擊復(fù)制文檔內(nèi)容
范文總結(jié)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1