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

正文內(nèi)容

基于51單片機(jī)的蓄冰系統(tǒng)控制電路設(shè)計(jì)-大學(xué)畢業(yè)論文畢業(yè)設(shè)計(jì)學(xué)位論文范文模板參考資料-預(yù)覽頁(yè)

 

【正文】 的設(shè)計(jì) 方案,采取整體到 局部的模塊化設(shè)計(jì)思路深入的完成各端口的程序設(shè)計(jì)。按鍵處理 子程序是對(duì)按鍵鍵值進(jìn)行確定,并根據(jù)鍵值判斷不同的模式,在不同的模式下進(jìn)行相應(yīng)的處理,處理完畢后送 LED數(shù)碼管進(jìn)行顯示。 DS18B20 測(cè)溫 程序 。 LED 顯示子程序 。其 內(nèi)含有一個(gè)實(shí)時(shí)時(shí)鐘 /日歷和 31 字節(jié)靜態(tài) RAM, 通過(guò)簡(jiǎn)單的串行接口與單片機(jī)進(jìn)行通信 。 DS1302 與單片 機(jī)之間能簡(jiǎn)單地采用同步串行的方式進(jìn)行通信 , 僅需用到三個(gè)口線(xiàn) :( 1) RES 復(fù)位 ( 2) I/O 數(shù)據(jù)線(xiàn) ( 3) SCLK 串行時(shí)鐘 。為了實(shí)現(xiàn)數(shù)據(jù)傳送,首先把 RST 置為高電平,然后單片機(jī)以一定的時(shí)序產(chǎn)生 SCLK 移位時(shí)鐘,把地址和命令字節(jié)信息通過(guò) I/O 線(xiàn)傳給移位寄存器。 DS1302 每一次數(shù)據(jù)傳送由命令字節(jié)初始化。 時(shí)鐘 /日歷包含在 7個(gè)寫(xiě) /讀寄存器內(nèi),寄存器內(nèi)的數(shù)據(jù)都是 BCD 碼表示的。秒寄存器的位 7為時(shí)鐘暫停位,當(dāng)此位設(shè)置為邏輯 1 時(shí),時(shí)鐘振蕩器停止, DS1302 被置為低功率備份方式;當(dāng)此位為 0時(shí),時(shí)鐘將啟動(dòng)。 綜上,本部分 通過(guò)對(duì) DS1302 進(jìn)行相應(yīng)的設(shè)置及處理,使時(shí)鐘數(shù)據(jù)在時(shí)鐘信號(hào)控制下通過(guò) DS1302 的 I/O口送入單片機(jī) 進(jìn)行處理和顯示。 //實(shí)時(shí)時(shí)鐘數(shù)據(jù)線(xiàn)引腳 開(kāi) 始 初始化DS1302 獲取時(shí)鐘 數(shù) 據(jù) 數(shù) 據(jù)處理 LED 顯示 7 sbit DS1302_RST = P1^2。 unsigned char Minute。 unsigned char Month。 DS18B20 是單線(xiàn)數(shù)字溫度傳感器,它可直接將被測(cè)溫度轉(zhuǎn)化成串行數(shù)字信號(hào),以供單片機(jī)處理,它具有微型化、低功耗、高性能、抗干擾能力強(qiáng)等優(yōu)點(diǎn)。初始化過(guò)程如下:主機(jī)通過(guò)拉低單線(xiàn) 480us 以上,產(chǎn)生復(fù)位脈沖,然后釋放該線(xiàn),進(jìn)入 Rx 接收模式。( 2) ROM 操作命令。在成功執(zhí)行了 ROM 操作命令之后,才可以使用內(nèi)存操作命令。 在單線(xiàn) DQ上存在復(fù)位脈沖、應(yīng)答脈沖、寫(xiě)‘ 0’、寫(xiě)‘ 1’、讀‘ 0’、讀‘ 1’幾種信號(hào),其中除了應(yīng)答脈沖之外,均由主機(jī)產(chǎn)生。 寫(xiě)‘ 0’時(shí), DQ線(xiàn)必須被拉至低電平并至少保持 60us 的時(shí)間。 所有讀寫(xiě)時(shí)隙至少需要 60us,且每?jī)蓚€(gè)獨(dú)立的時(shí)隙之間需要 1us 的恢復(fù)時(shí)間。溫度高字節(jié)( MS Byte)高 5位是用來(lái)保存溫度的正負(fù)(標(biāo)志為 S的 bit11~ bit15),高字節(jié)( MS Byte) 9 低 3位和低字節(jié)來(lái)保存溫度值( bit0 ~ bit10)。處理過(guò)后把 DS18B20 的溫度 Copy 到單片機(jī)的 RAM中,里面已經(jīng)是溫度值的 Hex 碼了,然后轉(zhuǎn)換 Hex碼到 BCD 碼,分別把小數(shù)位,個(gè)位,十位的 BCD 碼存入 RAM 中。本部分延時(shí)程序如下: void DelayUs(uint num) // 延時(shí)函數(shù) { 開(kāi) 始 初始化 DS18B20 應(yīng)答脈沖 ? 啟動(dòng)溫度轉(zhuǎn) 換 溫度 處理 LED 顯示 10 while( num )。由于讀回的數(shù)據(jù)是 16 位的 ,所以分讀高位和低位。 delay (1)。 // LSB 低 8 位 b = tmpread()。 //負(fù)溫度處理( DS18B20 的負(fù)溫度是正的反碼,即將它取反 +1,就得到正的溫度) y1=a4。 Tflag=0。 Tflag=1。 delay(10)。 AD7810 是美國(guó)模擬器件公司( Analog Devices)生產(chǎn)的一種低功耗 10 位高速串行 A/D轉(zhuǎn)換器。在自動(dòng)低功耗模式下,該器件在轉(zhuǎn)換吞吐率為 1kSPS 時(shí)的功耗僅為 27181。在 CONVST 端輸入一個(gè)負(fù)脈沖,其下降沿將啟動(dòng)一次轉(zhuǎn)換。此后,在每一個(gè) SCLK 脈沖的上升沿,數(shù)據(jù)按由高到低的原則(首先發(fā)送 DB9,最后發(fā)送 DB0)依次出現(xiàn)在 DOUT上。 當(dāng) AD7810 在低功耗 模式下 ,啟動(dòng)信號(hào) CONVST 為低電平時(shí),器件處于低功耗休眠狀態(tài)。s。自動(dòng)低功耗模式是 AD7810 是一大特 點(diǎn) ,一般當(dāng)數(shù)據(jù)吞吐率小于 100kSPS 時(shí),應(yīng)使器件工作在此模式下。 Pt100 是一種金屬測(cè)溫電阻。 惠斯通 電橋的原理如圖 所示,它是由電阻 R R R3和待測(cè)電阻 Rx 以及用導(dǎo)線(xiàn)連成的封閉四邊形 ABCDA 組成,在對(duì)角線(xiàn) AC兩端接電源,在對(duì)角線(xiàn) BD 兩端接電壓表 V。 電橋平衡時(shí)( V = 0),表明 B、 D 兩點(diǎn)的電勢(shì)相等,由此得到 UAB= UAD, UBC = UDC, 亦即: I1R1 = I2R2, IxRx = IRR,同時(shí)有: I1 = Ix , I2 = IR ; R2Rx=RR1。 通過(guò)測(cè)量 A、 B 兩點(diǎn)電壓差來(lái)計(jì)算 Rx阻值大小。本部分程序是控制 AD 進(jìn)行模數(shù)轉(zhuǎn)換。程序流程圖如圖 所示。 //定義數(shù)據(jù)信號(hào)接口 define uint unsigned int define uchar unsigned char 開(kāi) 始 AD7810初始化 啟動(dòng) AD 進(jìn)行轉(zhuǎn)換 數(shù)據(jù)處理 求出 RX 數(shù)據(jù)處理求出溫度 溫度是否高于 4 攝氏度或低于 攝氏度 加大高溫水或減小低溫水流量 加大低溫水或減小高溫水流量 14 uint R1,R2。 void Init_AD7810() //初始化 AD { sclk=0。 convst=1。i++) //送數(shù) { sclk=1。 y=5*x/1024。 m=i/j。 if(dsdsamp。amp。dsds) a=(dsds100)*10/。 if(dsds=amp。 } endif LED顯示程序設(shè)計(jì) 數(shù)碼管按段數(shù)分為七段數(shù)碼管和八段數(shù)碼管,八段數(shù)碼管比七段數(shù)碼管多一個(gè)發(fā)光二極管單元(多一個(gè)小數(shù)點(diǎn)顯示 );按能顯示多少個(gè) “8” 可分為 1 位、 2 位、 4位等等數(shù)碼管;按發(fā)光二極管單元連接方式分為共陽(yáng)極數(shù)碼管和共陰極數(shù)碼管。共陰數(shù)碼管是指將所有發(fā)光二極管的陰極接到一起形成公共陰極 (COM)的數(shù)碼管。 靜態(tài)顯示 。 動(dòng)態(tài)顯示 。 本設(shè)計(jì)采用 8段共陰 LED 數(shù)碼管顯示,程序 流程圖 如 圖 所示。 //74hc573 控制位 , 高為輸出 , 地為鎖存 uchar code segcode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x80,0x39,0x40}。 //LED 數(shù)碼管位選段選通 xuanwei2=0。n)。 xuanwei2=1。n)。 xuanwei2=0。n)。 xuanwei2=1。n)。 xuanwei2=0。n)。 xuanwei2=0。n)。利用矩陣式鍵盤(pán),能夠用較少的端口實(shí)現(xiàn)較多的按鍵。 由圖 所示 ,單片機(jī)的鍵盤(pán)電路由 、 、 、 引腳和 按鍵 S1S4 相連組成。由于硬件電路中沒(méi)有去抖動(dòng)功能, 所以 在設(shè)計(jì)中采用 軟件去抖動(dòng),根據(jù)抖動(dòng)特性,在第一次檢測(cè)到按鍵按下后,執(zhí)行一段延時(shí)子程序后再次確認(rèn)該按鍵是否按下,從而消除抖動(dòng)的影響。 主要對(duì)設(shè)計(jì)中所使用的芯片的基本資料以及程序編寫(xiě)進(jìn)行了介紹。 由于本人水平有限,只是對(duì)此展開(kāi)了理論研究設(shè)計(jì),未能進(jìn)行實(shí)際測(cè)試和制作工作。 //實(shí)時(shí)時(shí)鐘數(shù)據(jù)線(xiàn)引腳 sbit DS1302_RST = P1^2。 unsigned char Minute。 unsigned char Month。 ACC = d。 //相當(dāng)于匯編中的 RRC DS1302_CLK = 1。 for(i=8。 DS1302_CLK = 1。 DS1302_CLK = 0。 // 寫(xiě) 1Byte 數(shù)據(jù) DS1302_CLK = 1。 DS1302_CLK = 0。 // 讀 1Byte 數(shù)據(jù) DS1302_CLK = 1。 //向?qū)懕Wo(hù)寄存器寫(xiě)入,把位 7 位置為 1,禁止寫(xiě)入 else Write1302(0x8E,0x00)。 ReadValue = Read1302(DS1302_SECOND)。 ReadValue = Read1302(DS1302_MINUTE)。 ReadValue = Read1302(DS1302_HOUR)。 ReadValue = Read1302(DS1302_DAY)。 ReadValue = Read1302(DS1302_WEEK)。 ReadValue = Read1302(DS1302_MONTH)。 ReadValue = Read1302(DS1302_YEAR)。 } void DateToStr(SYSTEMTIME *Time) //顯示日期,月、日 { play3(TimeMonth/10)。 play0(TimeDay%10)。 play1(TimeMinute/10)。0x80) DS1302_SetTime(DS1302_SECOND,0)。 void delay(uint x) { uint i。i) for(j=110。 //大概 8 微秒 } 26 /******************************************* 復(fù)位脈沖,當(dāng)總線(xiàn)保持低電平大于 480us *******************************************/ void dsreset() //send reset and initialization mand { uint i。 while(i0) i。 while(i0) i。 i=4。 bit dat。大概 1us DS = 1。 DelayUs(8)。 for(i=1。 //讀出的數(shù)據(jù)最低位在最前面,這樣剛好一個(gè)字節(jié)在 DAT 里 } return(dat)。 bit testb。0x01。 i++。 DelayUs(4)。 // 再拉高 } } } /********寫(xiě)入報(bào)警溫度 **********/ void baojin( uint shangwen , uint xiawen) { dsreset()。 tmpwritebyte(0x4e)。 TmpreExist ()。 } /****************************************** 啟動(dòng) DS18B20 轉(zhuǎn)換。 i++。 tmpwritebyte(0xcc)。 ******************************************/ uint tmp() //get the temperature { uchar a,b,y1,y2,y3。 tmpwritebyte(0xcc)。 // MSB 高 8 位 if((b amp。 //降低精度(去掉小數(shù)點(diǎn)) y2=b4。 } else { y1=a4。 } if(y3=0x1B) //比較溫度是否大于 28 攝氏度 { baojing=1。 } return(y3)。 xiaoshu=temp*625/1000%10+0x
點(diǎn)擊復(fù)制文檔內(nèi)容
試題試卷相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1