




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、摘 要11設(shè)計方案21.1 設(shè)計任務(wù)21.2 設(shè)計方案22系統(tǒng)硬件設(shè)計32.1最小應(yīng)用系統(tǒng)32.2 8155擴展電路42.3 矩陣鍵盤接口電路62.4 LCD1602接口電路62.5 主電路設(shè)計83系統(tǒng)軟件設(shè)計83.1主程序設(shè)計93.2 延時程序設(shè)計93.3 鍵盤掃描子程序設(shè)計103.4 顯示子程序設(shè)計114 系統(tǒng)調(diào)試與結(jié)果134.1 調(diào)試內(nèi)容與問題解決134.2 運行結(jié)果與分析13小結(jié)15參考文獻16附錄17摘 要計算機控制技術(shù)是一門以電子技術(shù)、自動控制原理、計算機應(yīng)用技術(shù)為基礎(chǔ),以計算機控制技術(shù)為核心,綜合可編程控制技術(shù)、單片機技術(shù)、計算機網(wǎng)絡(luò)技術(shù),從而實現(xiàn)生產(chǎn)技術(shù)的精密化、生產(chǎn)設(shè)備的信息
2、化、生產(chǎn)過程的自動化及機電控制系統(tǒng)的最佳化的專門學(xué)科。企業(yè)對具備較強的計算機控制技術(shù)應(yīng)用能力專門人才需求很大。本文在proteus7.5軟件上利用8155芯片來擴展8031單片機的I/O接口,在keil軟件下采用C語言編程,生成.hex文件,可以仿真實現(xiàn)6*6矩陣鍵盤的按鍵識別和消除按鍵抖動,將識別到的按鍵更人性化的在lcd1602的液晶顯示,主要由方案設(shè)計、硬件電路設(shè)計、系統(tǒng)軟件設(shè)計和系統(tǒng)調(diào)試四部分組成。關(guān)鍵詞:8031單片機 8155芯片 矩陣鍵盤 I/O口擴展 1602液晶非編碼鍵盤的掃描程序設(shè)計1設(shè)計方案1.1 設(shè)計任務(wù)通過8155擴展8031微控制器I/O口組成6×6行列式
3、鍵盤行列式鍵盤。設(shè)計非編碼鍵盤的掃描硬件系統(tǒng),畫出電路圖;對鍵盤按鍵能夠正確識別,去抖動;鍵盤掃描;撰寫設(shè)計說明書。1.2 設(shè)計方案首先,將用8155芯片擴展8031單片機的I/O口,然后需要檢測6*6的矩陣鍵盤的12根導(dǎo)線可分別接在8155的PB0-PB6和PC口,LCD1602的8根數(shù)據(jù)線可接在8155的PA0口,控制線接在單片機的P2.0-P2.3,由于8155是可編程芯片,所以將的PA、PB和PC口依次設(shè)為輸出、輸出和輸入,通過編寫鍵盤掃描程序來識別按鍵并返回按鍵值,最后判斷將識別到的按鍵值形象的顯示在LCD1602液晶上。主電路結(jié)構(gòu)框圖如圖1-1所示。 8031單片機6*6矩陣鍵盤
4、8155芯片復(fù)位電路 LCD1602 晶振 圖1-1 系統(tǒng)結(jié)構(gòu)圖2系統(tǒng)硬件設(shè)計2.1最小應(yīng)用系統(tǒng)80C31單片機,它是8位高性能單片機。屬于標(biāo)準(zhǔn)的MCS-51的HCMOS產(chǎn)品。它結(jié)合了HMOS的高速和高密度技術(shù)及CHMOS的低功耗特征,標(biāo)準(zhǔn)MCS-51單片機的體系結(jié)構(gòu)和指令系統(tǒng)。 80C31內(nèi)置中央處理單元、128字節(jié)內(nèi)部數(shù)據(jù)存儲器RAM、32個雙向輸入/輸出(I/O)口、2個16位定時/計數(shù)器和5個兩級中斷結(jié)構(gòu),一個全雙工串行通信口,片內(nèi)時鐘振蕩電路。但80C31片內(nèi)并無程序存儲器,需外接ROM。 此外,80C31還可工作于低功耗模式,可通過兩種軟件選擇空閑和掉電模式。在空閑模式下凍結(jié)CPU
5、而RAM定時器、串行口和中斷系統(tǒng)維持其功能。掉電模式下,保存RAM數(shù)據(jù),時鐘振蕩停止,同時停止芯片內(nèi)其它功能。本次設(shè)計采用80C31的PDIP(40pin)封裝形式,管腳圖如圖2-1所示。 圖2-1 8031管腳圖80c31單片機的40根管腳,若要單片機正常工作必須滿足:1. 電源線2根 Vcc:編程和正常操作時的電源電壓,接+5V。 Vss:地電平。 2. 晶振:2根 XTAL1:振蕩器的反相放大器輸入。使用外部震蕩器是必須接地。 XTAL2:振蕩器的反相放大器輸出和內(nèi)部時鐘發(fā)生器的輸入。當(dāng)使用外部振蕩器時用于輸入外部振蕩信號。 所以可以得到單片機的最小應(yīng)用系統(tǒng)如圖2-2所示。圖2-2 80
6、31最小應(yīng)用系統(tǒng)2.2 8155擴展電路8155芯片介紹關(guān)于Intel的8155/8156:是一多功能的可編程外圍接口芯片, 40腳雙列直插封裝,有A口、B口、C口和定時器/計數(shù)器低8位以及定時器/計數(shù)器高8位五個端口,另外8155內(nèi)部還有一個命令/狀態(tài)寄存器,所以8155內(nèi)部共有6各端口。對它們只需要使用 即可實現(xiàn)編址,如表1-1所示。表1-1 8155的端口地址編碼AD7AD6AD5AD4AD3AD2AD1AD0對應(yīng)端口×××××000命令/狀態(tài)寄存器×××
7、5;×001A口×××××010B口×××××011C口×××××100定時器/計數(shù)器低8位×××××101定時器/計數(shù)器高8位8155的A口有輸入和輸出兩種工作方式,B口也有輸入和輸出兩種工作方式,而C口有輸入方式(ALT1),輸出方式(ALT2),A口控制端口方式(ALT3)以及A口 和B口控制端口方式(ALT4)四種工作方式。這些端口的工作方式是由8155內(nèi)部的命令寄存器(命令字)
8、來控制的。命令字除了規(guī)定端口的工作方式還規(guī)定了定時器/計數(shù)器的工作方式。命令字只能進行寫操作。其格式如圖2-3所示。圖2-3 8155的命令字結(jié)合8031和8155的芯片結(jié)構(gòu)和特點,可設(shè)計出如圖2-4所示的擴展電路。圖2-4 8155擴展電路2.3 矩陣鍵盤接口電路編碼鍵盤與單片機的接口單片機系統(tǒng)所用的鍵盤有編碼鍵盤和非編碼鍵盤兩種。非編碼鍵盤是由一些按鍵排列成的一個行列矩陣。按鍵的作用,只是簡單地實現(xiàn)接點的接通和斷開,但必須有一套相應(yīng)的程序與之配合,才能產(chǎn)生出相應(yīng)的鍵碼。非編碼鍵盤幾乎不需要附加什么硬件電路,目前,在微型計算機控制系統(tǒng)中使用比較普遍。本次設(shè)計有一個6行×6列的非編碼
9、鍵盤,按行依次為1-36,鍵盤的行線接8155C口的六條線PB5PB0,鍵盤的列線則接8155C口的6條線,而且在C口接下拉電阻。如圖2-5所示。圖2-5 矩陣鍵盤接口電路2.4 LCD1602接口電路LCD1602字符型液晶顯示模塊是一種專門用于可以顯示16列*2行顯示字母、數(shù)字、符號等點陣式LCD, 16*2等的模塊。其管腳介紹如下: 第1腳:VSS為地電源。第2腳:VDD接5V正電源。第3腳:VL為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地時對比度最高,對比度過高時會產(chǎn)生“鬼影”,使用時可以通過一個10K的電位器調(diào)整對比度。第4腳:RS為寄存器選擇,高電平時選擇數(shù)據(jù)寄存器、低電平
10、時選擇指令寄存器。第5腳:R/W為讀寫信號線,高電平時進行讀操作,低電平時進行寫操作。當(dāng)RS和R/W共同為低電平時可以寫入指令或者顯示地址,當(dāng)RS為低電平R/W為高電平時可以讀忙信號,當(dāng)RS為高電平R/W為低電平時可以寫入數(shù)據(jù)。第6腳:E端為使能端,當(dāng)E端由高電平跳變成低電平時,液晶模塊執(zhí)行命令。第714腳:D0D7為8位雙向數(shù)據(jù)線。圖2-6 LCD1602接口電路第15腳:背光源正極。第16腳:背光源負極。綜合可設(shè)計液晶與8031單片機及8155芯片的接口電路如圖2-6所示。2.5 主電路設(shè)計綜上各子模塊電路的設(shè)計,可設(shè)計出主電路圖如圖2-7所示圖2-7 主電路圖3系統(tǒng)軟件設(shè)計3.1主程序設(shè)
11、計主程序主要包括三個部分:初始化程序,調(diào)用判斷子程序和調(diào)用檢測子程序,其中顯示子程序被調(diào)用在檢測子程序中。其流程圖如圖3-1所示。開始初始化 調(diào)用判斷子程序 有鍵閉合?Y N Y 調(diào)用檢測子程序 結(jié)束 圖3-1 主程序流程圖3.2 延時程序設(shè)計延時程序是采用雙重for語句循環(huán)自減的方法,將i賦值t,j賦值110運用循環(huán)重復(fù)t遍110自減到0。延時時間計算方法:振蕩器的頻率為12MHz,一個振蕩器周期為1/12微秒,一個機器周期為12/12=1微秒 計算機執(zhí)行每步就需要1微秒,延時時間就是執(zhí)行步數(shù)*1微秒。子程序流程圖如圖3-2所示。開 始i賦初值tj賦初值110j自減一是否為零i 自減一是否為
12、零 NN Y 結(jié) 束 圖3-2 延時子程序流程圖3.3 鍵盤掃描子程序設(shè)計設(shè)置8155的PA、PB和PC口依次設(shè)為輸出、輸出和輸入,這樣在沒有任何鍵按下時,所有鍵盤行線成高電平,列線上的信號都是低電平。按鍵識別有各種方法,此系統(tǒng)只 “行掃描”法:(1)確定是否有按鍵按下。PB口輸出111111到鍵盤的行線,然后檢測鍵盤的列線信號。若沒有鍵按下,則為00000。若有任一個按鍵按下,則有某一條列線為0,也就是當(dāng)PB5PB0不為000000時,就表示有鍵按下。(2)通過“行掃描”確定已按鍵的行、列位置。所謂行掃描就是依次給每條行線輸入1信號,而其余各行都輸入0,并檢測每次掃描時所對應(yīng)的列信號。并檢測
13、每次所對應(yīng)的C口輸入。只有在某行上有鍵按下時,在這一行上輸入1,在列輸出上才能檢測到1信號。若是輸入為1的這一行上沒有按鍵按下,則收到的列信號仍然全是0。因此,只要記下列信號不全為0時的B口輸出及C口輸入,就能確定以按鍵的位置。這樣,通過行掃描,就可以確定按鍵的行、列坐標(biāo)。(3)消除鍵抖動。一般按鍵在按下的時候有抖動的問題,即鍵的簧片在按下時會有輕微的彈跳,需經(jīng)過一個短暫的時間才會可靠地接觸。若在簧片抖動時進行掃描就可能得出不正確的結(jié)果。因此,在程序中要考慮防抖動的問題。最簡單的辦法是在檢測到有鍵按下時,等待(延遲)一段時間再進行“行掃描”,延遲時間為1020ms,這可通過調(diào)用子程序來消除抖動
14、。掃描子程序流程圖如圖3-3所示。開 始掃描鍵盤是否有按鍵?消除抖動是否有按鍵?讀按鍵結(jié) 束 圖3-3 掃描子程序流程圖3.4 顯示子程序設(shè)計1602液晶模塊的讀寫操作,屏幕和光標(biāo)的操作都是通過指令編程來實現(xiàn)的。指令1:清顯示,指令碼01H,光標(biāo)復(fù)位到地址00H位置。指令2:光標(biāo)復(fù)位,光標(biāo)返回到地址00H指令3:光標(biāo)和顯示位置設(shè)置I/D,光標(biāo)移動方向,高電平右移,低電平左移,S:屏幕上所有文字是否左移或右移,高電平表示有效,低電平表示無效。指令4:顯示開關(guān)控制。D:控制整體的顯示開與關(guān),高電平表示開顯示,低電平表示關(guān)顯示。C:控制光標(biāo)的開與關(guān),高電平表示有光標(biāo),低電平表示無光標(biāo) B:控制光標(biāo)是
15、否閃爍,高電平閃爍,低電平不閃爍。指令5:光標(biāo)或顯示移位 S/C :高電平時顯示移動的文字,低電平時移動光標(biāo)指令6:功能設(shè)置命令 DL:高電平時為4位總線,低電平時為8位總線 N:低電平時為單行顯示,高電平時為雙行顯示,F(xiàn):低電平時顯示5X7的點陣字符,高電平時顯示5X10的顯示字符。指令7:字符發(fā)生器RAM地址設(shè)置。指令8:DDRAM地址設(shè)置。指令9:讀忙信號和光標(biāo)地址 BF:忙標(biāo)志位,高電平表示忙,此時模塊不能接收命令或數(shù)據(jù),如果為低電平表示不忙。讀寫操作時序如圖3-4、3-5所示 &
16、#160; 圖3-4 讀時序圖圖3-5 讀時序圖4 系統(tǒng)調(diào)試與結(jié)果4.1 調(diào)試內(nèi)容與問題解決軟件與硬將件連接,仿真運行時,發(fā)現(xiàn)液晶的光標(biāo)移動但是不顯示初始化的字符,經(jīng)檢查發(fā)現(xiàn)液晶控制線與單片機的接線出現(xiàn)了錯誤,改正后可顯示初始化字符。當(dāng)按下按鍵時,發(fā)現(xiàn)液晶的顯示與按鍵不對應(yīng),不能正確顯示按鍵,甚至有的按鍵不能按下去沒有反應(yīng),經(jīng)檢查是掃描子程序的邏輯發(fā)生錯誤,出現(xiàn)死循環(huán),修改后可正確運行。4.2 運行結(jié)果與分析仿真運行開始,初始化后液晶顯示器上出現(xiàn)預(yù)設(shè)的字符串“PLEASE ENTER”,如圖4-1所示圖4-1 初始化的界面當(dāng)按下第一行,第二列的按鍵
17、時,液晶上出現(xiàn)了行和列的標(biāo)號,別且計算出是2,如圖4-2所示。圖4-2 按鍵2顯示當(dāng)按下第4行,第3列時,液晶上也正確顯示了按鍵的位置并且計算出為21,圖4-3所示。圖4-3 按鍵21顯示依次按下每個鍵,并且檢查液晶的顯示,發(fā)現(xiàn)36個按鍵都能正確識別顯示,所以本設(shè)計合理、正確。小結(jié)在現(xiàn)代科學(xué)技術(shù)的眾多領(lǐng)域中,計算機控制技術(shù)起著越來越重要的作用,因此做好微型計算機控制技術(shù)這門課程的課程設(shè)計是非常有必要的,從中可以講課本中知識運用到實際運用中,也讓我深刻的體會到了實踐的艱巨性和挑戰(zhàn)性,在一周的課程設(shè)計中,我不斷的改進自己的方法,通過查閱參書和網(wǎng)上的資料,對于自己在知識上的不足進行了非常好的補充和完
18、善,使得我在短短兩個星期對于這門業(yè)課有了有了更切實的理解,更深的掌握,也學(xué)會了通過自己的努力挑戰(zhàn)未知的領(lǐng)域!通過這次課設(shè)我才知道我們每個人的潛能是遠遠超過我們想象的,剛開始拿到課設(shè)題目聽說可以設(shè)計成幾百行的程序都有點恐懼,因為之前寫的匯編程序最多才幾十行,用C語言寫單片機程序最多也才寫過幾百行,但是通過查閱資料,一步一步來發(fā)現(xiàn)程序越寫越長,寫完才發(fā)現(xiàn)我們的編程水平比我們想象的要高,但是離社會需求的還遠。這次課設(shè)我對程序的差錯和調(diào)試也有很多新的想法,雖然我的編譯器不能單步運行,但是我可以在程序中添加一些延時程序和輸出“*”的語句,這樣就可以知道程序運行的大致步驟,是否運行我們需要的語句了。事實在
19、我調(diào)試和查錯時的確起到了很大的作用。最后,在排版美觀方面,也有了較強的意識。在撰寫實驗報告的時候,格式的要求非常的嚴格,字體的大小要求,段距,行距也都有統(tǒng)一的要求,開始時候沒有注意到這一點,后來發(fā)現(xiàn)了,需要全部更改,工作量很大。改正后,看著自己的美觀排版,心中還是非常欣慰的。參考文獻1.李朝清.單片機原理及接口技術(shù)北京航天航空大學(xué)出版社.1994年2.何立民.單片機高級教程北京航天航空大學(xué)出版社.2000年3.楊光友,朱宏輝等單片機微型計算機原理及接口技術(shù)中國水利水電出版社.2002年 4. 于海生. 計算機控制技術(shù). 機械工業(yè)出版社,20105. 鄭學(xué)堅,周斌. 微型計算機原理與應(yīng)用. 清華
20、大學(xué)出版社6 何立民. 單片機應(yīng)用系統(tǒng)設(shè)計. 北京航空航天大學(xué)出版社7. 姚燕南,薛鈞義. 微型計算機原理. 西安電子科技大學(xué)出版社8. 沙占友等. 新編實用數(shù)字化測量技術(shù). 國防工業(yè)出版社9. 宋春榮等. 通用集成電路手冊. 山東科技出版社附錄#include<reg51.h> /頭文件#include <absacc.h> /XBYTE 宏定義#include<math.h>#include<stdio.h>#define uchar unsigned char #define uint unsigned int#define ulong u
21、nsigned long#define com XBYTE0x7FF0 /8155命令狀態(tài)寄存器地址#define pa XBYTE0x7FF1 /8155的A口地址#define pb XBYTE0x7FF2 /8155的B口地址#define pc XBYTE0x7FF3 /8155的C口地址sbit lcdrs=P30;sbit lcden=P32;sbit lcdrw=P31;uchar table1="HANG "uchar table2=" LIE "uchar table3="WE GET "uchar table4=&
22、quot;PLEASE ENTER "int x,y,z,hang,lie;void delay(uchar t);void wcom(uint co);void wdate(uchar date);void wdate1(ulong date);void panduan();void jiance();void xianshi();void wcom(uint co)/液晶寫控制字子程序 lcdrs=0; pa=co; delay(2); lcden=1; delay(2); lcden=0;void wdate(uchar date)/液晶顯示單字符子程序 lcdrs=1; pa
23、=date; delay(2); lcden=1; delay(2); lcden=0;void wdate1(ulong date)/液晶顯示多字符子程序 uchar m; wcom(0x80+0x40+9); wcom(0x04); wcom(0x0C); if(date) while(date) m=date%10; wdate(0x30+m);date/=10;void xianshi()/顯示按鍵子程序 uchar m; wcom(0x01); wcom(0x80); wcom(0x0c); for(m=0;m<5;m+) wdate(table1m); delay(2); wdate(0x30+x+1); for(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 旅游行業(yè)運營與服務(wù)管理案例分析題庫及解答指導(dǎo)
- 證券投資分析與風(fēng)險管理知識考點
- 擴大宣傳效益內(nèi)容梳理條款協(xié)議
- ××超市版權(quán)合規(guī)制度
- 我心中的英雄形象:小學(xué)生寫人作文9篇
- 美國國立衛(wèi)生研究院(NIH)公共獲取的案例解析及啟示
- 雨后彩虹的約定:童話色彩的故事展現(xiàn)美好愿景8篇
- 2025年甲肝滅活疫苗項目立項申請報告模板
- 2025年德語TestDaF口語模擬試卷:歷年真題解析與備考策略
- 2025年電子商務(wù)師(初級)職業(yè)技能鑒定試卷:電商行業(yè)發(fā)展趨勢分析
- 園林綠化工程施工技術(shù)方案及技術(shù)措施
- “安全生產(chǎn)課件:如何預(yù)防工傷事故”
- 14天攻克KET詞匯表
- 簡易精神狀態(tài)檢查量表(MMSE)
- 《教育學(xué)原理》馬工程教材第二章教育與社會發(fā)展
- GB/T 10095.2-2023圓柱齒輪ISO齒面公差分級制第2部分:徑向綜合偏差的定義和允許值
- 西藏農(nóng)村公路管理辦法
- 考研英語5500詞匯大綱
- 廣州市白云廣附實驗學(xué)校招生數(shù)學(xué)真題卷
- 20232023期末A 統(tǒng)計學(xué)考試卷 首經(jīng)貿(mào)
- 福建省福州市福建師大附中2023年自主招生樣卷--數(shù)學(xué)試卷
評論
0/150
提交評論