




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 摘摘 要要本次設計是以單片機 STC89C52 為核心,在最小系統的基礎上完成擴展部分的設計。擴展電路包括 4 個部分,分別是矩陣鍵盤顯示電路、數字時鐘、數字溫度計、數字頻率計。其中硬件部分由最小系統、矩陣鍵盤、溫度傳感器和數碼管顯示電路組成,所有的算法都在軟件程序實現。整個設計可以完成鍵盤的掃描、時鐘、溫度和頻率的顯示的功能,人機交換還可以通過串口送至另一個單片機顯示。鍵盤和顯示是單片機應用系統中實現人機對話的一種基本形式,兩種接口設計的好壞,直接影響到人機接口的友好程度。在對一個系統進行操作時,往往離不開人與機器的對話,人機接口界面可以滿足人與機器之間的交流??梢酝ㄟ^按鍵將所需要信號與信
2、息輸入給系統,經過系統處理后,所期待的效果又可以通過屏幕來顯示出來,這樣就可以很好的達到人與機器的交流目的。本設計的目的是通過在對單片機原理及應用的學習,以及查閱資料,培養自學與動手能力,把學到的知識應用到日常生活當中。在設計的過程中,不斷的補充不知道的內容、鞏固所學,和隊友的分工合作、相互討論,運用科學的分析問題的方法解決遇到的困難,掌握單片機系統一般的開發流程,學會對常見問題的處理方法,積累設計系統的經驗,充分發揮教學與實踐的結合。關鍵字:單片機、鍵盤、人機交換、顯示目錄1 實習目的與要求實習目的與要求.11.1 實習目的.11.2實習要求.12 設計任務設計任務.22.1 基本思路.12
3、.2 功能描述.22.3 單片機開發板原理及各部分功能說明.23 設計設計方案方案.43.1 硬件調試.4 3.1.1 調試過程.4 3.1.2 接口定義.4 3.1.3 硬件結構.43.2 軟件開發.5 3.2.1 程序流程圖.5 3.2.2 具體程序設計.64 設計設計成果成果.114.1 系統原理圖.114.2 系統 PCB 圖.115 心得體會心得體會.12參考文獻參考文獻.130基于基于 STC89C52 單片機的人機接口的設計單片機的人機接口的設計1 實習目的與要求實習目的與要求1.11.1 實習目的:實習目的:本設計的目的是通過在對單片機原理及應用的學習,以及查閱資料,培養自學與
4、動手能力,把學到的知識應用到日常生活當中。在設計的過程中,不斷的補充不知道的內容、鞏固所學,和隊友的分工合作、相互討論,運用科學的分析問題的方法解決遇到的困難,掌握單片機系統一般的開發流程,學會對常見問題的處理方法,積累設計系統的經驗,充分發揮教學與實踐的結合。1.21.2 實習要求:實習要求:(1) 設計一個基于 STC89C52 的人機接口顯示和鍵盤,并且能夠實現暫停,繼續,復位功能。(2) Protel 專用軟件繪制單片機原理圖; (3) 設計出軟件編程方法,并寫出源程序;(4)用 C 語言實現程序設計。 ;(5)用 Keil 軟件編寫 HEX 等相關文件;(6)程序的各功能模塊要清楚,
5、有序。2 設計任務設計任務2.12.1 基本思路基本思路此設計是基于 STC89C52 單片機的人機接口,通過 STC89C52 單片機和12864 液晶來實現人機信息交流。利用 STC89C52 單片機的 IO 口實現鍵盤輸入,通過串行通信控制液晶顯示。在沒有按鍵按下時顯示“16” ,在有鍵按下的時顯示被按下的鍵值。系統的設計結構框圖如圖一。152 單片單片機最小機最小系統系統電源電源44 鍵盤鍵盤液晶顯示液晶顯示圖圖 2-12-1 基于基于 STC89C52STC89C52 單片機的人機接口的系統結構單片機的人機接口的系統結構框圖框圖2.22.2 功能描述功能描述人機接口是人與機器之間傳遞
6、、交換信息的媒介和對話接口,是單片機系統的重要組成部分。是指人和單片機系統在信息交換和功能上接觸或相互影響的領域。人機接口的應用無處不在,如在溫度的測試及監控系統中,人通過鍵盤輸入要設定的溫度值,系統通過數碼管或液晶顯示當前的溫度。這樣就通過人機接口完成了人與單片機之間的信息交流。正因為人機接口運用如此廣泛及它在實現人機交流的地位的不可或缺,故設計一個高性能的人機接口具有巨大的意義。此設計是基于 51 單片機的人機接口,通過 51 單片機和 12864 液晶來實現人機信息交流。利用 51 單片機的 IO 口實現鍵盤輸入,通過串行通信控制液晶顯示。在沒有按鍵按下時顯示“16” ,在有鍵按下的時顯
7、示被按下的鍵值。2.32.3 單片機開發板原理及各部分功能說明單片機開發板原理及各部分功能說明 單片機是一種集成在電路芯片,是采用超大規模集成電路技術把具有數據處理能力的中央處理器 CPU 隨機存儲器 RAM、只讀存儲器 ROM、多種 I/O口和中斷系統、定時器/計時器等功能(可能還包括顯示驅動電路、脈寬調制電路、模擬多路轉換器、A/D 轉換器等電路)集成到一塊硅片上構成的一個小而完善的計算機系統??梢哉f,二十世紀跨越了三個“電”的時代,即電氣時代、電子時代和現已進入的電腦時代。不過,這種電腦,通常是指個人計算機,簡稱 PC 機。它由主機、鍵盤、顯示器等組成。還有一類計算機,大多數人卻不怎么熟
8、悉。這種計算機就是把智能賦予各種機械的單片機(亦稱微控制器) 。顧名思義,這種計算機的最小系統只用了一片集成電路,即可進行簡單運算和控制。因為它體積小,通常都藏在被控機械的“肚子”里。它在整個裝置中,起著有如人類頭2腦的作用,它出了毛病,整個裝置就癱瘓了。目前單片機滲透到我們生活的各個領域,幾乎很難找到哪個領域沒有單片機的蹤跡。導彈的導航裝置,飛機上各種儀表的控制,計算機的網絡通訊與數據傳輸,工業自動化過程的實時控制和數據處理,廣泛使用的各種智能 IC 卡,民用豪華轎車的安全保障系統,錄像機、攝像機、全自動洗衣機的控制,以及程控玩具、電子寵物等等,這些都離不開單片機。更不用說自動控制領域的機器
9、人、智能儀表、醫療器械了。因此,單片機的學習、開發與應用將造就一批計算機應用與智能化控制的科學家、工程師。51 系列單片機是各單片機中最為典型和最有代表性的一種。這次課程設計通過對它的學習,應用,從而達到學習、設計、開發軟件的能力。12345678ABCD87654321DCBATitleNumberRevisionSizeA3Date:12-Jul-2010Sheet of File:H:習習習習習習習syb51習習.ddbDrawn By:A46f10A38A112e1c4DP3b7a11g5A29d2DIG1DIG2DIG3DIG4DP2DP3DS2HDSP-B04EA46f10A38A
10、112e1c4DP3b7a11g5A29d2DIG1DIG2DIG3DIG4DP2DP3DS1HDSP-B04EW1W2W3W4W5W6W7W8D1D2D3D4D5D6D7D8D1D2D3D4D5D6D7D8EA/VPP31XTAL119XTAL218RST9P3.7(RD)17P3.6(WR)16P3.2(INT0)12P3.3(INT1)13P3.4(T0)14P3.5(T1)15P1.0(T2)1P1.1(T2EX)2P1.23P1.34P1.45P1.5(MOSI)6P1.6(MISO)7P1.7(SCK)8(AD0)P0.039(AD1)P0.138(AD2)P0.237(AD3)P
11、0.336(AD4)P0.435(AD5)P0.534(AD6)P0.633(AD7)P0.732(A8)P2.021(A9)P2.122(A10)P2.223(A11)P2.324(A12)P2.425(A13)P2.526(A14)P2.627(A15)P2.728PSEN29ALE/PROG30(TXD)P3.111(RXD)P3.010GND20VCC40MU1 AT89S52P10P11P12P13P14P15P16P17P00P01P02P03P04P05P06P07P20P21P22P23P24P25P26P27VCCGNDP30P31P32P33P34P35P36P37RSTD
12、IGIDB2E1C3DQ18550DQ28550DQ38550DQ48550DQ58550DQ68550DQ78550DQ88550K11SW-PB4K12SW-PB4K13SW-PB4K14SW-PB4K21SW-PB4K22SW-PB4K23SW-PB4K24SW-PB4K31SW-PB4K32SW-PB4K33SW-PB4K34SW-PB4K41SW-PB4K42SW-PB4K43SW-PB4K44SW-PB4OSC32 INOSC32 OUTOSC32 INOSC32 OUTRTCTBATVCC21X12X23GND4RST5I/O6SCLK7VCC18TU1DS1302TVCCGND
13、TC1104GNDTVCCTX132KKEYK123DSU1DS18B20BEEPBU1BEEPBQ18550BR14K7VCCBDSR14K7LED1LED2LED3LED4LED5LED6LED7LED8LEDL231546SW1POWER-KEY12345678MP2P112345678MP4P312345678MP3P212345678MP1P0123PCON1POWER12345678910111213141516P21602P10P11P12P13P14P15P16P17P20P21P22P23P24P25P26P27P30P31P32P33P34P35P36P37P00P01P0
14、2P03P04P05P06P07R1 IN13R2 IN8T1 IN11T2 IN10GND15V+2V-6VCC16R1 OUT12R2 OUT9T1 OUT14T2 OUT7C1+1C1 -3C2+4C2 -5SU1MAX232VCCSC1104SC4104SC3104SC2104162738495SCON1RS232P31P30DR14K7DR24K7DR34K7DR44K7DR54K7DR64K7DR74K7DR84K7W1W2W3W4W5W6W7W8DVCCT2OUTT2OUTSerialSGNDPVCC2PVCC2GNDPR11KPORTPVCCMK1RESETMR24K7RSTM
15、C410U/16VSC5104K1SW-PB4K2SW-PB4K3SW-PB4K4SW-PB4P32P33P34P35VBUS1D-2D+3GND465UCON1USBVCC1VCCVCC1VCC2DR91KDR101KDR111KDR121KDR131KDR141KDR151KDR161KD1D2D3D4D5D6D7D8P0012345678JP1HEADER 4X2P01P02P03P04P05P06P07VCCVCCVCCPVCC1PVCC2DVCCPWRR11KMC1104VCCGNDC1220U/16VC2104DS18B20DS12345678910IP1ISPGNDVCCMOSI
16、RSTSCKMISOP15P16P17VCCX112MMC330PMC230POSC_INOSC_OUTOSC_INOSC_OUTP00P01P02P03P04P05P06P071234567891011121314151617181920P112864PVCC1GNDGNDPVCC1PR310KPR44K7123456789MR14K7x8VCCVCC2GNDGNDP10P11P10P11P12P10P11P12P13P14P15P16P17LVCCEEPROMA01A12A23VSS4SDA5SCL6WP7VDD8EU124C08EVCCER14K7ER24K7EEC1104EVCCGND
17、12345678JP2HEADER 4X2DS1BEEPBEEPDS1VCCVCCVCCLVCCTVCCEVCCVCCP30P31P32P33P34P35P36P37P20P21P22P23P24P25P26D1D2D3D4D5D6D7D8LQ18550LR04K7LVCCP27VCCGNDP00P01P02P03P04P05P06P07P12P13P14P15123J3EN_1602ENENGNDID11N4148123IU1IR 38KP32IR1100VCCIR38K12JP3CON2IR38K圖圖 2-22-2 單片機原理圖單片機原理圖 圖圖 2-32-3 STC89C52STC89C
18、52 引腳圖引腳圖33.設計方案設計方案3.13.1 硬件調試硬件調試3.1.13.1.1 調試過程調試過程硬件調試主要是檢測硬件電路是否有短路、斷路、虛焊等。具體步驟及測 試結果如下:(1)檢查電源與地線是否全部連接上,用萬用表對照電路原理圖測試各導線是否完全連接,測試結果所有連接線都已連接好;(2)檢驗 STC89C52 單片機的晶振是否起振,用示波器觀察波形,測試結果波形都很好;(3)檢查各芯片的功能是否正常,檢測按鍵的導通情況。測試結果正常。3.1.23.1.2 接口定義接口定義表一、基于表一、基于 STC89C52STC89C52 單片機的人機接口接口定義表格單片機的人機接口接口定義
19、表格對對 象象功能功能/定義定義P1.0P1.7鍵盤行輸出列輸入鍵盤行輸出列輸入P2.012864 的數據輸入口的數據輸入口I/O 口口P2.112864 的時鐘輸入口的時鐘輸入口定時器定時器TO初始值為初始值為 50000,定時,定時 50ms中斷中斷T0 中斷中斷計時到計時到 50ms 產生中斷,用于更新液晶顯示產生中斷,用于更新液晶顯示圖圖 3-13-1 基于基于 5252 單片機的人機接口接口定義表格單片機的人機接口接口定義表格3.1.33.1.3 硬件結構圖硬件結構圖4圖圖 3-23-2 基于基于 5252 單片機的人機接口的硬件結構圖單片機的人機接口的硬件結構圖3.23.2 軟件開
20、發軟件開發3.2.13.2.1 程序流程圖程序流程圖開始開始初始化初始化鍵值是否更鍵值是否更新新顯示更新的鍵顯示更新的鍵值值是是否否圖圖 3-3 基于基于 STC89C52 單片機的設計單片機的設計接口的程序流程圖接口的程序流程圖5 圖圖 3-43-4 總設計圖總設計圖3.2.23.2.2 具體程序設計具體程序設計#include #include #define KeyROCISegCodeO P1 /*定義鍵盤行輸出列輸入*/#define NumRow 4 /*定義鍵盤行數為 4*/ #define NumColumn 4 /*定義鍵盤列數為 4*/ #define unit unsig
21、ned int#define uchar unsigned charsbit SID=P20;sbit SCLK=P21; void delay(uchar time) /*延時函數*/ uchar i,j; for (i=0;itime;i+) for (j=0;j255;j+); uchar KeyBoardScan() /*鍵盤掃描函數*/ uchar row,RowCode,column,ColumnState; /*行循環、行碼、列循環、列狀態*/ KeyROCISegCodeO=0 xf0; /*鍵盤行線均輸出 0*/ if (KeyROCISegCodeO|0 x0f)!=0 x
22、ff) /*有鍵按下*/ delay(12); /*消抖延時約 10ms(fosc=12MHz)*/6 KeyROCISegCodeO=0 xf0; /*鍵盤行線均輸出 0*/ if (KeyROCISegCodeO|0 x0f)!=0 xff) /*確實有鍵按下,尋找是哪個鍵*/ RowCode=0 xfe; /*指向第 1 行*/ for(row=0;rowNumRow;row+) /*掃描共 NumRow 行*/ KeyROCISegCodeO=RowCode; /*當前行*/ ColumnState=KeyROCISegCodeO|0 x0f; /*獲取列狀態*/ for(column
23、=0;columnNumColumn;column+) /*查詢共 NumColumn列的狀態*/ if (ColumnState|0 x7f)=0 x7f) while (KeyROCISegCodeO|0 x0f)!=0 xff); /*等待鍵釋放*/ return(row*NumColumn+column); /*返回鍵值*/ else ColumnState=_crol_(ColumnState,1); /*指向下一列*/ RowCode=_crol_(RowCode,1); /*指向下一行*/ return(NumRow*NumColumn); /*返回無鍵值*/ void send
24、_command(uchar command_data) /* 串口寫指令函數*/uchar i;uchar i_data;i_data=0 xf8;SCLK=0;for(i=0;i8;i+) SID=(bit)(i_data&0 x80); SCLK=0; SCLK=1; i_data=i_data1;i_data=comman_data;i_data&=0 xf0;for(i=0;i8;i+) SID=(bit)(i_data&0 x80); SCLK=0; SCLK=1; i_data=i_data1;7i_data=comman_data;i_data=4;fo
25、r(i=0;i8;i+) SID=(bit)(i_data&0 x80); SCLK=0; SCLK=1; i_data=i_data1;delay(12); void send_data(uchar commend_data) /*寫數據函數*/uchar i;uchar i_data;i_data=0 xfa;for(i=0;i8;i+) SID=(bit)(i_data&0 x80); SCLK=0; SCLK=1; i_data=i_data1;i_data=comman_data;i_data&=0 xf0; for(i=0;i8;i+) SID=(bit)(
26、i_data&0 x80); SCLK=0; SCLK=1; i_data=i_data1;i_data=comman_data;i_data=4;for(i=0;i8;i+) SID=(bit)(i_data&0 x80); SCLK=0; SCLK=1; i_data=i_data1;delay(12); 8 void lcd_init (void ) /*液晶初始化函數*/delay(120);write_c(0 x30);/基本操作write_c(0 x01);/清屏操作write_c(0 x06);/游標及顯示右移一位write_c(0 x0C);/整體顯示開 反白關
27、void LCD_LOCATION(uchar x,uchar y) /*地址選擇函數*/unsigned char pos;if(x=0)x=0 x80; else if (x=1) x=0 x90; else if (x=2) x=0 x88; else if (x=3) x=0 x98;pos=x+y;write_commend(pos);void display_char(uchar x,uchar y,uchar xianshi)/*顯示字符函數,x、y 為顯示的地址,xianshi為要顯示的字符串*/uchar i;LCD_LOCATION(x,y);delay(10);i=0;w
28、hile(xianshii!=0)write_d(xianshii);i+;void display_num(unsigned char x,unsigned char y,unsigned int NUM) /*顯示整數函數,x、y 為顯示的地址,NUM 為要顯示的字符串*/uchar data6;uchar i;data0=(NUM/10000)%10+0;9data1=(NUM/1000)%10+0 ;data2=(NUM/100)%10+0;data3=(NUM/10)%10+0;data4=NUM%10+0;data5=0;LCD_LOCATION(x,y);i=0;while(da
29、tai!=0)write_d(datai);i+;void display_float(unsigned char x,unsigned char y, float NUM) /*顯示整數函數,x、y 為顯示的地址,NUM 為要顯示的字符串*/uchar a_SHOW7;uchar i;long int t;t=NUM*1000;a_SHOW0=(t/10000)%10+0;a_SHOW1=(t/1000)%10+0 ;a_SHOW2=.; a_SHOW3=(t/100)%10+0;a_SHOW4=(t/10)%10+0; a_SHOW5=t%10+0; a_SHOW6=0;LCD_LOCATION(x,y); i=0; while(a_SHOWi!=0)write_d(a_SHOWi);i+;void main(void) uchar i,KeyValue; /*循環,鍵值*/ TMOD=1; /*定時計數器 0 定時、方式 1*/ TH0=(65536-50000)/256; /*定時計數器 0 定時 50ms*/ TL0=(65536-50000)%
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 遺跡保護與歷史文化名城保護考核試卷
- 零售業趨勢與未來發展預測考核試卷
- 貴金屬提煉的化學分析方法考核試卷
- 水運市場競爭與發展趨勢考核試卷
- 陶瓷工藝品的耐化學腐蝕性能測試方法與應用研究考核試卷
- 瑞思邁呼吸機產品解析與應用指南
- 妊娠合并高血壓疾病護理
- 衛生法學視角下的職業病防治體系
- 2025年金融數據治理與資產化研究報告:金融行業數據治理與資產化戰略布局與實施效果
- 量子計算在金融風險模擬中的量子計算與金融數據分析應用報告
- MOOC 軍事理論-哈爾濱工程大學 中國大學慕課答案
- 實驗室工作月報
- 貨物倒塌危害預防管理
- 辦公室綜合業務培訓課件
- 諸暨市城北片控制性詳細規劃
- 基于Python+MySQL的員工管理系統的設計與實現
- 可視對講及門禁的課程設計
- 2024屆云南省曲靖市富源六中生物高二下期末學業質量監測模擬試題含解析
- 吉林省長春市南關區2022-2023學年五年級下學期期末考試數學試題
- 2023年10月自考00539中國古代文學史二試題及答案含評分標準
- 安保服務方案(技術標 )
評論
0/150
提交評論