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

正文內容

畢業(yè)設計-基于8051單片機的電子電話薄設計(編輯修改稿)

2025-02-14 15:56 本頁面
 

【文章內容簡介】 引腳說明邏輯工作電壓(VDD) :~ 電源地(GND) :0V 工作溫度(Ta) :0~60 ℃( 常溫) / 20 ~75 ℃(寬溫 )三、接口時序 模塊有并行和串行兩種連接方法(時序如下): 8 位并行連接時序圖 MPU寫資料到模塊 接口時序圖四、用戶指令集 12864指令集 12864擴展指令集備注: 1 、當模塊在接受指令前,微處理順必須先確認模塊內部處于非忙碌狀態(tài),即讀取 BF標志時 BF需為 0,方可接受新的指令;如果在送出一個指令前并不檢查 BF標志 ,那么在前一個指令和這個指令中間必須延遲一段較長的時間,即是等待前一個指令確實執(zhí)行完成,指令執(zhí)行的時間請參考指令表中的個別指令說明。 2 、“RE”為基本指令集與擴充指令集的選擇控制位元,當變更“RE”位元后,往后的指令集將維持在最后的狀態(tài),除非再次變更“RE”位元,否則使用相同指令集時,不需每次重設“RE”位元。五、顯示坐標關系: 水平方向 X—以字節(jié)單位 垂直方向 Y—以位為單位 12864漢字顯示坐標 12864字符地址六、驅動函數:引腳定義:sbit LCD_RS=P2^5。 //命令/數據引腳sbit LCD_RW=P2^6。 //讀寫引腳sbit LCD_E=P2^7。 //使能引腳sbit LCD_PSB=P2^4。 //PSB腳為12864系列的串、并通訊功能切換,PSB=1為并口,PSB=0則為串口寫數據void WriteDataLCD(uchar dat)//寫數據{ LCD_RS=1。 LCD_RW=0。 LCD_E=0。 P0=dat。 DelayMs(1)。 LCD_E=1。 DelayMs(1)。 LCD_E=0。}寫命令void WriteCmdLCD(uchar cmd)//寫命令{ LCD_RS=0。 LCD_RW=0。 LCD_E=0。 P0=cmd。 DelayMs(1)。 LCD_E=1。 DelayMs(1)。 LCD_E=0。}液晶初始化函數void LCDInit()//初始化函數{ LCD_PSB=1。//并口模式 WriteCmdLCD(0x30)。//8位基本指令操作 DelayMs(5)。 WriteCmdLCD(0x0c)。//顯示開,關光標 DelayMs(5)。 WriteCmdLCD(0x01)。//清屏,把DDRAM計數器地址調整為00H DelayMs(5)。 WriteCmdLCD(0x06)。//指定在資料的讀取和寫入時光標的移動方向,DDRAM的地址計數器(AC)加1 DelayMs(5)。 } 4*4矩陣鍵盤獨立鍵盤與單片機連接時,每一個按鍵都需要單片機的一個I/O口,若某單片機系統(tǒng)需較多按鍵,如果用獨立按鍵便會占用過多的I/O口資源。單片機系統(tǒng)中I/O口資源往往比較寶貴,當用到多個按鍵時,為了節(jié)省I/O口線,我們引入矩陣鍵盤。本項目中將用到4*4矩陣鍵盤。我們將16個按鍵排成4行4列,第一行將每個按鍵的一端連接在一起構成行線,第一列將每個按鍵的另一端連接在一起構成列線,這樣便一共有4行4列共8根線,我們將這8根線連接到單片機的8個I/O口上,通過程序掃描就可以檢測到16個按鍵。檢測時,先送一列為低電平,其余幾列全為高電平,然后立即輪流檢測一次各行是否有低電平,若檢測到某一行為低電平,則我們便可確認當前被按下的鍵是哪一行哪一列的,用同樣方法輪流送各列一次低電平,再輪流檢測一次各行是否變?yōu)榈碗娖?,這樣既可檢測完所有的按鍵,當有鍵被按下時便可判斷出被按下的鍵是哪一個鍵。當然我們也可以將行線置為低電平,掃描列是否有低電平。這就是矩陣鍵盤檢測的原理和方法。 4*4矩陣鍵盤3 軟件編程3.1 編程語言簡介3.1.1 C51語言介紹由于單片機應用系統(tǒng)的日趨復雜,要求所寫的代碼規(guī)范化、模塊化,便于多人以軟件工程的形式進行協(xié)同開發(fā),匯編語言作為傳統(tǒng)的單片機應用系統(tǒng)的編程語言,已經不能滿足這樣的實際需要了。而C語言以其結構化和能產生高效代碼滿足了這樣的需求。隨著80C51單片機硬件性能的提升,尤其是片內程序存儲器容量的增大和時鐘工作頻率的提高,已基本克服了高級語言產生代碼長、運行速度慢、不適合單片機使用的致命缺點。由此C51已經得到廣泛的推廣和應用,成為80C51系列單片機的主流程序設計語言,甚至可以說是作為單片機開發(fā)人員必須要掌握的一門語言。采用C51程序設計語言,編程者只需了解變量和常量的存儲類型于80C51單片機存儲空間的對應關系,而不必深入了解單片機的硬件和接口。C51編譯器會自動完成變量的存儲單元的分配。C51語言基本詞法介紹:C51語言與標準C語言一樣,共有6種單詞:標識符(identifier)關鍵字(keyword)常量(constant)字符串(character string)運算符(operator)分隔符(punctuator) 為方便程序員自由書寫語句,允許單詞之間間隔任意距離(也可以換行、續(xù)行),C51語言增加了空白符。為了方便程序員對程序加以注釋,提高程序可讀性,C語言還規(guī)定了注釋符/* */和//。C51的數據和數據類型: C51的數據結構是以數據類型的形式出現的,它的數據類型包括基本類型、構造類型、指針類型和空類型。除了上述C51數據類型外,還有針對8051系列單片機內的特殊功能寄存器而設置的sfr和sfr16類型的數據和為操作特殊寄存器中的特定位而設置的sbit類型的數據。 在C51語言中,數據有常量和變量之分。常量是指在程序運行過程中其值不能改變的量,在源程序中,可以用預處理器的預定義語句定義一個標識符號來代表一個常量。變量是指在運行過程中值可以改變的量,一個變量由兩部分組成:變量名和變量值。每個變量都有一個變量名,根據變量數據類型的不同在計算機內存中占據一定的存儲單元(變量的地址),在該地址中存放的就是變量值。C51構造數據類型C51語言還提供了擴展的構造數據類型,又稱復合變量。這些按一定規(guī)則構成的數據類型有:數組、結構、共用體、枚舉等。數組是具有固定數目和相同類型成分分量的有序集合。構成一個數組的各數組元素必須是同一類的變量,而不允許在一個數組中出現不同類型的變量。數組有一維、二維、三維、多維數組之分,常用的是一維、二維數組和字符數組。數組的說明格式如下:[存儲類說明] 類型說明符 [修飾符] 標識符 [=初值] [,標識符[=初值]]…;其中存儲類說明、類型說明符、修飾符以及多數組說明與變量的說明格式完全一致,標識符和初值部分是數組的特征所在,決定了數組的維數等特征。結構定義:把多個不同類型的變量結合在一起形成的一個組合型變量,稱為結構變量,簡稱結構。構成一個結構的各個變量稱為結構元素(或成員),定義規(guī)則與變量名一致。共用體類型數據(也稱聯(lián)合類型)使各種類型的數據共同使用1塊內存空間。共用體類型是在內存中定義一段多種類型數據所共享的空間,空間大小以最長的類型為準。共用體類型和結構體類型類似,也可以包含多個不同數據類型的元素,但其變量所占有的內存使得共用體類型的變量至多只能存放該類型所包含的一個成員,即它所包含的成員只能共享同一個存儲空間。枚舉類型是一個有名字的某些整型數常量的集合。這些整型數常量是該類型變量可取的所有的合法值。枚舉定義應列出該類型變量的可取值。一個完整的枚舉定義說明格式如下:enum 枚舉類原型標識符 {枚舉常量標識符列表} 枚舉變量標識符表;也可以分成兩部分說明:enum 枚舉類原型標識符 {枚舉常量標識符列表};enum 枚舉類原型標識符 枚舉變量列表;在枚舉常量標識符列表中,每一個標識符代表一個整型常量,默認情況下,第一個常量標識符取值為0,第二個取值為1,依次類推。此外,也可以通過初始化來指定某常量標識符的值,初始化后,該常量標識符后續(xù)各常量標識符的值依次遞增。 3.1.2 C51語言和匯編語言的性能比較:在程序的開發(fā)上,使用C51語言比匯編語言更方便。第一,51的模塊化程序設計思想使得應用程序的開發(fā)過程大大簡化,可以由不同的程序員分別開發(fā)不同的功能模塊,最后在一起整合成完整的程序。第二,51程序的移植和修改相對容易。第三,C51語言提供了大量的函數庫,可以方便的調用,使得程序開發(fā)更為簡易。使用C51語言開發(fā)程序有產生的代碼較長,運行速度相對慢的缺點,需要通過選擇效率高的編譯系統(tǒng)來改善。編譯系統(tǒng)的選擇對于C51語言應用程序的運行效率有很大影響,編譯效率高的編譯器得到的目標文件長度短,結構合理,運行效率高。 匯編語言開發(fā)的難度相對大一些。首先,在開發(fā)時,使用匯編語言需要對存儲器分配進行仔細的安排,這一方面使得程序的編制更為靈活,但另一方面也使程序員需要考慮的問題更加復雜化。其次,使用匯編語言編制復雜的流程控制、復雜的數學運算等類型的程序時不很方便,但在控制硬件、位操作等方面表現優(yōu)異。最后,匯編語言是和硬件緊密結合的語言,程序在不同硬件平臺間的可移植性不好。盡管在開發(fā)上有一定難度,但是由于匯編語言運行速度快,效率高,能夠完全控制硬件,因而用匯編編制的應用程序一般效率比較高。3.1.3 編程語言選擇匯編語言與C51語言各有各的優(yōu)點。如C51語言有數組形式,存儲方便,匯編則無此優(yōu)點,但匯編命令容易學習,C51語言不容易掌握。因此,為了發(fā)揮C51語言和匯編語言各自的優(yōu)勢,提高程序的開發(fā)效率,本軟件采用C51語言和匯編語言的混合編程。由于C51語言是“函數的語言”,因而實現二者混合編程的關鍵就在于實現不同語言之間函數的交叉調用。由于C51語言對函數的參數、返回值傳送規(guī)則、段的選用和命名都做了嚴格規(guī)定,因而在混合編程時匯編語言要按照C51語言的規(guī)定來編寫。這也是一般高級語言和低級語言混合編程的通用規(guī)則,即低級語言要向高級語言看齊,按照高級語言的規(guī)定進行編寫.3.2 程序編寫3.2.1 輸入法程序電話本一個單元中應包含姓名(這里存儲的是姓名所對應的碼值)、電話號碼和存儲序號。中國的姓名最多為四個漢字,每個漢字對應一個八位二進制碼值,所以姓名用含四個元素的一維數組存儲。電話號碼為十一位,因此用含十一個元素的一維數組存儲。因為一個單元里姓名和電話號碼的方式不同,所以電話本采用結構體的形式存儲。結構的定義:把多個不同類型的變量結合在一起形成的一個組合型變量,稱為結構變量,簡稱結構,構成一個結構的各個變量成為結構元素(或成員),定義規(guī)則與變量名一致。因為電話本中各個單元具有相同的結構形式,即都包含姓名、號碼和存儲序號三個部分,因此可以定義成結構數組。C51允許將具有同樣結構類型的若干個結構變量定義成結構數組。當數組中每個元素都具有相同的結構類型的結構變量時,則稱該數組為結構數組。結構數組與一般變量數組的不同就在于結構數組的每一個元素都具有同一個結構類型的變量,她們具有同一個結構類型,含有相同的成員項。本項目將采用結構體處理拼音:struct PY_index { char *PY。 char *PY_mb。 }。一個結構體變量PY_index中有兩個成員,一個是指向字符型的指針PY,另一個是指向字符型的指針PY_mb.char * py_ime(char *strInput_py_str) { struct PY_index *cpHZ,*cpHZedge。 char i,cInputStrLength。 cInputStrLength=strlen(strInput_py_str)。 /*輸入拼音串長度*/ if(*strInput_py_str==39。\039。)return()。 /*如果輸入空字符返回0*/ for(i=0。icInputStrLength。i++) *(strInput_py_str+i)|=0x20。 /*將字母串轉為小寫*/ if(*strInput_py_str==39。i39。)return()。 /*錯誤拼音輸入*/ if(*strInput_py_str==39。u39。)return()。 if(*strInput_py_str==39。v39。)return()。 cpHZ=PY_index_headletter[strInput_py_str[0]39。a39。]。 /*查首字母索引*/ cpHZedge=PY_index_headletter[strInput_py_str[0]39。a39。+1]。 /*設置指針界限*/ strInput_py_str++。 /*指向拼音串第二個字母*/ while(cpHZcpHZedge) /*索引表不超界*/ { for(i=0。icInputStrLength。i++) { if(*(strInput_py_str+i)!=*((*cpHZ).PY+i))break。 /*發(fā)現字母串不配,退出*/ } if(i==cInputStrLength) /*字母串全配*/ { return (*cpHZ).PY_mb。 } cpHZ++。 } return 。
點擊復制文檔內容
高考資料相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1