單片機應用技術項目化教程課件-項目9 電話撥號液晶顯示系統設計_第1頁
單片機應用技術項目化教程課件-項目9 電話撥號液晶顯示系統設計_第2頁
單片機應用技術項目化教程課件-項目9 電話撥號液晶顯示系統設計_第3頁
單片機應用技術項目化教程課件-項目9 電話撥號液晶顯示系統設計_第4頁
單片機應用技術項目化教程課件-項目9 電話撥號液晶顯示系統設計_第5頁
已閱讀5頁,還剩57頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

*開封大學單片機課件制作組項目9電話撥號液晶顯示系統的設計【項目導入】在單片機控制系統中,除了輸入輸出設備外,還有與操作人員進行信息交換的常規輸入與輸出設備,鍵盤和LCD就是其中常見的一種輸入/輸出設備。在此我們通過設計一個電話撥號鍵盤顯示系統來講述鍵盤的接口電路、鍵盤的工作原理和LCD顯示技術。讓大家掌握輸入/輸出技術在單片機控制系統的應用。*開封大學單片機課件制作組【項目目標】1.知識目標(1)掌握鍵盤的接口技術和編程方法;(2)理解鍵盤檢測的原理;(3)掌握單片機與LCD的接口技術。2.能力目標(1)掌握單片機與鍵盤的連接以及鍵盤的消抖技術;(2)能熟練使用C語言對液晶顯示模塊進行編程;(3)熟練掌握常用LCD顯示器的使用方法和一般鍵盤的使用方法。3.態度目標(1)具有認真的學習的態度和主動學習的積極性;(2)養成良好的職業習慣和與團隊協作共同開發的能力。(3)具有良好的安全意識、環保意識和責任意識。*開封大學單片機課件制作組9.1項目描述電話在人們的日常生活中是比較常見的電子產品之一,人們可以通過按鍵來撥打電話。當按下所撥電話號碼時,可以清楚地看到自己撥下電話號碼。基于這樣的理念,本項目采用AT89C51單片機、1602LCD顯示器、控制按鍵等元件來設計一個電話撥號顯示系統。通過此項目的學習,讓大家熟悉單片機如何通過鍵盤掃描來獲得輸入數據,再通過CPU把得到的數據按照一定的要求顯示。項目學習過程中重點掌握常用的LCD顯示器的使用方法和矩陣鍵盤的編程方法。*開封大學單片機課件制作組9.2項目目的與要求本項目的目的就是設計一個電話撥號顯示系統,該系統能完成把所按下的鍵轉化為電話號碼,并通過LCD1602顯示出所按下的電話號碼。項目在實施過程中需要解決的一下關鍵問題(1)單片機與矩陣鍵盤的接口電路設計;(2)矩陣鍵盤掃描程序的編寫;(3)單片機與液晶顯示模塊LCD1602的接口電路的設計;(4)液晶顯示模塊LCD1602顯示數字的C語言編程方法。*開封大學單片機課件制作組9.3

項目支撐知識鏈接 鍵盤是單片機系統常見的輸入設備,通過鍵盤輸入與單片機建立基本的人機交互通道,使單片機能夠接受用戶輸入的數據或命令。一、鍵盤工作原理 鍵盤(按鍵)是單片機系統常用的輸入設備。操作人員可以通過鍵盤輸入數據或命令,實現簡單的人-機通信。按鍵是一種常開型按鈕開關。平時(常態時),按鍵的兩個觸點處于斷開狀態,按下鍵時它們才閉合(短路)。9.3.1鍵盤接口電路工作原理*開封大學單片機課件制作組一、鍵盤識別原理 鍵盤分編碼鍵盤和非編碼鍵盤。鍵盤上閉合按鍵的識別由專用的硬件譯碼器實現,并產生鍵編號或鍵值的稱為編碼鍵盤,如BCD碼鍵盤、ASCII碼鍵盤等;靠軟件識別的稱為非編碼鍵盤。在單片機組成的測控系統及智能儀器中,用得最多的是非編碼鍵盤。本節著重討論非編碼鍵盤原理、接口計數和程序設計。鍵盤中每個按鍵都是一個常開開關元件,如圖示。

*開封大學單片機課件制作組 當按鍵K未被按下時,P1.0輸入為高電平;K閉合時,P1.0輸入低電平。

按鍵電路

*開封大學單片機課件制作組按鍵為機械彈性開關,在斷開、閉合的瞬間,由于機械觸點的彈性作用,會有一連串的抖動,其電壓信號波形如圖7-14示。 圖7-14按鍵抖動抖動時間的長短主要由按鍵的機械特性決定,一般在5ms~10ms之間,這一時間為實際中的去除機械抖動提供了參考。

*開封大學單片機課件制作組 當按鍵K未被按下時,P1.0輸入為高電平;K閉合時,P1.0輸入低電平。通常按鍵所用的開關為機械彈性開關,當機械觸點斷開、閉合時,由于機械觸點的彈性作用,一個按鍵開關在閉合時不會馬上穩定地接通,在斷開時也不會立即斷開。因而在閉合及斷開的瞬間均伴隨有一連串的抖動,其電壓信號波形如圖7-14示。抖動時間一般持續在5ms~10ms之間,這一時間為實際中的去除機械抖動提供了參考。

*開封大學單片機課件制作組

去除抖動抖動時間會引起一次按鍵的多次誤讀操作。為了確保CPU對按鍵的一次閉合僅做一次處理,必須消除鍵盤抖動。

基本思路在鍵盤閉合穩定時讀取鍵的狀態,并且必須判別到按鍵釋放穩定后再做處理。按鍵的去抖動通常有硬件和軟件兩種方法消除。 軟件/硬件去除抖動硬件去抖動電路復雜,需要添加額外的觸發器門電路,在鍵盤比較多時顯得不適用。而軟件去抖動僅僅是通過對單片機編程時做簡單的處理,不需要額外電路,實現方便,簡單,是最常用的鍵盤去抖動方式。

*開封大學單片機課件制作組二、獨立式鍵盤軟鍵盤可以分為獨立連接式鍵盤和行列矩陣兩類,每一類按其譯碼方式都可以分為編碼與非編碼兩種類型。由于非編碼鍵盤結構簡單,在實際中應用較多,此處僅介紹非編碼式鍵盤。1.獨立式按鍵獨立式按鍵是每個按鍵連接到一個單片機的I/O口上,如圖所示。這是最簡單的鍵盤結構,由于每個按鍵占用一個I/O口,當鍵盤較多的時候需要占用較多的I/O口,顯然是不合適的,因此該類鍵盤僅適用于鍵盤數量較少的情況。*開封大學單片機課件制作組

獨立非編碼鍵盤*開封大學單片機課件制作組

可以使用用查詢方式判斷這些鍵盤是否被按下。當開關沒有被按下時,對應的I/O口的狀態被拉到高電平1,當有按鍵按下時,對應的I/O口被短接到地,為低電平。因此檢測是否按鍵按下,只需要通過查詢方式查詢對應I/O口的狀態即可。

鍵盤結構

以下程序使用比較指令判斷鍵值。設鍵盤接在P1口,將P1口的值讀入A,當無鍵盤按下時,A的值為FFH。為了節省程序執行時間,當沒有鍵盤輸入時不執行鍵值比較程序,故對A取反。當判斷到A為0時,說明沒有鍵盤輸入,返回再去讀鍵盤。如果A值不為0,說明有鍵盤輸入,可找出是哪個按鍵被按下。程序中省略了軟件去抖動和判斷鍵盤釋放程序,僅包含鍵值判斷與鍵值查詢。*開封大學單片機課件制作組對圖中P1.0~P1.3的4個按鍵進行掃描來獲得檢測觸發信息,以實現不同的功能控制,其C51程序如下:SbitS0=P1^0;SbitS1=P1^1;SbitS2=P1^2;SbitS3=P1^3;/*******鍵盤掃描程序********

voidKeyscan{P1=0xff;//對P1口置1While(!s0)//判斷s0按鍵是否按下

{delay();//延時去抖

While(!s0){key1();}}While(!s1)//判斷s1按鍵是否按下

{delay();//延時去抖

While(!s1){key2();}}While(!s2)//判斷s2按鍵是否按下

{delay();//延時去抖

While(!s2){key3();}}While(!s3)//判斷s3按鍵是否按下

{delay()//延時去抖

While(!s3){key4();}}}*開封大學單片機課件制作組

當鍵盤的個數比較多的時候,比如有16個按鍵,如果仍舊按獨立式鍵盤的接法,則需要16個I/O口,這顯然不實用。一是單片機僅32個I/O口,一半用來接鍵盤不太可能,二是太多的線不利于PCB布線。因此,當鍵盤比較多時,通常都將鍵盤排成行列矩陣的形式,如圖。

2.行列掃描鍵盤(矩陣式鍵盤)*開封大學單片機課件制作組*開封大學單片機課件制作組

2.按鍵的識別具體過程是:⑴先將全部列線置為低電平,然后通過行線接口讀取行線電平,判斷鍵盤中是否有按鍵被按下。⑵判斷閉合鍵的具體位置。在確定鍵盤中有鍵被按下后,依次將列線置為低電平,再逐行檢測各行的電平狀態。若某行為低電平,則該行與置為低電平的列線相交處的按鍵即為閉合按鍵。⑶綜合上述2步的結果,即可確定閉合按鍵所在的行和列,從而識別出所按下的鍵。*開封大學單片機課件制作組矩陣式鍵盤的掃描常用編程方式、定時掃描或中斷掃描等方式,不管采用哪種方式,都要編制相應的鍵盤掃描程序。鍵盤掃描程序中,一般要具有以下功能。⑴判斷鍵盤上有無按鍵按下;⑵去鍵的機械抖動影響;⑶求所按下按鍵的鍵號;⑷轉向鍵處理程序。3.矩陣式鍵盤的軟件設計*開封大學單片機課件制作組

矩陣鍵盤鍵值的判斷有兩種方法,一種是逐行(列)掃描查詢法,另一種是速度較快的線反轉法。線反轉法實現首先是從列線上全部送0,讀入行線的狀態,然后反過來,從行線全部送0,讀入從列線狀態,將兩次行線、列線讀入的數據組合成一個字節就可以判斷出是哪個按鍵被按下了。這種方法只要通過兩次輸出,兩次讀入,就可以讀得鍵盤值,其實現過程簡單,速度快。而行列掃描方法卻相對要復雜些,以下詳細介紹之。四、鍵盤與I/O接口應用*開封大學單片機課件制作組

以圖7-16中4×4鍵盤為例,圖中D0~D3(P1.0~P1.3)為列輸出線,D4~D7(P1.4~P1.7)為行輸入線。

首先:列線全部送0,

然后:讀入所有行數據。如果此時沒有按鍵按下,行線接高電平,讀入行線數據全部為1。反之,如果有按鍵按下,按鍵對應的行線與列線短路,列線輸出的0送到行線,行線電平被拉低。因此,如果讀入的行線數據不全為1,說明有按鍵按下。*開封大學單片機課件制作組

為了準確找出16個按鍵中,到底是哪個按鍵被按下,還需要更進一步進行逐行逐列掃描。具體方法是將第1列置為‘0’,其他列置為‘1’,然后讀入行線的數據。判斷第1行D4數據是否為0,如果是0,則說明按下的是第1行第1列的上的按鍵K0,反之如果第1行不為0,則判斷第2行D5的數據是否為0。按同樣的方法,直到判斷第4行D7的數據是否為0為止。*開封大學單片機課件制作組

如可見,每輸出一個列掃描信號,逐一判斷一次行數據狀態就可以知道該列的4個按鍵中是否有閉合的。如果在第一列沒有判斷按鍵閉合,則從第2列輸出0,其余列送1,再次逐行判斷,看是否有按鍵閉合。由此可見,通過16次逐列逐行掃描,即可出K0-K15中閉合鍵盤所在的行列線位置(編碼)。*開封大學單片機課件制作組

每一個鍵盤對應的位置就進行行列掃描時的編碼,即列線掃描狀態字與行線讀入值的組合。如圖7-16中,鍵盤鍵值從左到右的編碼依次是77H,7BH,7DH,7EH;B7H,BBH,BDH,BEH…E7H,EBH,EDH,EEH。這種編碼字通常在實際編程中不適用,可以進一步對鍵值做處理,常用的方法是將16個鍵值映射成0~15連續16個自然數編號。*開封大學單片機課件制作組

【例9-1】設計一個通過按鍵控制LED燈亮、滅的單片機控制系統,要求:K1~K4做按鍵狀態顯示,K1按下時D1亮,松開時滅;K2按下時D2點亮,松開時熄滅;K3按下時D3滅,松開時D3亮;K4按下時D4滅,釋放亮。電路連接如圖

*開封大學單片機課件制作組*開封大學單片機課件制作組設計分析:由于此控制電路使用按鍵較少,可以通過獨立式鍵盤來實現控制功能,要求K1、K2、K3、K4分別與P1.0、P1.1、P1.2、P1.3連接。根據要求,編寫C51程序如下:#include<reg51.h>#defineucharunsignedchar#defineuintunsignedintsbitLED1=P0^0;sbitLED2=P0^1;sbitLED3=P0^2;sbitLED4=P0^3;sbitK1=P1^0;sbitK2=P1^1;sbitK3=P1^2;sbitK4=P1^3;*開封大學單片機課件制作組/****************延時*****************/voidDelayMS(uintx){ uchari; while(x--)for(i=0;i<120;i++);} /****************主程序*****************/voidmain(){ P0=0xff;//P0口置高電平

P1=0xff;//P1口置高電平

while(1) { LED1=K1; LED2=K2; if(K3==0) { while(K3==0); LED3=~LED3; } if(K4==0) { while(K4==0); LED4=~LED4; } DelayMS(10); }}*開封大學單片機課件制作組7.6

MCS-51的顯示接口

在單片機測控系統中,通常需要顯示器作為人-機交換界面的終端,顯示數據處理結果和工作過程或狀態。常用的顯示終端有發光二極管顯示器(LED)、液晶顯示器(LCD)等。*開封大學單片機課件制作組9.3.2

LCD液晶顯示器控制技術

LCD為英文LiquidCrystalDisplay的縮寫,即液晶顯示器,是一種數字顯示技術,可以通過液晶和彩色過濾器過濾光源,在平面面板上產生圖象。液晶顯示器具有結構小巧,造型美觀,顯示內容豐富等特點。因此在微機應用系統中有廣泛應用。*開封大學單片機課件制作組9.3.2

LCD液晶顯示器控制技術*開封大學單片機課件制作組液晶是一呈液體狀的化學物質,當受到外界電場影響時,其分子會產生精確的有序排列。如果對分子的排列加以適當的控制,液晶分子將會允許光線穿越。位于最后面的一層是由熒光物質組成的可以發射光線的背光層。背光層發出的光線在穿過第一層偏振過濾層之后進入包含成千上萬水晶液滴的液晶層。

LCD顯示原理液晶層中的水晶液滴都被包含在細小的單元格結構中,一個或多個單元格構成屏幕上的一個像素。當LCD中的電極產生電場時,液晶分子就會產生扭曲,從而將穿越其中的光線進行有規則的折射,然后經過第二層過濾層的過濾在屏幕上顯示出來。*開封大學單片機課件制作組型號為1602(A/B/C)的字符型LCD顯示器是目前市場比較常見的顯示器。目前市場上生產該型號LCD顯示器的廠家比較多,技術成熟。一、字符點陣式液晶顯示模塊-1602*開封大學單片機課件制作組*開封大學單片機課件制作組該顯示器能顯示2行ASCII字符,每行顯示16個。市場上的成品模組外觀見圖7-19。該模組采用了HD44780以及兼容LCD驅動芯片,使用Bonding(邦定)封裝技術,將芯片與PCB板做成一體,能有效降低整個模組功耗,提高工作穩定性。*開封大學單片機課件制作組

LCD模組提供了16個引腳接口。其中與微機接口的引腳10個,具體每個引腳定義功能見表7-9。

1.LCD模組引腳功能9*開封大學單片機課件制作組

2.字符型液晶顯示模塊LCD1602的內部結構LCD1602的內部結構可以分成三部分:一為LCD控制器,二為LCD驅動器,三為LCD顯示裝置*開封大學單片機課件制作組市場上常見的1602LCD液晶顯示模組,大多采用HD44780驅動芯片或其兼容芯片。這些兼容芯片對外的命令字大多相同。因此,同一個1602的驅動程序,可以驅動不同廠家的液晶顯示器,前提是引腳定義一樣。

HD44780的控制命令共11條,見表7-10。

3.主控驅動芯片HD44780*開封大學單片機課件制作組10*開封大學單片機課件制作組當給LCD送01H命令,LCD顯示面板所有內容清除,內部數據指針清零。當送02H命令,僅使數據指針清零,而LCD面板內容不變。(1)清屏指令(01H)(2)置輸入模式設置光標、畫面移動模式,其中:

I/D=1:數據讀、寫操作后,AC自動增1。

I/D=0:數據讀、寫操作后,AC自動減1。S=1:數據讀、寫操作后,畫面平移。

S=0:數據讀、寫操作后,畫面不平移。*開封大學單片機課件制作組(3)顯示開關控制 功能:設置顯示、光標及閃爍開、關。其中:

D表示顯示開關:D=1為開,D=0為關;

C表示光標開關:C=1,為開,C=0為關;

B表示閃爍開關;B=1,為開,B=0為關;(4)光標、畫面位移功能:設置光標、畫面移動,不影響DDRAM。其中:

S/C=1,畫面平移一個字符位;

S/C=0;光標平移一個字符位;

R/L=1;右移;R/L=0;左移。*開封大學單片機課件制作組(5)功能設置功能:設置LCD工作模式

DL=1,8位微處理器接口,DL=0,4位微處理器接口;

N=1,兩行顯示模式,N=0,一行顯示模式

F=1,5*10點陣字符,F=0,5*7點陣字符(6)CGRAM地址設置 功能:設置CGRAM的地址。A5-A0=0-3FH.(7)DDRAM地址設置設置DDRAM的地址

N=0,一行顯示A6~A0=0~4FH;

N=1,兩行顯示,首行A6~A0=00H~2FH,次行A6~A0=40H~67H。*開封大學單片機課件制作組(8)讀BF及AC的值功能:讀忙值和地址計數器AC的值。其中:BF=1時忙,BF=0時準備好。此時AC值意義為最近一次地址(CGRAM或DDRAM)定義。(9)寫數據功能:根據最近設置的地址性質,數據寫入DDRAM或CGRAM。(10)讀數據功能:根據最近設置的地址性質,從DDRAM或CGRAM讀出數據。*開封大學單片機課件制作組5.LCD控制器HD44780接口時序說明(1)寫操作時序

*開封大學單片機課件制作組(2)讀操作指令(LCD至單片機):

*開封大學單片機課件制作組(3)時序參數時序參數符號極限值單位測試條件最小值典型值最大值E信號周期tc400--ns引腳EE脈沖寬度tPW150--nsE上升沿/下降沿時間tR,tF--25ns地址建立時間tSP130--ns引腳E、RS、R/W地址保持時間THD110--ns數據建立時間(讀操作)tD--100ns引腳DB0~DB7數據保持時間(讀操作)tRD220--ns數據建立時間(寫操作)tSP240--ns數據保持時間(寫操作)tHD210--ns*開封大學單片機課件制作組6.LCD的初始化(1)初始化設置①顯示器清屏;②顯示器開/關及光標設置;③顯示光標移動設置。(2)數據控制

LCD控制器內部設有一個數據地址指針,用戶可通過它來訪問內部全部80字節的RAM。1)數據指針設置:數據地址指針:80H+地址碼(00H~27H,40H~67H)。2)讀數據:當LCD的RS=1、R/W=1和E端為高電平時,讀取數據。3)寫數據:當LCD的RS=1、R/W=0和E端為下降沿時,寫取數據。*開封大學單片機課件制作組例如寫指令子程序:write_com(ucharcom){rs=0;rw=0;E=1;LCD=com;Delay(5);E=0;}*開封大學單片機課件制作組

寫數據子程序:

write_data(uchardata)

{rs=1;rw=0;E=1;LCD=data;Delay(5);E=0;}*開封大學單片機課件制作組二、1602與單片機的接口與編程LCD1602初始化過程一般如下:(1) 清屏。清除屏幕,將顯示緩沖區DDRAM的內容全部寫入空格(ASCII20H)。光標復位,回到顯示器的左上角。地址計數器AC清零。(2) 功能設置。設置數據位數,根據LCD1602與處理器的連接選擇(LCD1602與51單片機連接時一般選擇8位),設置顯示行數(LCD1602為雙行顯示)。設置字形大小(LCD1602為5×7點陣)。(3) 開/關顯示設置。控制光標顯示、字符是否閃爍等。(4) 輸入方式設置。設定光標的移動方向以及后面的內容是否移*開封大學單片機課件制作組【例9-3】設計一個由單片機控制LCD顯示屏,要求顯示:“welcometo

kaifeng!”*開封大學單片機課件制作組設計分析:在此采用LCD1602的數據線與AT89C51的P2口相連,RS與P1.7相連,R/與P1.6相連,E端與8951的P1.5相連。編程在LCD顯示器的第1行顯示“welcometo”,第2行、第5列開始顯示“Kaifeng!”。C51源程序見P191*開封大學單片機課件制作組9.4項目實施本項目的設計內容主要包括主控模塊,LCD顯示模塊、鍵盤輸入模塊,晶振電路和復位電路等,其設計的整體結構框圖如圖所示。。*開封大學單片機課件制作組9.4.1硬件設計根據項目實現的功能,可把LCD1602的D0~D7分別與AT89C51的P1.0~P1.7連接,LCD1602的RS與P2.0連接,RW端與P2.1連接,E端與P2.2連接。鍵盤撥號采取矩陣行列式鍵盤,把P3.4、P3.5、P3.6、P3.7作為行線,P3.0、P3.1、P3.2作為列線,項目的總體電路連接如圖

*開封大學單片機課件制作組*開封大學單片機課件制作組9.4.2軟件設計本設計是由單片機AT89C51控制的LCD顯示系統,由外接鍵盤來控制顯示方式。設計過程如下:

按鍵輸入:采取用P3口作為鍵盤的輸入端,對于鍵盤的識別采取行掃描法進行判定。

LCD顯示:用P

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論