![單片機(jī)應(yīng)用實(shí)踐——基于鍵盤輸入單元的單片機(jī)實(shí)驗(yàn)或仿真和C語(yǔ)言開(kāi)發(fā)_第1頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-11/20/3e94fcd2-6d92-4e47-8072-9dcceba30343/3e94fcd2-6d92-4e47-8072-9dcceba303431.gif)
![單片機(jī)應(yīng)用實(shí)踐——基于鍵盤輸入單元的單片機(jī)實(shí)驗(yàn)或仿真和C語(yǔ)言開(kāi)發(fā)_第2頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-11/20/3e94fcd2-6d92-4e47-8072-9dcceba30343/3e94fcd2-6d92-4e47-8072-9dcceba303432.gif)
![單片機(jī)應(yīng)用實(shí)踐——基于鍵盤輸入單元的單片機(jī)實(shí)驗(yàn)或仿真和C語(yǔ)言開(kāi)發(fā)_第3頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-11/20/3e94fcd2-6d92-4e47-8072-9dcceba30343/3e94fcd2-6d92-4e47-8072-9dcceba303433.gif)
![單片機(jī)應(yīng)用實(shí)踐——基于鍵盤輸入單元的單片機(jī)實(shí)驗(yàn)或仿真和C語(yǔ)言開(kāi)發(fā)_第4頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-11/20/3e94fcd2-6d92-4e47-8072-9dcceba30343/3e94fcd2-6d92-4e47-8072-9dcceba303434.gif)
![單片機(jī)應(yīng)用實(shí)踐——基于鍵盤輸入單元的單片機(jī)實(shí)驗(yàn)或仿真和C語(yǔ)言開(kāi)發(fā)_第5頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-11/20/3e94fcd2-6d92-4e47-8072-9dcceba30343/3e94fcd2-6d92-4e47-8072-9dcceba303435.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、課程設(shè)計(jì)任務(wù)書學(xué)生姓名: 專業(yè)班級(jí): 指導(dǎo)教師: 工作單位: 題目:基于鍵盤輸入單元的單片機(jī)實(shí)驗(yàn)或仿真和C語(yǔ)言開(kāi)發(fā)初始條件:具備單片機(jī)和C語(yǔ)言的理論知識(shí);具備電子電路的基礎(chǔ)知識(shí)和設(shè)計(jì)能力;具備查閱資料的基本方法;熟悉常用的電子器件;熟悉Protues、Keil軟件的使用。要求完成的主要任務(wù):(包括課程設(shè)計(jì)工作量及其技術(shù)要求,以及說(shuō)明書撰寫等具體要求)1設(shè)計(jì)一種基于單片機(jī)的行列式鍵盤輸入模塊,能檢測(cè)并判斷是否有鍵按下;對(duì)按鍵開(kāi)關(guān)進(jìn)行時(shí)延的消抖;確定按鍵的鍵值,并實(shí)現(xiàn)相應(yīng)狀態(tài)的輸入顯示。2要求進(jìn)行電路實(shí)驗(yàn)或仿真,使用C語(yǔ)言進(jìn)行程序的開(kāi)發(fā)。時(shí)間安排:一周,其中3天程序設(shè)計(jì),2天程序調(diào)試指導(dǎo)教師簽名:
2、 年 月 日系主任(或責(zé)任教師)簽名: 年 月 日武漢理工大學(xué)單片機(jī)應(yīng)用實(shí)踐課程設(shè)計(jì)說(shuō)明書目 錄摘要I1 概述11.1 51單片機(jī)簡(jiǎn)介11.2 Keil軟件簡(jiǎn)介21.3 Protues軟件簡(jiǎn)介32 總體設(shè)計(jì)52.1 功能分析52.2 系統(tǒng)總體設(shè)計(jì)53 硬件模塊73.1 矩陣鍵盤輸入模塊73.2 STC89C51最小系統(tǒng)模塊83.3 LCD1602液晶顯示模塊93.4 循環(huán)流水燈模塊104 程序代碼115 Protues仿真146 實(shí)物制作及調(diào)試156.1 實(shí)物展示156.2 實(shí)物調(diào)試177 心得與體會(huì)20參考文獻(xiàn)21附錄:元件清單表22摘要此次單片機(jī)應(yīng)用實(shí)踐目的是基于鍵盤輸入單元的單片機(jī)實(shí)驗(yàn)或
3、仿真和C語(yǔ)言開(kāi)發(fā)。本文先就本次應(yīng)用實(shí)踐進(jìn)行功能分析和系統(tǒng)設(shè)計(jì),之后詳細(xì)介紹了各個(gè)硬件模塊,給出了程序代碼,并通過(guò)Protues對(duì)設(shè)計(jì)電路進(jìn)行仿真。然后附上了實(shí)物制作圖及調(diào)試結(jié)果。本次應(yīng)用實(shí)踐完成了基于單片機(jī)的行列式鍵盤輸入模塊,能檢測(cè)并判斷是否有鍵按下;對(duì)按鍵開(kāi)關(guān)進(jìn)行時(shí)延的消抖;確定按鍵的鍵值,并實(shí)現(xiàn)相應(yīng)狀態(tài)的輸入顯示;同時(shí)拓展了控制循環(huán)流水燈功能。關(guān)鍵詞:?jiǎn)纹瑱C(jī),矩陣鍵盤,C語(yǔ)言,Protues1AbstractThe purpose of this practice is to do microcontroller application experiment or simulation
4、and C language development that based on keyboard input unit. This article first on this application practice functional analysis and system design, and then details the various hardware modules, gives the program code and design by Protues circuit simulation. Then attach the physical production and
5、 commissioning results in Fig. The completed application practice microcontroller-based determinant of the keyboard input module that can detect and determine whether a key is pressed; the key switch to debounce delay; OK button keys, and enter the appropriate state to achieve display; at the same t
6、ime expand the control loop water lights function.Keywords: Microcontroller, Matrix keyboard, C language, ProtuesIII1 概述1.1 51單片機(jī)簡(jiǎn)介單片機(jī),全稱單片微型計(jì)算機(jī)(single-chip microcomputer),又稱微控制器(microcontroller),是一種集成電路芯片,是采用超大規(guī)模集成電路技術(shù)把具有數(shù)據(jù)處理能力的中央處理器CPU、隨機(jī)存儲(chǔ)器RAM、只讀存儲(chǔ)器ROM、多種I/O口和中斷系統(tǒng)、定時(shí)器/計(jì)數(shù)器等功能(可能還包括顯示驅(qū)動(dòng)電路、脈寬調(diào)制電路、模擬
7、多路轉(zhuǎn)換器、A/D轉(zhuǎn)換器等電路)集成到一塊硅片上構(gòu)成的一個(gè)小而完善的微型計(jì)算機(jī)系統(tǒng),在工業(yè)控制領(lǐng)域廣泛應(yīng)用。與應(yīng)用在個(gè)人電腦中的通用型微處理器相比,它更強(qiáng)調(diào)自供應(yīng)(不用外接硬件)和節(jié)約成本。運(yùn)算器由運(yùn)算部件算術(shù)邏輯單元、累加器和寄存器等幾部分組成。算術(shù)邏輯單元的作用是把傳來(lái)的數(shù)據(jù)進(jìn)行算術(shù)或邏輯運(yùn)算,輸入來(lái)源為兩個(gè)8位數(shù)據(jù),分別來(lái)自累加器和數(shù)據(jù)寄存器。算術(shù)邏輯單元能完成對(duì)這兩個(gè)數(shù)據(jù)進(jìn)行加、減、與、或、比較大小等操作,最后將結(jié)果存入累加器;控制器由程序計(jì)數(shù)器、指令寄存器、指令譯碼器、時(shí)序發(fā)生器和操作控制器等組成,是發(fā)布命令的“決策機(jī)構(gòu)”,即協(xié)調(diào)和指揮整個(gè)微機(jī)系統(tǒng)的操作;主要寄存器包括:累加器A、數(shù)
8、據(jù)寄存器DR、指令寄存器IR、指令譯碼器ID、程序計(jì)數(shù)器PC、地址寄存器AR等。51單片機(jī)是對(duì)所有兼容Intel 8031指令系統(tǒng)的單片機(jī)的統(tǒng)稱。該系列單片機(jī)的始祖是Intel的8031單片機(jī),后來(lái)隨著Flash rom技術(shù)的發(fā)展,8031單片機(jī)取得了長(zhǎng)足的進(jìn)展,成為應(yīng)用最廣泛的8位單片機(jī)之一,其代表型號(hào)是ATMEL公司的AT89系列,它廣泛應(yīng)用于工業(yè)測(cè)控系統(tǒng)之中。很多公司都有51系列的兼容機(jī)型推出,今后很長(zhǎng)的一段時(shí)間內(nèi)將占有大量市場(chǎng)。51單片機(jī)是基礎(chǔ)入門的一個(gè)單片機(jī),還是應(yīng)用最廣泛的一種。52系列的單片機(jī)一般不具備自編程能力。MCS-51單片機(jī)內(nèi)部包含哪些主要邏輯功能部件有:(1)一個(gè)8位的
9、微處理器CPU。(2)一個(gè)片內(nèi)振蕩電路和時(shí)鐘電路,只需外面接上一晶振或輸入振蕩信號(hào)就可產(chǎn)生單片機(jī)所需要的各種時(shí)鐘信號(hào)。 (3)4KB的片內(nèi)程序存儲(chǔ)器ROM,用于燒錄運(yùn)行的程序、常數(shù)數(shù)據(jù)。(4)128B的片內(nèi)數(shù)據(jù)存儲(chǔ)器RAM,在程序運(yùn)行時(shí)可以隨時(shí)寫入數(shù)據(jù)和讀出,用于存放函數(shù)相互傳遞的數(shù)據(jù)、接收的外部數(shù)據(jù)、最后結(jié)果以及顯示的數(shù)據(jù)等。(5)可尋址64KB外部數(shù)據(jù)存儲(chǔ)器和64KB外部程序存儲(chǔ)空間的控制電路。(6)4個(gè)8位并行I/O端,每個(gè)端口既可以用作輸入,也可以用于輸出。 (7)兩個(gè)16位的定時(shí)器/計(jì)數(shù)器,每個(gè)定時(shí)器/計(jì)數(shù)器可以設(shè)置為計(jì)數(shù)方式,用于對(duì)外部事件信號(hào)進(jìn)行計(jì)數(shù),也可以設(shè)置為定時(shí)方式,滿足各
10、種定時(shí)要求。 (8)一個(gè)可編程全雙工串行I/O口,用于單片機(jī)之間的串行通信,或者單片機(jī)與PC機(jī)、其它設(shè)備、其它芯片之間的串行通信。 (9)5個(gè)中斷源、兩個(gè)優(yōu)先級(jí)嵌套中斷系統(tǒng)。1.2 Keil軟件簡(jiǎn)介單片機(jī)開(kāi)發(fā)中除必要的硬件外,同樣離不開(kāi)軟件,我們寫的匯編語(yǔ)言源程序要變?yōu)镃PU可以執(zhí)行的機(jī)器碼有兩種方法,一種是手工匯編,另一種是機(jī)器匯編,目前已極少使用手工匯編的方法了。機(jī)器匯編是通過(guò)匯編軟件將源程序變?yōu)闄C(jī)器碼,用于MCS-51單片機(jī)的匯編軟件有早期的A51,隨著單片機(jī)開(kāi)發(fā)技術(shù)的不斷發(fā)展,從普遍使用匯編語(yǔ)言到逐漸使用高級(jí)語(yǔ)言開(kāi)發(fā),單片機(jī)的開(kāi)發(fā)軟件也在不斷發(fā)展,Keil軟件是目前最流行開(kāi)發(fā)MCS-5
11、1系列單片機(jī)的軟件,這從近年來(lái)各仿真機(jī)廠商紛紛宣布全面支持Keil即可看出。Keil提供了包括C編譯器、宏匯編、連接器、庫(kù)管理和一個(gè)功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開(kāi)發(fā)方案,通過(guò)一個(gè)集成開(kāi)發(fā)環(huán)境將這些部分組合在一起。 (1)系統(tǒng)概述 Keil C51軟件提供豐富的庫(kù)函數(shù)和功能強(qiáng)大的集成開(kāi)發(fā)調(diào)試工具,全Windows界面。另外重要的一點(diǎn),只要看一下編譯后生成的匯編代碼,就能體會(huì)到Keil C51生成的目標(biāo)代碼效率非常之高,多數(shù)語(yǔ)句生成的匯編代碼很緊湊,容易理解。在開(kāi)發(fā)大型軟件時(shí)更能體現(xiàn)高級(jí)語(yǔ)言的優(yōu)勢(shì)。下面詳細(xì)介紹Keil C51開(kāi)發(fā)系統(tǒng)各部分功能和使用。 (2)Keil C51單片機(jī)軟件開(kāi)發(fā)系統(tǒng)
12、的整體結(jié)構(gòu) C51工具包的整體結(jié)構(gòu),uVision與Ishell分別是C51 for Windows和for Dos的集成開(kāi)發(fā)環(huán)境(IDE),可以完成編輯、編譯、連接、調(diào)試、仿真等整個(gè)開(kāi)發(fā)流程。開(kāi)發(fā)人員可用IDE本身或其它編輯器編輯C或匯編源文件。然后分別由C51及C51編譯器編譯生成目標(biāo)文件(.OBJ)。目標(biāo)文件可由LIB51創(chuàng)建生成庫(kù)文件,也可以與庫(kù)文件一起經(jīng)L51連接定位生成絕對(duì)目標(biāo)文件(.ABS)。ABS文件由OH51轉(zhuǎn)換成標(biāo)準(zhǔn)的Hex文件,以供調(diào)試器dScope51或tScope51使用進(jìn)行源代碼級(jí)調(diào)試,也可由仿真器使用直接對(duì)目標(biāo)板進(jìn)行調(diào)試,也可以直接寫入程序存貯器如EPROM中。
13、(3)Keil C51單片機(jī)軟件開(kāi)發(fā)系統(tǒng)的優(yōu)點(diǎn)首先,Keil C51生成的目標(biāo)代碼效率非常之高,多數(shù)語(yǔ)句生成的匯編代碼很緊湊,容易理解。在開(kāi)發(fā)大型軟件時(shí)更能體現(xiàn)高級(jí)語(yǔ)言的優(yōu)勢(shì)。其次,與匯編相比,C語(yǔ)言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢(shì),因而易學(xué)易用。用過(guò)匯編語(yǔ)言后再使用C來(lái)開(kāi)發(fā),體會(huì)更加深刻。1.3 Protues軟件簡(jiǎn)介 Proteus軟件是英國(guó)Labcenter electronics公司出版的EDA工具軟件,從原理圖布圖、代碼調(diào)試到單片機(jī)與外圍電路協(xié)同仿真,一鍵切換到PCB設(shè)計(jì),真正實(shí)現(xiàn)了從概念到產(chǎn)品的完整設(shè)計(jì),迄今為止是世界上唯一將電路仿真軟件、PCB設(shè)計(jì)軟件和
14、虛擬模型仿真軟件三合一的設(shè)計(jì)平臺(tái)。 Proteus軟件的特點(diǎn)是:(1)實(shí)現(xiàn)了單片機(jī)仿真和SPICE電路仿真相結(jié)合。具有模擬電路仿真、數(shù)字電路仿真、單片機(jī)及其外圍電路組成的系統(tǒng)的仿真、RS232動(dòng)態(tài)仿真、I2C調(diào)試器、SPI調(diào)試器、鍵盤和LCD系統(tǒng)仿真的功能;有各種虛擬儀器,如示波器、邏輯分析儀、信號(hào)發(fā)生器等。 (2)支持主流單片機(jī)系統(tǒng)的仿真。目前支持的單片機(jī)類型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各種外圍芯片。 (3)提供軟件調(diào)試功能。在硬件仿真系統(tǒng)中具有全速、單步、設(shè)置斷點(diǎn)等調(diào)試功能
15、,同時(shí)可以觀察各個(gè)變量、寄存器等的當(dāng)前狀態(tài),因此在該軟件仿真系統(tǒng)中,也必須具有這些功能;同時(shí)支持第三方的軟件編譯和調(diào)試環(huán)境,如Keil C51 uVision2等軟件。(4)具有強(qiáng)大的原理圖繪制功能。Proteus是一款集單片機(jī)和SPICE分析于一身的仿真軟件,功能極其強(qiáng)大。 Proteus不僅可將許多單片機(jī)實(shí)例功能形象化,也可將許多單片機(jī)實(shí)例運(yùn)行過(guò)程形象化。前者可在相當(dāng)程度上得到實(shí)物演示實(shí)驗(yàn)的效果,后者則是實(shí)物演示實(shí)驗(yàn)難以達(dá)到的效果。它的元器件、連接線路等卻和傳統(tǒng)的單片機(jī)實(shí)驗(yàn)硬件高度對(duì)應(yīng)。這在相當(dāng)程度上替代了傳統(tǒng)的單片機(jī)實(shí)驗(yàn)教學(xué)的功能,例:元器件選擇、電路連接、電路檢測(cè)、電路修改、軟件調(diào)試、
16、運(yùn)行結(jié)果等。課程設(shè)計(jì)、畢業(yè)設(shè)計(jì)是學(xué)生走向就業(yè)的重要實(shí)踐環(huán)節(jié)。由于Proteus提供了實(shí)驗(yàn)室無(wú)法相比的大量的元器件庫(kù),提供了修改電路設(shè)計(jì)的靈活性、提供了實(shí)驗(yàn)室在數(shù)量、質(zhì)量上難以相比的虛擬儀器、儀表,因而也提供了培養(yǎng)學(xué)生實(shí)踐精神、創(chuàng)造精神的平臺(tái)隨著科技的發(fā)展,“計(jì)算機(jī)仿真技術(shù)”已成為許多設(shè)計(jì)部門重要的前期設(shè)計(jì)手段。它具有設(shè)計(jì)靈活,結(jié)果、過(guò)程的統(tǒng)一的特點(diǎn)。可使設(shè)計(jì)時(shí)間大為縮短、耗資大為減少,也可降低工程制造的風(fēng)險(xiǎn)。相信在單片機(jī)開(kāi)發(fā)應(yīng)用中Proteus也能茯得愈來(lái)愈廣泛的應(yīng)用。2 總體設(shè)計(jì)2.1 功能分析 此次課設(shè)的題目是基于鍵盤輸入單元的單片機(jī)實(shí)驗(yàn)或仿真和C語(yǔ)言開(kāi)發(fā):設(shè)計(jì)一種基于單片機(jī)的行列式鍵盤輸
17、入模塊,能檢測(cè)并判斷是否有鍵按下;對(duì)按鍵開(kāi)關(guān)進(jìn)行時(shí)延的消抖;確定按鍵的鍵值,并實(shí)現(xiàn)相應(yīng)狀態(tài)的輸入顯示。要求進(jìn)行電路實(shí)驗(yàn)或?qū)嶒?yàn),并使用C語(yǔ)言進(jìn)行程序的開(kāi)發(fā)。 設(shè)計(jì)電路采用STC89C51單片機(jī)作為核心,由矩陣鍵盤電路、譯碼電路、顯示電路、流水燈電路等模塊構(gòu)成,分別對(duì)按鍵信息和顯示電路以及軟、硬件各個(gè)部分進(jìn)行控制。實(shí)際運(yùn)作時(shí),單片機(jī)會(huì)將檢測(cè)到的按鍵信號(hào)處理、轉(zhuǎn)換成數(shù)字,顯示于LCD1602液晶上。系統(tǒng)主要結(jié)構(gòu)可以拆分如下:(1)矩陣鍵盤:按鍵傳送輸入信息;本次設(shè)計(jì)使用16個(gè)獨(dú)立的按鍵形成4*4矩陣鍵盤;(2)STC89C51:采用軟件編程來(lái)實(shí)現(xiàn)按鍵信息的提取和轉(zhuǎn)換;(3)LCD1602液晶:用于顯
18、示最終被單片機(jī)轉(zhuǎn)換過(guò)的按鍵信息。(4)8個(gè)相同的發(fā)光二極管:通過(guò)軟件程序編寫來(lái)控制流水燈左右循環(huán)移位。2.2 系統(tǒng)總體設(shè)計(jì)系統(tǒng)總體設(shè)計(jì)框圖如圖1所示,整個(gè)系統(tǒng)采用+5V直流供電,由4*4矩陣鍵盤輸入,單片機(jī)檢測(cè)并判斷是否有鍵按下,當(dāng)有按鍵被按下時(shí),按鍵信息被輸入到經(jīng)過(guò)編程的單片機(jī)STC89C51中進(jìn)行提取與轉(zhuǎn)換:對(duì)按鍵開(kāi)關(guān)進(jìn)行時(shí)延的消抖,同時(shí)確定按鍵的鍵值,最后實(shí)現(xiàn)將相應(yīng)狀態(tài)的輸入顯示到LCD1602液晶上以及控制流水燈電路。 4*4矩陣鍵盤 STC89C51單片機(jī) 流水燈電路 液晶顯示電路圖1 系統(tǒng)總體設(shè)計(jì)框圖 系統(tǒng)可以完成檢測(cè)并判斷是否有鍵按下;對(duì)按鍵開(kāi)關(guān)進(jìn)行時(shí)延的消抖;確定按鍵的鍵值,并
19、實(shí)現(xiàn)相應(yīng)狀態(tài)的輸入顯示;同時(shí)拓展了控制循環(huán)流水燈功能。通過(guò)keil編程和protues仿真可以實(shí)現(xiàn)并驗(yàn)證系統(tǒng)是否完成相應(yīng)的功能及其拓展功能。3 硬件模塊圖2 總體電路圖3.1 矩陣鍵盤輸入模塊圖3 矩陣鍵盤輸入模塊本次設(shè)計(jì)采用4*4的矩陣鍵盤,如圖3所示。矩陣鍵盤的行線和列線分別通過(guò)兩并行接口和CPU通信,按鍵設(shè)置在行、列交點(diǎn)上,行、列線分別連接到按鍵開(kāi)關(guān),行線通過(guò)上拉電阻接到+5V上。在接鍵盤的行線和列線的兩個(gè)并行口中,一個(gè)輸出掃描碼,使按鍵逐行動(dòng)態(tài)接地,另一個(gè)并行口輸入按鍵狀態(tài),為回饋信號(hào)。由行掃描值和列回饋信號(hào)共同形成鍵編碼。用STC89C51的并行口P1設(shè)計(jì)4*4矩陣鍵盤,其接鍵盤行線
20、,輸出接地信號(hào),接列線,輸入回饋信號(hào),以檢測(cè)按鍵是否按下。此外,還要消除按鍵在閉合或斷開(kāi)時(shí)的抖動(dòng)。消除抖動(dòng)的方法采用延時(shí)方式軟件消除抖動(dòng)(延時(shí)后再重讀,以跳過(guò)抖動(dòng)期)。K1K2K3K4K5K6K7K8顯示“1”顯示“2”顯示“3”顯示“4”顯示“5”顯示“6”顯示“7”顯示“8”K9K10K11K12K13K14K15K16顯示“9”選中第一位選中第二位選中第三位加1減1燈定時(shí)左移燈定時(shí)右移按鍵從左至右,從上到下依次記為K1-K16,各鍵具有的功能如表1所示:表1 矩陣鍵盤按鍵含義表3.2 STC89C51最小系統(tǒng)模塊 STC89C51單片機(jī)的最小系統(tǒng)模塊由STC89C51單片機(jī)、時(shí)鐘電路和復(fù)
21、位電路構(gòu)成,如圖4所示。圖4 STC89C51最小系統(tǒng)模塊1、 時(shí)鐘電路: 單片機(jī)的時(shí)鐘信號(hào)用來(lái)提供單片機(jī)內(nèi)各種微操作的時(shí)間基準(zhǔn)。8XX51單片機(jī)的時(shí)鐘信號(hào)通常用兩種電路形式得到:內(nèi)部振蕩方式和外部振蕩方式。在引腳XTAL1和XTAL2外接晶振就構(gòu)成了內(nèi)部振蕩方式。由于單片機(jī)內(nèi)部有一個(gè)高增益反向放大器,當(dāng)外接晶振后,就構(gòu)成了自激振蕩器,產(chǎn)生時(shí)鐘脈沖。內(nèi)部振蕩中的兩個(gè)電容器起穩(wěn)定振蕩頻、快速起振的作用,電容值一般為5-30pF。內(nèi)部振蕩方式所得的時(shí)鐘信號(hào)比較穩(wěn)定實(shí)用電路中使用較多。外部振蕩方式是把已有的時(shí)鐘信號(hào)引入單片機(jī)內(nèi)。這種方式適宜用來(lái)使單片機(jī)的時(shí)鐘與外部信號(hào)保持一致。本次課程設(shè)計(jì)的時(shí)鐘電路
22、采用內(nèi)部振蕩方式。2、復(fù)位電路: 復(fù)位操作完成單片機(jī)內(nèi)電路的初始化,使單片機(jī)從一確定的狀態(tài)開(kāi)始運(yùn)行。當(dāng)8XX51單片機(jī)的復(fù)位引腳RST出現(xiàn)5ms以上的高電平時(shí),單片機(jī)就完成了復(fù)位操作。如果RST持續(xù)為高電平,單片機(jī)就處于循環(huán)復(fù)位狀態(tài),而無(wú)法執(zhí)行程序,因此要求單片機(jī)復(fù)位后能脫離復(fù)位狀態(tài)。復(fù)位操作通常有兩種基本形式:上電復(fù)位、開(kāi)關(guān)復(fù)位。上電復(fù)位要求接通電源后,自動(dòng)實(shí)現(xiàn)復(fù)位操作。開(kāi)關(guān)復(fù)位要求在電源接通的條件下,在單片機(jī)運(yùn)行期間,如果發(fā)生死機(jī),用按鈕開(kāi)關(guān)操作使單片機(jī)復(fù)位。圖4中的復(fù)位電路為上電且開(kāi)關(guān)復(fù)位電路,上電后,由于電容充電,使RST持續(xù)一段高電平時(shí)間,從而實(shí)現(xiàn)上電且開(kāi)關(guān)復(fù)位的操作。通常選擇。3.
23、3 LCD1602液晶顯示模塊本方案采用LCD1602液晶來(lái)顯示按鍵的鍵值及鍵值的變化,它是一種專門用來(lái)顯示字母、數(shù)字、符號(hào)等的點(diǎn)陣型液晶模塊。它由若干個(gè)5X7或者5X11等點(diǎn)陣字符位組成,每個(gè)點(diǎn)陣字符位都可以顯示一個(gè)字符,每位之間有一個(gè)點(diǎn)距的間隔,每行之間也有間隔,起到了字符間距和行間距的作用。圖5 LCD1602液晶顯示模塊如圖5所示,為L(zhǎng)CD1602液晶顯示的接線圖。其中RS(數(shù)據(jù)/命令選擇)、RW(讀/寫選擇)、E(使能信號(hào))為控制端,連接至單片機(jī)的P0口的5、6、7腳,D0-D7為數(shù)據(jù)端,連接至單片機(jī)的P2口。3.4 循環(huán)流水燈模塊循環(huán)流水燈模塊電路采用8個(gè)相同的發(fā)光二極管組成,上拉
24、100的電阻的主要目的是起限流保護(hù)二極管的作用。電路接到單片機(jī)的P0和P3口,軟件程序通過(guò)單片機(jī)的提取和轉(zhuǎn)換來(lái)控制流水燈左循環(huán)移位或者右循環(huán)移位。圖6 流水燈模塊4 程序代碼系統(tǒng)主函數(shù)如下所示:#include<reg52.h>#include <LCD1602.h>#include<key.h>unsigned char j = 0;unsigned char a,b=0,c3=0,m=0,LED;void main() LCD1602_Init(); /LCD1602初始化 T0_init(); /定時(shí)器0初始化 LED=0XFE; while(1) a
25、=keyscan(); /按鍵掃描if(a>0&&a<10) /鍵值為1-9,顯示鍵值cb=a;Disp1Char(b+12,1,cb+0x30); if(a=10) b=0; /鍵值為10,選中百位if(a=11) b=1; /鍵值為11,選中十位if(a=12) b=2; /鍵值為12,選中個(gè)位if(a=13) /鍵值為13,進(jìn)行加1顯示a=0;cb+=1;if(cb=10) cb=0;Disp1Char(b+12,1,cb+0x30); if(a=14) /鍵值為14,進(jìn)行減1顯示a=0;if(cb=0) cb=10;cb-=1;Disp1Char(b+12,
26、1,cb+0x30); if(a=15) /鍵值為15,LED流水燈1s循環(huán)左移 TR0 = 1;m=1;if(a=16) /鍵值為16,LED流水燈1s循環(huán)左移 TR0 = 1;m=2;void T0_init() /T0初始化TMOD = 0x01;TH0 = (65536-50000) / 256;TL0 = (65536-50000) % 256;EA = 1;ET0 = 1;void T0_ser() interrupt 1 /T0中斷服務(wù)TH0 = (65536-50000)/256;TL0 = (65536-50000)%256;j+;if(j=20) /每1s移位一次j = 0
27、;if(m=1) P0=(P0|0x1f)&(LED>>3)|0xe0);P3=LED;LED =(LED<<1)|(LED>>7);if(m=2) P0=(P0|0x1f)&(LED>>3)|0xe0);P3=LED;LED =(LED>>1)|(LED<<7);5 Protues仿真圖7 Protues仿真電路將程序代碼在Keil中進(jìn)行編譯和連接,生成KEX文件,再把Keil生成的HEX文件下載到Protues仿真的單片機(jī)中,在元器件都找到后,我們可以先進(jìn)行排版再按照電路圖連接,然后可以點(diǎn)擊運(yùn)行觀察現(xiàn)象
28、,看與自己設(shè)置的符合否,如果不相符再查找錯(cuò)誤進(jìn)行修改,尤其注意程序的部分。圖8 Protues仿真結(jié)果6 實(shí)物制作及調(diào)試6.1 實(shí)物展示矩陣鍵盤采用印制電路板(PCB線路板)制作:圖9 矩陣鍵盤元件圖圖10 矩陣鍵盤焊接電路主體部分采用萬(wàn)用板手工焊接:圖12 單片機(jī)最小系統(tǒng)、液晶顯示及流水燈元件圖圖13 單片機(jī)最小系統(tǒng)及流水燈焊接電路6.2 實(shí)物調(diào)試將各電路板根據(jù)電路圖用杜邦線連接好,檢查電路連接無(wú)誤后接上直流+5V電源,此時(shí)LCD1602液晶顯示屏亮起,屏幕顯示“The key is: ”。調(diào)試時(shí),首先依次按下K1K9鍵時(shí)顯示屏分別顯示數(shù)字19;按下K10鍵之后再任意按下數(shù)字鍵,該位數(shù)值變?yōu)?/p>
29、該數(shù)字鍵對(duì)應(yīng)數(shù)值;按下K11鍵之后再任意按下數(shù)字鍵,出現(xiàn)第二位且數(shù)值為該數(shù)字鍵對(duì)應(yīng)數(shù)值;按下K12鍵之后再任意按下數(shù)字鍵,出現(xiàn)第三位且數(shù)值為該數(shù)字鍵對(duì)應(yīng)數(shù)值;按下K10鍵選中第一位之后再按下K13鍵,第一位數(shù)值加一;按下K10鍵選中第一位之后再按下K14鍵,第一位數(shù)值減一;按下K15鍵,流水燈由左至右循環(huán)亮起;按下復(fù)位鍵之后再按下K16鍵,流水燈由右至左循環(huán)亮起;在任何狀態(tài)下按下復(fù)位鍵,顯示屏清空、流水燈全滅。圖1417為實(shí)物調(diào)試過(guò)程記錄。圖14 調(diào)試按鍵K3按下圖15 調(diào)試流水燈右循環(huán)圖16 調(diào)試流水燈左循環(huán)圖17 調(diào)試輸入三位數(shù)675所以,各按鍵的功能為:K1K9:輸入數(shù)字19;K10:選中第一位;K11:選中第二位;K12:選中第三位;K13:加一;K14:減一;K15:流水燈右循環(huán)亮起;K16:流水燈左循環(huán)亮起。7 心得與體會(huì)本次單片機(jī)應(yīng)用實(shí)踐課題為基于鍵盤輸入單元的單片機(jī)實(shí)驗(yàn)或仿真和C語(yǔ)言開(kāi)發(fā),從拿到題到查資料,從完善原理圖到寫報(bào)告文檔,我收獲了許多。不僅要運(yùn)用學(xué)過(guò)的單片機(jī)、C語(yǔ)言編程等知識(shí),還要學(xué)會(huì)查閱各種圖書資料和工具書,并將新知識(shí)和所學(xué)的結(jié)合起來(lái)為自己所用。 通過(guò)此次單片機(jī)應(yīng)用實(shí)踐,一方面進(jìn)一步鞏固了所學(xué)的知識(shí),理論和實(shí)踐
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年三軸運(yùn)行業(yè)深度研究分析報(bào)告
- 精紡羊毛線項(xiàng)目可行性研究報(bào)告申請(qǐng)建議書
- 農(nóng)村代建合同范本
- 出租手表合同范本
- 別墅內(nèi)墻抹灰合同范本
- 軍訓(xùn)帶隊(duì)合同范本
- 中性合同范例
- 公司所需文件合同范本
- 2025年度國(guó)際旅游保險(xiǎn)合同標(biāo)準(zhǔn)版
- pocib出口合同范本
- 五上數(shù)學(xué)簡(jiǎn)便運(yùn)算500道及答案
- 山東省臨沂市2024年中考物理真題
- 2024新蘇教版一年級(jí)數(shù)學(xué)上冊(cè)全冊(cè)教材分析
- 溫州市甌海旅游投資集團(tuán)有限公司下屬子公司招聘筆試題庫(kù)2024
- Altium-Designer-電路設(shè)計(jì)與制作教案
- 供應(yīng)商評(píng)估與篩選管理制度
- 黃龍溪古鎮(zhèn)文化旅游發(fā)展現(xiàn)狀與對(duì)策研究
- YBT 6227.1-2024《鋼鐵工業(yè)自動(dòng)化儀表與控制裝置安裝規(guī)范 第1部分:總則》
- 2024赤峰學(xué)院教師招聘考試筆試試題
- 三年級(jí)下冊(cè)全冊(cè)書法教案
- 《中國(guó)慢性阻塞性肺疾病基層診療與管理指南(2024年)》解讀
評(píng)論
0/150
提交評(píng)論