基于STC15單片機的智能流量計_第1頁
基于STC15單片機的智能流量計_第2頁
基于STC15單片機的智能流量計_第3頁
基于STC15單片機的智能流量計_第4頁
基于STC15單片機的智能流量計_第5頁
已閱讀5頁,還剩44頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、精選優質文檔-傾情為你奉上智能流量計設計制作與調試說明書電子1411班姓 名:龔亞輝學 號:12016年12月08日專心-專注-專業目 錄1. 緒 論1.1(智能)流量計的發展現狀隨著儀器儀表和信息管理的高度自動化,以計算機為核心的信息處理與過程控制相結合的智能儀器系統應運而生。智能儀器是計算機技術與測試技術相結合的產物,是含有微計算機或微處理器的測量儀器。由于他擁有對數據的存儲、運算、邏輯判斷和自動化操作等功能,具有一定的智能作用,因而被稱為智能儀器。智能儀器的出現,極大地擴充了傳統儀器的應用范圍。智能儀器憑借其體積小、功能強、功耗低等優勢,迅速地在家用電器、科研單位和工業企業中得到了廣泛的

2、應用。 行業中涉及產品很多,從技術的發展形式來看,儀器儀表的智能化是不可逆轉的趨勢,數字技術應用在儀表之中,不僅僅使它的性能以及精度得到了很快的提升,然而伴隨著現場總線的出現為儀表的更新換代及升級實現了進一步的提高。特別是多參數的在線實時測控和自動化測控,不論是穩定性、可靠性,還是高適應性、多功能性及低消耗等等提供了巨大的發展空間和動力。讓智能儀表的信息交換更為迅速。1.2本次設計主要任務本次課程設計中以智能儀表為背景,將研究設計并制作一臺智能流量計,主要研究內容是對流量進行檢測,主要由流量傳感器采集流量信息,然后經過LM331芯片將采集的信息轉換為頻率信號,再由單片機內部AD轉換器將頻率信號

3、轉換為電壓信號傳給單片機,單片機在軟件系統的控制下,通過算法將電壓信號變成實際流量值,并通過OLED屏顯示出來。其中,硬件電路的搭接是本設計的重點,控制系統軟件的設計是本課題的核心。硬件電路部分,采用STC15單片機,CH40、LM331、LM358等構成單片機控制系統的主體部分。通過脈沖流量傳感器,溫度傳感器進行輸入,測量瞬時流量和累計流量。一些其他的功能,如設置參數,OLED顯示,定時休屏等功能。系統軟件設計部分,分別對AD轉換控制,OLED顯示,按鍵設置,休屏鍵等程序進行了設計,并且設計了主程序和流量控制計算程序。2.智能流量計硬件設計2.1系統總體設計為了適應現代對儀表功能的需求,可以

4、智能化的檢測水流量,并且實時在屏幕上動態顯示數據的目的,因此我們設計利用了STC15單片機來完成。這個系統可以實現瞬時流量的檢測,還有累計流量,溫度的檢測。當單片機接受到水流量發出的信號,STC15單片機就會下達指令。水流量的情況傳輸到傳感器中,通過STC15單片機進行處理掃描到的水流量脈沖數,然后在OLED上顯示出水流量的數據。本方案利用Keilc軟件使用C語言進行程序設計,Altium Designer軟件實現電路和PCB的設計。STC15單片機流量處理電路按鍵電路溫度處理電路下載電路電源電路OLED顯示 2.2電源電路設計 此系統可以通過三種方式分別供電,一種是有USB端口連接上位機直接

5、通電5V電源,另外一種則是采用外部4.8v10v供電,通過REG1117-5芯片轉換為穩定的5V電源給系統供電,還有一種則是通過干電池作為系統的備用電源,在沒有外接電源時使用。電路中有5V供電后,再由正向低壓降穩壓器AMS1117-3.3將5V電源轉為3.3V給相應的電路供電。電路圖如下。2.3主控電路設計單片機是把微處理器、存儲器、I/O接口。定時器/計數器、串行接口、中斷系統和其它電路組合在單個芯片組合完成的單片計算機,單片機作為微型計算機的一個分支,是基于測控領域的發展而誕生和發展的。在我國使用最多的是Intel公司的C51系列單片機。而本次電路我們使用了STC15F2K60S2單片機,

6、這款單片機不需要外部晶振和外部復位電路,可省掉外部EEPROM,利用IAP/ISP技術,可以實現在線編程,無需編程器/仿真器,內部有2K字節SRAM,雙串口,兩個獨立串口,高速10位8通道A/D轉換器等豐富的功能。它與C51相比,STC15F2K61S2其優點是,省去晶振、復位電路,內部以高可靠,高精度集成了,這個非常實用,做板的時候能很簡潔,也省了很多事情,再也不用為了更換晶振什么的發愁。對于此次課題設計來使用,它的外設比較豐富,在線仿真ADC/DAC/PWM/E2PROM等基本滿足智能流量計功能的需求。2.4流量檢測電路設計流量檢測部分采用水流量傳感器,如圖1所示,它的組成部分塑料閥體 、

7、水流轉子組件和霍爾傳感器組成。它裝在熱水器進水端,用于檢測進水流量,當水通過水流轉子組件時,磁性轉子轉動并且轉速隨著流量變化而變化,霍爾傳感器輸出相應脈沖信號,反饋給LM331芯片,這款芯片是由美國NS公司生產的性能價格比較高的集成芯片,精密頻率電壓轉換器 ,就是由它將水流量傳感器輸出的脈沖值由于頻率轉換為模擬量電壓值,反饋給STC15F2K61S2芯片內部ADC轉換器,然后通過算法求出單位流量并顯示在OLED屏上。課題任務中最重要的是水流量的測量。通過水流量傳感器的數據采集,根據不同的水流量傳感器的參數可以得出單片機在運算時的數據。水流量傳感器一般在零下10攝氏度到55攝氏度的環境溫度下可正

8、常運行。在電路和傳感器正常工作的情況下,我們根據LM331芯片和水流量傳感器提供的技術文檔得出了以下兩個核心算法,這個也是我們整個電路能否實現正常測量的關鍵部分。1.f0=1/(t1+t2)=VL/(RLIRt1)2.頻率計算=常數7.5*單位流量(L/min)*時間(秒) 圖(1).流量傳感器 2.5按鍵與顯示電路設計為了實現水流量計的智能化,還有對減少電能的消耗增加使用壽命,在電路中我們增加了三個按鍵,分別用于控制OLED屏幕的點亮和休屏、進入設置模式,對參數進行修改。對于OLED屏幕的控制我們采用1min鐘自動息屏,同時可以用按鍵喚醒,在屏幕亮的過程中也可以通過按鍵進行息屏,自動息屏的時

9、間通過按鍵進入設置模式進行修改,休屏時間范圍在19分鐘之間。當然,通過進入設置模式還可以設置儀表常數、儀表編號,在實際產品出廠的時候可以得到應用。顯示電路我們采用0.96寸OLED顯示屏模塊,OLED由于同時具備自發光,不需背光源、對比度高、厚度薄、視角廣、反應速度快、可用于撓曲性面板、使用溫度范圍廣、構造及制程較簡單等優異之特性,被認為是下一代的平面顯示器新興應用技術。這款分辨率為128*64,與單片機通訊采用SPI通訊。SPI通訊由串行時鐘(SCLK)、串行數據輸出(SDO)、串行數據輸入(SDI)。SPI總線可以實現多個SPI設備互相連接。提供SPI串行時鐘的SPI設備為SPI主機或主設

10、備(Master),其他設備為SPI從機或從設備(Slave)。主從設備間可以實現全雙工通信,當有多個從設備時,還可以增加一條從設備選擇線。SPI通訊相當于I2C和UART而言實現簡單,有時鐘協議。3.智能流量計軟件設計3.1 程序結構說明軟件總的設計要求需要OLED顯示瞬時流量、累計流量及其溫度,并且能在設置中設置相關參數,調整息屏時間。水流量的測量為0.25秒讀取一個流量值。OLED屏開機在第一行顯示瞬時流量、第二行為累計流量、第三行為溫度,在無按鍵操作的話默認1分鐘后息屏。設置界面由按鍵控制。進去設置界面后屏幕不需息屏,其中的參數值則通過另一個按鍵控制。整個程序中結構較為簡單,但其中也有

11、幾個重要而且比較費腦筋的子程序,包括水測量程序、水流量數據的計算與轉換、溫度數據轉換等程序。在程序中可以分為4個主要模塊:水流量模塊,溫度模塊,OLED顯示模塊,設置模塊。如圖為總體流程圖。系統初始化流量測量溫度測量息屏時間判斷YNK3鎖屏鍵操作屏幕常亮屏幕息屏按鍵判斷無按鍵操作K2按鍵操作K1按鍵設置程序顯示測量數值界面顯示設置界面3.2 OLED顯示程序設計本課題采用的是STC15單片機為控制核心,由中景園電子提供的0.96寸OLED模塊為顯示輸出設備,如圖2所示,在Keil環境下編寫OLED顯示模塊驅動程序,并下載Hex文件至單片機,從而實現OLED顯示系統設計。由于所采用的OLED不帶

12、字庫,因此無論是顯示圖形還是顯示漢字,均需通過取模軟件進行編碼,然后按SPI協議,將對應的編碼按照所確定的地址模式寫入對應的CDDRAM中。系統初始化OLED初始化OLED清屏調用顯示字符OLED顯示圖(2).0.96寸OLED屏3.3 A/D轉換程序設計本次課題我們采用的是STC15單片機,此款單片機內置有高速10位8通道A/D轉換器,它就是把模擬信號轉換成數字信號,采用逐次逼近型進行轉換。我們將選用P1.4、P1.5為流量傳感器和溫度傳感器的模擬量輸入端,其中流量傳感器先由LM331轉換為電壓信號,單片機的內部ADC轉換器再將其由電壓信號轉換為數字量進行計算得出實際流量值,而溫度傳感器的轉

13、換就相對比較簡單,通過電橋電路和LM358芯片輸入一個模擬量電壓,再由單片機進行AD轉換為為數字量進行計算。下圖為AD轉換的程序框圖系統初始化選擇通道,允許AD轉換讀取溫度傳感器輸入電壓讀取LM331輸入電壓讀取寄存器參數N轉換是否結束Y讀取轉換值數據處理3.4 流量運算程序設計我們這次使用的水流量傳感器也可以稱為脈沖流量傳感器,內部核心實質上是一對霍爾元件,通過當水通過水流轉子組件時,磁性轉子轉動并且轉速隨著流量變化而變化,霍爾傳感器輸出相應脈沖信號,反饋給控制器。通過流量傳感器的技術文檔我們可知,此款傳感器輸出的脈沖頻率與實際流量值的關系為 “頻率=常數7.5*單位流量(L/min)*時間

14、(秒)”。而我們電路中采用的是先將頻率轉換為模擬量電壓值,此過程是由LM331芯片完成,這款芯片是美國NS公司生產的性能價格比較高的集成芯片,可用作精密頻率電壓轉換器,通過查閱資料我們可知輸入芯片和輸出電壓值的關系量為“f0=1/(t1+t2)=VL/(RLIRt1)”,從它的公式不難看出輸出電壓的精準度與芯片外部電路有很大關系,所以在硬件設計上要很仔細。通過這兩個算法得出的實際流量值,我們使用定時器0.25秒讀取一個值,再將這個值除以240得到每秒的流量值,通過累加便實現了累計流量的功能。下圖為流量運算程序框圖讀取AD轉換值計算瞬時流量值計算溫度值系統初始化計算累計流量值4.電路制作調試4.

15、1電路制作與調試本次硬件設計我們使用的是Altium Designer16軟件進行設計,并對PCB板進行排版。在這個過程中的重點難點在與硬件電路的設計,各個芯片的外部電路的搭建,還有在進行PCB排版是每個元器件的封裝的繪制。在電路設計初期我們首先需要知道電路所需要實現的功能,然后根據功能去選擇相對適合的單片機,以及實現各功能所需要使用的傳感器及其芯片。對電路需要有大致的設計框架,然后查找每個芯片典型的外部電路,并在此基礎上加以改進。在對PCB排版時,我們需要注意的是每個元器件的封裝尺寸,都要去網上查閱資料,防止在焊接時才發現封裝不對,而導致無法焊接或焊接困難,這個部分也是PCB排版中很重要的一

16、部分。當然還要注意的是每個元器件放置的位置要根據實際情況進行安排,如USB口、電源接口需要放置在板子邊緣等。在完成PCB的排版和制作后,接下來的就是焊接,這里我們將使用的是電烙鐵,在這個步驟中特別需要注意,元器件不要焊錯正反、焊點不要虛焊,對于芯片不宜焊接時間過長,以免燙燒芯片等。在調試部分我們采用分塊調試法,分布調試就是把總體電路按功能分成若干個模塊,對每個模塊分別進行調試。模塊的調試順序是按信號的流向,一塊一塊地進行,逐步擴大調試范圍,最后完成總調。實施分塊調試法有兩種方式,一種是邊安裝邊調試,即按信號流向組裝一模塊就調試一模塊,然后再繼續組裝其他模塊。另一種是總體電路一次組裝完畢后,再分

17、塊調試。4.2程序調試在這次課程設計中,我們首先對系統的整體功能進行了構思,然后用結構化分析方法進行分析,將整個系統清楚的劃分為幾個模塊,再根據每個模塊的功能編寫。代碼。而且盡可能的將模塊細分,最后在進行函數的調用。我們在函數的編寫過程中,我們不僅用到了for循環、while循環,還用到了函數之間的調用。由于是分工編寫代碼,所以顯示程序,AD程序,設置程序等都是子程序,最后需要將每個子程序代碼放到一起進行調試。整個過程中我們使用的是KEIL4,進行編程。當然程序不是一次性就可以完成的,需要一個功能一個功能的調試累加,首先我們先編寫的是OLED顯示程序,在保證OLED正常顯示的前提下,對于AD程

18、序進行編寫,讓流量和溫度正常顯示在OLED上,之后就是對設置模式的編寫,足步往下,步步深入。在每次編寫好之后都要生成HEX 文件,把得到HEX 文件就可以下載到STC15 中了。這里要簡單的說下,打開下載軟件后,在打開的對話框里選擇好單片機的型號即IAP15F2K61S2,接下來將STC 系統板和電腦用USB 連接,選擇好端口和波特率,因為我們的板子有冷啟動,所以直接點擊下載即可。5.總結實訓是每一位大學生必須擁有的一段經歷,它使我們在實踐中增強專業技能,讓我們學到了很多在課堂上根本就學不到的知識,增長了操作能力,把理論和實踐結合,讓我們以后更好地服務社會打下了堅實的基礎。在這3周的實訓中,雖

19、然實習的時間很短,但對我來說,收獲是很大的。這次實訓讓我深深地感覺到自己所學知識儲備的不足,我們在學校學習的是理論上的東西,但是在實際設計實物的時候,實踐和經驗就顯得更為重要,只有掌握更多實用的技能,積累更多的工作經驗,才能提高工作效率與質量。在做這次設計時,我還通過互聯網參考了許許多多出色的設計者分享的經驗,學以致用,把好的經驗吸取到我的設計中來使用。通過這次設計,更加加深了我在大學三年當中學到的軟件和硬件概念的理解,對我的專業知識也進行了一次鞏固和加深印象,同時也加深了我在實際研究問題的能力。這在我以后的學習生活中也會有很大的作用,使我深深的意識到,做事必須老老實實,一步一個腳印,抓好基礎

20、,研究好理論的重要性。這次設計是用C語言來編寫的程序。在編寫的過程當中,我通過學習互聯網的許多資料,對整體的程序完成了一個完整的計劃,遇到錯誤的地方及時更正,通過不斷努力達到設計的要求。在這一過程中遇到了些問題,比如存儲空間如何節省,這就要求自己對各個芯片元件的掌握程度要很高,通過不懈的學習,最終完成了程序的設計。這也是一個鍛煉的過程。附錄一 電路原理圖附錄二 印刷電路板圖附錄三 電路成品圖 附錄四 實現功能演示附錄五 程序清單主程序/*/#include stc15.h#include oled.h#include bmp.h#include xiumian.h#include Set.h#

21、include AD.hunsigned char z;unsigned int leiji00;unsigned int yx1;void xiumiansj() g=xiumianshijian*60;void liangmiao() if(q=5) q=0; z=(j*)/(/18); leiji00=(z*10000/240)+leiji00; void yunxing() if(yx=60) yx=0; if(+yx1=24) yx=0; int main(void) u8 t; OLED_Init();/初始化OLED OLED_Clear() ; t= ; dingshichu(

22、); OLED_DrawBMP(0,0,128,8,BMP1); delay_ms(600); OLED_Clear();while(1) shezhianjian(); /設置按鍵判斷 /OLED_Clear(); if(c=0) OLED_Clear(); while(c=0)shezhianjian(); /設置按鍵判斷 anjian(); /熄屏按鍵判斷 xiumiansj(); /休眠時間pingmu(); /點亮關閉屏幕判斷AD(); /AD轉換yunxing(); /運行時間liangmiao(); /休眠子程序 OLED_ShowCHinese(0,0,0);/瞬OLED_Sh

23、owCHinese(18,0,1);/時OLED_ShowCHinese(36,0,2);/流OLED_ShowCHinese(54,0,3);/量 /兩個字符間加18OLED_ShowString(72,0,:);/: /兩列之間加2 OLED_ShowNum(80,0,z/10,1,16); OLED_ShowString(91,0,.) ; OLED_ShowNum(94,0,z%10,1,16);OLED_ShowString(114,0,L); OLED_ShowCHinese(0,2,4);/累OLED_ShowCHinese(18,2,5);/計OLED_ShowCHinese(

24、36,2,6);/流OLED_ShowCHinese(54,2,7);/量OLED_ShowString(72,2,:);/:OLED_ShowNum(80,2,leiji00/,1,16); / 起點坐標x,起點坐標y, 數值,數字的位數 ,字體大小OLED_ShowNum(88,2,leiji00/10000%10,1,16); OLED_ShowString(100,2,.) ; OLED_ShowNum(105,2,leiji00/1000%10,1,16);OLED_ShowString(114,2,L); OLED_ShowCHinese(0,4,8);/溫OLED_ShowCHi

25、nese(18,4,9);/度OLED_ShowString (36,4,:);/:OLED_ShowNum(80,4,1,1,16);OLED_ShowNum(88,4,3,1,16); OLED_ShowString(96,4,.) ; OLED_ShowNum(101,4,4,1,16); OLED_ShowCHinese(110,4,10);/OLED_ShowCHinese(0,6,28);/運OLED_ShowCHinese(18,6,29);/行OLED_ShowCHinese(36,6,17);/時OLED_ShowCHinese(54,6,18);/間OLED_ShowStr

26、ing(72,6,:);/:OLED_ShowNum(80,6,yx1/10,1,16);OLED_ShowNum(88,6,yx1%10,1,16);OLED_ShowString(100,6,:) ; OLED_ShowNum(108,6,yx/10,1,16);OLED_ShowNum(116,6,yx%10,1,16); else OLED_Clear();while(c=1 | c=2 | c=3 ) /設置按鍵判斷 shezhianjian(); shezhixianshi(); /設置屏幕顯示 OLED顯示初始化子程序/*/#include stc15.h#ifndef _OLE

27、D_H#define _OLED_H #define u8 unsigned char #define u32 unsigned int #define OLED_CMD 0/寫命令#define OLED_DATA 1/寫數據#define OLED_MODE 0sbit OLED_CS=P23; /片選sbit OLED_RST =P25;/復位sbit OLED_DC =P24;/數據/命令控制sbit OLED_SCL=P27;/時鐘 D0(SCLK?sbit OLED_SDIN=P26;/D1(MOSI) 數據#define OLED_CS_Clr() OLED_CS=0#defin

28、e OLED_CS_Set() OLED_CS=1#define OLED_RST_Clr() OLED_RST=0#define OLED_RST_Set() OLED_RST=1#define OLED_DC_Clr() OLED_DC=0#define OLED_DC_Set() OLED_DC=1#define OLED_SCLK_Clr() OLED_SCL=0#define OLED_SCLK_Set() OLED_SCL=1#define OLED_SDIN_Clr() OLED_SDIN=0#define OLED_SDIN_Set() OLED_SDIN=1;/OLED模式設

29、置/0:4線串行模式/1:并行8080模式#define SIZE 16#define XLevelL0x02#define XLevelH0x10#define Max_Column128#define Max_Row64#defineBrightness0xFF #define X_WIDTH 128#define Y_WIDTH 64 /-OLED端口定義- void delay_ms(unsigned int ms); /OLED控制用函數void OLED_WR_Byte(u8 dat,u8 cmd); void OLED_Display_On(void);void OLED_Dis

30、play_Off(void); void OLED_Init(void);void OLED_Clear(void);void OLED_DrawPoint(u8 x,u8 y,u8 t);void OLED_Fill(u8 x1,u8 y1,u8 x2,u8 y2,u8 dot);void OLED_ShowChar(u8 x,u8 y,u8 chr);void OLED_ShowNum(u8 x,u8 y,u32 num,u8 len,u8 size2);void OLED_ShowString(u8 x,u8 y, u8 *p); void OLED_Set_Pos(unsigned c

31、har x, unsigned char y);void OLED_ShowCHinese(u8 x,u8 y,u8 no);void OLED_DrawBMP(unsigned char x0, unsigned char y0,unsigned char x1, unsigned char y1,unsigned char BMP);#endif圖片庫程序/*/#ifndef _BMP_H#define _BMP_Hunsigned char code BMP1 =0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF

32、F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF

33、F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF

34、F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x0F,0x0F,0xEF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x1F,0x0F,0x1F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x3F,0x3F,0x7F,0xFF,0xFF,0x7

35、F,0x7F,0x47,0x0F,0x7F,0x3F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x8F,0x0F,0x0F,0x07,0x07,0x47,0x07,0x0F,0x8F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x9F,0x0F,0x1F,0x7F,0xFF,0xFF,0xFF,0xFF,0x0F,0x0F,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF

36、F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xE3,0x63,0x11,0x01,0x00,0xC0,0xD8,0x03,0x01,0xF1,0xF9,0x00,0x00,0xF9,0xFF,0xFF,0x3F,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xC1,0x01,0x19,0x24,0x00,0x00,0x00,0x32,0x1C,0x00,0x80,0xF8,0xFF,0xFF,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xF

37、F,0x07,0xC7,0xFE,0x3E,0x0E,0xEE,0x24,0xE0,0x20,0x20,0xE2,0x12,0x90,0xE2,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF7,0xF3,0xF3,0xF3,0x8B,0x01,0x40,0x00,0x00,0x00,0x00,0x01,0x81,0xE1,0xF9,0xF8,0xF9,0xFF,0xFF,0xFF,0xFF,0xFF,0xE7,0xE7,0xE3,0x03,0x03,0xE3,0x7F,0x37,0xE3,0xE3,0xE3,0xE3,0x00,0x00,0xE0,0xF

38、1,0xF1,0xF1,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFD,0xFC,0xFE,0xFF,0xF0,0xE0,0xF9,0xFC,0xFC,0xFE,0xFF,0xFF,0xFE,0xFC,0xF9,0xF3,0xF3,0xF0,0xF0,0xFB,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0xF8,0xF1,0xF3,0xE3,0xE3,0xE3,0xE3,0xF

39、3,0xF1,0xF0,0xF0,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0xF1,0xF0,0xFC,0xF7,0xF1,0xF8,0xFF,0xF8,0xFC,0xFF,0xF0,0xE7,0xE7,0xE7,0xE7,0xE0,0xE0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xCF,0xCF,0xE9,0xE0,0xE0,0xE0,0xE0,0xE4,0xE4,0xE7,0xE7,0xE7,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0xF0,0xF8,0xFC,0xF

40、F,0xFF,0xFF,0xFF,0xFF,0xC0,0xC0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF

41、F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x3F,0x1F,0x1F,0x1F,0x0F,0x0F,0x0F,0x0F,0x0F,0x1F,0x1F,0x3F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF

42、F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF

43、F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x03,0x00,0x00,0x18,0x1C,0x1E,0x9F,0x9F,0xFF,0xFF,0xFF,0xFF,0xFE,0xFE,0xF8,0x00,0x00,0x01,0xDF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF

44、F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF

45、F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xF8,0xF0,0xE0,0xC0,0xC3,0xC7,0x87,0x8F,0x8F,0x87,0x87,0xC3,0xC3,0xE0,0xF0,0xF8,0xFC,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF

46、F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF

47、F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF

48、F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF;#enif自動休眠和喚醒子程序/*/#ifndef _xiumian_H#define

49、 _xiumian_H#include stc15.h#include oled.hsbit k1=P46;unsigned int i;unsigned int g;unsigned int q;bit k=1;bit b=1;unsigned int miao=0;unsigned int yx;void anjian() if(k1 = 0) /低電平有效 delay_ms(80); /檢測到按鍵 if(k1 = 0) while(k1); /直到松開按鍵 k=k; b=b; void pingmu() if(k=1 & b=1) /判斷是否在關屏時喚醒 OLED_Display_On();TR1=1; /開啟屏幕,同時開啟定時器else if (k=0 | b=0) /判斷是否在點亮是關屏 OLED_Display_Off();miao=0;TR1=0;b=0;k=0; /關閉屏幕,同時關閉定時器,清零標記位 void timer_1() interrupt 3 TL1 = 0xB0; /設置定時初值 TH1 = 0x3C; /設置定時初值i+;q+; if(i=20 ) i=0; miao+; yx+; if(miao=g)/休眠時間 miao=0; b=0; void dingshichu()TMOD = 0x10;/設置定時器模式TL1 = 0xB0;/

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論