




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、目 錄一、設(shè)計(jì)背景及目的2二、設(shè)計(jì)任務(wù)和要求32.1設(shè)計(jì)任務(wù)32.2設(shè)計(jì)方案3控制器選擇3顯示器的選擇3傳感器的選擇4三、系統(tǒng)的概述43.1工作原理5系統(tǒng)的硬件設(shè)計(jì)5信號預(yù)處理電路63.2 E2ROM AT24C02的應(yīng)用73.3顯示模塊83.4系統(tǒng)的軟件設(shè)計(jì)9軟件設(shè)計(jì)概述93.4.2 軟件程序9四、結(jié)論21五、改進(jìn)及不足之處21六、設(shè)計(jì)心得體會22參考文獻(xiàn)23課程設(shè)計(jì)作品:自行車?yán)锍虦y量儀一、設(shè)計(jì)背景及目的我國是一個(gè)人口大國,隨著人們生活水平的逐漸提高,人們對生活性能的要求也日益增加。隨著人們的環(huán)保意識的增強(qiáng),自行車以其特有的輕型、環(huán)保、方便、快捷為優(yōu)勢及減少噪聲污染等優(yōu)點(diǎn),受到廣大消費(fèi)者的
2、喜愛。自行車是一項(xiàng)十分受歡迎的健身運(yùn)動。自行車鍛煉的好處是不受時(shí)間的限制、不受速度的限制。騎自行車不但可以減肥,而且還可使身材勻稱。由于自行車運(yùn)動是需要大量氧氣的運(yùn)動,所以還可以強(qiáng)化心臟功能。同時(shí)還能防止高血壓,有時(shí)比藥物更有效。踩自行車壓縮血管,使得血液循環(huán)加速,大腦攝入更多的氧氣,再加上吸入大量新鮮空氣,會使人精神氣爽。騎在車上,你會感覺十分自由且暢快無比。如果在自行車上加裝一個(gè)里程表,就可以知道自己騎車的行程,從而很好地控制運(yùn)動量。隨著石油危機(jī)波及全球,油價(jià)上漲,受到經(jīng)濟(jì)能力的限制,自行車迅速激起消費(fèi)者的購買欲望,并且在中國逐步成為人們的代步工具,特別是學(xué)生群體對自行車的需求量很大。從保
3、護(hù)環(huán)境和經(jīng)濟(jì)條件許可等因素綜合來看,自行車目前乃至今后都有著廣闊的發(fā)展空間。二、設(shè)計(jì)任務(wù)和要求2.1設(shè)計(jì)任務(wù)設(shè)計(jì)一個(gè)自行車?yán)锍虦y量儀,要求設(shè)計(jì)出完整的自行車?yán)锍虦y量系統(tǒng),并且能夠顯示出自行車的里程。2.2設(shè)計(jì)方案本設(shè)計(jì)中的里程表設(shè)計(jì)以單片機(jī)和光電傳感器為核心。光電傳感器將自行車車輪的運(yùn)轉(zhuǎn)情況經(jīng)過一定的抗干擾和運(yùn)算處理后,輸出到LCD顯示里程,使得電動自行車的里程數(shù)據(jù)能直觀的顯示給使用者??刂破鬟x擇單片微型計(jì)算機(jī)簡稱單片機(jī),又稱微控制器,特別適用于控制領(lǐng)域。通常單片機(jī)由單塊集成電路構(gòu)成,內(nèi)部包含有計(jì)算機(jī)的基本部件:CPU(中央處理器),存儲器和I/O接口電路等。因此,單片機(jī)只需要與適當(dāng)?shù)能浖巴?/p>
4、部設(shè)備相結(jié)合,便可以成為一個(gè)單片機(jī)控制系統(tǒng)。單片機(jī)因?yàn)槠潴w積小、功能強(qiáng),可靠性高,靈活方便等優(yōu)點(diǎn),所以可以用于各個(gè)領(lǐng)域,對各行各業(yè)的技術(shù)改造和產(chǎn)品更新?lián)Q代起到重要的推動作用。顯示器的選擇極低的工作電壓,只要2V-3V即可工作,而工作電流僅幾個(gè)微安即每個(gè)顯示字符只有幾個(gè)微安。一個(gè)小小的鈕扣電池也可以用一兩年,這是其他任何顯示器件無法比擬的。在工作電壓和功耗上液晶顯示正好與大規(guī)模的集成電路的發(fā)展相適應(yīng)。液晶顯示器件的基本結(jié)構(gòu)是由兩片玻璃基板制成的薄形盒。這種結(jié)構(gòu)最利于用作顯示窗口,而且它可以在有限的面積上容納最大量的顯示內(nèi)容,顯示內(nèi)容的利用率最高。這種結(jié)構(gòu)還便于大批量、自動化生產(chǎn)。液晶材料是有機(jī)高
5、分子合成材料,具有極高的純度,其他材料也都是高純物質(zhì),在極凈化的條件下制成,液晶的驅(qū)動電壓又很低,驅(qū)動電流更是很微小,這種器件的劣化幾乎沒有,壽命很長。傳感器的選擇光電傳感器是各種光電檢測系統(tǒng)中實(shí)現(xiàn)光電轉(zhuǎn)換的關(guān)鍵元件,它是把光信號(紅外、可見及紫外光輻射)轉(zhuǎn)變成為電信號的器件。光電檢測方法具有精度高、反應(yīng)快、非接觸等優(yōu)點(diǎn),而且可測參數(shù)多,傳感器的結(jié)構(gòu)簡單,形式靈活多樣,因此,光電式傳感器在檢測和控制中應(yīng)用非常廣泛。遮光是光電傳感器對于檢測自行車車輪轉(zhuǎn)過的圈數(shù),具有結(jié)構(gòu)簡單、性能穩(wěn)定、傳感器小及方便的優(yōu)點(diǎn)。三、系統(tǒng)的概述本系統(tǒng)由信號預(yù)處理電路、單片機(jī)MSP430G2553、系統(tǒng)化LCD顯示模塊、
6、串口數(shù)據(jù)存儲電路和系統(tǒng)軟件組成。其中信號預(yù)處理電路包含信號放大、波形變換和波形整形。對待測信號進(jìn)行放大的目的是降低對待測信號的幅度要求;波形變換和波形整形電路則用來將放大的信號轉(zhuǎn)換成可與單片機(jī)相連的TTL信號;通過單片機(jī)的設(shè)置可使內(nèi)部定時(shí)器T1對脈沖輸入引腳T0進(jìn)行控制,這樣能精確地算出加到T0引腳的單位時(shí)間內(nèi)檢測到的脈沖數(shù)。系統(tǒng)的原理框圖如圖所示3.1工作原理里程測量通常可以用計(jì)數(shù)法來進(jìn)行測量。所謂計(jì)數(shù)法就是給定一個(gè)閘門時(shí)間, 在閘門時(shí)間內(nèi)計(jì)數(shù)輸入的脈沖個(gè)數(shù)。使用單片機(jī)進(jìn)行自行車?yán)锍痰臏y量, 可以使用簡單的脈沖計(jì)數(shù)法,只要轉(zhuǎn)軸每旋轉(zhuǎn)一周,產(chǎn)生一個(gè)或固定的多個(gè)脈沖, 并將脈沖送入單片機(jī)中進(jìn)行計(jì)
7、數(shù),即可獲得里程信息。該設(shè)計(jì)能實(shí)時(shí)地將所測的累計(jì)里程數(shù)顯示出來,考慮到信號的衰減、干擾等影響,在信號送入單片機(jī)前應(yīng)對其進(jìn)行放大整形,然后通過單片機(jī)計(jì)算出里程,再將所得的數(shù)據(jù)存儲到串口數(shù)據(jù)存儲器,并由LCD顯示模塊顯示所測里程。本設(shè)計(jì)的速度和里程值采用8位顯示,并包含兩個(gè)小數(shù)位。系統(tǒng)的硬件設(shè)計(jì)本設(shè)計(jì)采用了ST1101紅外光電傳感器,進(jìn)行非接觸式檢測。當(dāng)有物體擋在紅外光電發(fā)光二極管和高靈敏度的光電晶體管之間時(shí),傳感器將會輸出一個(gè)低電平,而當(dāng)沒有物體擋在中間時(shí)則輸出為高電平,從而形成一個(gè)脈沖。該系統(tǒng)在自行車后輪的軸處保持著與輪子旋轉(zhuǎn)切面平行的方向延伸附加一個(gè)鋁盤,在這個(gè)鋁盤的邊沿處挖出若干個(gè)圓形過孔
8、,把傳感器的檢測部分放在圓孔的圓心位置。每當(dāng)鋁盤隨著后輪旋轉(zhuǎn)的時(shí)候,傳感器將向外輸出若干個(gè)脈沖。把這些脈沖通過一系列的波形整形成單片機(jī)可以識別的TTL電平,即可算出輪子即時(shí)的轉(zhuǎn)速。鋁盤的圓孔的個(gè)數(shù)決定了測量的精度,個(gè)數(shù)越多,精度越高,而自行車所需記錄的里程遠(yuǎn)大于車輪轉(zhuǎn)一圈所走的路程,故只需要在鋁盤上打兩個(gè)過孔就可以滿足精度。本設(shè)計(jì)在鋁盤過孔的設(shè)計(jì)上采用2個(gè)過孔,從而車輪每轉(zhuǎn)過一圈,便會產(chǎn)生兩個(gè)脈沖。這樣在以后的軟件設(shè)計(jì)中能夠較為方便的計(jì)算出里程。信號預(yù)處理電路信號預(yù)處理電路系統(tǒng)的信號預(yù)處理電路由二級電路構(gòu)成,第一級是由開關(guān)三極管組成的零偏置放大器,采用開關(guān)三極管可以保證放大器具有良好的高頻響應(yīng)
9、。當(dāng)輸入信號為零或負(fù)電壓時(shí),三極管截止,電路輸出高電平;而當(dāng)輸入信號為正電壓時(shí),三極管導(dǎo)通,此時(shí)輸出電壓隨著輸入電壓的上升而下降,這使得速度里程表既可以測量任意方波信號的頻率,也可以測量正弦波信號的頻率。由于放大器的放大功能降低了對待測信號的幅度要求,因此,系統(tǒng)能對任意大于0.5V的正弦波和脈沖信號進(jìn)行測量。預(yù)處理電路的第二級采用帶施密特觸發(fā)器的反相器DM74LS14來把放大器生成的單相脈沖轉(zhuǎn)換成與COMS電平相兼容的方波信號同時(shí)將輸出信號加到單片機(jī)的P3.4口上。利用施密特觸發(fā)器狀態(tài)轉(zhuǎn)換過程中的正反饋?zhàn)饔?,可以把邊沿變化緩慢的周期性信號變換為邊沿很陡的矩形脈沖信號。輸入的信號只要幅度大于VT
10、+,即可在施密特觸發(fā)器的輸出端得到同等頻率的矩形脈沖信號。從傳感器得到的矩形脈沖經(jīng)傳輸后往往發(fā)生波形畸變。當(dāng)傳輸線上的電容較大時(shí),波形的上升沿將明顯變壞;當(dāng)傳輸線較長,而且接受端的阻抗與傳輸線的阻抗不匹配時(shí),在波形的上升沿和下降沿將產(chǎn)生振蕩現(xiàn)象;當(dāng)其他脈沖信號通過導(dǎo)線間的分布電容或公共電源線疊加到矩形脈沖信號時(shí),信號上將出現(xiàn)附加的噪聲。無論出現(xiàn)上述的那一種情況,都可以通過用施密特反相觸發(fā)器整形而得到比較理想的矩形脈沖波形。只要施密特觸發(fā)器的VT+和VT-設(shè)置得合適,均能受到滿意的整形效果。3.2 E2ROM AT24C02的應(yīng)用AT24C02是CMOS 2048位串行E2PROM,在內(nèi)部組織成
11、256%26;#215;8位。AT24C02的特點(diǎn)是具有允許在簡單的二線總線上工作的串行接口和軟件協(xié)議。 如圖5所示,在本設(shè)計(jì)中用芯片AT24C02的SDA端與單片機(jī)的P3.7口相連,SCL端與單片機(jī)的P3.5口相連。因?yàn)樵谶@個(gè)I2C總線上只有一個(gè)器件,所以把AT24C02的地址設(shè)為000,即把A0、A1、A2都接地。單片機(jī)計(jì)算出來的里程數(shù)據(jù)通過SDA、SCL向AT24C02輸送數(shù)據(jù)。單片機(jī)首先向AT24C02發(fā)送寫信號,當(dāng)確認(rèn)后從單片機(jī)內(nèi)部的數(shù)據(jù)儲存單元提取數(shù)據(jù)然后向AT24C02的內(nèi)部地址傳送數(shù)據(jù)。當(dāng)顯示里程時(shí),單片機(jī)首先向AT24C02發(fā)送讀信號,然后確認(rèn)后,單片機(jī)從AT24C02內(nèi)部的
12、地址向單片機(jī)的讀出單元字節(jié)讀出數(shù)據(jù),供顯示所用。AT24C02與單片機(jī)的接口電路圖3.3顯示模塊本設(shè)計(jì)的顯示模塊包括MC14511BCP、CD4076、74LS138。 MC14511是將鎖存、譯碼、驅(qū)動三種功能集于一身的“三合一”器件。鎖存器的作用是避免在計(jì)數(shù)過程中出現(xiàn)跳數(shù)現(xiàn)象,便于觀察和記錄。用譯碼器將BCD碼轉(zhuǎn)換成7段碼,再經(jīng)過大電流反相器,驅(qū)動LCD。譯碼器屬于非時(shí)序電路,其輸出狀態(tài)與時(shí)鐘無關(guān),僅取決于輸入的BCD碼。74LS138的作用相當(dāng)于位選的功能,當(dāng)C,B,A的輸入分別為“000、001、010、011、100、101”時(shí)分別選擇不同的MC14511,從而在不同位上顯示不同的數(shù)
13、字和小數(shù)點(diǎn)。CD4076是CMOS 4位三態(tài)輸出D寄存器,通過74LS138的Y6,Y7來控制其CP的工作,從而使CD4076來控制小數(shù)點(diǎn)顯示。顯示模塊框圖系統(tǒng)顯示部分的電路系統(tǒng)中用74LS138的Y0Y5選擇MC14511以驅(qū)動LCD顯示,Y6、Y7來控制CD40756的CP,從而達(dá)到以CD4076的Q1Q4控制小數(shù)點(diǎn)的顯示,另一個(gè)CD4076只用到其Q1和Q2,圖中字符相對應(yīng)的地方表示其引腳相連。3.4系統(tǒng)的軟件設(shè)計(jì)系統(tǒng)軟件是整個(gè)測試系統(tǒng)的重要組成部分,對系統(tǒng)的運(yùn)算、邏輯、控制以及輸入輸出具有決定性的作用。軟件設(shè)計(jì)概述本系統(tǒng)軟件采用模塊化設(shè)計(jì)方法。整個(gè)系統(tǒng)由初始化模塊、頻率測量模塊,里程計(jì)
14、算模塊、數(shù)據(jù)轉(zhuǎn)碼模塊、里程顯示模塊、數(shù)據(jù)存儲,讀取模塊、定時(shí)器中斷服務(wù)模塊以及其他功能模塊組成。待測信號經(jīng)預(yù)處理電路后加至單片機(jī)的P3.4(T0)引腳可為單片機(jī)測量信號頻率提供有效的輸入信號。單片機(jī)通過檢測P3.4引腳電平來決定是否啟動測量頻率程序。當(dāng)該引腳為高電平時(shí),系統(tǒng)處于等待狀態(tài),要一直到該引腳出現(xiàn)低電平時(shí)才開始測頻率。我們可以從TL0寄存器知道在兩秒內(nèi)單片機(jī)檢測到的N個(gè)脈沖。而M%26;#215;N所得到的正是這兩秒內(nèi)鋁盤在圓周上所走得距離S。至于里程的計(jì)算,根據(jù)速度計(jì)算的分析,在得到2s內(nèi)鋁盤在其圓周上走過的距離后。根據(jù)它與自行車輪子的圓周走過的距離有一定比例關(guān)系(通過兩者角速度一樣
15、的算法)可以通過單片機(jī)的算出自行車在這兩秒內(nèi)走過的路程S1。把這個(gè)路程S1與存儲器原來的里程數(shù)相加即可得到目前的總里程數(shù)。 通過單片機(jī)計(jì)算出來的速度和里程的數(shù)據(jù),必須通過BCD碼的轉(zhuǎn)換才能輸出給顯示模塊??偫锍虜?shù)的顯示是設(shè)定出現(xiàn)在電動自行車開動,單片機(jī)開機(jī)經(jīng)過初始化后顯示出來,這樣以來用戶可以清楚的知道自己的車子已經(jīng)運(yùn)行了多少公里了。 軟件程序#include msp430g2553.h#define d x;/CS:片選,低電平有效 RS:復(fù)位端,低電平有效/D/C:選擇位,1=送數(shù)據(jù)/0=送命令 SCL: 串行時(shí)鐘輸入/SDA:串行數(shù)據(jù)輸入/此液晶從正面看,其實(shí)際打點(diǎn)是從右往左畫,高位在上
16、,且頁與列全部到相/漢字的取模方式是:圖形模式,陰碼,列行式,順向,C51格式/接口:CS:地 RES:P1.5 A0:P2.0 SCL:P2.1 SI:P1.6/#include #define RS_1 P1OUT |= BIT5#define DC_1 P2OUT |= BIT0#define Clock_Out_1 P2OUT |= BIT1#define Data_Out_1 P1OUT |= BIT6#define RS_0 P1OUT &= BIT5#define DC_0 P2OUT &= BIT0#define Clock_Out_0 P2OUT &= BIT1#define
17、 Data_Out_0 P1OUT &= BIT6const unsigned char ChTab= 0x3E,0x7E,0xD8,0x98,0xD8,0x7E,0x3E,0x00, /A 0x00,0xFE,0xFE,0x92,0x92,0x6C,0x6C,0x00, /B 0x00,0x38,0x7C,0xC6,0xC6,0xC6,0xC6,0x00, /C 0x00,0xFE,0xFE,0xC6,0xC6,0x7C,0x38,0x00, /D 0x00,0xFE,0xFE,0xD6,0xD6,0xD6,0x00,0x00, /E 0x00,0xFE,0xFE,0xD8,0xD8,0xD
18、8,0x00,0x00, /F 0x38,0x7C,0xC6,0xD6,0xDE,0x5C,0x10,0x00, /G 0x00,0xFE,0xFE,0x30,0x30,0xFE,0xFE,0x00, /H 0x00,0x06,0xC6,0xFE,0xFE,0xC6,0x06,0x00, /I 0x00,0xCC,0xC6,0xFE,0xFC,0xC0,0xC0,0x00, /J 0x00,0xFE,0xFE,0x30,0x6C,0xC6,0x02,0x00, /K 0x00,0xFE,0xFE,0x06,0x06,0x06,0x06,0x00, /L 0xFE,0xFE,0x40,0x38,
19、0x40,0x7E,0xFE,0x00, /M 0xFE,0xFE,0xF0,0x38,0x1E,0xFE,0xFE,0x00, /N 0x3C,0x7E,0xE7,0xC3,0xE7,0x7E,0x3C,0x00, /O 0x00,0xFF,0xFF,0xCC,0xEC,0x78,0x18,0x00, /P 0x3C,0x7E,0xD7,0xDB,0xDF,0x7E,0x7B,0x00, /Q 0xFF,0xFF,0xDC,0xDC,0xFE,0xF7,0x73,0x00, /R 0x00,0x64,0xF6,0x92,0x92,0xDE,0x4C,0x00, /S 0xC0,0xC0,0x
20、C0,0xFE,0xFE,0xC0,0xC0,0xC0, /T 0x00,0xFC,0xFE,0x06,0x06,0xFE,0xFC,0x00, /U 0x00,0xF8,0xFC,0x06,0x06,0xFC,0xF8,0x00, /V 0xFF,0x0E,0x1C,0x38,0x1C,0x0E,0xFF,0x00, /W 0xC3,0x66,0x3C,0x18,0x3C,0x66,0xC3,0x00, /X 0x80,0xC0,0x60,0x3E,0x3E,0x60,0xC0,0x80, /Y 0x00,0xC3,0xC7,0xCF,0xDB,0xF3,0xE3,0x00 /Z;const
21、 unsigned char NumDat= 0x38,0x7C,0x86,0x82,0xC2,0x7C,0x38,0x00, /0 0x00,0x02,0x42,0xFE,0xFE,0x02,0x02,0x00, /1 0x46,0xCE,0x9E,0x9A,0xBA,0xF2,0x62,0x00, /2 0x04,0x86,0x92,0xB2,0xF2,0xDE,0x8C,0x00, /3 0x18,0x38,0x68,0xC8,0xFE,0xFE,0x08,0x00, /4 0xE4,0xE6,0xA2,0xA2,0xA2,0xBE,0x1C,0x00, /5 0x3C,0x7E,0xD
22、2,0x92,0x92,0x9E,0x0C,0x00, /6 0xC0,0xC0,0x8E,0x9E,0xB0,0xE0,0xC0,0x00, /7 0x6C,0xFE,0x92,0x92,0x92,0xFE,0x6C,0x00, /8 0x60,0xF2,0x92,0x92,0x96,0xFC,0x78,0x00, /9 0x07,0x07,0x00,0x00,0x00,0x00,0x00,0x00 /.;const unsigned char PicDat= 0x07,0x0F,0x0F,0x08,0x08,0x10,0x10,0x20,0x20,0x40,0x40,0x90,0x90,0
23、xB0,0xD2,0x12, /人手形 0x12,0x12,0x13,0x12,0x12,0x12,0x0C,0x00, 0xF0,0xF8,0xF8,0x08,0x08,0x08,0x04,0x04, 0x02,0x02,0x01,0x01,0x01,0x09,0x49,0x49,0x46,0x30,0x80,0x00,0x00,0x00,0x00,0x00;const unsigned char Chinese=0x10,0x10,0x10,0x10,0x10,0x10,0x9F,0x52,0x32,0x12,0x12,0x13,0x10,0x10,0x10,0x00,0x02,0x02,
24、0x04,0x08,0x30,0xC0,0x00,0x00,0x04,0x02,0x02,0xFC,0x00,0x00,0x00,0x00;/*方,0*/ 送數(shù)據(jù)到液晶static void Send_Data(unsigned char Data) char i; DC_1; for(i=0;i8;i+) Clock_Out_0; if(Data&0x80) Data_Out_1; else Data_Out_0; Data=1; Clock_Out_1; /送命令到液晶static void Send_Com(unsigned char Com) char i; DC_0; /送命令 fo
25、r(i=0;i8;i+) Clock_Out_0; if(Com&0x80) Data_Out_1; else Data_Out_0; Com4); /列地址高四位,其中加4是列糾正,此液晶存在4列的錯(cuò)位 Send_Com(Column+4)&0X0f); /列地址低四位/ 清屏void Screen_Clear(void) unsigned char i,j; for(i=0;i8;i+) SetColumn(0);/每一頁都必須以第一列為參考 SetPage(i); for(j=0;jX SetColumn(127-X); /列選擇 | SetPage(7-(unsigned char)(
26、Y/8); /行選擇 | Send_Data(0x01(7-(unsigned char)(Y%8); /數(shù)據(jù)輸出 | / Y /Y0 X0為顯示的起始列數(shù)與頁數(shù),void PrintCh(unsigned char X0,unsigned char Y0,unsigned char Ch) unsigned char i; unsigned char Index; Index=Ch*8+7; SetPage(7-X0); SetColumn(119-Y0); for(i=0;i8;i+)Send_Data(ChTabIndex-i);/畫線 (目前不能畫斜線)/X0 Y0為起點(diǎn),X1 Y1為
27、終點(diǎn) void DrawLine(unsigned char X0, unsigned char Y0, unsigned char X1, unsigned char Y1) unsigned char i; unsigned char Top; Top=(unsigned char)(Y0/8)+1)*8; if(X0=X1) /畫縱線 for(i=Y0;i=Y1;i+) SetColumn(127-X0); /列設(shè)置 SetPage(7-(unsigned char)(i/8); /頁設(shè)置 if(i(Y0%8) ); /由于此液晶是一頁一頁的送,且工作在串口 else if(i=Y1)
28、/方式下不能讀液晶當(dāng)前值 Send_Data( 0xff( 8-(Y1%8) ) ); else Send_Data(0xff); else if(Y0=Y1) /畫橫線 for(i=X0;iX1;i+) DotPoint(i,Y0); /畫方格/X Y為方格左上角坐標(biāo),Len Wide為方格的長和寬void DrawBox(unsigned char X, unsigned char Y,unsigned char Len,unsigned char Wide) DrawLine(X,Y,X,Y+Wide); DrawLine(X+Len,Y,X+Len,Y+Wide); DrawLine(
29、X+1,Y,X+Len,Y); DrawLine(X+1,Y+Wide,X+Len,Y+Wide);/ 專用顯示128*64的圖象/*void DisplayPic2() unsigned char i,j,in=0; for(j=0;j128;j+) for(i=0;i8;i+) /坐標(biāo)有待改進(jìn) SetColumn(127-j); SetPage(7-i); Send_Data(PicDat2in+); in=0; */ X0 Y0為顯示的起始列數(shù)與頁數(shù)(注:必須滿足X0+X0) SetPage(TempY); SetColumn(TempX); for(i=0;iX;i+)Send_Dat
30、a(ChineseIndex+X-i-1); TempY-; Index+=X; Y-; /Y0 X0為顯示的起始列數(shù)與頁數(shù),void PrintList(unsigned char X0,unsigned char Y0,unsigned char *word_list) unsigned char length=0; while(word_listlength!=0x00) /判斷是否字符串結(jié)束,將字符串拆分成為單個(gè)字符輪流顯示 PrintCh(X0,Y0+length*8,(unsigned char)word_listlength-A); length+; / Y0 X0為顯示的起始列
31、數(shù)與頁數(shù),Ch為要顯示數(shù)字 void PrintNum(unsigned char X0,unsigned char Y0,unsigned char Ch) unsigned char i; unsigned char Index; Index=Ch*8+7; SetPage(7-X0); SetColumn(119-Y0); for(i=0;i8;i+)Send_Data(NumDatIndex-i);/Y0 X0為顯示的起始列數(shù)與頁數(shù),void PrintListNum(unsigned char X0,unsigned char Y0,unsigned char *word_list)
32、 unsigned char length=0; while(word_listlength!=0x00) /判斷是否字符串結(jié)束,將字符串拆分成為單個(gè)字符輪流顯示 PrintNum(X0,Y0+length*8,(unsigned char)word_listlength-0); length+; / Y0 X0為顯示的起始列數(shù)與頁數(shù),Ch為要顯示數(shù)字/顯示浮點(diǎn)數(shù)/x,y:起點(diǎn)坐標(biāo)/number:要顯示的數(shù)字/decimal:要保留的小數(shù)位/用16字體static float _fround6=0.49,0.05,0.005,0.0005,0.00005,0.000005;void _ftoa
33、(float n,unsigned char decimals,unsigned char *str)float scale;unsigned char i,d;if (n5) decimals=5;n=n+_frounddecimals;i=0;scale=1.0;while (n=scale) scale=scale*10.0; +i;if (i=0) *str+=0;elsewhile (i-) scale=floor(0.5+scale/10.0); d=(unsigned char) (n/scale); *str+=d+0; n=n-scale*d; ;if (decimals=0) *str=0; return;*str+=9+1; /str=Point;while (decimals-) n=n*10.0; d=(unsigned char) n; *str+=d+0; n=n-d;*str=0;void LCD_ShowFloat(unsigned int x,unsigne
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 山西省陵川第一中學(xué)校、澤州一中等四校2025屆物理高一下期末教學(xué)質(zhì)量檢測模擬試題含解析
- 福建省永春縣第一中學(xué)2025年物理高一下期末調(diào)研模擬試題含解析
- 2025屆江蘇省淮安、宿遷等物理高二下期末質(zhì)量跟蹤監(jiān)視模擬試題含解析
- 遼寧省瓦房店市2025年物理高一下期末聯(lián)考模擬試題含解析
- 2025測量數(shù)據(jù)采集個(gè)人工作總結(jié)范文
- 財(cái)會專業(yè)作業(yè)設(shè)計(jì)與質(zhì)量評價(jià)改革心得體會
- 2025年人教版小學(xué)語文二年級下冊單元教學(xué)計(jì)劃
- 2025年江蘇省南通市海安中學(xué)高二物理第二學(xué)期期末質(zhì)量跟蹤監(jiān)視模擬試題含解析
- 內(nèi)蒙古興安市2024-2025學(xué)年八上物理期末達(dá)標(biāo)檢測試題含解析
- 浙江省杭州濱江區(qū)六校聯(lián)考2024-2025學(xué)年八上數(shù)學(xué)期末質(zhì)量跟蹤監(jiān)視試題含解析
- 建筑工程項(xiàng)目管理人員工作標(biāo)準(zhǔn)
- (完整文本版)新概念英語第一冊單詞表默寫版1-144
- 建設(shè)用地報(bào)批服務(wù)投標(biāo)方案(技術(shù)方案)
- 仁愛版英語九年級(上)全冊課文翻譯(互譯版)
- (2023版)小學(xué)語文一年級上冊電子課本
- 新華鎮(zhèn)生活污水處理管網(wǎng)與新華農(nóng)場管網(wǎng)并網(wǎng)項(xiàng)目環(huán)境影響報(bào)告表
- 互聯(lián)網(wǎng)導(dǎo)論智慧樹知到課后章節(jié)答案2023年下上海第二工業(yè)大學(xué)
- 工程物探-第五章電法勘探課件
- KSS編碼說明電廠KKS編號
- 臺區(qū)線損綜合分析臺區(qū)線損分類及計(jì)算方法
- 人民醫(yī)院普外科臨床技術(shù)操作規(guī)范2023版
評論
0/150
提交評論