版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、摘要 本次設(shè)計是以單片機 STC89C52為核心,在最小系統(tǒng)的基礎(chǔ)上完成擴展部分 的設(shè)計。擴展電路包括 4 個部分,分別是矩陣鍵盤顯示電路、數(shù)字時鐘、數(shù)字溫 度計、數(shù)字頻率計。其中硬件部分由最小系統(tǒng)、矩陣鍵盤、溫度傳感器和數(shù)碼管 顯示電路組成,所有的算法都在軟件程序?qū)崿F(xiàn)。整個設(shè)計可以完成鍵盤的掃描、 時鐘、溫度和頻率的顯示的功能, 人機交換還可以通過串口送至另一個單片機顯 示。 鍵盤和顯示是單片機應(yīng)用系統(tǒng)中實現(xiàn)人機對話的一種基本形式, 兩種接口設(shè) 計的好壞, 直接影響到人機接口的友好程度。 在對一個系統(tǒng)進(jìn)行操作時, 往往離 不開人與機器的對話, 人機接口界面可以滿足人與機器之間的交流。 可以通
2、過按 鍵將所需要信號與信息輸入給系統(tǒng), 經(jīng)過系統(tǒng)處理后, 所期待的效果又可以通過 屏幕來顯示出來,這樣就可以很好的達(dá)到人與機器的交流目的。 本設(shè)計的目的是通過在對單片機原理及應(yīng)用的學(xué)習(xí), 以及查閱資料, 培養(yǎng)自 學(xué)與動手能力, 把學(xué)到的知識應(yīng)用到日常生活當(dāng)中。 在設(shè)計的過程中, 不斷的補 充不知道的內(nèi)容、鞏固所學(xué),和隊友的分工合作、相互討論,運用科學(xué)的分析問 題的方法解決遇到的困難, 掌握單片機系統(tǒng)一般的開發(fā)流程, 學(xué)會對常見問題的 處理方法,積累設(shè)計系統(tǒng)的經(jīng)驗,充分發(fā)揮教學(xué)與實踐的結(jié)合。 關(guān)鍵字:單片機、鍵盤、人機交換、顯示 目錄 1 實習(xí)目的與要求 1. 1.1 實習(xí)目的 1. 1.2 實
3、習(xí)要求 1. 2 設(shè)計任務(wù) 2. 2.1 基本思路 1. 2.2 功能描述 2. 2.3 單片機開發(fā)板原理及各部分功能說明 2. 3 設(shè)計方案 4. 3.1 硬件調(diào)試 4. 3.1.1 調(diào)試過程 4. 3.1.2 接口定義 4. 3.1.3 硬件結(jié)構(gòu) 4. 3.2 軟件開發(fā) 5. 3.2.1 程序流程圖 5. 3.2.2 具體程序設(shè)計 6. 4 設(shè)計成果 1.1. 4.1 系統(tǒng)原理圖 1.1. 4.2 系統(tǒng) PCB圖 1.1. 5 心得體會 1.2. 參考文獻(xiàn) 1.3. 基于 STC89C52 單片機的人機接口的設(shè)計 1 實習(xí)目的與要求 1.1 實習(xí)目的: 本設(shè)計的目的是通過在對單片機原理及應(yīng)
4、用的學(xué)習(xí), 以及查閱資料, 培養(yǎng)自 學(xué)與動手能力, 把學(xué)到的知識應(yīng)用到日常生活當(dāng)中。 在設(shè)計的過程中, 不斷的補 充不知道的內(nèi)容、鞏固所學(xué),和隊友的分工合作、相互討論,運用科學(xué)的分析問 題的方法解決遇到的困難, 掌握單片機系統(tǒng)一般的開發(fā)流程, 學(xué)會對常見問題的 處理方法,積累設(shè)計系統(tǒng)的經(jīng)驗,充分發(fā)揮教學(xué)與實踐的結(jié)合。 1.2 實習(xí)要求: (1)設(shè)計一個基于 STC89C52的人機接口顯示和鍵盤, 并且能夠?qū)崿F(xiàn)暫停, 繼續(xù),復(fù)位功能。 (2)Protel 專用軟件繪制單片機原理圖; (3)設(shè)計出軟件編程方法,并寫出源程序; (4)用 C 語言實現(xiàn)程序設(shè)計。 ; (5)用 Keil 軟件編寫 HE
5、X 等相關(guān)文件; (6)程序的各功能模塊要清楚,有序。 2 設(shè)計任務(wù) 2.1 基本思路 此設(shè)計是基于 STC89C52 單片機的人機接口,通過 STC89C52 單片機和 12864液晶來實現(xiàn)人機信息交流。 利用 STC89C52單片機的 IO 口實現(xiàn)鍵盤輸入, 通過串行通信控制液晶顯示。在沒有按鍵按下時顯示“ 16”,在有鍵按下的時顯 示被按下的鍵值。系統(tǒng)的設(shè)計結(jié)構(gòu)框圖如圖一。 圖 2-1 基于 STC89C52單片機的人機接口的系統(tǒng)結(jié)構(gòu) 2.2 功能描述 人機接口是人與機器之間傳遞、 交換信息的媒介和對話接口, 是單片機系統(tǒng) 的重要組成部分。是指人和單片機系統(tǒng)在信息交換和功能上接觸或相互影
6、響的領(lǐng) 域。人機接口的應(yīng)用無處不在, 如在溫度的測試及監(jiān)控系統(tǒng)中, 人通過鍵盤輸入 要設(shè)定的溫度值, 系統(tǒng)通過數(shù)碼管或液晶顯示當(dāng)前的溫度。 這樣就通過人機接口 完成了人與單片機之間的信息交流。 正因為人機接口運用如此廣泛及它在實現(xiàn)人 機交流的地位的不可或缺, 故設(shè)計一個高性能的人機接口具有巨大的意義。 此設(shè) 計是基于 51 單片機的人機接口,通過 51單片機和 12864液晶來實現(xiàn)人機信息交 流。利用 51單片機的 IO 口實現(xiàn)鍵盤輸入, 通過串行通信控制液晶顯示。 在沒有 按鍵按下時顯示“ 16”,在有鍵按下的時顯示被按下的鍵值。 2.3 單片機開發(fā)板原理及各部分功能說明 單片機是一種集成在
7、電路芯片,是采用超大規(guī)模集成電路技術(shù)把具有數(shù)據(jù) 處理能力的中央處理器 CPU 隨機存儲器 RAM 、只讀存儲器 ROM、多種 I/O 口 和中斷系統(tǒng)、定時器 /計時器等功能(可能還包括顯示驅(qū)動電路、脈寬調(diào)制電路、 模擬多路轉(zhuǎn)換器、 A/D 轉(zhuǎn)換器等電路) 集成到一塊硅片上構(gòu)成的一個小而完善的 計算機系統(tǒng)。 可以說,二十世紀(jì)跨越了三個“電”的時代,即電氣時代、電子時代和現(xiàn)已 進(jìn)入的電腦時代。不過,這種電腦,通常是指個人計算機,簡稱 PC 機。它由主 機、鍵盤、顯示器等組成。還有一類計算機,大多數(shù)人卻不怎么熟悉。這種計算 機就是把智能賦予各種機械的單片機(亦稱微控制器) 。顧名思義,這種計算機 的
8、最小系統(tǒng)只用了一片集成電路, 即可進(jìn)行簡單運算和控制。 因為它體積小, 通 常都藏在被控機械的“肚子”里。它在整個裝置中,起著有如人類頭腦的作用,它出了毛病,整個裝置就癱瘓了。 目前單片機滲透到我們生活的各個領(lǐng)域, 幾乎很難找到哪個領(lǐng)域沒有單片機 的蹤跡。導(dǎo)彈的導(dǎo)航裝置, 飛機上各種儀表的控制, 計算機的網(wǎng)絡(luò)通訊與數(shù)據(jù)傳 輸,工業(yè)自動化過程的實時控制和數(shù)據(jù)處理,廣泛使用的各種智能 IC 卡,民用 豪華轎車的安全保障系統(tǒng),錄像機、攝像機、全自動洗衣機的控制,以及程控玩 具、電子寵物等等,這些都離不開單片機。更不用說自動控制領(lǐng)域的機器人、智 能儀表、醫(yī)療器械了。因此,單片機的學(xué)習(xí)、開發(fā)與應(yīng)用將造就
9、一批計算機應(yīng)用 與智能化控制的科學(xué)家、工程師。 51 系列單片機是各單片機中最為典型和最有代表性的一種。這次課程設(shè)計 通過對它的學(xué)習(xí),應(yīng)用,從而達(dá)到學(xué)習(xí)、設(shè)計、開發(fā)軟件的能力。 PORT 2VPCCNDG10P11P EN00P10P02P03P40P05P06P2CCVP07PDGN DNG EN21P D DIGI DQ6 DQ7 DQ8 4K7 4K7 6 61 7 71 8 S Serial 48 +26C16 1S0C43 104 M C1+ D C1 - NG GND4PCO3N1GND VGBNUDSDD-+321VCC1POW321ERVGCNCD2 D7 LED DP2 D6
10、 10 DP2 D2 DR10 P01 LVCC 4VVCCCC 14523 PPPPP0000023410 34521 PPPPP3333312304 K KEY EEPROM 4EKR71 4E P26 T RTC 104 P1435261 PPPPPP111111012534 P2624531 PPPPPP222222105423 XX12 P24 DS SW-PB4 SW-PB4 SW-PB4 SW-PB4 SW-PB4 SK3W2-PB4 KS3W4-PB4 P35 SW-PB4 SW-PB4 SW-PB4 SW-PB4 P36 SW-PB4 SW-PB4 P37 BEEP 4K7
11、DS1 4K7 32 32 IR 138K 圖 2-2 單片機原理圖 File:實 習(xí)制作電 路板sy b51制 版.ddb 圖 2-3 STC89C52 引腳圖 3.設(shè)計方案 3.1 硬件調(diào)試 3.1.1 調(diào)試過程 硬件調(diào)試主要是檢測硬件電路是否有短路、 斷路、虛焊等。具體步驟及測 試 結(jié)果如下: (1)檢查電源與地線是否全部連接上,用萬用表對照電路原理圖測試各導(dǎo) 線是否完全連接,測試結(jié)果所有連接線都已連接好; (2)檢驗 STC89C52 單片機的晶振是否起振,用示波器觀察波形,測試結(jié) 果波形都很好; (3)檢查各芯片的功能是否正常,檢測按鍵的導(dǎo)通情況。測試結(jié)果正常。 3.1.2 接口定義
12、 表一、基于 STC89C52單片機的人機接口接口定義表格 I/O 口 對 象 功能 /定義 P1.0P1.7 鍵盤行輸出列輸入 P2.0 12864的數(shù)據(jù)輸入口 P2.1 12864的時鐘輸入口 定時器 TO 初始值為 50000,定時 50ms 中斷 T0 中斷 計時到 50ms 產(chǎn)生中斷,用于更新液晶顯示 圖 3-1 基于 52 單片機的人機接口接口定義表格 3.1.3 硬件結(jié)構(gòu)圖 圖 3-2 基于 52 單片機的人機接口的硬件結(jié)構(gòu)圖 3.2 軟件開發(fā) 3.2.1 程序流程圖 圖 3-3 基于 STC89C52 單片機的設(shè)計 5 圖 3-4 總設(shè)計圖 3.2.2 具體程序設(shè)計 #incl
13、ude #include #define KeyROCISegCodeO P1 /* 定義鍵盤行輸出列輸入 */ #define NumRow 4/* 定義鍵盤行數(shù)為 4*/ #define NumColumn 4 /* 定義鍵盤列數(shù)為 4*/ #define unit unsigned int #define uchar unsigned char sbit SID=P20; sbit SCLK=P21; void delay(uchar time) /*延時函數(shù) */ uchar i,j; for (i=0;itime;i+) for (j=0;j255;j+); uchar KeyBoa
14、rdScan() /* 鍵盤掃描函數(shù) */ uchar row,RowCode,column,ColumnState; /* 行循環(huán)、行碼、列循環(huán)、列狀態(tài) */ KeyROCISegCodeO=0 xf0; /* 鍵盤行線均輸出 0*/ if (KeyROCISegCodeO|0 x0f)!=0 xff) /* 有鍵按下 */ delay(12); /* 消抖延時約 10ms(fosc=12MHz)*/ KeyROCISegCodeO=0 xf0; /* 鍵盤行線均輸出 0*/ if (KeyROCISegCodeO|0 x0f)!=0 xff) /* 確實有鍵按下,尋找是哪個鍵 */ Row
15、Code=0 xfe;/* 指向第 1 行*/ for(row=0;rowNumRow;row+) /* 掃描共 NumRow 行*/ KeyROCISegCodeO=RowCode;/* 當(dāng)前行 */ ColumnState=KeyROCISegCodeO|0 x0f; /* 獲取列狀態(tài) */ for(column=0;columnNumColumn;column+) /* 查 詢共 NumColumn 列的狀態(tài) */ if (ColumnState|0 x7f)=0 x7f) while (KeyROCISegCodeO|0 x0f)!=0 xff); /* 等待鍵釋放 */ return
16、(row*NumColumn+column); /*返回鍵值 */ else ColumnState=_crol_(ColumnState,1); /*指向下一列 */ RowCode=_crol_(RowCode,1); /*指向下一行 */ return(NumRow*NumColumn); /* 返回?zé)o鍵值 */ void send_command(uchar command_data) /* 串口寫指令函數(shù) */ uchar i; uchar i_data; i_data=0 xf8; SCLK=0; for(i=0;i8;i+) SID=(bit)(i_data SCLK=0; SC
17、LK=1; i_data=i_data1; i_data=comman_data; i_data for(i=0;i8;i+) SID=(bit)(i_data SCLK=0; SCLK=1; i_data=i_data1; i_data=comman_data; i_data=4; for(i=0;i8;i+) SID=(bit)(i_data SCLK=0; SCLK=1; i_data=i_data1; delay(12); void send_data(uchar commend_data) /* 寫數(shù)據(jù)函數(shù) */ uchar i; uchar i_data; i_data=0 xfa
18、; for(i=0;i8;i+) SID=(bit)(i_data SCLK=0; SCLK=1; i_data=i_data1; i_data=comman_data; i_data for(i=0;i8;i+) SID=(bit)(i_data SCLK=0; SCLK=1; i_data=i_data1; i_data=comman_data; i_data=4; for(i=0;i8;i+) SID=(bit)(i_data SCLK=0; SCLK=1; i_data=i_data1; delay(12); void lcd_init (void )/* 液晶初始化函數(shù) */ del
19、ay(120); write_c(0 x30);/ 基本操作 write_c(0 x01);/ 清屏操作 write_c(0 x06);/ 游標(biāo)及顯示右移一位 write_c(0 x0C);/ 整體顯示開 反白關(guān) /* 地址選擇函數(shù) */ 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
20、_char(uchar x,uchar y,uchar xianshi)/*顯示字符函數(shù) ,x、y 為顯示的地 址, xianshi為要顯示的字符串 */ uchar i; LCD_LOCATION(x,y); delay(10); i=0; while(xianshii!=0) write_d(xianshii); i+; void display_num(unsigned char x,unsigned char y,unsigned int NUM) /* 顯示整數(shù) 函數(shù),x、y 為顯示的地址, NUM 為要顯示的字符串 */ uchar data6; uchar i; data0=(N
21、UM/10000)%10+0; data1=(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(datai!=0) write_d(datai); i+; void display_float(unsigned char x,unsigned char y, float NUM) /*顯示整數(shù)函數(shù) ,x、y 為顯示的地址, NUM 為要顯示的字符串 */ uchar a_SHOW7; uchar i; long in
22、t 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; /* 循環(huán),鍵值 */ TMOD=1;/* 定時計數(shù)器 0 定時、方式 1*/ TH0=(65536-50000
23、)/256;/*定時計數(shù)器 0定時 50ms*/ TL0=(65536-50000)%256; ET0=1; /*開定時計數(shù)器 0 中斷*/ EA=1;/* 開總中斷 */ 10 TR0=1; /* 啟動 T0*/ while(1) KeyValue=KeyBoardScan(); /*掃描鍵盤獲得鍵值 */ *T0 中斷處理函數(shù) */ TC0() interrupt 1 using 1 TH0=(65536-50000)/256; TL0=(65536-50000)%256; display_char(0,0,Keyvalue); /* 定時計數(shù)器 0 重新定時 50ms*/ /* 液晶上顯示鍵值 */ 4 設(shè)計成果 4.1 系統(tǒng)原理圖 4.2 系統(tǒng) PCB圖 圖 4-1 系統(tǒng)原理圖 11 圖 4-2
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 合作酸奶售賣合同范例
- 機械租賃包工合同范例
- 天府新區(qū)信息職業(yè)學(xué)院《單片機原理及應(yīng)用實驗》2023-2024學(xué)年第一學(xué)期期末試卷
- 拼多多抽獎合同范例
- 鹽田河道防水補漏施工方案
- 房屋改修翻新合同范例
- 光伏購銷安裝合同范例
- 智能設(shè)備租賃服務(wù)合同范例
- 異地建材銷售合同范例
- 區(qū)域股權(quán)掛牌合同范例
- 國家開放大學(xué)《自動控制技術(shù)》形考任務(wù)1-4+綜合練習(xí)參考答案
- “牽手關(guān)愛行動”親情陪伴10次記錄表
- 2023年《早》舒淇早期古裝掰全照原創(chuàng)
- 籍貫對照表完整版
- 10、特種作業(yè)人員管理臺賬
- 機械基礎(chǔ)考試題庫及參考答案
- 高中詞匯3500亂序版
- NY 5051-2001無公害食品淡水養(yǎng)殖用水水質(zhì)
- GB/T 24176-2009金屬材料疲勞試驗數(shù)據(jù)統(tǒng)計方案與分析方法
- 2023年初一學(xué)生綜合素質(zhì)自我陳述報告3篇(范文)
評論
0/150
提交評論