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

正文內(nèi)容

基于單片機(jī)的音樂數(shù)字鐘的設(shè)計(jì)與仿真畢業(yè)設(shè)計(jì)(編輯修改稿)

2024-08-14 15:57 本頁面
 

【文章內(nèi)容簡介】 的供動態(tài)掃描顯示的多位數(shù)碼管,這些數(shù)碼管內(nèi)部已經(jīng)將相應(yīng)的筆段連接在一起,引出一組段控腳,每一位數(shù)碼管引出一個公共端。 鍵盤 方案一I/O 口占用較多。 I/O口的使用。 4*3 的鍵盤。 基于單片機(jī)的音樂數(shù)字鐘的設(shè)計(jì)與仿真 14 例 1. 行列鍵盤的接口電路 行列鍵盤又叫做矩陣鍵盤。行列鍵盤的接口電路如圖 423 所示,用一些 I/O 口線組成行結(jié)構(gòu),用另一些 I/O 口線組成列結(jié)構(gòu),其交叉點(diǎn)處不接通,設(shè)置為按鍵,這種接法稱為行列式鍵盤。利用這種行列結(jié)構(gòu)只需 M 條行線和 N 條列線,就可組成具有 MN 的鍵盤,因此減 少了鍵盤與單片機(jī)接口時所占用 I/O 接口的數(shù)目。 同樣,如果是接于 P0 口,必須要有上拉電阻,如果接于 P P2 或 P3 口,上拉電阻可以省略。 圖 423 行列式鍵盤接口電路 2. 閉合鍵的識別 為了提高 CPU 的效率,對閉合鍵的識別一般分為兩步:第一步是快速檢查整個鍵盤中是否有鍵按下,如果沒有鍵按下,則直接轉(zhuǎn)到其它程序,如果有鍵按下,再進(jìn)行下一步;第二步是確定按下的是哪一個鍵。 第一步:快速檢查整個鍵盤中是否有鍵按下。其方法是先通過輸出端口在所有的行線上發(fā)出全 “0”信號,然后檢查輸入端口的列線信號是否為全 “1”。若為全 “1”,表示無鍵按下,如圖 424( a)所示;若不是全 “1”,則表示有鍵按下,如圖 424( b)所示。這時還不能確定按下的鍵處于哪一行上。 基于單片機(jī)的音樂數(shù)字鐘的設(shè)計(jì)與仿真 15 ( a)無鍵按下 ( b)有鍵按下 圖 424 檢查是否有鍵按下示意圖 第二步:確定按下的是哪一個鍵。識別閉合鍵有兩種方法:一種稱為逐行掃描法,另一種稱為線反轉(zhuǎn)法。 ( 1)逐行掃描法 逐行掃描法是識別閉合鍵的常用方法,在硬件電路上要求行線作輸出、列線作輸入,列線上要有上拉電阻。 44 鍵盤逐行掃描法的工作原理是:先掃描第 0 行, 即輸出 1110(第 0 行為 “0”,其余3 行為 “1”),然后讀入列信號,判斷是否為全 “1”。若為全 “1”,表示第 0 行無鍵按下;若不為全 “1”,則表示第 0 行有鍵按下,閉合鍵的位置處于第 0 行和不為 “1”的列線相交之處。如果第 0 行無鍵按下,就掃描第 1 行,用同樣的方法判斷第 1 行有沒有鍵按下,直到找到閉合鍵為止,如圖 425(a)~ (d)所示。 ( a)掃描第 0 行 ( b)掃描第 1 行 ( c)掃描第 2 行 ( d)掃描第 3 行 圖 425 逐行掃描法示意圖 行列式鍵盤 的閉合鍵處理程序中,仍需要進(jìn)行按鍵去抖和等待按鍵的釋放。在圖 423所示的行列鍵盤 電路中,采用逐行掃描法識別閉合鍵的程序如下: P1=0xf0。 基于單片機(jī)的音樂數(shù)字鐘的設(shè)計(jì)與仿真 16 if (P1!=0xf0) //判斷是否有按鍵按下 { delay()。 //延時去抖 if (P1!=0xf0) //再次判斷是否有按鍵按下 { P1=0xfe。 //掃描第 0 行 switch (P1) { case 0xee:第 0 行第 0 個按鍵的功能代碼 。 break。 case 0xde:第 0 行第 1 個按鍵的功能 代碼 。 break。 case 0xbe:第 0 行第 2 個按鍵的功能代碼 。 break。 case 0x7e:第 0 行第 3 個按鍵的功能代碼 。 break。 } P1=0xfd。 //掃描第 1 行 switch (P1) { case 0xed:第 1 行第 0 個按鍵的功能代碼 。 break。 case 0xdd:第 1 行第 1 個按鍵的功能代碼 。 break。 case 0xbd:第 1 行第 2 個按鍵的功能代碼 。 break。 case 0x7d:第 1 行第 3 個按鍵的 功能代碼 。 break。 } P1=0xfb。 //掃描第 2 行 switch (P1) { case 0xeb:第 2 行第 0 個按鍵的功能代碼 。 break。 case 0xdb:第 2 行第 1 個按鍵的功能代碼 。 break。 case 0xbb:第 2 行第 2 個按鍵的功能代碼 。 break。 case 0x7b:第 2 行第 3 個按鍵的功能代碼 。 break。 } P1=0xf7。 //掃描第 3 行 switch (P1) { case 0xe7:第 3 行第 0 個按鍵的功能代碼 。 break。 case 0xd7:第 3 行第 1 個按鍵的功能代碼 。 break。 case 0xb7:第 3 行第 2 個按鍵的功能代碼 。 break。 case 0x77:第 3 行第 3 個按鍵的功能代碼 。 break。 } P1=0xf0。 while (P1!=0xf0)。 } } ( 2)線反轉(zhuǎn)法 線反轉(zhuǎn)法也是識別閉合鍵的一種常用方法,該方法比行掃描法速度要快,但在硬件電路基于單片機(jī)的音樂數(shù)字鐘的設(shè)計(jì)與仿真 17 上要求行線與列線都要既能作輸出又能作輸入,行線和列線上都要有上拉電阻。 下面仍 以 44 鍵盤為例說明線反轉(zhuǎn)法的工作原理。 首先將行線作為輸出線,列線作為輸入線,先通過行線輸出全 “0”信號,讀入列線的值,如果此時有某 1 個鍵被按下,則必然使某 1 列線值為 “0”;然后將行線和列線的輸入輸出關(guān)系互換(輸入輸出線反轉(zhuǎn)),列線作輸出線、行線作輸入線,再通過列線輸出全 “0”信號,讀入行線的值,那么閉合鍵所在的行線上的值必定為 “0”。這樣當(dāng) 1 個鍵被按下時,必定讀得一對唯一的行值和列值,根據(jù)這一對值即可確定閉合鍵。 線反轉(zhuǎn)法示意圖如圖 426 所示。 ( a)行線輸出全 “0”得列值 1101 ( b)列輸 出全 “0”得行值 1011 圖 426 線反轉(zhuǎn)法示意圖 在圖 423 所示的行列鍵盤 電路中,采用線反轉(zhuǎn)法識別閉合鍵的程序如下: unsigned char temp。 temp=0xff。 P1=0xf0。 if (P1!=0xf0) //判斷是否有按鍵按下 { delay()。 //延時去抖 if (P1!=0xf0) //再次判斷是否有按鍵按下 { P1=0xf0。 //行作輸出,列作輸入 temp=P1。 //讀取列值 P1=0x0f。 //列作輸出,行作 輸入 temp=temp|P1。 //讀取行值并和列值合并 switch (temp) { case 0xee:第 0 行第 0 個按鍵的功能代碼 。 break。 case 0xde:第 0 行第 1 個按鍵的功能代碼 。 break。 case 0xbe:第 0 行第 2 個按鍵的功能代碼 。 break。 case 0x7e:第 0 行第 3 個按鍵的功能代碼 。 break。 case 0xed:第 1 行第 0 個按鍵的功能代碼 。 break。 case 0xdd:第 1 行第 1 個按鍵的功能代碼 。 break。 case 0xbd:第 1 行第 2 個按鍵的功能代碼 。 break。 case 0x7d:第 1 行第 3 個按鍵的功能代碼 。 break。 case 0xeb:第 2 行第 0 個按鍵的功能代碼 。 break。 case 0xdb:第 2 行第 1 個按鍵的功能代碼 。 break。 基于單片機(jī)的音樂數(shù)字鐘的設(shè)計(jì)與仿真 18 case 0xbb:第 2 行第 2 個按鍵的功能代碼 。 break。 case 0x7b:第 2 行第 3 個按鍵的功能代碼 。 break。 case 0xe7:第 3 行第 0 個按鍵的功能代碼 。 break。 case 0xd7:第 3 行第 1 個按鍵的功能代碼 。 break。 case 0xb7:第 3 行第 2 個按鍵的功能代碼 。 break。 case 0x77:第 3 行第 3 個按鍵的功能代碼 。 break。 } P1=0xf0。 while (P1!=0xf0)。 } } 需要說明的是,若用線反轉(zhuǎn)法來確定閉合鍵時,如果遇到多個鍵閉合的情況,則得到的行值和列值中一定有 1 個以上的 “0”。由于按鍵處理程序中沒有這樣的值,因而可以判斷為重鍵而丟棄,由此可見,用這種方法可以很方便地解決重鍵問題。 74LS245 簡介 74ls245引 腳圖 與用法 74LS245引腳圖 74LS245是我們 常用的 芯片, 用來 驅(qū)動 led 或 者其他 的設(shè)備 ,用法 很簡單 如上 圖 ,這里 簡單 的給 出一些 資料 ,他 是 8路同 相三態(tài) 雙向總 線收發(fā) 器,可 雙向傳 輸數(shù)據(jù) 。 74LS245還具 有雙向 三 態(tài) 功 能 ,既可 以輸出 ,也可 以輸入 數(shù)據(jù) 。 當(dāng) 8051單片 機(jī)的 P0口 總線負(fù) 載達(dá)到 或超過 P0最大負(fù) 載能力 時 , 必 須 接入 74LS245等總 線驅(qū)動 器。 基于單片機(jī)的音樂數(shù)字鐘的設(shè)計(jì)與仿真 19 當(dāng) 片 選 端 /CE 低 電 平 有 效 時 , DIR=“ 0” , 信 號由 B 向 A 傳輸 ;( 接收) *DIR=“ 1” ,信號由 A 向 B 傳輸 ;( 發(fā) 送 )當(dāng) /CE 為高電 平時, A、 B 均為 高阻 態(tài)。 蜂鳴器 蜂鳴器 一)蜂鳴器的介紹 1.蜂鳴器的作用 蜂鳴器是一種一體化結(jié)構(gòu)的電子訊響器,采用直流電壓供電,廣泛應(yīng)用于計(jì)算機(jī)、打印機(jī)、復(fù)印機(jī)、報(bào)警器、電子玩具、汽車電子設(shè)備、電話機(jī)、定時器等電子產(chǎn)品中作發(fā)聲器件。 2.蜂鳴器的分類 蜂鳴器主要分為壓電式蜂鳴器和電磁式蜂鳴器兩種類型。 3.蜂鳴器的電路圖形符號 蜂鳴器在電路中用字母 “H”或 “HA”(舊標(biāo) 準(zhǔn)用 “FM”、 “LB”、 “JD”等)表示。 (二)蜂鳴器的結(jié)構(gòu)原理 蜂鳴器的原理圖 1.壓電式蜂鳴器 壓電式蜂鳴器主要由多諧振蕩器、壓電蜂鳴片、阻抗匹配器及共鳴箱、外殼等組成。有的壓電式蜂鳴器外殼上還裝有發(fā)光二極管。 多諧振蕩器由晶體管或集成電路構(gòu)成。當(dāng)接通電源后( ~15V 直流工作電壓) ,多諧振蕩器起振 ,輸出 ~ 的音頻信號,阻抗匹配器推動壓電蜂鳴片發(fā)聲。 壓電蜂鳴片由鋯鈦酸鉛或鈮鎂酸鉛壓電陶瓷材料制成。在陶瓷片的兩面鍍上銀電極, 經(jīng)極化和老化處理后,再與黃銅片或不銹鋼片粘在一起。 基于單片機(jī)的音樂數(shù)字鐘的設(shè)計(jì)與仿真 20 2.電磁式蜂鳴器 電磁式蜂鳴器由振蕩器、電磁線圈、磁鐵、振動膜片及外殼等組成。 接通電源后,振蕩器產(chǎn)生的音頻信號電流通過電磁線圈,使電磁線圈產(chǎn)生磁場。振動膜片在電磁線圈和磁鐵的相互作用下,周期性地振動發(fā)聲。 蜂鳴器 的制作 ( 1)制備電磁鐵 M:在長約 6厘米的鐵螺栓上繞 100圈導(dǎo)線 ,線端留下 5厘米作引線 ,用透明膠布把線圈粘好 ,以免線圈松開 ,再用膠布把它粘在一個盒子上 ,電磁鐵就做好了 . ( 2)制備彈片 P:從鐵罐頭盒上剪下一條寬約 2厘米的長鐵片,彎成直 角,把電磁鐵的一條引線接在彈片上,再用膠布把彈片緊貼在木板上. ( 3)用曲別針做觸頭 Q,用書把曲別針墊高,用膠布粘牢,引出一條導(dǎo)線,如圖連接好電路. ( 4)調(diào)節(jié) M 與 P 之間的距離(通過移動盒子),使電磁鐵能吸引彈片,調(diào)節(jié)觸點(diǎn)與彈片之間的距離,使它們能恰好接觸,通電后就可以聽到蜂鳴聲 。 3 控制部分電路的設(shè)計(jì) 系統(tǒng)復(fù)位設(shè)置 單片機(jī)復(fù)位電路是使 CPU 和系統(tǒng)中的其他功能部件都處在一個確定的初始狀態(tài), PC=0000H論是在單片 單片機(jī)各種復(fù)位電路原理 復(fù)位電路的作用 在上電或復(fù)位過程中,控制 CPU 的復(fù)位狀態(tài):這段時間內(nèi)讓 CPU 保持復(fù)位狀態(tài),而不是一上電或剛復(fù)位完畢就工作,防止 CPU 發(fā)出錯誤的指令、執(zhí)行錯誤操作,也可以提高電磁兼容性能。 無論用戶使用哪種類型的單片機(jī) ,總要涉及到單片機(jī)復(fù)位電路的設(shè)計(jì)。而單片機(jī)復(fù)位電路設(shè)計(jì)的好壞 ,直接影響到整個系統(tǒng)工作的可靠性。許多用戶在設(shè)計(jì)完單片機(jī)系統(tǒng) ,并在實(shí)驗(yàn)室調(diào)試成功后 ,在現(xiàn)場卻出現(xiàn)了“死機(jī)”、“程序走飛”等現(xiàn)象 ,這主要是單片機(jī)的復(fù)位電路 設(shè)計(jì)不可靠引起的。 基本的復(fù)位方式 單片機(jī)在啟動時都需要復(fù)位,以使 CPU 及系統(tǒng)各部件處于確定的初始狀態(tài),并從初態(tài)開始工作。 89 系列單片機(jī)的復(fù)位信號是從 RST 引腳輸入到芯片內(nèi)的施密特觸發(fā)器中的。當(dāng)系統(tǒng)處于正常工作狀態(tài)時,且振蕩器穩(wěn)定后,如果 RST 引腳上有一個高電平并維持 2 個機(jī)器周期 (24 個振蕩周期 )以上,則 CPU 就可以響應(yīng)并將系統(tǒng)復(fù)位。單片機(jī)系統(tǒng)的復(fù)位方式有:手動按鈕復(fù)位和上電復(fù)位 手動按鈕復(fù)位 手動按鈕復(fù)位需要人為在復(fù)位輸入端 RST 上加入高電平(圖 1)。一般采用的辦法是在RST 端和正電源 Vcc 之間 接一個按鈕。當(dāng)人為按下按鈕時,則 Vcc 的 +5V 電平就會直接加到 RST 端。手動按鈕復(fù)位的電路如所示。由于人的動作再快也會使按鈕保持接通達(dá)數(shù)十毫基于單片機(jī)的音樂數(shù)字鐘的設(shè)計(jì)與仿真 21 秒,所以,完全能夠滿足復(fù)位的時間要求。 數(shù)字時鐘的設(shè)計(jì) 而
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1