單片機課設(shè)方波發(fā)生器_第1頁
單片機課設(shè)方波發(fā)生器_第2頁
單片機課設(shè)方波發(fā)生器_第3頁
單片機課設(shè)方波發(fā)生器_第4頁
單片機課設(shè)方波發(fā)生器_第5頁
已閱讀5頁,還剩43頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、-/燕山大學(xué)課程設(shè)計說明書題 目:方波發(fā)生器學(xué) 院:電氣工程學(xué)院年級專業(yè):10 級檢測1班學(xué) 號:100103020012學(xué)生姓名:李瀟指導(dǎo)教師:教師職稱:副教授燕山大學(xué)課程設(shè)計(論文)任務(wù)書院(系):電氣工程學(xué)院基層教學(xué)單位:儀器科學(xué)與工程系設(shè)計題目設(shè) 計 技 術(shù) 參 數(shù)設(shè)計要求工 作 計 劃參 考 資 料100103020012學(xué)生姓名李瀟專業(yè)(班級)10檢測1班方波發(fā)生器設(shè)計一個以單片機為核心的方波發(fā)生器,通過鍵盤可以改變方波的占空比和頻 率,并顯示波形的頻率。設(shè)計鍵盤輸入電路、波形的輸出電路、顯示電路(4位數(shù)碼管);編制 相應(yīng)的程序。設(shè)計的內(nèi)容滿足課程設(shè)計的教學(xué)目的與要求, 設(shè)計題目的

2、難度和工作 量適合學(xué)生的知識和能力狀況,工作量飽滿。查閱資料進(jìn)行設(shè)計準(zhǔn)備、設(shè)計硬件電路、編制程序,編制程序、驗證 設(shè)計、撰寫任務(wù)書。單片微型計算機接口技術(shù)及其應(yīng)用張淑清 國防工業(yè)出版社單片機原理及應(yīng)用技術(shù)張淑清國防工業(yè)出版社單片機應(yīng)用技術(shù)匯編指導(dǎo)教師簽字基層教學(xué)單位主任簽字說明:此表一式四份,學(xué)生、指導(dǎo)教師、基層教學(xué)單位、系部各一份。目錄第一章第二章第三章第四章第五章5.1摘要引言設(shè)計概述 方案介紹 構(gòu)建以及原理 程序流程 2223335.2 鍵盤接口電路5.3 LED5.4第六章6.16.2顯示電路 八段數(shù)碼管原理 總設(shè)計原理 方波發(fā)生器的原理與功能 鍵盤控制原理 程序框圖 方波波形顯示 4

3、6786.36.4第七章 程序設(shè)計 第八章 心得體會 參考文獻(xiàn) 89911132929第一章 摘要作為微型計算機的一個重要分支,單片微型計算機(簡稱單片機)自20世紀(jì) 70年代問世以來, 已廣泛地應(yīng)用在工業(yè)自動化、 自動化檢測與控制、 智能儀器儀表、機電一體化設(shè)備、汽車電子、家用電器等各個方面。本設(shè)計是一個以單片機為核心的方波發(fā)生器,通過對鍵盤輸入電路、 波形的輸出電路、 顯示電路的設(shè)計已經(jīng)程序的編程, 實現(xiàn)通過鍵盤改變方 波占空比和頻率,并顯示波形頻率的功能。第二章 引言單片機具有性價比高、集成度高、體積小、可靠性好、控制功能強、 低電壓、 低功耗、通用靈活等優(yōu)點, 廣泛應(yīng)用于衛(wèi)星定向、 汽

4、車火化控制、 交通自動管理等方面。In ter公司的mcs-51單片機雖然仍然是 6位的單片機,但其功能有很大的增強,此外他還具有品種全、兼容性強、軟硬件資料豐富等有點,因為此應(yīng)用十分廣泛,直到現(xiàn)在 mcs-51 仍為單片機中的主流機型,也是高檔單片機的基礎(chǔ)。本課題討論的方波發(fā)生器的核心就是51 系列單片機。第三章 設(shè)計概述基于單片機的占空比可調(diào)方波發(fā)生器的設(shè)計,是通過單片機控制一 個有特殊功能的信號發(fā)生芯片, 可以產(chǎn)生一系列有規(guī)律的幅度和頻率可調(diào)4位的波形。通過鍵盤可以改變方波的占空比和頻率,并顯示波形的頻率。設(shè) 計的基本要求是:設(shè)計鍵盤輸入電路、波形的輸出電路、顯示電路( 數(shù)碼管);編制相

5、應(yīng)程序。使用按鍵來進(jìn)行調(diào)節(jié)頻率和占空比,不同的頻 率及占空比可以使用不同的按鍵來實現(xiàn), 而以鍵盤掃描來實現(xiàn)各鍵的不同 功能;顯示部分使用 LED 數(shù)碼管來實現(xiàn)。由此即可構(gòu)成一個最小單片機 應(yīng)用系統(tǒng)。第四章 方案介紹基于 MCS51 單片機 8051 芯片所設(shè)計的可以實現(xiàn)鍵位與數(shù)字動態(tài)顯 示的一種頻率,占空比可調(diào)方波發(fā)生器。設(shè)四位數(shù)碼管顯示頻率范圍為1HZ-9999HZ,可任意取 10HZ、25HZ、50HZ 100Hz、200Hz,占空比任意取 20%、 40%、 50%、 60%、 80%等值。通過對鍵盤上按鍵的操作完成對所取頻率值,占空比的調(diào)用,以達(dá)到改變當(dāng)前頻率值,占空比的目的,并使用

6、其八段數(shù)碼管顯示。單片機對鍵位進(jìn)行掃描,確定鍵位的輸入,根據(jù)程序 設(shè)計要求, 數(shù)碼管顯示頻率以及占空比的數(shù)值, 方波發(fā)生器輸出以數(shù)碼管 顯示的數(shù)值為頻率和占空比的方波?;谝陨纤悸?可進(jìn)行如下功能擴展:由于偉福 2000 仿真實驗箱共 有 6 位數(shù)碼管,顯示頻率用其中 4位,余下 2 位進(jìn)行占空比顯示。鍵盤部 分使用 4*4 鍵盤中的其中 4 個按鍵, 其功能分別為: 頻率增大、 頻率減小、 占空比增大、占空比減小。按鍵每按下一次,當(dāng)前頻率或占空比轉(zhuǎn)向下 選定的頻率或占空比值。 單片機通過輸出方波控制數(shù)碼管的顯示, 數(shù)碼管 顯示當(dāng)前所調(diào)換到的頻率及占空比,并向外輸出所示頻率和占空比的方 波。最

7、后,可采用示波器觀察方波波形。第五章 構(gòu)件以及原理5.1 程序流程簡單的流程為:主程序掃描鍵盤,將設(shè)置信息輸入,處理后,輸出到LED顯示器顯示。單片機用到了定時器 0,分別進(jìn)行頻率與占空比的定時,工作在方式 1 。計算定時器初值的公式如下:N=2m- FOSC/12 X T根據(jù)計算定時器初值的公式, 所要裝入的初值。 頻率及占空比的顯示電路由74374和74245構(gòu)成的驅(qū)動電路和 LED數(shù)碼顯示管組成,利用六個數(shù)碼管來顯示,有四位是用來顯示頻率的,有兩位是顯示占空比的。此電路的鍵盤由四個功能鍵(調(diào)節(jié)頻率與占空比的增減)組成,其特 殊之處在于利用外部中斷實現(xiàn)鍵盤掃描。 功能鍵有兩種種狀態(tài), 一種

8、為正 順序調(diào)換,根據(jù)所取值順向增大的特點,此時為增大調(diào)節(jié);另一種為逆順 序調(diào)換,同理,此時為減小調(diào)節(jié)。頻率和占空比各有一組增大及減小的功 能鍵。5.2.鍵盤接口電路方案一:獨立式鍵盤一個具有 4 個按鍵的獨立式鍵盤, 每一個按鍵的一端都接地, 另一端 接 MEGA16 的 I/O 口。獨立式鍵盤每一按鍵都需要一根 I/O 線,占用MEGA16 的硬件資源較多。 因此獨立式鍵盤只適合按鍵較少的場合。 鍵盤 是一組按鍵或開關(guān)的集合,鍵盤接口向計算機提供被按鍵的代碼。特點: 使用方便、結(jié)構(gòu)復(fù)雜、成本高。方案二:矩陣式鍵盤我們采用4X4矩陣式鍵盤,矩陣式鍵盤由多個按鍵組成的開關(guān)矩陣,K0 鍵按下閉當(dāng)鍵

9、盤上沒有鍵閉合時,所有的行線和列線斷開,行線呈高電平。當(dāng)鍵盤 上某一個鍵閉合時,該鍵所對應(yīng)的行線與列線短路。例如, 合時,行線 X0 和列線 Y0 短路,此時 X0 的電平由 Y0 的電平所決定。川4±41卩屮斗I訥 r - *-(4 1 T上kkkJMT v v 4+ 弋luMij ijoi iLiimj/L' -rd* -H -' R- 'J4*J 寸 r 小hW 町右卜-U»*r<*I雷11 晉/li_ T-W'Ir I 屮,-IM* iiriUJnI I I Hlr.f JH luim.TO一.;or-巳3吧弓眄 一 st社會圖

10、1鍵盤控制LED連接原理圖其按鍵識別可用掃描法完成。具體方法如下:把行線接到微機的輸入口,列線接到微機的輸出口,則在微機的控制下,使列線 丫0位低電平0,其余3根列線Y1、Y2、Y3都為高電平1.然后微機通過輸入口讀取行線的狀態(tài),如果X0、XI、X2、X3都為高電平,貝y Y0這一列線上沒有鍵閉合;如果讀出的行線狀態(tài)不完全為高電平,則為低電平的行線和 丫0相交的鍵處于閉合狀態(tài)。(3)如果丫0這一列上沒有鍵閉合,接著使列線Y1為低電平,其余列線為高電平。用同樣的方法檢查丫1這一列上有無鍵閉合。(4)以此類推,最后使列線 丫3為低電平,其余的列線為高電平,檢查丫3這一列上是否有鍵閉合。這種逐行逐列

11、的掃描鍵盤狀態(tài)的過程稱為對鍵盤的一次掃描。CPU對鍵盤的掃描可以采取程序控制的隨機方式,CPU空閑時才掃描鍵盤;也可以采取定時控制方式, 每隔一段時間,CPU對鍵盤掃描一次;還可以采用中斷方式,當(dāng)鍵盤上有鍵閉合時,向CPU 請求中斷, CPU 響應(yīng)鍵盤發(fā)出的中斷請求, 對鍵盤進(jìn)行掃描, 以識別哪一個鍵處于閉合狀態(tài), 并對鍵輸入信息作相應(yīng)處理。5.3LED 顯示電路方案一: 靜態(tài)顯示方式當(dāng)顯示器顯示某一個字符的時候, 相應(yīng)的發(fā)光二極管恒定地導(dǎo)通或截 止。例如, 7 段 LED 顯示器顯示數(shù)字 0 時, a、b、c、d、e、f 段恒定導(dǎo)通,g 段恒定截止。這種顯示方式每一位都需要一個 8 段位輸出

12、控制。靜態(tài)顯 示時,較小的電流能得到較高的亮度,且字符不閃爍,系統(tǒng)運行過程中, 在需要更新顯示內(nèi)容時, CPU 才去執(zhí)行顯示更新子程序,這樣既節(jié)約了CPU 的時間,又提高了 CPU 的工作效率。其不足之處是占用硬件資源較 多,每個 LED 數(shù)碼管需要獨占 8 條輸出線。隨著顯示器位數(shù)的增加,需 要的 I/O 口線也將增加。當(dāng)顯示位數(shù)較少時,采用靜態(tài)顯示的方法是合適 的。方案二: 動態(tài)顯示方式對于顯當(dāng)位數(shù)較多時,用靜態(tài)顯示所需的 I/O 口太多,不太經(jīng)濟,一百采用 動態(tài)顯示方法, 即用掃描法一位一位的輪流點亮顯示器的各個位, 示器的每一位來說, 每隔一段時間電量一次, 利用人眼的視覺暫留效應(yīng)可

13、以看到整個動態(tài)顯示,但必須保證掃描速度足夠快,字符才不閃爍。顯示 器的亮度即與導(dǎo)通電流有關(guān), 也與點亮?xí)r間和時間間隔的比值有關(guān)。 調(diào)整 電流和時間參數(shù),可以得到亮度較高且較穩(wěn)定的顯示。動態(tài)顯示方式中, 若顯示器的位數(shù)不大于 8 位,則控制顯示器各位公 共極的電位使他們輪流點亮只需一個 I/O 口(稱掃描口) ;傳送顯示器的 各位所顯示的段選碼也需一個 8 位 I/O 口(稱段數(shù)據(jù)口) 。由于8051單片機本身提供的I/O 口有限,因此我們選擇方案二動態(tài)掃描方式。掃描方式中在輪流點亮掃描過程中,每位顯示器的點亮?xí)r間是極為短暫的約 1MS ,盡管實際上各位顯示器并非同時點亮,但只要掃 描的速度足夠

14、快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會有閃爍感。節(jié)約了電能,節(jié)省了 I/O 口。5.4.八段數(shù)碼管原理數(shù)碼管內(nèi)部由8個發(fā)光發(fā)光二極管組成,排成一個8字,可以組成0到9數(shù)字以及A-F字符的表示形式。"o Q圖2八段數(shù)碼管引腳圖圖3八位數(shù)碼管原理圖表1顯示數(shù)字及其所對應(yīng)的代碼顯示數(shù)字1234程序輸入數(shù)06H5BH4FH66H顯示數(shù)字5678程序輸入數(shù)6DH7DH07H7FH顯示數(shù)字90AB程序輸入數(shù)6FH3FH77H7CH顯示數(shù)字CDEF程序輸入數(shù)39H5EH79H71HI -wa.匚H -匚二廠廠廠廠疔I - -LlULA匚.圖4鍵盤及數(shù)碼管顯示電路第六章總設(shè)計原理6.1、方波發(fā)生

15、器的原理與功能方波發(fā)生器的總體原理方框圖如下圖所示:r壯率m占 空比誥并煩率m占 空比觀握LED顯示圖5總原理方框圖由于系統(tǒng)的要求不高,比較單一,再加上我們是通過定時器來調(diào)節(jié) 頻率的,這樣僅用鍵盤、8051芯片及數(shù)碼顯示管便可完成設(shè)計,達(dá)到所要 求實現(xiàn)的功能。6.2鍵盤控制原理通過鍵盤的控制, 實現(xiàn)頻率和占空比的變化。本設(shè)計選用前四個數(shù)碼 管顯示頻率,后兩個數(shù)碼管顯示占空比。其中,用a鍵和b鍵控制占空比的變化:每按一下 a鍵,占空比就按照調(diào)高的順序正向變化一個數(shù)字,每按一下b鍵,占空比就反向變化。用c鍵和d鍵控制頻率的變化,每按一下c鍵頻率就按著調(diào)高的順序正向變化到下一個數(shù)值;每按一下 d鍵,

16、頻率就反向變化到另一個數(shù)值。表2頻率-占空比-按鍵對照表頻率占空比cdaD+上_下+上_下6.3程序框圖初始化后單片機產(chǎn)生初值,將初值以動態(tài)掃描的方式顯示于八段數(shù)碼 管,同時還對鍵盤進(jìn)行實時掃描。在掃描后,單片機讀取鍵值,并將鍵值通過數(shù)碼管模塊顯示出來,方波發(fā)生器輸出該頻率,占空比的方波表3頻率(HZ)-程序代碼對照表編輯代碼100H3FH06H3FH顯示頻率1(HZ)0010編輯代碼200H3FH5BH6DH顯示頻率2(HZ)0025編輯代碼300H3FH6DH3FH顯示頻率3(HZ)0050編輯代碼400H06H3FH3FH顯示頻率4(HZ)0100編輯代碼500H5BH3FH3FH顯示頻

17、率5(HZ)0200表4占空比(% -代碼對照表編輯代碼15BH3FH顯示占空比(%20編輯代碼266H3FH顯示占空比(%40編輯代碼36DH3FH顯示占空比(%50編輯代碼47DH3FH顯示占空比(%60編輯代碼57FH3FH顯示占空比(%80MfSU6.4方波波形顯示CH3正占皇比Ml*CH3 集草 seiMmCH供«中®CHiJtPfl4峰HCHI關(guān)閉 e 十.適“ EfiCjS圖6.4.1 頻率50HZ占空比60%QH2 jEASttCH21*t* -1 «*! . W.2?Mt一 CHI關(guān)用CHf關(guān)用 正 ft S g= aW9U Mj 加也一M

18、9;Pvr:14frAi>r圖642頻率100Hz占空比50%CH2正融CH2*a,e»te«小cHiMmgyu Hisma*on丟囲 正JtMCH2Z3mM'PwMBJfes圖643頻率50Hz占空比50%CH2正FtCH2n煩軍I CH1關(guān)朗*小11CHI 關(guān) W“價:!»-2 +61 正 U 慮:0沖: H.-/LdeJ圖644頻率25Hz占空比20%00S5 BDIBDDDQ 口 bbbqqb PBBBQfi圖6.4.5頻率25Hz占空比20%第七章程序設(shè)計OUTBITEQU 08002H;位控制口OUTSEGEQU 08004H;段控制口I

19、NEQU 08001H;鍵盤讀入口FrequencyDATA 30H;頻率等級緩沖區(qū)DutyDATA 31H;占空比等級緩沖區(qū)TH0_HIGHDATA 32H;高電平計數(shù)緩沖區(qū),給定時器TH0賦TL0_HIGHDATA 33H; 高電平計數(shù)緩沖區(qū),給定時器 TL0 賦TH0_LOWDATA 34H; 低電平計數(shù)緩沖區(qū),給定時器 TH0 賦TL0_LOWDATA 35H; 低電平計數(shù)緩沖區(qū),給定時器 TL0 賦FlagDATA 36H; 高電平低電平轉(zhuǎn)換標(biāo)志上的OFFSETLEDBUFORG 0000HORG 000BHORG 0010HKeyTable:DBDBDBDBDATA 37H; 用來

20、存儲偏移量DATA 60HLJMP INITLJMP TIMER0; 顯示緩沖區(qū); 鍵碼定義16H, 15H, 14H, 0FFH13H, 12H, 11H, 10H0DH, 0CH, 0BH, 0AH; 0AH 占空比調(diào)高,對應(yīng)鍵盤0EH, 0CH, 0BH, 09H; 0BH 占空比調(diào)低, 對應(yīng)鍵盤上DBDB00H, 01H, 04H, 07H; 0DH 頻率調(diào)低, 對應(yīng)鍵盤上的FrenqLevel:; 頻率占空比轉(zhuǎn)換表格0FH, 02H, 05H, 08H ; 0CH 頻率調(diào)高,對應(yīng)鍵盤上的 C;TH0_HIGH,TL0_HIGH,TH0_LOW,TL0_LOWDB 0D8H, 0F0H

21、, 063H, 0C0H ;10HZ DUTY20%DB 0B1H, 0E0H, 08AH, 0D0H ;10HZ DUTY40%DB 09EH, 058H, 09EH, 058H ;10HZ DUTY50%DB 08AH, 0D0H, 0B1H, 0E0H ;10HZ DUTY60%DB 063H, 0C0H, 0D8H, 0F0H ;10HZ DUTY80%DB 0F0H, 060H, 0C1H, 080H ;25HZ DUTY20%DB 0E0H, 0C0H, 0D1H, 020H ;25HZ DUTY40%DB 0D8H, 0F0H, 0D8H, 0F0H ;25HZ DUTY50%D

22、B 0D1H, 020H, 0E0H, 0C0H ;25HZ DUTY60%DB 0C1H, 080H, 0F0H, 060H ;25HZ DUTY80%DB 0F8H, 030H, 0E0H, 0C0H ;50HZ DUTY20%DB 0F0H, 060H, 0E8H, 090H ;50HZ DUTY40%DB 0ECH, 078H, 0ECH, 078H ;50HZ DUTY50%DB 0E8H, 090H, 0F0H, 060H ;50HZ DUTY60%DB 0E0H, 0C0H, 0F8H, 030H ;50HZ DUTY80%DB 0FCH, 018H, 0F0H, 060H ;1

23、00HZ DUTY20%DB 0F8H, 030H, 0F4H, 048H ;100HZ DUTY40%DB 0F6H, 03CH, 0F6H, 03CH ;100HZ DUTY50%DB 0F4H, 048H, 0F8H, 030H ;100HZ DUTY60%DB 0F0H, 060H, 0FCH, 018H ;100HZ DUTY80%DB 0FEH, 00CH, 0F8H, 030H ;200HZ DUTY20%DB 0FCH, 018H, 0FAH, 024H ;200HZ DUTY40%DB 0FBH, 01EH, 0FBH, 01EH ;200HZ DUTY50%DB 0FAH,

24、 024H, 0FCH, 018H ;200HZ DUTY60%DB 0F8H, 030H, 0FEH, 00CH ;200HZ DUTY80%DutyMAP:DB 5BH, 66H, 6DH, 7DH, 7FH;數(shù)碼管上顯示的占空比數(shù)字20% 40% 50% 60% 80%FrenqMAP:DB 3FH,06H,3FH;10HZDB 3FH,5BH,6DH;25HZDB 3FH,6DH,3FH;50HZDB 06H,3FH,3FH;100HZDB 5BH,3FH,3FH;200HZ對應(yīng)的顯示碼INIT:MOVSP, #40H存器區(qū)發(fā)生沖突MOVTMOD, #01HMOVTH0_HIGH, #

25、0D8HMOVTL0_HIGH, #0F0HMOVTH0_LOW, #063HMOVTL0_LOW, #0C0HMOVTH0, TH0_LOWMOV TL0, TL0_LOW;更改堆棧指針,避免堆棧與工作寄; 定時器 0 方式 1;先輸出低電平定時器初值MOV Frequency, #00H;頻率初值為 10HZMOV Duty, #00H;占空比初值為 20%MOV LEDBuf+5, #3FHMOVLEDBuf+4, #5BHMOVLEDBuf+3, #3FHMOVLEDBuf+2, #06HMOVLEDBuf+1, #3FHSETBEA;cpu 開放中斷SETBET0;T0 中斷允許SE

26、TBTR0;允許 T0 計數(shù)MOVLEDBuf, #3FHMain:CALL DisplayLED; 顯示變轉(zhuǎn)變狀態(tài)CALLTestKeyJZMainCALLGetKeyCALLKeyfuctionCALLChangestate; 是否有鍵鍵入; 無鍵鍵入 , 繼續(xù)顯示; 有鍵鍵入,讀入鍵碼; 有鍵鍵入,調(diào)用相應(yīng)的功能; 根據(jù)占空比等級,頻率等級的改LJMPMainMOVR0, #LEDBUFMOVR1, #06H; 共 6 個八段管MOVR2, #20H; 從左邊開始顯示DisplayLOOP:MOVDPTR, #OUTBITMOVA, #00HMOVXDPTR, A; 關(guān)所有八段管MOVA

27、, R0MOVDPTR, #OUTSEGMOVXDPTR, AMOVDPTR, #OUTBITMOVA, R2MOVXDPTR, A; 顯示一位八段管; 顯示子程序DisplayLED:MOVR6, #01HCALLDELAYMOVA, R2; 顯示下一位RRAMOVR2, AINCR0DJNZR1, DisplayLOOP;循環(huán) 6 次 displayloopRET; 檢測是否有按鍵按下MOVDPTR, #OUTBITMOVA, #00HMOVXDPTR, A; 輸出線置為 0MOVDPTR, #INMOVXA, DPTR; 讀入鍵狀態(tài)CPLAANLA, #0FH; 高四位不用保留低四位RE

28、TTestKey:GetKey:; 有鍵按下讀取鍵值MOVDPTR, #OUTBITMOVP2, DPHMOVR0, #LOW(IN)MOVR1, #20HMOVR2, #06HKeyLoop:MOVA, R1; 找出鍵所在列則轉(zhuǎn)移CPLMOVXCPLRRMOVMOVXCPLANLJNZDJNZMOVSJMPDPTR, AR1, AA, R0A, #0FHGetKeynumR2, KeyLoopR2, #0FFHExit; 下一列;保留低 4 位; 該列有鍵入 A 不為零 有輸入;循環(huán) 6 次; 沒有鍵按下 , 返回 0FFH-/MOVXDPTR, AGetKeynum:; 鍵值 = 列 X

29、4 + 行,掃描鍵盤值MOVR1, AMOVA, R2DECARLARLAMOVR2, AMOVA, R1MOVR1, #04H;暫存 a; R2 = (R2-1)*4; R1 中為讀入的行值GetKeynumLoop:RRC; 移位找出所在行JCExit; 進(jìn)位標(biāo)志 cy=1 轉(zhuǎn)移INCR2; R2 = R2+ 行值Exit:DJNZR1, GetKeynumLoopMOVA, R2; 取出鍵碼MOVDPTR, #KeyTableMOVCA, A+DPTRMOVR2, A; 取出鍵碼給 R2WaitRelease:MOVDPTR, #OUTBIT; 等鍵釋放CLR-/MOVR6, #0AHC

30、ALLDelayCALLTestKeyJNZWaitReleasMOVA, R2RETKeyfuction:MOVA, BMOVB, A;保存返回的鍵值XRLA, #0AH;對鍵值進(jìn)行判斷JZKey1;A 鍵按下MOVA, BXRLA, #0BH;對鍵值進(jìn)行判斷JZKey2;B 鍵按下MOVA, BXRLA, #0CH;對鍵值進(jìn)行判斷JZKey3;C 鍵按下XRLA, #0DH;對鍵值進(jìn)行判斷JZKey4;D 鍵按下-/MOV A, FrequencyKey1:Key1_1:Key2:Key2_1:Key3:JMP KeyEndMOV A, DutyXRL A, #04HJZ KEY1_1IN

31、C DutyJMP KeyEndMOV Duty,#04HJMP KeyEndMOV A, DutyXRL A, #00HJZ KEY2_1DEC DutyJMP KeyEndMOV Duty,#00HJMP KeyEndXRL A, #04H;占空比等級是否到;占空比等級調(diào)高;占空比等級為 4,;占空比等級是否到;占空比等級調(diào)高不能再提高;頻率等級是否到 4-/JZ KEY3_1INC Frequency;頻率等級調(diào)高M(jìn)OVA,FrequencyMOV B, A;將頻率等級乘上 3 的偏移量JMP KeyEndKEY3_1:MOV Frequency,#04H; 頻率等級為 4,不能再提高J

32、MP KeyEndKey4:MOV A, FrequencyXRL A, #00H;頻率等級是否到 0JZ KEY4_1DEC Frequency;頻率等級調(diào)低JMP KeyEndKEY4_1:MOV Frequency,#00HKeyEnd:RETChangestate:MOVB,#03HMULAB-/MOV DPTR,#FrenqMAPMOVC A, A+DPTRMOV LEDBuf+1, AMOV A, BINC AMOV B, AMOVC A, A+DPTRMOV LEDBuf+2, AMOV A, BINC AMOV B, AMOVC A, A+DPTRMOVLEDBuf+3, AM

33、OVA, DUTYMOVDPTR,#DutyMAPMOVLEDBuf+4, AMOVC A, A+DPTRMOVLEDBuf+5, #3FHDutychange:CLRTR0-/MOV A, OFFSETMOV TL0_HIGH, A空比偏移MOVMOVMULMOVMOVMOVMULADDA, FrequencyB, #14HABOFFSET, AA, DUTYB, #04HABA,OFFSETMOV OFFSET,AMOV DPTR,#FrenqLevel空比與頻率對應(yīng)的初值MOVC A, A+DPTRMOV TH0_HIGH, AINC OFFSETMOVC A, A+DPTR; 將頻率等級乘上 20 的偏

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論