freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

畢業(yè)論文-基于at89c51單片機(jī)的電話撥號(hào)系統(tǒng)的設(shè)計(jì)-文庫(kù)吧資料

2025-06-14 10:47本頁(yè)面
  

【正文】 2 .2 /A 1 023P 2 .3 /A 1 124P 2 .4 /A 1 225P 2 .5 /A 1 326P 2 .6 /A 1 427U1A T 8 9 C5 1n e t= F 1 . 2 8V C C蘭州工業(yè)學(xué)院畢業(yè)設(shè)計(jì)說(shuō)明書(shū)(論文) 16 總 結(jié) 隨著 IT 行業(yè)的不斷發(fā)展,傳統(tǒng)的固定電話已漸漸不能滿足人們?nèi)粘5耐ㄐ判枨?,而更智能、更人性化、微小型、多元化的電子產(chǎn)品成為了現(xiàn)代化電子產(chǎn)業(yè)的主要發(fā)展方向。然后點(diǎn)擊左下角的相關(guān)圖標(biāo),開(kāi)始進(jìn)行仿真。 Proteus 調(diào)試 在 Proteus 軟件中先從元件庫(kù)中加載要使用的那些元件,然后把元件放在圖紙上一個(gè)一個(gè)的接線,盡量不讓線 交錯(cuò),便于查看、分析,有必要時(shí),使用接線標(biāo)號(hào)法,完成所有元器件的接線。修改后再編譯、連接,繼續(xù)進(jìn)行調(diào)試,這個(gè)過(guò)程可能會(huì)重復(fù)多次。 . 編譯、連接時(shí),如果程序存在語(yǔ)法有錯(cuò),則不會(huì)通過(guò)編譯,并在下面的信息窗口給出相應(yīng)的出錯(cuò)提示信息,其中錯(cuò)誤是一定得改正的,警告可以忽略。然后點(diǎn)擊 Project菜單下的 Built Target命令然后再進(jìn)行編譯、連接,形成目標(biāo)文件。 把源程序全部錄入后,先粗略的檢查一遍,主要改正明顯的各種錯(cuò)誤,這樣可以減少之后的修改工作量。 ( 3)通過(guò) Proteus 與 Keil 連調(diào)實(shí)現(xiàn)電路仿真 。//顯示清屏 } 5 系統(tǒng)仿真與調(diào)試 系統(tǒng)運(yùn)行環(huán)境 ( 1)本系統(tǒng)的硬件電路是在 Proteus 電路仿真軟件上運(yùn)行的。//顯示光標(biāo) , 自動(dòng)右移 , 整屏不要?jiǎng)? LCD_Wcmd(0x01)。//開(kāi)顯示 , 不顯示光標(biāo) LCD_Wcmd(0x06)。//設(shè)定 LCD 為 16*2 顯示 , 5*7 點(diǎn)陣 , 8 位數(shù)據(jù)接口 LCD_Wcmd(0x0c)。 } // // LCD 初始化 // void LCD_Init() { LCD_Wcmd(0x38)。DelayNOPx()。 DelayNOPx ()。E=0。 //判斷 LCD 是否忙碌 RS =1。E=0。E=1。 P0=cmd。_nop_()。RW=0。 } // // 寫(xiě) LCD 命令 // void LCD_Wcmd (uchar cmd) { while (LCD_Busy ())。 E= 0。result = (bit)(P0 amp。E=1。 RS =0。 k++) LCD_Wdat (str[k])。 for (k = 0。 } // // 在 LCD 指定鍵盤(pán)上顯示字符串 // void Display_String(uchar * str,uchar LineNo) { uchar k。i 120。 // // 延時(shí) // void DelayMS (uint x) { uchar i。 uchar KeyNo = 0xFF。}。,39。,39。,39。,39。,39。,39。,39。,39。,39。,39。,39。 // 鍵盤(pán)序號(hào)與鍵盤(pán)符號(hào)映射表 uchar code Key_Table[]={39。 void LCD_Wdat (uchar)。 void LCD_Pos (uchar)。 void DelayMS (uint ms)。 sbit RW = P2^1。} sbit BEEP = P1^0。_nop_()。 圖 LCD 顯示模塊流程圖 LCD 初始化 顯示 發(fā)出數(shù)據(jù) 延時(shí) 寫(xiě) LCD 命令 延時(shí) 開(kāi)始 蘭州工業(yè)學(xué)院畢業(yè)設(shè)計(jì)說(shuō)明書(shū)(論文) 13 include define uchar unsigned char define uint unsigned int define DelayNOPx() {_nop_()。在本設(shè)計(jì)中,由于要顯示的內(nèi)容比較多,且有些需重 復(fù)顯示,有些只要顯示一次,故只畫(huà)液晶顯示的基本流程。} } } else return 0xFF。j++) { k = i * 3 + j。 for (j = 0。 i 4。//掃描鍵盤(pán)獲取按鍵序號(hào) if (P3! = 0x0F) DelayMS(20)。 //鍵盤(pán)掃描碼 uchar KeyCodeTable[] ={0xEE,0xED,0xEB,0xDE,0xDD,0xDB, 0xBE,0xBD,0xBB,0x7E,0x7D,0x7B}。鍵盤(pán)掃描主要代碼如下: uchar GetKey () { uchar i, j, k = 0。 表 鍵盤(pán)掃描 I/O 口 高低電平 (0 或 1) 1 1 1 0 1 1 0 1 顯示數(shù)字 結(jié)束 否 是 計(jì)算鍵碼 等待釋放 否 消除抖動(dòng) 超過(guò) 11位 ? 蘭州工業(yè)學(xué)院畢業(yè)設(shè)計(jì)說(shuō)明書(shū)(論文) 12 1 0 1 1 0 1 1 1 ( 4)在每組行輸出時(shí)讀取 ,若全為“ 1”,則表示為“ 0”這一行沒(méi)有鍵閉合,否則有鍵閉合。方法是對(duì)鍵盤(pán)的行線進(jìn)行掃描。當(dāng)檢測(cè)到有鍵按下后,延時(shí)一段時(shí)間再做下一步的檢測(cè)判斷。檢測(cè)的方法是 輸出全“ 0”,讀取 的狀態(tài),若 為全“ 1”,則無(wú)鍵閉合,否則有鍵閉合。 4 根行線和 4 根列線形成 16 個(gè)相交點(diǎn)。 如圖 所示, AT89C51 單片機(jī)的 P3 口用作鍵盤(pán) I/O 口,鍵盤(pán)的列線接到 P3 口的低 4 位,鍵盤(pán)的行線接到 P3口的高 4位。 鍵盤(pán)掃描子程序設(shè)計(jì)流程圖如圖 所示, 其源代碼見(jiàn)附件 1。 鍵盤(pán)掃描模塊 聲音控制模塊 顯示模塊 初始化模塊 LCD 初始化 設(shè)置 LCD 第一行顯 示 鍵盤(pán)掃描 是否有鍵下? T0 中斷控制按鍵聲音 *鍵按鍵按下? 開(kāi)始 退格 清屏 是 否 是 否 是 蘭州工業(yè)學(xué)院畢業(yè)設(shè)計(jì)說(shuō)明書(shū)(論文) 11 否 圖 系統(tǒng)主程序設(shè)計(jì)流程圖 系統(tǒng)第一次上電后,先進(jìn)行初始化,初始化 LCD 模塊,設(shè)置 LCD 中各個(gè)部分的顯示內(nèi)容,然后進(jìn)行鍵盤(pán)掃描,獲取按鍵,以及根據(jù)各按鍵的不同執(zhí)行相應(yīng)的操作,最后等待釋放,釋放之后再進(jìn)行鍵盤(pán)掃描,循環(huán)以上操作。 系統(tǒng)功能設(shè)計(jì)框圖如圖 所示。除了這些外,還應(yīng)寫(xiě)一個(gè)初始化程序,用來(lái)對(duì) LCD 進(jìn)行 初始化 設(shè)置 。 用 P0 口作為 LCD 的顯示控制端 , 由于此 LCD 的顯示屏被分為了兩部分,所以應(yīng)該對(duì) LCD顯示位置進(jìn)行設(shè)置 。 程序設(shè)計(jì)整體思路 本 設(shè)計(jì)是由單片機(jī)控制的 LCD 顯示系統(tǒng),另外 鍵盤(pán) 來(lái)控制顯示的方式。匯編語(yǔ)言與機(jī)器指令一一對(duì)應(yīng),所以用匯編語(yǔ)言編寫(xiě)的程序在單片機(jī)里運(yùn)行起來(lái)效率較高,但可移植性差。 ( 5)確保 CPU 對(duì)鍵的一次閉合僅做一次處理 為實(shí)現(xiàn)這一功能,可以采用等待閉合鍵釋放以后在處理的方法。若某列為低,則該列線與置為低電平的行線交叉處的按鍵就是閉合的按鍵。其方法是:依次將行線置為低電平,即在1 2 34 5 67 8 90 1 2 3ABCD蘭州工業(yè)學(xué)院畢業(yè)設(shè)計(jì)說(shuō)明書(shū)(論文) 10 置某根行線為低電平時(shí),其它線為高電平。其方法是得知鍵盤(pán)上有鍵閉合后延遲一段時(shí)間,再判別鍵盤(pán)的狀態(tài),若仍有鍵閉合,則認(rèn)為鍵盤(pán)上有一個(gè)鍵處于穩(wěn)定的閉合期,否則認(rèn)為是鍵的抖動(dòng)或者是干擾。若所有列線均為高電平,則鍵盤(pán)中無(wú)鍵按下。 圖 鍵盤(pán)原理圖 ( 1)判斷鍵盤(pán)上是否有鍵閉合 將全部行線置低電平,然后檢測(cè)列線的狀態(tài)。因此直接利用單片機(jī)并行接口完成鍵盤(pán)的接口,采用行掃描法進(jìn)行鍵盤(pán)識(shí)別。其次,被測(cè)信號(hào)由外中斷引腳輸入,未占用單片機(jī) 4 個(gè)并行 I/O 口中的任何一個(gè),系統(tǒng)有足夠的資源利用自身 I/O 口完成接口。在本系統(tǒng)中,完全可以不使用中斷法完成 鍵盤(pán)接口,這是由系統(tǒng)的特殊性決定的。前兩種方法相當(dāng)于查詢(xún)法,需要反復(fù)查詢(xún)按鍵的狀態(tài),會(huì)占用大量的 CPU 時(shí)間。 圖 字符代碼與字符圖形對(duì)應(yīng)關(guān)系 1602LCD 的一般初始化過(guò)程 延時(shí) 15mS 寫(xiě)指令 38H(不檢測(cè)忙信號(hào)) 延時(shí) 5mS 寫(xiě)指令 38H(不檢測(cè)忙信號(hào)) 延時(shí) 5mS 寫(xiě)指令 38H(不檢測(cè) 忙信號(hào)) 以后每次寫(xiě)指令、讀 /寫(xiě)數(shù)據(jù)操作均需要檢測(cè)忙信號(hào) 寫(xiě)指令 38H:顯示模式設(shè)置 寫(xiě)指令 08H:顯示關(guān)閉 寫(xiě)指令 01H:顯示清屏 蘭州工業(yè)學(xué)院畢業(yè)設(shè)計(jì)說(shuō)明書(shū)(論文) 9 寫(xiě)指令 06H:顯示光標(biāo)移動(dòng)設(shè)置 寫(xiě)指令 0CH:顯示開(kāi)及光標(biāo)設(shè)置 矩陣鍵盤(pán)輸入電路模塊 矩陣鍵盤(pán)的基本結(jié)構(gòu) 矩陣鍵盤(pán)中的鍵實(shí)際上就是一個(gè)機(jī)械開(kāi)關(guān),位于行線和列線的交點(diǎn)處,圖 所示為本設(shè)計(jì)中使用的 4 行 3 列的 12 鍵矩陣鍵盤(pán),當(dāng)鍵被按下時(shí),其交點(diǎn)的行線和列線接通,使相應(yīng)行線或列線上的電平發(fā)生變化,根據(jù)電平變化情況確定被按下的鍵。 1602 液晶模塊內(nèi)部的字符發(fā)生存儲(chǔ)器( CGROM)已經(jīng)存儲(chǔ)了 160 個(gè)不同的點(diǎn)陣字符圖形,這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫(xiě)、常用的符號(hào)、和日文假名等,每一個(gè)字符都有一個(gè)固定的代碼,比如大寫(xiě)的英文字母“ A”的代碼是 01000001B( 41H),顯示時(shí)模塊把地址 41H中的點(diǎn)陣字符圖形顯示出來(lái),我們就能看到字母“ A”。 在對(duì)液晶模塊的初始化中要先設(shè)置其顯示模式,在液晶模塊顯示字符時(shí)光標(biāo)是自動(dòng)右移的,無(wú)需人工干預(yù)。要顯示字符時(shí)要先輸入顯示字符地址,也就是告訴模塊在哪里顯示字符,圖 是 1602 的內(nèi)部顯示地址。 指令 11:讀數(shù)據(jù)。 指令 9:讀忙信號(hào)和光標(biāo)地址 BF:為忙標(biāo)志位,高電平表示忙,此時(shí)模塊不能接收命令或者數(shù)據(jù),如果為低電平表示不忙。 指令 7:字符發(fā)生器 RAM 地址設(shè)置。 指令 5:光標(biāo)或顯示移位 S/C:高電平時(shí)移動(dòng)顯示的文字,低電平時(shí)移動(dòng)光標(biāo)。 指令 4:顯示開(kāi)關(guān)控制。 指令 3:光標(biāo)和顯示模式設(shè)置 I/D:光標(biāo)移動(dòng)方向,高電平右移,低電平左移 S: 屏幕上所有文字是否左移或者右移 。(說(shuō)明: 1為高電平、0 為低電平) 指令 1:清顯示,指令碼 01H, 光標(biāo)復(fù)位到地址 00H 位置 。 1602LCD 的控制命令表如表 所示。 第 15 腳:背光源正極。 第 6 腳: E 端為使能端,當(dāng) E 端由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令。 第 5 腳: R/W為讀寫(xiě)信號(hào)線,高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫(xiě)操作。 第 3 腳: VEE 為液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地時(shí)對(duì)比度最高,對(duì)比度過(guò)高時(shí)會(huì)產(chǎn)生“鬼影”,使用時(shí)可以通過(guò)一個(gè) 10K 的電位器調(diào)整對(duì)比度。 表 引腳接口說(shuō)明表 編號(hào) 符號(hào) 引腳說(shuō)明 編號(hào) 符號(hào) 引腳說(shuō)明 1 VSS 電源地 9 D2 數(shù)據(jù) 2 VDD 電源正極 10 D3 數(shù)據(jù) 3 VEE 液晶顯示偏壓 11 D4 數(shù)據(jù) 4 RS 數(shù)據(jù) /命令選擇 12 D5 數(shù)據(jù) 5 R/W 讀 /寫(xiě)選擇 13 D6 數(shù)據(jù) 6 E 使能信號(hào) 14 D7 數(shù)據(jù) 7 D0 數(shù)據(jù) 15 BLA 背光源正極 8 D1 數(shù)據(jù) 16 BLK 背光源負(fù)極 第 1 腳: VSS 為地電源。 1602LCD 原件顯示原理如圖 所示。 一般 1602 字符型液晶顯示器實(shí)物如圖 所示。在單片機(jī)系統(tǒng)中使用液晶顯示模塊作為輸出有以下優(yōu)點(diǎn):顯示資料高、數(shù)字式接口、功率消耗小、電路中的應(yīng)用。 顯示電路 模塊 本設(shè)計(jì)中重點(diǎn)部分是基于單片機(jī)系統(tǒng)的液晶顯示部分。電路中,電容器 C1 和C2 對(duì)晶振器頻率有微調(diào)作用,通常取值范圍 30+10pF;石英晶體選擇 6MHZ 或 12MHZ 都可以。在單片機(jī)的 XTAL1 和 XTAL2兩個(gè)引腳間,接一個(gè)晶振及兩只電容就構(gòu)成了時(shí)鐘電路。 圖 晶振和復(fù)位電路 ( 2)晶振電路 在 AT89C51 單片機(jī)內(nèi)部有一振蕩電路,只要在單片機(jī)的 XTAL1 和 XTAL2引腳外接晶振,就改成了自激振蕩器并在單片機(jī)內(nèi)部產(chǎn)生時(shí)鐘脈沖信號(hào)。經(jīng)過(guò)若干毫秒以后,電解電容器被充滿電,這時(shí)電阻就沒(méi)有電流流過(guò),電阻兩端也就沒(méi)有電壓,單片機(jī)的復(fù)位腳電壓恢復(fù)為 0,復(fù)位工
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1