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

正文內(nèi)容

智能型充電器的電源和顯示的設(shè)計畢業(yè)設(shè)計40論文41-資料下載頁

2025-08-06 09:52本頁面
  

【正文】 由于本人主要負責設(shè)計軟件部分,而本人之前對C語言這門課的學習不是非常的精通,因此在著手本章之前本人對C語言以及AVR單片機與C語言編程方面的書籍做了認真仔細的回顧、學習和再研究,這樣才對下面設(shè)計工作的開展打下了基礎(chǔ)。在本章里,本人將先介紹C語言開發(fā)的優(yōu)勢,然后介紹LCD的顯示原理、模塊的軟件特性等,接下來便是最主要的整個程序的設(shè)計。C語言是一種編譯型的結(jié)構(gòu)化程序設(shè)計語言,具有簡單的語法結(jié)構(gòu)和強大的處理功能,具有運行速度快、編譯效率高,移植性好和可讀性強等多種優(yōu)點,可以實現(xiàn)對系統(tǒng)便件的直接操作。用C語言來編寫目標系統(tǒng)軟件,可以大大縮短開發(fā)周期,且明顯地增加軟件的可讀性,便于改進和擴充,從而開發(fā)出大規(guī)模、高性能的應(yīng)用系統(tǒng)。其優(yōu)勢如下:(1) 可以大幅度加快開發(fā)進度,程序量越大,用C語言就越有優(yōu)勢。(2) 無需精通單片機指令集和具體的硬件,也能夠編出符合硬件實際專業(yè)水平的程序。(3) 可以實現(xiàn)軟件的結(jié)構(gòu)化編程,使得軟件的邏輯結(jié)構(gòu)變得清晰、有條理、便于開發(fā)小組計劃任務(wù)、分工合作。源程序的可讀性和可維護性都很好。(4) 省去了人工分配單片機資源的工作,在匯編語言中要為每一個子程序分配單片機的資源。在使用C語言后,只要在代碼中申明一下變量的類型,編譯器就會自動分配相關(guān)資源,根本不需要人工干預,從而有效地避免了人工分配單片機資源的差錯。(5) 匯編語言的可移植性很差,而C語言只要將一些與硬件相關(guān)的代碼作適當?shù)男薷?,就可以方便地移植到其它種類的單片機上。(6) C語言提供auto、static、flash等存儲類型,針對單片機的程序存儲空間、數(shù)據(jù)存儲空間及EEPROM空間自動為變量合理地分配空間,而且C語言提供復雜的數(shù)據(jù)類型,極大地增強了程序處理能力和靈活性。C編譯器能夠自動實現(xiàn)中斷服務(wù)程序的現(xiàn)場保護和恢復,并且提供常用的標準函數(shù)庫,供用戶使用。并且C編譯器能自動生成一些硬件的初始化代碼。(7) 對于一些復雜系統(tǒng)的開發(fā),可以通過移植(或C編譯器提供)的實時操作系統(tǒng)來實現(xiàn)。正由于C語言在系統(tǒng)開發(fā)中的優(yōu)勢,這次設(shè)計的所有程序設(shè)計都將采用C語言編寫,且通過ICCAVR編譯器操作AVR的硬件資源。 液晶顯示漢字或字符的原理 LCD本身不發(fā)光只是調(diào)節(jié)光的亮度,目前市面上的LCD顯示器都是利用液晶的扭曲一向列效應(yīng)制成,這是一種電場效應(yīng),夾在兩片導電玻璃電極間的液晶經(jīng)過一定處理,它內(nèi)部的分子呈直角扭曲,當線性偏振光透過其偏振面便會旋轉(zhuǎn)一個直角。當在玻璃電極上加上電壓后,在電場作用下,液晶的扭曲結(jié)構(gòu)消失,偏振光便可以直接通過。當去掉電場后液晶分子又恢復取扭曲結(jié)構(gòu)。把這樣的液晶置于兩個偏振片之間,改變偏振片相對位置就可以得到白底黑子或黑底白字的顯示形式。結(jié)合以上知識具體顯示原理如下:( 1 ) 線段的顯示點陣圖形式液晶由M*N個顯示單元組成,假設(shè)LCD顯示屏有64行,每行有128列,每8列對應(yīng)1字節(jié)的8位,即每行由16字節(jié),共16*8=128個點組成,屏上64*16個顯示單元與顯示RAM區(qū)1024字節(jié)相對應(yīng),每一字節(jié)的內(nèi)容和顯示屏上相應(yīng)位置的亮暗對應(yīng)。例如屏的第一行的亮暗由RAM區(qū)的00H~00FH的16字節(jié)的內(nèi)容決定,當(000)=FFH時,如屏的左上角顯示一條短亮線,長度為8個點;當(3FFH)=FFH時,則顯示屏的右下角顯示一條短亮線;當(000H)=FFH,(001H)=00H,(002H)=FFH,(003H)=00H,…(00EH)=FFH,(00FH)=00H時,則在屏的頂部顯示一條由8段亮線和8段暗線組成的虛線。這就是LCD顯示的基本原理。( 2 ) 字符的顯示用LCD顯示一個字符時比較復雜,因為一個字符由6*8或8*8點陣組成,既要找到和顯示屏上某幾個位置對應(yīng)的顯示RAM區(qū)的8字節(jié),還要使每字節(jié)的不同的位為“1”,其它的為“0”,為“1”的點亮,為“0”的不亮,這樣一來就組成某個字符。但對于內(nèi)帶字符發(fā)生器的控制器 (如HD61202)來說,顯示字符就比較簡單了,可讓控制器工作在文本方式,根據(jù)在LCD上開始顯示的行列號及每行的列數(shù)找出顯示RAM對應(yīng)的地址,設(shè)立光標,在此送上該字符對應(yīng)的代碼即可。( 3 ) 漢字的顯示漢字的顯示一般采用圖形方式,事先從微機中提取要顯示的漢字的點陣碼,每個漢字占32B,分左右兩半部,各占16B,左邊為5…右邊為6…根據(jù)在LCD上開始顯示的行列號及每行的列數(shù)可找到顯示RAM對應(yīng)的地址,設(shè)立光標,送上要顯示的漢字的一字節(jié),光標位置加1,送第二字節(jié),按行按列對齊,送第三字節(jié)……直到32B顯示完就可在LCD上得到一個完整的漢字。 LCD模塊的指令說明要完成顯示程序的設(shè)計,必須了解LCD液晶模塊的指令系統(tǒng)。這里采用的LCD是北京精電蓬遠顯示技術(shù)公司生產(chǎn)的MGLS系列圖形液晶顯示模塊,其內(nèi)藏KS0108B/HD61202控制器。KS0108B及其兼容控制驅(qū)動器( HD61202 )的指令系統(tǒng)比較簡單,一共只有7條指令,從作用上可分為兩類。第一條指令和第二條指令為顯示狀態(tài)設(shè)置類;其余指令為數(shù)據(jù)讀/寫操作指令。下面是各個指令的功能:1. 讀狀態(tài)指令R/W RSDB7 DB6 DB5 DB4 DB3 DB2 DB1 DB01 0BUSY 0 ON/OFF REST 0 0 0 0狀態(tài)字是計算機了解HD61202及其兼容控制驅(qū)動器當前狀態(tài),或是HD61202及其兼容控制驅(qū)動器向計算機提供其內(nèi)部狀態(tài)的唯一的信息渠道。狀態(tài)字為一字節(jié),其中僅有3位有效位,它們是:BUSY表示當前HD61202接口控制電路運行狀態(tài)。BUSY=1表示HD61202正在處理計算機發(fā)來的指令或數(shù)據(jù)。此時接口電路被封鎖,不能接受除讀狀態(tài)字以外的任何操作。BUSY=0表示HD61202接口電路已處于“準備好”狀態(tài),等待計算機的訪問。ON/OFF表示當前的顯示狀態(tài)。ON/OFF=1表示關(guān)顯示狀態(tài);ON/OFF=0表示開顯示狀態(tài)。RESET表示當前HD61202的工作狀態(tài),即反映RST端的電平狀態(tài)。當RST為低電平狀態(tài)時,HD61202處于復位工作狀態(tài),RESET=1;當RST為高電平狀態(tài)時,HD61202為正常工作狀態(tài),RESET=0。在指令設(shè)置和數(shù)據(jù)讀寫時要注意狀態(tài)字中的BUSY標志。只有在BUSY=0時,計算機對HD61202的操作才能有效,因此計算機在每次對HD61202操作之前,都要讀出狀態(tài)字以判斷BUSY是不為“0”。若不為“0”,則計算機需要等待,直至BUSY=0為止。2. 顯示開關(guān)指令R/W RSDB7 DB6 DB5 DB4 DB3 DB2 DB1 DB00 00 0 1 1 1 1 1 1/0該指令設(shè)置顯示開/關(guān)觸發(fā)器的狀態(tài),由此控制顯示數(shù)據(jù)鎖存器的工作方式,從而控制顯示屏上的顯示狀態(tài)。D位為顯示開/關(guān)控制位。當D=1為開顯示設(shè)置,顯示數(shù)據(jù)鎖存器正常工作,顯示屏上呈現(xiàn)所需的顯示效果。此時在狀態(tài)字中ON/OFF=0;當D=0為關(guān)顯示設(shè)置,顯示數(shù)據(jù)鎖存器被置零,顯示屏呈不顯示狀態(tài),但顯示存儲器并沒有被破壞,在狀態(tài)字中ON/OFF=1。3. 顯示起始行設(shè)置指令R/W RSDB7 DB6 DB5 DB4 DB3 DB2 DB1 DB00 01 1 顯示起始行( 063 ) 該指令設(shè)置了顯示起始行寄存器的內(nèi)容。HD61202有64行顯示的管理能力,該指令中L5~L0為顯示起始行的地址,取值在0~3FH( 1~64行)范圍內(nèi),它規(guī)定了顯示屏上最頂一行所對應(yīng)的顯示存儲器的行地址。如果定時間隔地,等間距地修改( 如加1或減1)顯示起始行寄存器的內(nèi)容,則顯示屏將呈現(xiàn)顯示內(nèi)容向上或向下平滑滾動的顯示效果。4. 頁面地址設(shè)置指令R/W RSDB7 DB6 DB5 DB4 DB3 DB2 DB1 DB00 01 0 1 1 1 頁號( 0~7 ) 該指令設(shè)置了頁面地址——X地址寄存器的內(nèi)容。HD61202將顯示存儲器分成8頁,指令代碼中P2P0就是要確定當前所要選擇的頁面地址,取值范圍為07H,代表第18頁。該指令規(guī)定了以后的讀/寫操作將在哪一個頁面上進行。5. 列地址設(shè)置指令R/W RSDB7 DB6 DB5 DB4 DB3 DB2 DB1 DB00 00 1 顯示列地址( 0~63 )該指令設(shè)置了Y地址計數(shù)器的內(nèi)容,C5~C0=0~3FH( 1~64 )代表了某一頁面上的某一個單元地址,隨后的一次讀或?qū)憯?shù)據(jù)將在這個單元上進行。Y地址計數(shù)器具有自動加1功能,在每上次讀/寫數(shù)據(jù)后它將自動加1,所以在連續(xù)進行讀/寫數(shù)據(jù)時,Y地址計數(shù)器不必每次都設(shè)置一次。頁面地址的設(shè)置和列地址的設(shè)置將顯示存儲器單元唯一的確定下來,為后來的顯示數(shù)據(jù)的讀/寫作了地址的選通。6. 寫數(shù)據(jù)指令R/W RSDB7 DB6 DB5 DB4 DB3 DB2 DB1 DB00 1寫  數(shù)   據(jù)該操作將8位數(shù)據(jù)寫入先前已確定的顯示存儲器的單元內(nèi)。操作完成后列地址計數(shù)器自動加1。7. 讀數(shù)據(jù)指令R/W RSDB7 DB6 DB5 DB4 DB3 DB2 DB1 DB01 1   讀  顯  示  數(shù)  據(jù)該操作將HD61202接口部的輸出寄存器內(nèi)容讀出,然后列地址計數(shù)器自動加一。必須注意的是,進行讀操作之前,必須有一次空讀操作,緊接著再讀才會讀出所要讀的單元中的數(shù)據(jù)。 液晶顯示界面本著簡單明了的基本思想前面提到,結(jié)合液晶顯示模塊的相關(guān)知識,設(shè)計出如下界面:智能型充電器   電池:   電壓: V節(jié)數(shù);   電流: A狀態(tài):   溫度: ℃圖31 LCD界面顯示這次設(shè)計采用的液晶顯示模塊本是由北京精電公司所造的圖形式的MGLS12864芯片,其用一片KS0107B或兼容驅(qū)動器( HD61203 )作為行驅(qū)動器和三片KS0108B或兼容驅(qū)動器(HD61203) 作為列驅(qū)動器組成的。液晶顯示的第一行為“智能型充電器”,由左起第四列開始顯示,這樣正好左右平均分配。第二行左起頂格顯示“電池”,表示對充電電池的選擇,可進行“鋰電、鎳鎘、鎳氫、鉛酸”四種電池的選取,第三行顯示電池的節(jié)數(shù),第四行顯示狀態(tài),可以在“快充、涓充、充滿、放電”四個選項間進行選取,第二行到第四行左起分別顯示電壓、電流和溫度數(shù)值。由此可見,左邊的兩選項在充放電的過程中是不變的,而右邊的三個參數(shù)在充電過程中隨時發(fā)生變化。 系統(tǒng)程序流程圖為了方便程序的設(shè)計,使自己在設(shè)計過程中做到思路清晰,設(shè)計起來游刃有余。這里首先畫出了程序流程圖,后面根據(jù)次流程圖具體設(shè)計程序,現(xiàn)具體分析如下:(一)主程序流程圖這次設(shè)計課題的主要內(nèi)容是在充電器的充電過程中,采集參數(shù),進行電壓、電流、溫度的實時顯示。其主流程圖設(shè)計如下:按 鍵 調(diào) 節(jié)采樣V、A、T顯示V、A、T 充滿?結(jié) 束YN 初 始 化采 集 電 池 電 壓>0開 始Y有 電 池無 電 池等 待掃 描 按 鍵有鍵按下?YNN (1) 圖32 主程序流程圖(二)控制程序流程圖要想在液晶模塊上顯示一個字符或漢字,首先必須得對控制字進行寫指令代碼、寫顯示數(shù)據(jù)和讀顯示數(shù)據(jù)3項操作。完成這3項工作都必須保證控制器處于不忙的情況下,這就必須有一個判忙子程序,其流程圖如下:開 始讀左邊控制器的狀態(tài)字驅(qū)動器忙?送 狀 態(tài) 字返 回YN 圖33 判忙程序流程圖 (三)顯示程序流程圖根據(jù)上面采用的方法設(shè)置漢字的初始值(lr、X、Y),當顯示完第一列的8字節(jié)以后,跳到第二列又從上往下顯示。由于一個漢字每一列有16字節(jié),則當一頁的16列顯示完,只相當于顯示的漢字的上半部分,則再次跳到下一頁的初始位,進行漢字下半部分的顯示,值到16列顯示完成,才表示一個漢字全部顯示結(jié)束。通過上面的介紹,一個漢字的顯示流程圖編寫如下:滿16列?NY漢顯完成,繼續(xù)嗎?NY返 回設(shè)lr、X、Y初始值lr—選取控制器X—頁面值,Y—列地址值開 始 顯 示顯示滿16列?NYX+1顯示下半部分開 始初 始 化 圖34 漢字顯示流程圖按上面的流程圖,就可以進行顯示程序的設(shè)計了。具體程序詳見附錄的程序清單。第四章 系統(tǒng)調(diào)試第一節(jié) 系統(tǒng)調(diào)試軟件介紹完成對系統(tǒng)的硬、軟件設(shè)計后,就可以對系統(tǒng)進行調(diào)試了。本次設(shè)計本人采用了ICCAVR編譯器作為系統(tǒng)的開發(fā)工具,進行程序的燒錄和仿真。 ICCAVR編譯器簡介(一) ICC AVR是ImageCraft公司針對AVR單片機而開發(fā)的一個C語言編譯,它具有以下幾個特點:。(STK200/300)。 AVR是一個運行于Windows 9X/NT的集成開發(fā)環(huán)境(ODE),它包括單片機軟件開發(fā)所需要的編輯器、工程管理器和C編譯器。 AVR采用了工程的組織形式。程序的所有源文件全部以工程的一個要素保存在工程中,并且程序的編輯和編譯也都在這個環(huán)境中進行。工程管理器最后還能生
點擊復制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1