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

正文內容

基于51單片機的紅外計數(shù)系統(tǒng)設計畢業(yè)論文-在線瀏覽

2024-08-04 16:35本頁面
  

【正文】 不依賴于機器硬件系統(tǒng),基本上不做修改就可根據(jù)單片機的不同較快地移植過來。C語言編寫的程序并不能被單片機直接執(zhí)行還需要編譯為單片機可執(zhí)行的機器語言。目前在單片機開發(fā)中普遍都是使用KEIL C51來進行編譯。其中系統(tǒng)采用現(xiàn)在已經非常普遍的PC機作為上位機,這樣對該顯示系統(tǒng)的硬件要求便降低了,增加了系統(tǒng)的通用性。然后通過通信系統(tǒng),上位機能夠接受并顯示下位機傳輸?shù)膬热?,同時上位機也能夠向下位機發(fā)送清零命令以及最大飽和人數(shù)。經過查閱資料了解到,VB是Visual Basic的簡寫,是可視化的編程語言,是一種簡單、高效地開發(fā)應用軟件的工具,可用于開發(fā)Windows環(huán)境下的各類應用程序,且簡單易學、效率高。 硬件平臺設計整個硬件系統(tǒng)主要由上位機,通信系統(tǒng),單片機系統(tǒng),譯碼電路,顯示驅動電路和紅外對射傳感器六部分組成。將人的進出信號傳給單片機??赏ㄟ^上位pc機對下位機進行控制。根據(jù)硬件的功能結構圖選取合適器件,器件不但要求能實現(xiàn)所要求的功能還要能兼容至整個系統(tǒng)之中。該系統(tǒng)所要實現(xiàn)的功能和要求有以下幾點:(1)數(shù)碼管顯示要清晰。(3)譯碼電路的高低電平的區(qū)分能力以及譯碼的輸入輸出頻率必須滿足單片機以及驅動電路的要求。(5)單片機由ISP下載線下載程序和供電,可不設立專用供電電源。 控制單元設計 控制單元是整個顯示系統(tǒng)的核心,該系統(tǒng)中采用51系列單片機為核心器件,用來和上位機通信發(fā)送人員進出信息和處理上位機發(fā)送的控制指令。在51系列單片機中選定一款合適的機型來作為控制單元的主控芯片。還有就是為了提高對人流進出情況的判斷速度,單片機的執(zhí)行速度要盡可能的快。它集Flash程序存儲器既可在線編程(ISP)也可用傳統(tǒng)方法進行編程及通用8位微處理器于單片芯片中,ATMEL公司的功能強大,低價位AT89S51單片機可提供許多高性價比的應用場合,可靈活應用于各種控制領域[6]。8KB在系統(tǒng)編程(ISP)Flash閃速存儲器全靜態(tài)工作模式:0Hz-33MHz32個可編程I/O口線全雙工串行UART通道控制電路設計中采用的是單片機系統(tǒng),該系統(tǒng)必須要是工作在一個最小系統(tǒng)(指單片機的可以的最小配置系統(tǒng))。根據(jù)功能選擇一定的單片機端口添加外圍的器件,具體電路如圖所示。具體接法為:,,RCLK,SRCLK端,以產生移位脈沖并使串行數(shù)據(jù)并行輸出。P2口作為檢測人員進出狀態(tài)的信號接口和控制飽和警報燈是否亮滅的接口。由于P3口是特殊功能口,在該系統(tǒng)中基本是采用其第二功能。 譯碼電路設計譯碼電路的功能是為了解決單片機I/O端口不足。同時74HC595,也是串行轉為并行的重要元器件。這需要同時給八段數(shù)碼管的各個接口賦值,74HC595元器件可以串行輸入,然后鎖存。74HC595還有級聯(lián)。具體電路如圖24所示:圖24 譯碼電路74HC595 簡介以及特點簡述:輸出端的驅動電流限定值:25mA;低輸入電流:1 mA最大8位串行輸入、并行輸出移位寄存器與存儲寄存器工作電壓范圍:為2V到6V 移位寄存器具有直接清除 級聯(lián)正常使用時的典型參數(shù):電源電壓(Vcc):2~6 V直流輸入/ 輸出電壓:0~Vcc V 輸入上升/ 下降延時:VCC = V 1000 ns VCC = V 500 nsVCC = V 400 ns74HC595時序圖和功能表見如下圖25和表22所示:圖25 74HC595時序圖表22 74HC595功能表 驅動電路設計 為了使數(shù)碼管穩(wěn)定,持續(xù)的點亮,必須要加強單片機I/O口的驅動能力。單片機溫度過高時溫度過高時,還會影響其運算速度。具體接法如下圖26所示:圖26 驅動器件ULN2803的接法ULN2803是由8個NPN達林頓晶體管組成的陣列,特別適用于低邏輯電平數(shù)字電路(諸如TTL, CMOS或PMOS/NMOS)和較高的電流/電壓要求之間的接口,廣泛應用于計算機,工業(yè)用和消費類產品中的燈、繼電器、打印錘或其它類似負載中。該電路為反向輸出型,即輸入低電平電壓,輸出端才能導通工作ULN2803的最大額定值如下表所示:表23 ULN2803最大額定值參數(shù)符號數(shù)值單位輸出電壓VO50V輸入電壓VI30V集電極電流連續(xù)IC500mA基極電流連續(xù)IB25mA操作環(huán)境溫度范圍TA0 to +70℃儲存溫度范圍Tstg– 55 to +150℃結溫TJ125℃ULN2803引腳圖如圖27所示,和內部結構如圖28所示:圖27 ULN2803引腳圖ULN2803引腳功能簡介:18引腳:輸入端1118引腳:輸出端9引腳:地端10引腳:電源+圖28 內部結構圖 通信系統(tǒng)硬件設計 為方便單片機下位機程序的燒錄和與上位機進行串口通信,分別采用了ISP(insystem programming 在線系統(tǒng)編程)接口和RS232接口。AT89S52單片機支持ISP接口燒寫程序,所以在本設計最小系統(tǒng)里加入了ISP接口,其ISP實現(xiàn)采用標準SPI接口(串行外圍設備接口SPI(serial peripheral interface)總線技術)。AT89S52單片機具有全雙工串行UART通道,支持單片機進行數(shù)據(jù)的串行傳輸。但單片機串行口采用正邏輯TTL電平,即數(shù)字“1”時為+5V;數(shù)字“0”時為5V,所以單片機與計算機不能直接相連進行通信,必須將RS232C與TTL電平進行轉換。在該顯示系統(tǒng)中,MAX232是最重要的硬件組成部分。紅外發(fā)光二極管發(fā)出穩(wěn)點持續(xù)的定向紅外光線,照射紅外接收二級管,此時紅外接收二極管處于導通狀態(tài)。其紅外接收管在兩種狀態(tài)下的正極電壓分別為5V和0V,單片機通過檢測這兩種狀態(tài),判斷有無人通過,具體接法如下圖211所示,以分別檢測進和出。光譜功率分布為中心波長830~950nm,半峰帶寬約40nm左右。紅外線發(fā)光二極管的發(fā)射強度因發(fā)射方向而異。一般使用紅外線發(fā)光二極管均附有透鏡,使其指向性更靈敏。光敏二極管管芯是一個具有光敏特性的PN結,它被封裝在管殼內。當無光照時,電路中有很小的反向飽和漏電流,一般為1 * 108 1X10 9A(稱為暗電流),此時相當于光敏二極管截止。光電流通過負載RL時,在電阻兩端將得到隨人射光變化的電壓信號。 顯示電路設計本設計的顯示電路部分包括三個共陰極的兩位八段數(shù)碼管和一個LED飽和報警燈。LED燈亮時,表示超過最大飽和人數(shù)。段選接口控制數(shù)碼管的8個LED燈的亮滅來控制不同的字形輸出,位選接口則控制哪個數(shù)碼管顯示字形,具體結構如下圖211所示。飽和報警LED采用普通的發(fā)光二極管。此階段中根據(jù)對任務書要求分析的結果,先對硬件系統(tǒng)進行設計,其中包含對所需原件分析,從價格性能以及使用難易度情況的角度,選擇最合適的原件。軟件設計一般分為總體設計和詳細設計。此階段是將軟件設計的結果轉化為上位機以及下位機運行的程序代碼。以保證程序的可讀性、易維護性。在軟件設計完成之后要進行嚴密的測試,一發(fā)現(xiàn)軟件在整個軟件設計過程中存在的問題并加以糾正。然后做出實物,焊接好電路板,直接燒錄測試程序進行測試。原因之后章節(jié)陳述。編輯語言選用了vb語言。上位機程序與下位機程序通過串口程序模塊相互通信。下位機主程序流程圖31如下所示: 圖31下位機主程序流程圖 Keil 開發(fā)環(huán)境下位機程序即單片機內的程序,這里我們選用經典的Keil環(huán)境,使用C語言進行開發(fā)。Keil提供了包括C編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調試器等在內的完整開發(fā)方案,通過一個集成開發(fā)環(huán)境(uVision)將這些部分組合在一起。MCS51單片機的五個中斷源兩種類型:一類是外部中斷源;另一類是內部中斷源,包括兩個定時器/計數(shù)器(T0和T1)的溢出中斷和串行口的接收和發(fā)送中斷。編程時通過設置其狀態(tài)來管理中斷系統(tǒng)。其控制位分布如表。ES、ET、EXET0、EX0為對應的串行口中斷、定時器/計數(shù)器1中斷、外部中斷1中斷、定時器/計數(shù)器0中斷、外部中斷0中斷的中斷允許位。如表31所示:表31 中斷允許寄存器格式D7D6D5D4D3D2D1D0EA——ESET1EX1ET0EX0由于本次設計只是用了串口中斷和定時/計數(shù)器0中斷,指令為 ES=1。還需打開全局中斷位,指令為EA=1。程序設計時還要考慮到中斷優(yōu)先級的問題。中斷優(yōu)先級寄存器在特殊功能寄存器中, IP用來設定各個中斷源屬于兩級中斷的哪一級。單片機復位時IP全部被清零。設置串口工作方式1,波特率4800,計算可得計數(shù)器初值的十六進制表示為0XF3。程序開始進入中斷等待,當PC機向單片機發(fā)送數(shù)據(jù)時產生中斷接收允許位RI置1,將SBUF(緩沖寄存器)中的值輸入到暫存器中進行數(shù)據(jù)處理。每回接收一個字節(jié)。第二個字節(jié)存有最大飽和人數(shù)信息(收到的數(shù)據(jù)保存在Maxnum中)。接收完上位機發(fā)來的控制命令數(shù)據(jù)之后,下位機便會自行處理數(shù)據(jù),然后執(zhí)行。為了減小軟件的修改和優(yōu)化難度,先把各子程序寫為一個可單獨執(zhí)行的完整程序。此段程序的核心代碼為:串口初始化:TH1=0xf3。 //設置定時器初值PCON=0x80。SM1=1。 EA=1。數(shù)據(jù)的接收以及發(fā)送程序核心代碼:void UART_SER (void) interrupt 4 //串行中斷服務程序{ if(RI) //判斷為接收 { RI=0。 //關閉定時器中斷(此中斷程序功能實時掃描數(shù)碼管的顯示數(shù)據(jù)) if(ZDflag==0) { QL=SBUF。 } else { Maxnum=SBUF。 TR0=1。 //發(fā)送標志位清零 }} 數(shù)碼管顯示程序設計8段數(shù)碼管屬于LED發(fā)光器件的一種。8段數(shù)碼管又稱為8字型數(shù)碼管,分為8段:A、B、C、D、E、F、G、P。數(shù)碼管常用的有10根管腳,每一段有一根管腳,另外兩根管腳為一個數(shù)碼管的公共端,兩根之間相互連通,本設計選用2位共陰8段數(shù)碼管。首先介紹靜態(tài)顯示方法。靜態(tài)顯示的數(shù)據(jù)穩(wěn)定,占用的CPU時間少。這樣單片機只要把要顯示的字形代碼發(fā)送到接口電路,該字段就可以顯示發(fā)送的字形。另一種方法是動態(tài)掃描顯示。CPU向字段輸出口送出字形碼時,所有顯示器接收到相同的字形碼,但究竟是哪個顯示器亮,則取決于COM段,而這一段是由I/O控制的,由單片機決定何時顯示哪一位了。在輪流點亮掃描過程中,每位顯示器的點亮時間極為短暫,但由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余暉效應,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù)。在此設計中,每對數(shù)碼管段選數(shù)據(jù)需要八位,位選需要兩位。即共需要兩個八位字節(jié)的字。由于本次設計中采用了定時/計數(shù)器中斷來進行數(shù)碼管的動態(tài)掃描,所以在調節(jié)好定時器時間情況下可以做到實時的顯示進出圖書館的人流量情況。由于需要動態(tài)掃描,即不斷掃描實時更新數(shù)據(jù),所以在數(shù)碼管掃描中斷函數(shù)中需要從新初始化定時計時器,使其從新開始計時。數(shù)碼管顯示中斷程序流程如33圖所示: 33圖數(shù)碼管顯示中斷程序流程圖數(shù)碼管顯示中斷子程序以及數(shù)據(jù)顯示鎖存子程序的源程序為:void t0() interrupt 1 //數(shù)碼管掃描{ TR0 = 0。 TL0=(65535500)%256。 Ser_IN([a])。 Par_OUT()。 if(a==6) {a=0。for(i=0。i++) {SH_CP=0。0x01。 //講數(shù)據(jù)的次低位移到最低位,為下一次取數(shù)據(jù)做準備SH_CP=1。 //先置為低ST_CP=1。程序的流程為:,傳感器會把人進出信號傳給單片機;即人通過入口時,變量RedIn值為0,同時程序檢測RedIn,當其值為0時給變量k賦值39。;即人通過入口時,變量RedOut值為0,同時程序檢測RedOut,當其值為0時給變量k賦值39。;最后返回k值;標題為檢測紅外收發(fā)器是否有變化的子函數(shù)指令為下:unsigned char RedScan() //檢測紅外收發(fā)器是否有變化{ unsigned char k = 39。 if ( RedIn == 0 ) k = 39。 if ( RedOut == 0 ) k = 39。 return k。\039。當有人進入時,即k的值為39。時,IN(其值代表進入的人數(shù),初值為0)的值就會自加1,STAND(其值代表圖書館內的現(xiàn)有人數(shù),初值為0)的值就會自加1,向上位機傳輸增加1人的命令;當有人進入時,即k的值為39。時,IN(其值代表進入的人數(shù),初值為0)的值就會自減1,STAND(其值代表圖書館內的現(xiàn)有人數(shù),初值為0)的值就會自減1,向上位機傳輸減少1人的命令。+39。 STAND++。 //向上位機傳輸增加1人的命令 break。39。 STAND。 //向上位機傳輸減少1人的命令 break。 },OUT,STAND進行處理,使收集到的人流量情況裝換成數(shù)碼管顯示所需的數(shù)據(jù)類型。一個為確定數(shù)碼管編號的變量i,給i賦值為0,即選擇編號為in的數(shù)碼管,給s賦值為進入圖書館的人數(shù),隨即處理該人數(shù),分別算出其各位數(shù)和十位數(shù),然后將可供數(shù)碼管顯示的顯示信息從數(shù)組tab中調出,存入定義的緩存數(shù)組disbuff(由于有六個數(shù)碼管需要顯示,所以定義disbuff有6個元素)第一個元素和第二個元素中;當處理人離開圖書館的人數(shù)變量OUT時,給i賦值為4,即選擇編號為out的數(shù)碼管,給s賦值為離開圖書館的人數(shù),隨即處理該人數(shù),分別算出其各位數(shù)和十位數(shù),然后將可供數(shù)碼管顯示的顯示信息從數(shù)組tab中調出,存入定義的緩存數(shù)組disbuff
點擊復制文檔內容
法律信息相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1