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

正文內(nèi)容

基于msp430單片機的智能門鎖控制系統(tǒng)設(shè)計終稿(參考版)

2025-06-25 23:59本頁面
  

【正文】 七.鍵盤設(shè)計與實現(xiàn)(一) 鍵盤的工作原理在單片機中,鍵盤是人機對話的輸入設(shè)備,借助鍵盤可以設(shè)置參數(shù),發(fā)出控制指令等。 LcdDisplayWord(1,0xC0,0xB8,0X6F,WordTable_D)。LcdDisplayWord(0,0xC0,0xB8,0X1F,WordTable_B)。 LcdDisplayInit(1)。 Init_Port()。 // 關(guān)閉中斷 _DINT()?!懊堋眂har WordTable_D[] ={ 0X00,0X40,0X28,0XF8,0XA8,0XE8,0X00,0X00, 0X78,0X48,0X48,0X48,0X78,0X40,0XC0,0X00 0X00,0X00,0X00,0X00,0X00,0X00,0X00, 0X00,0X01,0X01,0X01,0X01,0X01,0X04,0X0F,0X00}。 “輸”char WordTable_B[] = { 0X00, 0X00, 0X00, 0X00, 0X00, 0X00,0X80,0XC8, 0X20,0X40,0X80, 0X00, 0X00, 0X00, 0X00, 0X00, 0X00, 0X00,0X08,0X04,0X02,0X01, 0X00, 0X00, 0X00, 0X00, 0X00,0X01,0X02,0X04,0X08,0X1}。 return。 LcdDisplayInit(1)。 Init_Port()。 // 關(guān)閉中斷 _DINT()。5 以上給出了液晶模塊操作的程序,下面為一個測試程序:include include char WordTable[] = { 0x00,0xF8,0x48,0x48,0x48,0x48,0xFF,0x48, 0x48,0x48,0x48,0xFC,0x08,0x00,0x00,0x00, 0x00,0x07,0x02,0x02,0x02,0x02,0x3F,0x42, 0x42,0x42,0x42,0x47,0x40,0x70,0x00,0x00}。 WriteData(nZone,nTemp,i)。i 16。 //設(shè)置頁地址 SendCommand(nZone,nPageNo)。 WriteData(nZone,nTemp,i)。i 16。 //設(shè)置頁地址 SendCommand(nZone,nPageNo)。 char nTemp。}4 一般說來,漢字的點陣為16行16行。 DisplayOn(nZone)。 //清屏 ClearScreen(nZone)。 //ADC選擇 nCommand = 0xA0。 //復位 nCommand = 0xE2。 //占空比設(shè)置 nCommand = 0xA9。 //靜態(tài)顯示驅(qū)動 nCommand = 0xA4。具體程序如下:void LcdDisplayInit(int nZone){ char nCommand。}3 在上面程序的基礎(chǔ)上,就基本可以實現(xiàn)數(shù)據(jù)顯示。 } //頁地址增加 nPageNum += 1。j++) { //等待閑 WaitIdle(nZone)。 for(j = 0。i 4。 //設(shè)置頁地址代碼 nPageNum = 0xB8。}void ClearScreen(int nZone){ int i,j。 //如果打開就跳出循環(huán) if(nTemp == 1) break。 BIT5)。 A0_Low()。 E1_Low()。 E2_Low()。 //讀狀態(tài) //設(shè)置為輸入方向 P4DIR = 0x00。) { //發(fā)送顯示開命令 SendCommand(nZone,0xAE)。}void DisplayOff(int nZone){ char nTemp。 //如果打開就跳出循環(huán) if(nTemp == 0) break。 BIT5)。 A0_Low()。 E1_Low()。 E2_Low()。 //讀狀態(tài) //設(shè)置為輸入方向 P4DIR = 0x00。) { //發(fā)送顯示開命令 SendCommand(nZone,0xAF)。}void DisplayOn(int nZone){ char nTemp。 } R_W_High()。 //寫入指令 if(nZone == 0) { //E1區(qū) E1_Low()。 A0_High()。 E1_Low()。 E2_Low()。 //設(shè)置P4口為輸出方向 P4DIR = 0xff。}void WriteData(int nZone,char nVal, char nAddr){ //設(shè)置列地址 SendCommand(nZone,nAddr)。 } R_W_High()。 //寫入指令 if(nZone == 0) { //E1區(qū) E1_Low()。 A0_Low()。 E1_Low()。 E2_Low()。 //設(shè)置P4口為輸出方向 P4DIR = 0xff。 } return。 nTemp = 7。 //取出D7 nTemp = (P4IN amp。 } R_W_High()。 } else { //E2區(qū) E2_High()。) { if(nZone == 0) { //E1區(qū) E1_High()。 //設(shè)置P4口為輸入方向 P4DIR = 0。下面給出具體的程序代碼。 return。 _NOP()。}void R_W_Low(void){ // P5OUT amp。 _NOP()。}void R_W_High(void){ // P5OUT |= BIT1。 _NOP()。= ~(BIT0)。 return。 _NOP()。 return。 _NOP()。}void E2_Low(void){ // P5OUT amp。 _NOP()。}void E2_High(void){ // P5OUT |= BIT3。 _NOP()。= ~(BIT2)。 return。 _NOP()。}此程序是設(shè)置E1 E2 R/W A0的控制管腳的輸入輸出方向。P5DIR │=BIT3。P5DIR │=BIT1。 漢字處理流程圖(九) LCD液晶顯示流程圖LCD顯示實驗流程圖見圖(十) 軟件設(shè)計整個程序包括單片機的初始化,液晶模塊操作。按上述方法提取系統(tǒng)中所需要的漢字字模,建立由多個漢字組成的漢字庫、多個數(shù)字組成的數(shù)字庫,將這兩個字庫寫入程序中,并存放在單片機的EPROM中,以備點陣式液晶顯示器顯示調(diào)用。每一種商品都事先規(guī)定好在液晶顯示屏上的顯示位置,因為該液晶顯示器共可顯示兩行漢字,每行漢字占兩頁,所以顯示每一行漢字時,先根據(jù)每個漢字的編號確定其入口地址,然后分別讀取它們的前16個字節(jié)在上半頁顯示,再分別讀取這些漢字的后16個字節(jié)在下半頁顯示,這樣即可把一行漢字全部顯示出來。點陣液晶顯示屏的一個點對應存儲器中的一位,置位則顯示,清除則不顯示,因此只要控制相應的數(shù)據(jù)位就可控制液晶顯示屏的顯示。芯片指令表指令名稱R/WA0D7D6D5D4D3D2D1D0顯示開/關(guān)00101起始行設(shè)置00110起始行(0~31)設(shè)置頁地址0010110頁地址(0~3)設(shè)置列地址000列地址(0~79)1讀狀態(tài)寄存器10busyadcOffonreset0000寫數(shù)據(jù)01寫入的數(shù)據(jù)讀數(shù)據(jù)11 讀出的數(shù)據(jù)ADC選擇0010110000/1靜態(tài)驅(qū)動開關(guān)0010100100/1占空比選擇0010101000/1換行開始0011100000/1換行結(jié)束0011101110/1復位00010(六) 漢字顯示原理在LCD顯示中,本設(shè)計還增添了漢字顯示的功能,實現(xiàn)了在LCD液晶屏幕上顯示“請輸入密碼”的中文字樣的功能,這也用到了漢字顯示的一些設(shè)計,才能得以實現(xiàn)。以減少干擾。單片機的P4口與MG 12232的數(shù)據(jù)總線進行連接。表 MG12232液晶顯示模塊引腳表引腳符號功能1VDD+3V2GND接地3V0液晶對比度電壓4RES復位5E1讀寫使能信號 (Master)6E2 讀寫使能信號 (Slave)7R/W讀寫控制管腳8A0寄存器選擇管腳9D0數(shù)據(jù)線10D111D212D313D414D515D616D717SLALCD陽極18SLKLCD陰極 MG12232接口電路圖由前面的介紹知道,接口電路非常簡單。R/W=1為讀信號,R/W=0為寫信號。178。178。 RES:接口時序類型選擇。當A0=0時,表示是指令或讀出的狀態(tài)。 A0: 數(shù)據(jù)/指令選擇信號。具體信號如下:178。單片機通過該芯片的驅(qū)動來實現(xiàn)數(shù)據(jù)顯示,因此該芯片的管腳信號大致分為兩類:單片機接口信號和液晶驅(qū)動信號。下面對該芯片進行介紹。該模塊可顯示范圍為12232點陣,即能實現(xiàn)所謂的雙排漢顯。如果向模塊發(fā)出一個完整的顯示漢字的命令,包括坐標及漢字代碼在內(nèi)共需5個字節(jié),模塊在接收到最后一個字節(jié)后才開始執(zhí)行整個命令的內(nèi)部操作,因此,最后一個字節(jié)的應答B(yǎng)USY高電平(BUSY=1)持續(xù)的時間較長。OCMJ模塊在收到外部的REQ高電平信號后立即讀取數(shù)據(jù)線上的命令或數(shù)據(jù),同時將應答線BUSY變?yōu)楦唠娖?,表明模塊已經(jīng)收到并正在忙于對此數(shù)據(jù)的內(nèi)部處理,此時,用戶對模塊的寫操作已經(jīng)完成。應答 BUSY高電平(BUSY=1)表示OCMJ忙于內(nèi)部處理,不能接受用戶命令;BUSY低電平(BUSY=0)表示OCMJ空閑,等待接受用戶的命令。同時保留了一條專用的復位線,可對工作中的模塊進行軟件或者硬件強制復位。本系列模塊具有上/下/左/右移動當前顯示屏幕及清除屏幕的命令的功能。完全兼容一般的點陣模塊。用戶輸入?yún)^(qū)位碼或ASCⅡMA碼即可實現(xiàn)文本顯示,也可用作一般的點陣圖形顯示器之用。 (三) 點陣式LCD的特點點陣式LCD顯示電路是在系統(tǒng)板上外掛的正式液晶顯示模塊,模塊的數(shù)據(jù)線、狀態(tài)、控制線都通過插孔引出,可直接與系統(tǒng)相連。而VE500的超快訊號反應時間快達16ms(毫秒),則讓光標移動無時差,移動過程清楚易見,不帶來作業(yè)困擾。訊號反應時間愈快,作業(yè)處理愈方便。(4)快速訊號反應時間:訊號反應是指系統(tǒng)接收鍵盤或鼠標的指示后,經(jīng)CPU計算處理,反應至顯示器的時間。某些LCD機種的單一角度,甚至只有40176。;上/下:177。;也可能分開標示為左/右:177。當上下、左右對稱時,可以將兩邊的角度值相加,標示為水平:160176。可視范圍的算法是從畫面中間,至上、下、左、右四個方向畫面清楚的角度范圍。(3)寬廣的可視范圍:可視范圍簡單的說,指的是在屏幕前畫面可以看的清楚的范圍。相反的,對比低,顏色顯的貧瘠,影像也會變得平板。低階的LCD亮度值,有低到150cd/m2,而高階的顯示器,則可高達250cd/m2。LCD有幾個基本特點:(1)高亮度:亮度值愈高,畫面自然更亮麗,不會朦朧。六.LCD模塊設(shè)計與實現(xiàn)(一) LCD的結(jié)構(gòu)設(shè)計LCD顯示器的原文是Liquid Crystal Display,中文多稱液晶顯示器。如果有數(shù)據(jù)需要發(fā)送的時候,主程序設(shè)置一個發(fā)送標志,并且觸發(fā)發(fā)送中斷,進入發(fā)送中斷服務程序。 } }}上面收發(fā)程序都處于等待狀態(tài),一旦外面有數(shù)據(jù)到來,則觸發(fā)接收,進入接收中斷服務程序。 nTX1_Len = 0。 nSend_TX1 += 1。 }}///////////////////////////////////////// 處理來自串口 1 的發(fā)送中斷interrupt [UART1TX_VECTOR] void UART1_TX_ISR(void){ if(nTX1_Len != 0) { nTX1_Flag = 0。 nRev_UART1 = 1。 //接收來自的數(shù)據(jù) nRX1_Len_temp += 1。:對于發(fā)送中斷,程序處于扥帶狀態(tài),如果檢測到有發(fā)送的標志,則從緩存區(qū)里取出數(shù)據(jù)發(fā)送:對于接收中斷,等待數(shù)據(jù)到來,如果有數(shù)據(jù)到來則
點擊復制文檔內(nèi)容
醫(yī)療健康相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1