版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 摘要</b></p><p> 本實(shí)驗(yàn)是基于PHILIPS AT89C51 單片機(jī)所設(shè)計(jì)的,可以實(shí)現(xiàn)鍵位與數(shù)字動(dòng)態(tài)顯示的一種頻率可調(diào)數(shù)字方波發(fā)生器。通過(guò)鍵盤(pán)鍵入(10HZ-10kHZ)隨機(jī)頻率,使用七段數(shù)碼管顯示,每一個(gè)數(shù)碼管對(duì)應(yīng)一個(gè)鍵位。單片機(jī)對(duì)各個(gè)鍵位進(jìn)行掃描,確定鍵位的輸入,然后數(shù)碼管顯示輸入的數(shù)值,方波發(fā)生器輸出以數(shù)碼管顯示的數(shù)值為頻率的方波。<
2、/p><p> 關(guān)鍵詞:?jiǎn)纹瑱C(jī) 七段數(shù)碼管 鍵盤(pán)電路 頻率可調(diào)數(shù)字方波發(fā)生器</p><p><b> 一、目的和功能</b></p><p><b> 1.1 目的:</b></p><p> 設(shè)計(jì)一種頻率范圍限定且可調(diào)的數(shù)字方波發(fā)生器,產(chǎn)生特定頻率的方波。</p><
3、p><b> 1.2功能:</b></p><p> 假設(shè)鍵盤(pán)是4*4的鍵盤(pán),當(dāng)鍵盤(pán)輸入范圍在10hz-10khz的數(shù)字,單片機(jī)控制數(shù)碼管顯示該數(shù)值,并把該數(shù)值當(dāng)做數(shù)字方波發(fā)生器的輸入頻率,單片機(jī)控制數(shù)字方波發(fā)生器以該數(shù)值作為頻率顯示方波,從而得到我們想要頻率的方波。</p><p><b> 二、硬件設(shè)計(jì)</b></p>
4、<p> 2.1 硬件設(shè)計(jì)思想</p><p> 鍵盤(pán)的數(shù)字和鍵位關(guān)系固定,通過(guò)鍵盤(pán)輸入產(chǎn)生頻率,通過(guò)LED數(shù)碼管顯示出來(lái),每一個(gè)數(shù)碼管對(duì)應(yīng)一個(gè)鍵位?;驹O(shè)備是基于PHILIPS AT89C51單片機(jī),外圍設(shè)備采用的是4個(gè)七段數(shù)碼管,PHILIPS AT89C51單片機(jī),1個(gè)OSCILLOSCOPE 方波發(fā)生器,16個(gè)Button,若干電阻,電源電池。</p><p>
5、 2.2 部分硬件方案論述</p><p> 2.2.1 七段數(shù)碼管掃描顯示方式的方案比較</p><p> 方案一: 靜態(tài)顯示方式:靜態(tài)顯示方式是指當(dāng)顯示器顯示某一字符時(shí),七段數(shù)碼管的每段發(fā)光二極管的位選始終被選中。在這種顯示方式下,每一個(gè)LED數(shù)碼管顯示器都需要一個(gè)8位的輸出口進(jìn)行控制。靜態(tài)顯示主要的優(yōu)點(diǎn)是顯示穩(wěn)定,在發(fā)光二極管導(dǎo)通電流一定的情況下顯示器的亮度大,系統(tǒng)運(yùn)行過(guò)程中,在
6、需要更新顯示內(nèi)容時(shí),CPU才去執(zhí)行顯示更新子程序,這樣既節(jié)約了CPU的時(shí)間,又提高了CPU的工作效率。其不足之處是占用硬件資源較多,每個(gè)LED數(shù)碼管需要獨(dú)占8條輸出線(xiàn)。隨著顯示器位數(shù)的增加,需要的I/O口線(xiàn)也將增加。</p><p> 方案二: 動(dòng)態(tài)顯示方式:動(dòng)態(tài)顯示方式是指一位一位地輪流點(diǎn)亮每位顯示器(稱(chēng)為掃描),即每個(gè)數(shù)碼管的位選被輪流選中,多個(gè)數(shù)碼管公用一組段選,段選數(shù)據(jù)僅對(duì)位選選中的數(shù)碼管有效。對(duì)于每一
7、位顯示器來(lái)說(shuō),每隔一段時(shí)間點(diǎn)亮一次。顯示器的亮度既與導(dǎo)通電流有關(guān),也與點(diǎn)亮?xí)r間和間隔時(shí)間的比例有關(guān)。通過(guò)調(diào)整電流和時(shí)間參數(shù),可以既保證亮度,又保證顯示。若顯示器的位數(shù)不大于8位,則顯示器的公共端只需一個(gè)8位I/O口進(jìn)行動(dòng)態(tài)掃描(稱(chēng)為掃描口),控制每位顯示器所顯示的字形也需一個(gè)8位口(稱(chēng)為段碼輸出)。動(dòng)態(tài)顯示器的優(yōu)點(diǎn)是節(jié)省硬件資源,成本較低。但在控制系統(tǒng)運(yùn)行過(guò)程中,要保證顯示器正常顯示,CPU必需每隔一段時(shí)間執(zhí)行一次顯示子程序,占用CPU
8、大量時(shí)間,降低了CPU的工作效率,同時(shí)顯示亮度較靜態(tài)顯示器低。</p><p> 由于PHILIPS AT89C51單片機(jī)本身提供的I/O口有限,因此我們選擇方案二——?jiǎng)討B(tài)掃描方式。掃描方式中在輪流點(diǎn)亮掃描過(guò)程中,每位顯示器的點(diǎn)亮?xí)r間是極為短暫的約1ms,但由于人的視覺(jué)暫留現(xiàn)象及發(fā)光二極管的余輝效應(yīng),盡管實(shí)際上各位顯示器并非同時(shí)點(diǎn)亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會(huì)有閃爍感。節(jié)約了
9、電能,節(jié)省 了I/O口。</p><p> 2.2.2 鍵盤(pán)連接方式方案比較</p><p><b> 方案一:獨(dú)立式鍵盤(pán)</b></p><p> 一個(gè)具有4個(gè)按鍵的獨(dú)立式鍵盤(pán),每一個(gè)按鍵的一端都接地,另一端接mega16的I/O口。獨(dú)立式鍵盤(pán)每一按鍵都需要一根I/O線(xiàn),占用mega16的硬件資源較多。因此獨(dú)立式鍵盤(pán)只適合按鍵較少的場(chǎng)合
10、。鍵盤(pán)是一組按鍵或開(kāi)關(guān)的集合,鍵盤(pán)接口向計(jì)算機(jī)提供被按鍵的代碼。特點(diǎn):使用方便、結(jié)構(gòu)復(fù)雜、成本高。</p><p><b> 方案二:矩陣式鍵盤(pán)</b></p><p> 我們采用4×4矩陣式鍵盤(pán),鍵盤(pán)的行線(xiàn)X0~X3通過(guò)電阻接+5V,當(dāng)鍵盤(pán)沒(méi)有鍵閉合時(shí),所有的行線(xiàn)和列線(xiàn)斷開(kāi),行線(xiàn)X0~X3均呈高電平。當(dāng)鍵盤(pán)上某一鍵閉合時(shí),該鍵所對(duì)應(yīng)的行線(xiàn)與列線(xiàn)短路,此
11、時(shí)該行線(xiàn)的電平將由被短路的列線(xiàn)電平所決定。如果將行線(xiàn)接至單片機(jī)的輸入端口,列線(xiàn)接至單片機(jī)的輸出端口,則在單片機(jī)的控制下使列線(xiàn)Y0為低電平,其余三根列線(xiàn)Y1、Y2、Y3均為高電平,然后單片機(jī)讀輸入口狀態(tài)(即鍵盤(pán)行線(xiàn)狀態(tài)),若X0、X1、X2、X3均為高電平,則Y0這一列上沒(méi)有鍵閉合,如果讀出的行線(xiàn)狀態(tài)不全為高電平,則為低電平的行線(xiàn)和Y0相交的鍵處于閉合狀態(tài)。如果Y0這一列沒(méi)有鍵閉合,緊接著使列線(xiàn)Y1為低電平,其余列線(xiàn)為高電平,用同樣的方法
12、檢查Y1這一列有無(wú)鍵閉合,如此類(lèi)推。這種逐行逐列地檢查鍵盤(pán)狀態(tài)的過(guò)程稱(chēng)為對(duì)鍵盤(pán)的掃描。CPU對(duì)鍵盤(pán)的掃描可以采取程序控制的隨機(jī)方式,CPU空閑時(shí)才掃描鍵盤(pán);也可以采取定時(shí)控制方式,每隔一段時(shí)間,CPU對(duì)鍵盤(pán)掃描一次;還可以采用中斷方式,當(dāng)鍵盤(pán)上有鍵閉合時(shí),向CPU請(qǐng)求中斷,CPU響應(yīng)鍵盤(pán)發(fā)出的中斷請(qǐng)求,對(duì)鍵盤(pán)進(jìn)行掃描,以識(shí)別哪一個(gè)鍵處于閉合狀態(tài),并對(duì)鍵輸入信息作相應(yīng)處理。</p><p> 因?yàn)槿绻捎锚?dú)立式鍵
13、盤(pán)PHILIPS AT89C51的I/O口對(duì)于方案一來(lái)說(shuō)將是遠(yuǎn)遠(yuǎn)不夠用的,為了節(jié)省I/O口,使我們的設(shè)計(jì)能夠順利進(jìn)行,我們選用方案二——矩陣連接式鍵盤(pán)。為了能夠較為簡(jiǎn)單的編程,和節(jié)省CPU的資源,我們采用定時(shí)掃描,每隔一段時(shí)間,CPU對(duì)鍵盤(pán)掃描一次,并將鍵值讀入。</p><p><b> 2.3 硬件電路圖</b></p><p><b> 三、軟件&
14、lt;/b></p><p> 3.1 軟件設(shè)計(jì)基本思想:</p><p> ●鍵盤(pán)的不間斷掃描。</p><p> ●4個(gè)八段數(shù)碼管的動(dòng)態(tài)顯示。</p><p> ●方波發(fā)生器方波的輸出</p><p><b> 3.2 程序框圖</b></p><p&g
15、t;<b> 3.3 程序功能</b></p><p> 初始化后單片機(jī)產(chǎn)生初值,將初值以動(dòng)態(tài)掃描的方式顯示于八段數(shù)碼管 ,同時(shí)還對(duì)鍵盤(pán)進(jìn)行實(shí)時(shí)掃描,在掃描后,單片機(jī)讀取鍵值,并將鍵值通過(guò)數(shù)碼管模塊顯示出來(lái),方波發(fā)生器輸出該頻率的方波。</p><p><b> 四、總結(jié)</b></p><p> 4.1 已達(dá)
16、到的成果:硬件電路圖和鍵盤(pán)及顯示的程序。</p><p> 4.2 未完成的部分:軟件關(guān)于實(shí)行初值計(jì)算部分以及仿真。</p><p> 4.3 設(shè)計(jì)感悟:這一次課程設(shè)計(jì)遇到了很多問(wèn)題。硬件基本上是沒(méi)有問(wèn)題的,每個(gè)人都會(huì)做;但是程序是我們的弱點(diǎn),還有就是分工合作,很多時(shí)候都是有分歧,還好最后還有水兵幫忙,使得我們的程序進(jìn)一步完善。做完這個(gè)程序只是我們學(xué)做程序的開(kāi)始吧,今后會(huì)繼續(xù)加強(qiáng)我
17、們?cè)谧龀绦蛏系墓αΑ?lt;/p><p><b> 附錄一 程序代碼</b></p><p> #include < reg52.h></p><p> sbit out=P1^0;</p><p> #define uchar unsigned char </p><p>
18、 #define uint unsigned int</p><p> uchar TH,TL,c;</p><p> uchar keyscan();</p><p> void delay(uint z);</p><p> void main()</p><p><b> {</b>
19、;</p><p><b> uchar s;</b></p><p><b> out=1;</b></p><p><b> EA=1;</b></p><p><b> ET0=1;</b></p><p><b
20、> TR0=1;</b></p><p><b> while(1)</b></p><p><b> {</b></p><p> s=keyscan();</p><p><b> switch(s)</b></p><p&g
21、t;<b> {</b></p><p> case 0x0e://10HZ</p><p><b> TH=0x3c;</b></p><p> TL=0xb0;TMOD=0X01;</p><p><b> break;</b></p><p&
22、gt; case 0x0d://100HZ</p><p><b> TH=0xec;</b></p><p> TL=0x78;TMOD=0X01;</p><p><b> break;</b></p><p> case 0x0b://1kHZ</p><p>
23、;<b> TH=0xfe;</b></p><p> TL=0x0c;TMOD=0X01;</p><p><b> break;</b></p><p> case 0x07://10kHZ</p><p><b> TH=0xff;</b></p>
24、<p> TL=0xce;TMOD=0X01;</p><p><b> break;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p>&
25、lt;p> void delay(uint z)</p><p><b> {</b></p><p><b> uint x,y;</b></p><p> for(x = z;x>0;x--)</p><p> for(y = 124;y>0;y--);</p&
26、gt;<p><b> }</b></p><p> void timer0() interrupt 1</p><p><b> {</b></p><p><b> TH0=TH;</b></p><p><b> TL0=TL;</
27、b></p><p><b> out=!out;</b></p><p><b> }</b></p><p> uchar keyscan()</p><p><b> {</b></p><p> uchar key;</p&
28、gt;<p> if((P3&0x0f)==0x0f) return(0xff);</p><p> delay(20);</p><p> if((P3&0x0f)==0x0f) return(0xff);</p><p> key=(P3&0x0f);</p><p> while((P3&
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機(jī)課程設(shè)計(jì)---占空比可調(diào)的方波發(fā)生器
- 單片機(jī)課程設(shè)計(jì)---基于mcs-51單片機(jī)的頻率計(jì)的設(shè)計(jì)
- mcs-51系列單片機(jī)課程設(shè)計(jì)
- 基于單片機(jī)方波發(fā)生器課程設(shè)計(jì)報(bào)告
- 課程設(shè)計(jì)—基于單片機(jī)的方波信號(hào)發(fā)生器
- 基于_mcs-51單片機(jī)的洗衣機(jī)課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--基于mcs-51單片機(jī)的溫度采集系統(tǒng)
- 用單片機(jī)進(jìn)行方波發(fā)生器的課程設(shè)計(jì)
- 課程設(shè)計(jì)---mcs-51單片機(jī)溫度控制系統(tǒng)
- 課程設(shè)計(jì)--基于51單片機(jī)的信號(hào)發(fā)生器的設(shè)計(jì)
- mcs-51單片機(jī)存儲(chǔ)器結(jié)構(gòu)
- mcs-51單片機(jī)結(jié)構(gòu)介紹
- mcs-51單片機(jī)串行接口
- 51單片機(jī)課程設(shè)計(jì)---多功能信號(hào)發(fā)生器設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--利用mcs-51單片機(jī)及相關(guān)芯片構(gòu)成收銀機(jī)
- 單片機(jī)課程設(shè)計(jì)報(bào)告---基于單片機(jī)的波形發(fā)生器
- 基于單片機(jī)的波形發(fā)生器課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)(波形發(fā)生器)
- 單片機(jī)課程設(shè)計(jì)---波形發(fā)生器
- 單片機(jī)課程設(shè)計(jì)—波形發(fā)生器
評(píng)論
0/150
提交評(píng)論