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

正文內(nèi)容

基于單片機的液體點滴控制系統(tǒng)設計(編輯修改稿)

2025-02-14 14:27 本頁面
 

【文章內(nèi)容簡介】 獲/重裝觸發(fā)和方向控制)(5)~,所在引腳為21~28。P2口是一個帶內(nèi)部上拉電阻的8位雙向I/O端口。P2是通過它的輸出緩沖器驅(qū)動4個TTL的輸入。對端口寫入1時,通過其內(nèi)部的上拉電阻把端口變?yōu)楦唠娖剑琍2口在這時候可以用作輸入口。P2作為輸入口使用時,由于上拉電阻的原因,那些被外部有些引腳會有電流流過。在對Flash ROM編程以及程序校驗期間,一些高位地址和控制信號也可以由P2口進行接收。P3口可以作為一般的I/O口,這功能和其他I/O口的功能相同,不同的是還具有復用功能,P3口的復用功能如表42所示: 表42 P3口引腳的復用功能[4]引腳號功能串行輸入口即RXD串行輸出口即TXD外部中斷0外部中斷1定時器0的外部輸入即T0口定時器1的外部輸入即T1口外部數(shù)據(jù)存儲器寫選通外部數(shù)據(jù)存儲器讀選通(6)RST即9引腳。起到復位輸入的作用。RST起作用是在當輸入連續(xù)兩個機器周期以上高電平時進行復位,因此RST主要用來完成單片機的復位初始化操作。RST引腳復位高電平有效。(7)ALE即30引腳。ALE表示地址鎖存控制信號,它是訪問外部程序存儲器時,鎖存低8位地址的輸出脈沖。在一般情況下,ALE以晶振六分之一的固定頻率輸出脈沖,可用來作為外部定時器或時鐘使用。特例是,在每次訪問外部數(shù)據(jù)存儲器時,ALE脈沖將會跳過。(8)VPP即31引腳。訪問外部程序存儲器控制信號。為使能從0000H到FFFFH的外部程序存儲器讀取指令,必須接GND。注意加密方式1時,將內(nèi)部鎖定位RESET。為了執(zhí)行內(nèi)部程序指令,應該接VCC。在Flash編程期間,也接收12伏VPP電壓。(9)PSEN即29引腳。外部程序存儲器選通信號。當STC89C52RC從外部程序存儲器執(zhí)行外部代碼時,在每個機器周期被激活兩次,而訪問外部數(shù)據(jù)存儲器時,將不被激活。(10)XTAL1即19引腳。它是振蕩器反相放大器和內(nèi)部時鐘發(fā)生電路的輸入端。(11)XTAL2即18引腳。它是振蕩器反相放大器的輸入端。 單片機主機系統(tǒng)設計單片機主機系統(tǒng)電路主要由時鐘電路和復位電路構成。如圖43所示。時鐘電路:采用內(nèi)部震蕩的方式,結構簡單,所得的時鐘信號穩(wěn)定,采用并聯(lián)諧振電路分別用電容C2和C3與單片機的XTAL1和XTAL2相連。復位電路:本設計采用的是手動復位和上電復位組合方式,開始時RST處于低電平而正常工作,當按鍵按下的時候,開關導通(是通過上電復位實現(xiàn),每次上電便進行復位)這個時候電容兩端形成了一個回路,電容被短路,所以在按鍵按下之后,電容開始釋放之前充的電量。復位后系統(tǒng)將I/O口寄存器置為0FFH,堆棧指針SP置為07H,SBUF內(nèi)置為不定值,其余的寄存器全部清0。 圖43 單片機主機系統(tǒng)電路 按鍵輸入電路按鍵電路主要設計成4個按鈕,如圖44所示,按鈕的功能為:KSET按鈕:使系統(tǒng)進入SET界面 KUP按鈕:設置異常報警的時間上調(diào) KDN按鈕:設置異常報警的時間下調(diào)KON按鈕:設置是否啟動報警功能圖44 按鍵部分按鈕的實物圖如圖45所示: 圖45 按鈕 液晶顯示 LCD1602介紹LCD1602是工業(yè)字符型液晶,它能同時顯示32個字符,內(nèi)涵復位電路,可以進行清屏、字符閃爍、光標閃爍、顯示移位等多種功能。LCD實物圖如圖46和47所示: 圖46 LCD1602實物圖正面 圖47 LCD1602實物圖反面LCD1602的引腳如圖48所示:圖48 LCD1602引腳圖由圖48所示,LCD1602有16個引腳,16個引腳各具有不同的功能,以下是16個引腳的不同功能:第1腳:VSS,是電源地第2腳:VCC,是5V電源正極第3腳:V0,為液晶顯示器對比度調(diào)整端,可以接正電源和地電源,分別得到對比度最低以及對比度最高。第4腳:RS為寄存器選擇,分為高電平和低電平,高電平時作為選擇數(shù)據(jù)寄存器,低電平時作為選擇指令寄存器。第5腳:RW為讀寫信號線,分為高電平和低電平,高電平和低電平分別表示讀和寫操作。第6腳:E端,為使能信號端,高電平時讀取信息,負跳變時執(zhí)行指令。第7~14腳:D0~D7,為8位雙向數(shù)據(jù)傳輸端,用來傳輸顯示的數(shù)據(jù)。第15~16腳:空腳或背燈電源,15腳表示背光正極,16腳表示背光負極[5]。LCD1602顯示屏的內(nèi)部指令有11條,11條指令代表不同的功能,它的指令表如圖49所示: 圖49 LCD1602內(nèi)部指令表 指令1:清除顯示指令,返回00H指令2:復位光標的指令,光標返回到00H指令3:光標以及顯示模式的設置(主要控制光標以及顯示文字的移動方向)指令4:表示顯示開關控制??偣埠?個部分,D、C和B都有低電平和高電平之分,D、C和B分別表示控制整體顯示、控制光的開關以及是否閃爍。高電平時,D表示開顯示,C表示開光標,B表示閃爍。低電平時D表示關顯示,C表示關光標,B表示不閃爍。指令5:光標以及顯示的移位(高低電平分別移動文字及光標)指令6:設置功能的命令(也有高低電平之分)指令7:字符發(fā)生器隨機存儲器的地址設置指令8:雙倍數(shù)據(jù)速率的動態(tài)隨機存取存儲器地址的設置指令9:顯示是否忙碌,高低平表示忙碌,低電平表示空閑,而且高電平時雙行顯示N,低電平時單行顯示F指令10:寫入數(shù)據(jù)指令指令11:讀出數(shù)據(jù)指令 LCD1602與52單片機相連接 LCD模塊以及單片機模塊,分別如圖410,411所示: 圖410 LCD模塊 圖411 單片機與LCD相連部分 LCD1602顯示設計 LCD內(nèi)部地址如表43所示: 表43 LCD1602內(nèi)部地址 滴速系統(tǒng)顯示電路(如圖412所示): LCD1602主要顯示液體滴速,累計滴數(shù),以及報警是否打開。 圖412系統(tǒng)顯示電路 報警電路 報警電路采用蜂鳴器報警,如圖413所示,對異常狀況進行報警。報警電路原理圖如圖414 圖413 蜂鳴器實物圖 圖414 報警電路原理圖圖中三極管主要是做驅(qū)動用的。因為單片機的IO口驅(qū)動能力不夠讓蜂鳴器發(fā)出聲音,所以我們通過三極管放大驅(qū)動電流,從而可以讓蜂鳴器發(fā)出聲音,當輸出為高電平,三極管導通,集電極電流通過蜂鳴器讓蜂鳴器發(fā)出聲音,當輸出低電平時,三極管截止,沒有電流流過蜂鳴器,所以就不會發(fā)出聲音。 光電傳感器電路本次設計主要采用的是型號為CX24的光電傳感器,該光電傳感器性能良好,因此適合用于該畢業(yè)設計,CX24光電傳感器的特點是:(1)小型體積(2)2個傳感器可貼近安裝(3)防水效果好(4)超群的穿透力,可不受灰塵和污垢的影響(5)受外部光線的影響比較小CX24光電傳感器實物圖如圖415所示: 圖415 CX24光電傳感器實物圖光電傳感器與單片機相連原理圖如圖416所示: 圖416 光電傳感器與單片機相連原理圖光電傳感器主要與單片機的中斷口相連,當一滴液體進過光電傳感器便產(chǎn)生一次中斷,并送入到單片機的INT0口,便產(chǎn)生一次中斷然后開始計算液體點滴的速度,每一次中斷就計算一次,如此循環(huán)下去。第五章 液體點滴速度監(jiān)控裝置系統(tǒng)軟件設計圖51是系統(tǒng)的主程序流程圖,該系統(tǒng)處于循環(huán)狀態(tài)同時,然后通過單片機的定時器/計數(shù)器以及相關的內(nèi)部計算顯示當前液滴的速度以及累計滴數(shù),通過判斷還可以對異常狀況實現(xiàn)報警處理。 圖51 系統(tǒng)主程序流程圖把初始的液滴速度、累計滴數(shù)設置為零,以及把報警設置為開狀態(tài),把異常報警間隔設置為1000(單位為10ms) include uint32 ulCount = 0。 // 累計多少滴uint16 uiPPM = 0。 // 滴/minuint8 ucBuzzerOn = 1。 // 報警ONuint16 uiBuzzerTimer = 1000。硬件中斷又分為外部中斷和內(nèi)部中斷,外部中斷一般是指由計算機外部設備發(fā)出的中斷請求,比如:鍵盤的中斷、打印機的中斷、定時器的中斷等,通過光電傳感器以及定時器產(chǎn)生的外部中斷服務子程序流程圖,如圖52所示: 圖52 外部中斷服務子程序流程圖該外部中斷用來計算液體點滴的速度,以及累計滴數(shù),以及結果輸出等部分工作。中斷程序代碼如下:①初始化中斷代碼如下:void InterruptInit(uint8 ucInterrupt, uint8 ucType){ if (ucInterrupt == 0) { IT0 = ucType。 EX0 = 1。 } else if (ucInterrupt == 1){ IT1 = ucType。 EX1 = 1。 } EA = 1。}②關閉中斷程序代碼如下:void CloseInterrupt(uint8 ucInterrupt){ if (ucInterrupt == 0) { EX0 = 0。 } else if (ucInterrupt == 1) { EX1 = 0。 }}③計算速度代碼,以及滴數(shù)的代碼:void INT_0(void) interrupt 0 { ulCount++。 uiPPM = 6000 / GetTimerTick(0)。 SetTimerTick(0, 0)。 }④中斷次數(shù)計算的代碼如下:uint16 GetTimerTick(uint8 ucTimer){ if (ucTimer = 2) { uint16 tmp = uiTimerTick[ucTimer]。 while (tmp != uiTimerTick[ucTimer]){tmp = uiTimerTick[ucTimer]。} return tmp。 } else { return 0。 }} 其中中斷一次的時間為10ms。 按鍵程序本次設計的4個按鈕分別實現(xiàn)進入設置界面、異常報警時間上調(diào)、異常報警時間下調(diào)、以及是否異常報警的功能。通過判斷按鍵值確認不同的按鍵,按鍵的流程圖53如下所示:圖53 按鍵流程圖按鍵代碼如下。uint8 GetKey(uint8 type){ uint8 ucKeyValue = 0。 static uint8 s_ucFastKey = 0。 ucKeyValue = ScanKey()。 if (ucKeyValue == 0){s_ucFastKey = 0。 return 0。} KeyDelay1ms(10)。 ucKeyValue = ScanKey()。 if (ucKeyValue == 0){s_ucFastKey = 0。 return 0。} if BELL_ENABLE == 1 BELL_ON()。 KeyDelay1ms(10)。 BELL_OFF()。endif if (type == 0) { s_ucFastKey = ucKeyValue。 while (s_ucFastKey != 0) { s_ucFastKey = ScanKey()。 ucKeyValue |= s_ucFastKey。 } s_ucFastKey = 0。 return ucKeyValue。 } else { uint16 uiDelay = 0。 if (ucKeyValue != s_ucFastKey){s_ucFastKey = 0。} if (s_ucFastKey == 0) { uiDelay = 0。 while (ScanKey() != 0) { ucKeyValue |= ScanKey()。 KeyDelay1ms(1)。 uiDelay++。 if (uiDelay FAST_KEY_DEL
點擊復制文檔內(nèi)容
畢業(yè)設計相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1