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

正文內(nèi)容

基于單片機(jī)的自動停車收費(fèi)系統(tǒng)畢業(yè)設(shè)計(jì)(編輯修改稿)

2025-02-14 16:29 本頁面
 

【文章內(nèi)容簡介】 000BH—0012H 定時(shí)/計(jì)數(shù)器0中斷地址區(qū)。 0013H—001AH 外部中斷1中斷地址區(qū)。 001BH—0022H 定時(shí)/計(jì)數(shù)器1中斷地址區(qū)。 0023H—002AH 串行中斷地址區(qū)。 可見以上的40個單元是專門用于存放中斷處理程序的地址單元,中斷響應(yīng)后,按中斷的類型,自動轉(zhuǎn)到各自的中斷區(qū)去執(zhí)行程序。從上面可以看出,每個中斷服務(wù)程序只有8個字節(jié)單元,用8個字節(jié)來存放一個中斷服務(wù)程序顯然是不可能的。因此以上地址單元不能用于存放程序的其他內(nèi)容,只能存放中斷服務(wù)程序。但是通常情況下,我們是在中斷響應(yīng)的地址區(qū)安放一條無條件轉(zhuǎn)移指令,指向程序存儲器的其它真正存放中斷服務(wù)程序的空間去執(zhí)行,這樣中斷響應(yīng)后,CPU讀到這條轉(zhuǎn)移指令,便轉(zhuǎn)向其他地方去繼續(xù)執(zhí)行中斷服務(wù)程序。[15]圖33是ROM的地址分配圖:圖33 從上圖中大家可以看到,0000H0002H,只有三個存儲單元,3個存儲單元在我們的程序存放時(shí)是存放不了實(shí)際意義的程序的,通常我們在實(shí)際編寫程序時(shí)是在這里安排一條ORG指令,通過ORG指令跳轉(zhuǎn)到從0033H開始的用戶ROM區(qū)域,再來安排我們的程序語言。從0033開始的用戶ROM區(qū)域用戶可以通過ORG指令任意安排,但在應(yīng)用中應(yīng)注意,不要超過了實(shí)際的存儲空間,不然程序就會找不到。[15]數(shù)據(jù)存儲器 數(shù)據(jù)存儲器也稱為隨機(jī)存取數(shù)據(jù)存儲器。數(shù)據(jù)存儲器分為內(nèi)部數(shù)據(jù)存儲和外部數(shù)據(jù)存儲。MCS51內(nèi)部RAM有128或256個字節(jié)的用戶數(shù)據(jù)存儲(不同的型號有分別),片外最多可擴(kuò)展64KB的RAM,構(gòu)成兩個地址空間,訪問片內(nèi)RAM用“MOV”指令,訪問片外RAM用“MOVX”指令。它們是用于存放執(zhí)行的中間結(jié)果和過程數(shù)據(jù)的。MCS51的數(shù)據(jù)存儲器均可讀寫,部分單元還可以位尋址。 MCS51單片機(jī)的內(nèi)部數(shù)據(jù)存儲器在物理上和邏輯上都分為兩個地址空間,即:數(shù)據(jù)存儲器空間(低128單元);特殊功能寄存器空間(高128單元);這兩個空間是相連的,從用戶角度而言,低128單元才是真正的數(shù)據(jù)存儲器。下面我們就來詳細(xì)的與大家講解一下:低128單元: 片內(nèi)數(shù)據(jù)存儲器為8位地址,所以最大可尋址的范圍為256個單元地址,對片外數(shù)據(jù)存儲器采用間接尋址方式,R0、R1和DPTR都可以做為間接尋址寄存器,R0、R1是8位的寄存器,即R0、R1的尋址范圍最大為256個單元,而DPTR是16位地址指針,尋址范圍就可達(dá)到64KB。也就是說在尋址片外數(shù)據(jù)存儲器時(shí),尋址范圍超過了256B,就不能用R0、R1做為間接尋址寄存器,而必須用DPTR寄存器做為間接尋址寄存器。圖34從圖34中我們可以看到,8051單片機(jī)片內(nèi)RAM共有256個單元(00HFFH),這256個單元共分為兩部分。其一是地址從00H—7FH單元(共128個字節(jié))為用戶數(shù)據(jù)RAM。從80H—FFH地址單元(也是128個字節(jié))為特殊寄存器(SFR)單元。從圖1中可清楚地看出它們的結(jié)構(gòu)分布。[1]通用寄存器區(qū)(00H1FH) 在00H—1FH共32個單元中被均勻地分為四塊,每塊包含八個8位寄存器,均以R0—R7來命名,我們常稱這些寄存器為通用寄存器。這四塊中的寄存器都稱為R0—R7,那么在程序中怎么區(qū)分和使用它們呢?聰明的INTEL工程師們又安排了一個寄存器——程序狀態(tài)字寄存器(PSW)來管理它們,CPU只要定義這個寄存的PSW的D3和D4位(RS0和RS1),即可選中這四組通用寄存器。對應(yīng)的編碼關(guān)系如下表所示。惹程序中并不需要用4組,那么其余的可用做一般的數(shù)據(jù)緩沖器,CPU在復(fù)位后,選中第0組工作寄存器。圖34位尋址區(qū)(20H2FH)片內(nèi)RAM的20H—2FH單元為位尋址區(qū),既可作為一般單元用字節(jié)尋址,也可對它們的位進(jìn)行尋址。位尋址區(qū)共有16個字節(jié),128個位,位地址為00H—7FH。CPU能直接尋址這些位,執(zhí)行例如置“1”、清“0”、求“反”、轉(zhuǎn)移,傳送和邏輯等操作。我們常稱MCS51具有布爾處理功能,布爾處理的存儲空間指的就是這些為尋址區(qū)。[1]用戶RAM區(qū)(30H7FH)在片內(nèi)RAM低128單元中,通用寄存器占去32個單元,位尋址區(qū)占去16個單元,剩下的80個單元就是供用戶使用的一般RAM區(qū)了,地址單元為30H7FH。對這部份區(qū)域的使用不作任何規(guī)定和限制,但應(yīng)說明的是,堆棧一般開辟在這個區(qū)域。[1] 顯示器介紹 在日常生活中,我們對液晶顯示器并不陌生。液晶顯示模塊已作為很多電子產(chǎn)品的通過器件,如在計(jì)算器、萬用表、電子表及很多家用電子產(chǎn)品中都可以看到,顯示的主要是數(shù)字、專用符號和圖形。在單片機(jī)的人機(jī)交流界面中,一般的輸出方式有以下幾種:發(fā)光管、LED數(shù)碼管、液晶顯示器。 顯示器的選擇 數(shù)碼管顯示內(nèi)容單一,一般就是一個7段的8字,當(dāng)然多的有16段的中間米字型的,液晶則比較豐富,可以顯示各種內(nèi)容。且數(shù)碼管比液晶耗電。 綜上所述,在單片機(jī)系統(tǒng)中應(yīng)用晶液顯示器作為輸出器件有以下幾個優(yōu)點(diǎn):顯示質(zhì)量高、數(shù)字式接口、體積小、重量輕、功耗低。相對而言,液晶顯示器的功耗主要消耗在其內(nèi)部的電極和驅(qū)動IC上,因而耗電量比其它顯示器要少得多。故本設(shè)計(jì)采用1602字符型液晶顯示。 液晶顯示原理液晶顯示器各種圖形的顯示原理:線段的顯示:點(diǎn)陣圖形式液晶由MN個顯示單元組成,假設(shè)LCD顯示屏有64行,每行有128列,每8列對應(yīng)1字節(jié)的8位,即每行由16字節(jié),共168=128個點(diǎn)組成,屏上6416個顯示單元與顯示RAM區(qū)1024字節(jié)相對應(yīng),每一字節(jié)的內(nèi)容和顯示屏上相應(yīng)位置的亮暗對應(yīng)。例如屏的第一行的亮暗由RAM區(qū)的000H——00FH的16字節(jié)的內(nèi)容決定,當(dāng)(000H)=FFH時(shí),則屏幕的左上角顯示一條短亮線,長度為8個點(diǎn);當(dāng)(3FFH)=FFH時(shí),則屏幕的右下角顯示一條短亮線;當(dāng)(000H)=FFH,(001H)=00H,(002H)=00H,……(00EH)=00H,(00FH)=00H時(shí),則在屏幕的頂部顯示一條由8段亮線和8條暗線組成的虛線。這就是LCD顯示的基本原理。[7]字符的顯示:用LCD顯示一個字符時(shí)比較復(fù)雜,因?yàn)橐粋€字符由68或88點(diǎn)陣組成,既要找到和顯示屏幕上某幾個位置對應(yīng)的顯示RAM區(qū)的8字節(jié),還要使每字節(jié)的不同位為“1”,其它的為“0”,為“1”的點(diǎn)亮,為“0”的不亮。這樣一來就組成某個字符。但由于內(nèi)帶字符發(fā)生器的控制器來說,顯示字符就比較簡單了,可以讓控制器工作在文本方式,根據(jù)在LCD上開始顯示的行列號及每行的列數(shù)找出顯示RAM對應(yīng)的地址,設(shè)立光標(biāo),在此送上該字符對應(yīng)的代碼即可。 1602LCD的使用說明1602LCD主要技術(shù)參數(shù): 顯示容量:162個字符 芯片工作電壓:— 工作電流:() 模塊最佳工作電壓: 字符尺寸:(WH)mm圖35引腳功能說明:1602LCD采用標(biāo)準(zhǔn)的14腳(無背光)或16腳(帶背光)接口,各引腳接口說明如圖36所示:編號符號引腳說明編號符號引腳說明1VSS電源地9D2數(shù)據(jù)2VDD電源正極10D3數(shù)據(jù)3VL液晶顯示偏壓11D4數(shù)據(jù)4RS數(shù)據(jù)/命令選擇12D5數(shù)據(jù)5R/W讀/寫選擇13D6數(shù)據(jù)6E使能信號14D7數(shù)據(jù)7D0數(shù)據(jù)15BLA背光源正極8D1數(shù)據(jù)16BLK背光源負(fù)極圖361602液晶模塊的讀寫操作、屏幕和光標(biāo)的操作都是通過指令編程來實(shí)現(xiàn)的。(說明:1為高電平、0為低電平)指令說明:與HD44780相兼容的芯片時(shí)序表如圖38:讀狀態(tài)輸入RS=L,R/W=H,E=H輸出D0—D7=狀態(tài)字寫指令輸入RS=L,R/W=L,D0—D7=指令碼,E=高脈沖輸出無讀數(shù)據(jù)輸入RS=H,R/W=H,E=H輸出D0—D7=數(shù)據(jù)寫數(shù)據(jù)輸入RS=H,R/W=L,D0—D7=數(shù)據(jù),E=高脈沖輸出無圖381602液晶模塊內(nèi)部的控制器共有11條控制指令,如表圖37所示:序號指令RSR/WD7D6D5D4D3D2D1D01清顯示00000000012光標(biāo)返回000000001*3置輸入模式00000001I/DS4顯示開/關(guān)控制0000001DCB5光標(biāo)或字符移位000001S/CR/L**6置功能00001DLNF**7置字符發(fā)生存貯器地址0001字符發(fā)生存貯器地址8置數(shù)據(jù)存貯器地址001顯示數(shù)據(jù)存貯器地址9讀忙標(biāo)志或地址01BF計(jì)數(shù)器地址10寫數(shù)到CGRAM或DDRAM)10要寫的數(shù)據(jù)內(nèi)容11從CGRAM或DDRAM讀數(shù)11讀出的數(shù)據(jù)內(nèi)容圖37:控制命令表1602LCD的RAM地址映射及標(biāo)準(zhǔn)字庫表:液晶顯示模塊是一個慢顯示器件,所以在執(zhí)行每條指令之前一定要確認(rèn)模塊的忙標(biāo)志為低電平,表示不忙,否則此指令失效。要顯示字符時(shí)要先輸入顯示字符地址,也就是告訴模塊在哪里顯示字符,圖39是1602的內(nèi)部顯示地址。圖39 1602LCD內(nèi)部顯示地址例如第二行第一個字符的地址是40H,那么是否直接寫入40H就可以將光標(biāo)定位在第二行第一個字符的位置呢?這樣不行,因?yàn)閷懭腼@示地址時(shí)要求最高位D7恒定為高電平1所以實(shí)際寫入的數(shù)據(jù)應(yīng)該是01000000B(40H)+10000000B(80H)=11000000B(C0H)。在對液晶模塊的初始化中要先設(shè)置其顯示模式,在液晶模塊顯示字符時(shí)光標(biāo)是自動右移的,無需人工干預(yù)。每次輸入指令前都要判斷液晶模塊是否處于忙的狀態(tài)。1602液晶模塊內(nèi)部的字符發(fā)生存儲器(CGROM)已經(jīng)存儲了160個不同的點(diǎn)陣字符圖形,如圖1058所示,這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫、常用的符號、和日文假名等,每一個字符都有一個固定的代碼,比如大寫的英文字母“A”的代碼是01000001B(41H),顯示時(shí)模塊把地址41H中的點(diǎn)陣字符圖形顯示出來,我們就能看到字母“A”圖310 字符代碼與圖形對應(yīng)圖1602LCD的一般初始化(復(fù)位)過程延時(shí)15mS寫指令38H(不檢測忙信號)延時(shí)5mS寫指令38H(不檢測忙信號)延時(shí)5mS寫指令38H(不檢測忙信號)以后每次寫指令、讀/寫數(shù)據(jù)操作均需要檢測忙信號寫指令38H:顯示模式設(shè)置寫指令08H:顯示關(guān)閉寫指令01H:顯示清屏寫指令06H:顯示光標(biāo)移動設(shè)置寫指令0CH:顯示開及光標(biāo)設(shè)置 鍵盤電路的設(shè)計(jì) 獨(dú)立式按鍵 鍵盤是由若干獨(dú)立的鍵組成,鍵的按下與釋放是通過機(jī)械觸點(diǎn)的閉合與斷開來實(shí)現(xiàn)的,因機(jī)械觸點(diǎn)的彈性作用,在閉合與斷開的瞬間均有一個抖動過程 。抖動必須消除,去抖動的方法主要有以下兩種:硬件去抖動、軟件去抖動。[3]圖311每一個按鍵的電路是獨(dú)立的,占用一條數(shù)據(jù)線 。這種鍵盤占用硬件資源多,適合少量按鍵的情況。編程時(shí)常采用查詢方式。圖312K1:按下時(shí),時(shí)自動加一,加到24點(diǎn)時(shí)自動從零開始。K2:按下時(shí),分鐘自動加一,加到60分時(shí)自動從零開始。K3:按下時(shí),價(jià)格自動加一,加到9元時(shí)自動從零開始。SB2:按下時(shí),車位數(shù)減一,大門打開,自動存儲相應(yīng)數(shù)據(jù)。SB4:按下時(shí),車位數(shù)加一,大門打開。 行列式鍵盤接口行列式(也稱矩陣式)鍵盤用于按鍵數(shù)目較多的場合,它由行線和列線組成,按鍵位于行、列的交叉點(diǎn)上。1個33的行、列結(jié)構(gòu)可以構(gòu)成1個具有9個按鍵的鍵盤。同理1個44的行、列結(jié)構(gòu)可以構(gòu)成1個16個按鍵的鍵盤等等。如圖所示。很明顯,在按鍵數(shù)目較多的場合,行列式鍵盤與獨(dú)立式鍵盤相比,要節(jié)省很多的I/O口線。 [4] 行列式鍵盤工作原理按鍵設(shè)置在行、列線交點(diǎn)上,行、列分別連接到按鍵開關(guān)的兩端。行線通過上拉電阻接到+5V上。無按鍵按下時(shí),行線處于高電平狀態(tài),而當(dāng)有按鍵按下時(shí),行線電平狀態(tài)將由與此行線相連的列線的電平?jīng)Q定。列線的電平如果為低,則行線電平為低;列線的電平如果為高,則行線電平亦為高。這一點(diǎn)是識別行列式鍵盤是否按下的關(guān)鍵所在。由于行列式鍵盤中行、列線為多鍵共用,各按鍵均影響該鍵所在的行和列的電平。因此各按鍵彼此將相互發(fā)生影響,所以必須將行、列線信號配合起來并作是的處理,才能確定閉合鍵的位置。[1]掃描法下面以圖中3號鍵被按下為例,來說明此鍵是如何被識別出來的。當(dāng)3號鍵被按下時(shí),與3號鍵相兩的行線電平將由與此鍵相連的列線電平?jīng)Q定,而行線電平在無按鍵按下時(shí)處于高電平狀態(tài)。如果讓所有的列線處于低電平,很明顯,按鍵所在的行電平將被接成低電平,根據(jù)此行電平的變化,便能判定此行一定有按鍵被按下。但還不能確定是鍵3被按下,以為如果鍵3不被按下,而同一行的鍵1或0之一被按下,均回產(chǎn)生同樣的效果。所以,行線處于低電平只能得出某行有按鍵被按下的結(jié)論。為進(jìn)一步判定到底是哪一列的按鍵被按下,可采用掃描法來識別。即在某一時(shí)刻只讓1條列線處于低電平,其余所有列線處于高電平。當(dāng)?shù)谝涣袨榈碗娖?,其余各列為高電平時(shí),以為是鍵3被按下,所以1行仍處于高電平狀態(tài);而當(dāng)?shù)诙袨榈碗娖剑溆喔髁袨楦唠娖綍r(shí),同樣我們會
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1