




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、 單片機原理及應用課程設計說明書題目液晶顯示4*4矩陣鍵盤按鍵號程序設計系(部)電子與通信工程系專業(yè)(班級)電氣1班姓名 學號 指導教師 起止日期2014.5.192014.5.30單片機技術及應用課程設計任務書課題名稱液晶顯示4*4矩陣鍵盤按鍵號程序設計設計內(nèi)容及要求(1)課題內(nèi)容:設計一個基于單片機的液晶顯示4*4矩陣鍵盤按鍵號程序功能要求:用AT89S52 單片機并行口P1 接4*4 矩陣鍵盤,以P1.0、P1.3 作輸入線;以P1.4、P1.7 作輸出線,按下任意鍵,都會在在LCD12864 的第一行上顯示每個按鍵的0F 序號,同時12864 的第二行顯示本行姓名、班級,第三行顯示本人
2、學號。 (2)要求: 完成該系統(tǒng)的硬件和軟件的設計,在proteus軟件上仿真通過,提交一份課程設計說明書。計工作量1、匯編或C51語言程序設計;2、程序調試,在Proteus上進行仿真;3、提交一份完整的課程設計說明書,包括封面,中文摘要,目錄,正文(正文主要包括:設計原理、程序設計、程序分析、仿真分析、調試過程,調試結果等部分),參考文獻、設計總結等。進度安排起止日期(或時間量)設計內(nèi)容(或預期目標)備注第一天課題介紹,答疑,收集材料,C51介紹第二天設計方案論證,練習編寫C51程序第三天第六天程序設計第六天第八天 程序調試、仿真第九天第十天系統(tǒng)測試并編寫設計說明書教研室意見年 月 日系(
3、部)主管領導意見年 月 日 目錄前 言5一、課程設計目的6二、設計內(nèi)容及原理62.1 單片機控制系統(tǒng)原理62.2陣鍵盤識別顯示系統(tǒng)概述62.3鍵盤電路72.4 12864顯示器82.5整體電路圖92.6仿真結果9三、實驗心得與體會10四、實驗程序10參考文獻18前 言單片機,全稱單片微型計算機(英語:Single-Chip Microcomputer),又稱微控制器(Microcontroller),是把中央處理器、存儲器、定時/計數(shù)器(Timer/Counter)、各種輸入輸出接口等都集成在一塊集成電路芯片上的微型計算機。與應用在個人電腦中的通用型微處理器相比,它更強調自供應(不用外接硬件)
4、和節(jié)約成本。它的最大優(yōu)點是體積小,可放在儀表內(nèi)部,但存儲量小,輸入輸出接口簡單,功能較低。由于其發(fā)展非常迅速,舊的單片機的定義已不能滿足,所以在很多應用場合被稱為范圍更廣的微控制器;從上世紀80年代,由當時的4位、8位單片機,發(fā)展到現(xiàn)在的32位300M的高速單片機?,F(xiàn)代人類生活中所用的幾乎每件有電子器件的產(chǎn)品中都會集成有單片機。手機、電話、計算器、家用電器、電子玩具、掌上電腦以及鼠標等電子產(chǎn)品中都含有單片機。 汽車上一般配備40多片單片機,復雜的工業(yè)控制系統(tǒng)上甚至可能有數(shù)百片單片機在同時工作!單片機的數(shù)量不僅遠超過PC機和其他計算機的總和,甚至比人類的數(shù)量還要多。液晶顯示器(英語:Liquid
5、 Crystal Display,縮寫:LCD)為平面薄型的顯示設備。它的主要原理是以電流刺激液晶分子產(chǎn)生點、線、面配合背部燈管構成畫面。由一定數(shù)量的彩色或黑白像素組成,放置于光源或者反射面前方。液晶顯示器功耗低,因此倍受工程師青睞,適用于使用電池的電子設備。英國科學家在上世紀制造了第一塊液晶顯示器即LCD。而第一臺可操作的LCD基于動態(tài)散射模式(Dynamic Scattering Mode,DSM),是RCA公司喬治·海爾曼帶領的小組開發(fā)的。LED點陣屏通過LED(發(fā)光二極管)組成,以燈珠亮滅來顯示文字、圖片、動畫、視頻等,是各部分組件都模塊化的顯示器件,通常由顯示模塊、控制系統(tǒng)
6、及電源系統(tǒng)組成。LED點陣顯示屏制作簡單,安裝方便,被廣泛應用于各種公共場合,如汽車報站器、廣告屏以及公告牌等。矩陣鍵盤是單片機外部設備中所使用的排布類似于矩陣的鍵盤組.。在鍵盤中按鍵數(shù)量較多時,為了減少I/O口的占用,通常將按鍵排列成矩陣形式,如圖1所示。在矩陣式鍵盤中,每條水平線和垂直線在交叉處不直接連通,而是通過一個按鍵加以連接。這樣,一個端口(如P1口)就可以構成4*4=16個按鍵,比之直接將端口線用于鍵盤多出了一倍,而且線數(shù)越多,區(qū)別越明顯,比如再多加一條線就可以構成20鍵的鍵盤,而直接用端口線則只能多出一鍵(9鍵)。由此可見,在需要的鍵數(shù)比較多時,采用矩陣法來做鍵盤是合理的。一、課
7、程設計目的設計一個基于單片機的4*4矩陣鍵盤設計,用AT89S52單片機并行口P1接4*4矩陣鍵盤,以P1.0、P1.3作為輸入線,以P1.4、P1.7作為輸出線,在LCD12864上的第一行顯示每個按鍵的0F序號,同時12864的第二行顯示本人姓名、班級,第三行顯示本人學號。主要內(nèi)容如下:1.矩陣式鍵盤的特點,進行鍵盤控制系統(tǒng)的整體研究與設計;2.ED實時顯示按鍵信息;3.軟件編程的方法實現(xiàn)按鍵信息的提取和顯示。二、設計內(nèi)容及原理2.1 單片機控制系統(tǒng)原理 2.2陣鍵盤識別顯示系統(tǒng)概述矩陣式鍵盤模式以N個端口連接控制N*N個按鍵,實時在LED數(shù)碼管上顯示按鍵信息。顯示按鍵信息,既降低了成本,
8、又提高了精確度,省下了很多的I/O端口為他用,相反,獨立式按鍵雖編程簡單,但占用I/O口資源較多,不適合在按鍵較多的場合應用。并且在實際應用中經(jīng)常要用到輸入數(shù)字、字母、符號等操作功能,如電子密碼鎖、電話機鍵盤、計算器按鍵等,至少都需要12到16個按鍵,在這種情況下如果用獨立式按鍵的話,顯然太浪費I/O端口資源,為了解決這一問題,我們使用矩陣式鍵盤。矩陣式鍵盤簡介:矩陣式鍵盤又稱行列鍵盤,它是用N條I/O線作為行線,N條I/O線作為列線組成的鍵盤。在行線和列線的每個交叉點上設置一個按鍵。這樣鍵盤上按鍵的個數(shù)就為N*N個。這種行列式鍵盤結構能有效地提高單片機系統(tǒng)中I/O口的利用率。最常見的鍵盤布局
9、如圖1-1所示。一般由16個按鍵組成,在單片機中正好可以用一個P口實現(xiàn)16個按鍵功能,這也是在單片機系統(tǒng)中最常用的形式,本設計就采用這個鍵盤模式。圖1 鍵盤布局2.3鍵盤電路 AT89C51單片機的并行口P1接4×4矩陣鍵盤,以P1.0P1.3作輸入線,以P1.4P1.7作輸出線;P1口輸出按鍵信息,在數(shù)碼管上顯示每個按鍵的“0F”序號。實際電路圖連接如圖2所示。圖2 矩陣式鍵盤電路2.4 12864顯示器12864點陣液晶顯示模塊(LCM)就是由128*64個液晶顯示點組成的一個128列*64行的陣列。每個顯示點對應一位二進制數(shù),1表示亮,0表示滅。存儲這些點陣信息的RAM稱為顯示
10、數(shù)據(jù)存儲器。要顯示某個圖形或漢字就是將相應的點陣信息寫入到相應的存儲單元中。圖形或漢字的點陣信息由自己設計,問題的關鍵就是顯示點在液晶屏上的位置(行和列)與其在存儲器中的地址之間的關系。由于多數(shù)液晶顯示模塊的驅動電路是由一片行驅動器和兩片列驅動器構成,所以12864液晶屏實際上是由左右兩塊獨立的64*64液晶屏拼接而成,每半屏有一個512*8 bits顯示數(shù)據(jù)RAM。左右半屏驅動電路及存儲器分別由片選信號CS1和CS2選擇。顯示點在64*64液晶屏上的位置由行號(line,063)與列號(column,063)確定。512*8 bits RAM中某個存儲單元的地址由頁地址(Xpage,07)和
11、列地址(Yaddress,063)確定。每個存儲單元存儲8個液晶點的顯示信息。為了使液晶點位置信息與存儲地址的對應關系更直觀關,將64*64液晶屏從上至下8等分為8個顯示塊,每塊包括8行*64列個點陣。每列中的8行點陣信息構成一個8bits二進制數(shù),存儲在一個存儲單元中。(注意:二進制的高低有效位順序與行號對應關系因不同商家而不同)存放一個顯示塊的RAM區(qū)稱為存儲頁。即64*64液晶屏的點陣信息存儲在8個存儲頁中,每頁64個字節(jié),每個字節(jié)存儲一列(8行)點陣信息。因此存儲單元地址包括頁地址(Xpage,07)和列地址(Yaddress,063)。例如點亮128*64的屏中(20,30)位置上的
12、液晶點,因列地址30小于64,該點在左半屏第29列,所以CS1有效;行地址20除以8取整得2,取余得4,該點在RAM中頁地址為2,在字節(jié)中的序號為4;所以將二進制數(shù)據(jù)00010000(也可能是00001000,高低順序取決于制造商)寫入Xpage=2,Yaddress=29的存儲單元中即點亮(20,30)上的液晶點。2.5整體電路圖 圖3 液晶顯示4*4矩陣鍵盤按鍵號整體電路2.6仿真結果 以下是通過preteus仿真后得到的部分結果截圖 圖4 仿真結果圖 三、實驗心得與體會 通過為期兩周的單片機課程設計,不僅加深了對單片機理論知識的理解,而且鍛煉了我們的動手能力以及創(chuàng)新精神,讓我意思到理論和
13、實踐結合的重要性。通過這次課程設計使我懂得了理論與實際相結合是很重要的,只有理論知識是遠遠不夠的,只有把所學的理論知識與實踐相結合起來,從理論中得出結論,才能真正為社會服務,從而提高自己的實際動手能力和獨立思考的能力。在設計的過程中遇到問題,可以說得是困難重重,這畢竟第一次做的,難免會遇到過各種各樣的問題,同時在設計的過程中發(fā)現(xiàn)了自己的不足之處,對以前所學過的知識理解得不夠深刻,掌握得不夠牢固。而且要對自己有耐心和信心,這樣就可以從中找到問題,并且解決問題。把理論知識和實際設計的結合鍛煉了我的綜合運用所學專業(yè)知識的能力,而且通過對整體的掌控,對局部的取舍,以及對細節(jié)的斟酌處理,都使得我的能力得
14、到了鍛煉,實戰(zhàn)經(jīng)驗得到豐富。這次課程設計讓我學到許多課堂學不到的東西,獨立思考解決問題的能力,出現(xiàn)差錯時及時應變的能力,而且通過和同學的交流和合作,增強了團隊精神,給了大家一起學習,一起享受學習的機會,讓大家都受益匪淺,為以后不管遇到什么問題都能很好的處理打下了良好的基礎。本次設計也運用到了proteus以及KEIL軟件,通過實際的操作和不斷地學習,加深了對這兩個軟件的了解,也學到了許多更加復雜的操作和用法,雖然全英文的界面對我這樣英語不太好的人來說是挺麻煩的,但是只要肯努力,終究還是能夠學好的。這次設計過程中。遇到了許多困難,也很感謝老師和同學的悉心幫助,使得我能順利完成這次課程設計。 四、
15、實驗程序#include<reg51.h>#include<intrins.h>sbit E=P30;sbit RW=P31;sbit DI=P32;sbit CS2=P33;sbit CS1=P34;#define uchar unsigned charunsigned char cons,cont;uchar code l=0x00,0x10,0x10,0x10,0x10,0x10,0xFF,0x10,0x10,0xF0,0x10,0x11,0x16,0xD0,0x10,0x10,0x00,0x80,0x40,0x20,0x18,0x06,0x41,0x20,0x1
16、0,0x3F,0x44,0x42,0x41,0x40,0x40,0x78,c=0x00,0x24,0x24,0xA4,0xFE,0x23,0x22,0x00,0x3E,0x22,0x22,0x22,0x22,0x22,0x3E,0x00,0x00,0x08,0x06,0x01,0xFF,0x01,0x06,0x40,0x49,0x49,0x49,0x7F,0x49,0x49,0x49,0x41,dian=0x00,0x00,0xF8,0x88,0x88,0x88,0x88,0xFF,0x88,0x88,0x88,0x88,0xF8,0x00,0x00,0x00,0x00,0x00,0x1F,0
17、x08,0x08,0x08,0x08,0x7F,0x88,0x88,0x88,0x88,0x9F,0x80,0xF0,0x00,qi=0x20,0x10,0x4C,0x47,0x54,0x54,0x54,0x54,0x54,0x54,0x54,0xD4,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x30,0x40,0xF0,0x00,ban=0x84,0x84,0xFC,0x84,0x84,0x00,0xF8,0x00,0xFF,0x00,0x84,0x84,0xFC,0x84
18、,0x84,0x00,0x10,0x30,0x1F,0x08,0x88,0x42,0x21,0x18,0x07,0x00,0x20,0x20,0x3F,0x20,0x20,0x00;uchar code shuzi1632=0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"0",0*/ 0x00,0x
19、10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"1",1*/ 0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00,0x00,
20、0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"2",2*/ 0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"3",3*/ 0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00
21、,0x00,0x00,0x00, 0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"4",4*/ 0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"5",5*/ 0x
22、00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"6",6*/ 0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,
23、0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"7",7*/ 0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"8",8*/ 0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x00,0x00
24、,0x00,0x00,0x00,0x00, 0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"9",9*/ 0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x24,0x22,0x22,0x22,0x3F,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"a",0*
25、/0x08,0xF8,0x00,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x11,0x20,0x20,0x11,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"b",1*/0x00,0x00,0x00,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0E,0x11,0x20,0x20,0x20,0x11,0x00,
26、0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"c",2*/0x00,0x00,0x00,0x80,0x80,0x88,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0E,0x11,0x20,0x20,0x10,0x3F,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"d",3*/0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x
27、00,0x00,0x00,0x00,0x00,0x1F,0x22,0x22,0x22,0x22,0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"e",4*/0x00,0x80,0x80,0xF0,0x88,0x88,0x88,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00;/*"f",5*/unsi
28、gned char i;delay()unsigned char i;for(i=0;i<20;i+);void keycan(void)for(i=0;i<4;i+)switch(i)case 0:P2=0x7f;delay();switch(P2|0xf0)case 0xfe:cont=0;break;case 0xfd:cont=1;break;case 0xfb:cont=2;break;case 0xf7:cont=3;break;default:break; case 1:P2=0xbf;delay();switch(P2|0xf0)case 0xfe:cont=4;b
29、reak;case 0xfd:cont=5;break;case 0xfb:cont=6;break;case 0xf7:cont=7;break;default:break; case 2: P2=0xdf;delay();switch(P2|0xf0)case 0xfe:cont=8;break;case 0xfd:cont=9;break;case 0xfb:cont=10;break;case 0xf7:cont=11;break;default:break; case 3:P2=0xef;delay();switch(P2|0xf0)case 0xfe:cont=12;break;c
30、ase 0xfd:cont=13;break;case 0xfb:cont=14;break;case 0xf7:cont=15;break;default:break; default:break;void readbusy(void) /*判斷最高位是否為1,為0才讀寫數(shù)據(jù)*/P0=0x00;cons=P0;DI=0;RW=1;E=1; while(cons&0x80);E=0; void Select(uchar i)switch(i) case 0:CS1=0;CS2=0;break; case 1:CS1=0;CS2=1;break; case 2:CS1=1;CS2=0;b
31、reak; default:break; void xieminling(uchar value) readbusy();/*每次讀寫都要忙判斷 */DI=0;RW=0; P0=value; E=1;_nop_();_nop_();E=0; void Setonoff(uchar onoff)onoff=0x3e|onoff;xieminling(onoff); void xieshuju(uchar dat) readbusy();DI=1;RW=0; P0=dat;E=1; _nop_();_nop_();E=0; void Setpage(uchar page)/*設置頁*/ page=0xb8|page; xieminling(pa
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025上海市安全員考試題庫及答案
- 2025-2030年中國金鹵燈行業(yè)十三五規(guī)劃與發(fā)展前景分析報告
- 2025-2030年中國辣椒紅色素市場運營狀況及發(fā)展前景預測報告
- 2025-2030年中國軟包裝復合膜行業(yè)運行動態(tài)及發(fā)展前景預測報告
- 2025-2030年中國超高頻RFID市場發(fā)展現(xiàn)狀規(guī)劃研究報告
- 2025-2030年中國船用液壓舵機行業(yè)運行狀況及發(fā)展趨勢分析報告
- 2025-2030年中國聚氯乙烯用阻燃劑行業(yè)運行態(tài)勢及投資戰(zhàn)略研究報告
- 2025-2030年中國納米二氧化鈦市場運行現(xiàn)狀及投資發(fā)展前景預測報告
- 2025-2030年中國男士化妝品市場規(guī)模分析及發(fā)展建議研究報告
- 《工程勘察設計收費標準》(2002年修訂本)
- 《電腦的組成》課件
- 《債權法教學》課件
- 太傻天書(完整版)
- SZSD01 0012-2024智能交通大數(shù)據(jù)底座數(shù)據(jù)采集規(guī)范
- 醫(yī)療服務價格政策培訓
- 經(jīng)典廣告歌曲大全(109首)
- 2024-2025學年北京市豐臺某中學九年級(上)開學數(shù)學試卷(含答案)
- 環(huán)保儀器培訓
- 餐飲服務電子教案 學習任務4 擺臺技能(2)-中餐宴會擺臺
- 2024湖南省水利廳直屬事業(yè)單位招聘擬聘用人員歷年高頻難、易錯點500題模擬試題附帶答案詳解
評論
0/150
提交評論