




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、智能儀表綜合課程設(shè)計(jì)成 績 評 定 表學(xué)生姓名班級學(xué)號專 業(yè)課程設(shè)計(jì)題目基于單片機(jī)的多功能函數(shù)發(fā)生器的設(shè)計(jì)評語組長簽字:成績?nèi)掌?2015年 1月 9日課程設(shè)計(jì)任務(wù)書學(xué) 院專 業(yè)學(xué)生姓名班級學(xué)號課程設(shè)計(jì)題目基于單片機(jī)的多功能函數(shù)發(fā)生器的設(shè)計(jì)實(shí)踐教學(xué)要求與任務(wù):通過本課程設(shè)計(jì)使學(xué)生進(jìn)一步鞏固智能儀表綜合設(shè)計(jì)的基本概念、理論、分析方法和實(shí)現(xiàn)方法;增強(qiáng)學(xué)生軟件編程實(shí)現(xiàn)能力和解決實(shí)際問題的能力。1、熟悉所確定的題目從問題需求,數(shù)據(jù)結(jié)構(gòu),程序結(jié)構(gòu),難點(diǎn)及關(guān)鍵技術(shù)等方面進(jìn)行分析,形成系統(tǒng)的設(shè)計(jì)方案;2、根據(jù)方案設(shè)計(jì)硬件電路; 3、軟件編程并調(diào)試;4、完成文檔整理,按照軟件工程的要求完成設(shè)計(jì)論文;5、通過答
2、辯的形式對程序的功能進(jìn)行評價(jià)與驗(yàn)收。工作計(jì)劃與進(jìn)度安排:第12周-第13周:布置設(shè)計(jì)任務(wù),查資料,完成總體設(shè)計(jì)框架,完善設(shè)計(jì)內(nèi)容,系統(tǒng)調(diào)試,驗(yàn)收答辯。指導(dǎo)教師: 年 月 日專業(yè)負(fù)責(zé)人: 年 月 日學(xué)院教學(xué)副院長:年 月 日摘 要本文介紹一種用AT89C51單片機(jī)構(gòu)成的波形發(fā)生器,波形的周期可用程序改變,信號發(fā)生器采用數(shù)字波形合成技術(shù),通過硬件電路和軟件程序相結(jié)合,可輸出正弦波、方波、三角波、及其他波形,波形的頻率和幅度在一定范圍內(nèi)可任意改變。波形和頻率的改變通過軟件控制,幅度的改變通過硬件實(shí)現(xiàn)。介紹了波形的生成原理、硬件電路和軟件部分的設(shè)計(jì)原理。具有線路簡單、結(jié)構(gòu)緊湊、性能優(yōu)越等特點(diǎn)。文章給出
3、了源代碼,通過仿真測試,其性能指標(biāo)達(dá)到了設(shè)計(jì)要求。 關(guān)鍵詞:單片機(jī);DAC;信號發(fā)生器目錄1 智能儀器儀表的簡介11.1智能儀器儀表簡介11.2智能儀器儀表的作用12 系統(tǒng)設(shè)計(jì)簡介22.1 函數(shù)發(fā)生器的簡介22.2 設(shè)計(jì)要求22.3 設(shè)計(jì)方案論證22.4 硬件設(shè)計(jì)電路33 系統(tǒng)硬件設(shè)計(jì)43.1 主控電路選擇43.2 顯示電路53.3數(shù)模轉(zhuǎn)換電路53.4時(shí)鐘及復(fù)位電路63.5系統(tǒng)總體電路圖64 設(shè)計(jì)語言及軟件介紹74.1 匯編語言介紹74.2 wave6000軟件介紹75系統(tǒng)軟件設(shè)計(jì)105.1程序流程圖.10 5.1.1主程序.10 5.1.2輸出顯示子程序115.2控制源程序.115.3調(diào)試及
4、仿真.185.4結(jié)論.19參考文獻(xiàn)201 智能儀器儀表的簡介1.1智能儀器儀表簡介儀器儀表(英文:instrumentation)儀器儀表是用以檢出、測量、觀察、計(jì)算各種物理量、物質(zhì)成分、物性參數(shù)等的器具或設(shè)備。真空檢漏儀、壓力表、測長儀、顯微鏡、乘法器等均屬于儀器儀表。廣義來說,儀器儀表也可具有自動控制、報(bào)警、信號傳遞和數(shù)據(jù)處理等功能,例如用于工業(yè)生產(chǎn)過程自動控制中的氣動調(diào)節(jié)儀表,和電動調(diào)節(jié)儀表,以及集散型儀表控制系統(tǒng)也皆屬于儀器儀表。1.2智能儀器儀表的作用隨著科技的不斷發(fā)展,現(xiàn)代社會對各種信息參數(shù)的準(zhǔn)確度和精確度的要求都有了幾何級的增長,而如何準(zhǔn)確而又迅速的獲得這些參數(shù)就需要受制于現(xiàn)代信
5、息基礎(chǔ)的發(fā)展水平。在三大信息信息采集(即傳感器技術(shù))、信息傳輸(通信技術(shù))和信息處理(計(jì)算機(jī)技術(shù))中,傳感器屬于信息技術(shù)的前沿尖端產(chǎn)品,尤其是溫度傳感器技術(shù),在我國各領(lǐng)域已經(jīng)引用的非常廣泛,可以說是滲透到社會的每一個(gè)領(lǐng)域,人民的生活與環(huán)境的溫度息息相關(guān),在工業(yè)生產(chǎn)過程中需要實(shí)時(shí)測量溫度,在農(nóng)業(yè)生產(chǎn)中也離不開溫度的測量,因此研究溫度的測量方法和裝置具有重要的意義。 測量溫度的關(guān)鍵是溫度傳感器,溫度傳感器的發(fā)展經(jīng)歷了三個(gè)發(fā)展階段: 傳統(tǒng)的分立式溫度傳感器 模擬集成溫度傳感器 智能集成溫度傳感器。 在當(dāng)今信息化時(shí)代展過程中,各種信息的感知、采集、轉(zhuǎn)換、傳輸和處理的功能器件已經(jīng)成為各個(gè)應(yīng)用領(lǐng)域中不可缺
6、少的重要技術(shù)工具。傳感器是信息采集系統(tǒng)的首要部件,是實(shí)現(xiàn)現(xiàn)代化測量和自動控制的主要環(huán)節(jié),是現(xiàn)代信息產(chǎn)業(yè)的源頭,又是信息社會賴以存在和發(fā)展的物質(zhì)與技術(shù)基礎(chǔ)。可見理解和撐握傳感器的知識與技術(shù)有著其極重要的意義。傳感器知識面廣,如果在實(shí)踐技能的鍛煉上下功夫,單憑課堂理論課學(xué)習(xí),勢必出現(xiàn)理論與實(shí)踐脫節(jié)的局面。任隨書本上把單片機(jī)技術(shù)介紹得多么重要、多么實(shí)用多么好用,同學(xué)們?nèi)匀粫械侥侵皇强罩袠情w,離自己十分遙遠(yuǎn),或者會感到對它失去興趣,或者會感到它高深莫測無從下手,這些情況都會令課堂教學(xué)的效果大打折扣。 2 系統(tǒng)設(shè)計(jì)簡介2.1函數(shù)發(fā)生器的簡介函數(shù)發(fā)生器作為一種常用的信號源,是現(xiàn)代測試領(lǐng)域內(nèi)應(yīng)用最為廣泛的
7、通用儀器之一。在研制、生產(chǎn)、測試和維修各種電子元件、部件以及整機(jī)設(shè)備時(shí),都學(xué)要有信號源,由它產(chǎn)生不同頻率不同波形的電壓、電流信號并加到被測器件或設(shè)備上,用其他儀器觀察、測量被測儀器的輸出響應(yīng),以分析確定它們的性能參數(shù)。信號發(fā)生器是電子測量領(lǐng)域中最基本、應(yīng)用最廣泛的一類電子儀器。它可以產(chǎn)生多種波形信號,如正弦波,三角波,方波等,因而廣泛用于通信、雷達(dá)、導(dǎo)航、宇航等領(lǐng)域。2.2 設(shè)計(jì)要求本文是做基于單片機(jī)的信號發(fā)生器的設(shè)計(jì),將采用編程的方法來實(shí)現(xiàn)三角波、鋸齒波、矩形波、正弦波的發(fā)生。根據(jù)設(shè)計(jì)的要求,對各種波形的頻率和幅度進(jìn)行程序的編寫,并將所寫程序裝入單片機(jī)的程序存儲器中。在程序運(yùn)行中,當(dāng)接收到來
8、自外界的命令,需要輸出某種波形時(shí)再調(diào)用相應(yīng)的中斷服務(wù)子程序和波形發(fā)生程序,經(jīng)電路的數(shù)/模轉(zhuǎn)換器和運(yùn)算放大器處理后,從信號發(fā)生器的輸出端口輸出。2.3 設(shè)計(jì)方案論證方案一:采用單片函數(shù)發(fā)生器(如8038),8038可同時(shí)產(chǎn)生正弦波、方波等,而且方法簡單易行,用D/A轉(zhuǎn)換器的輸出來改變調(diào)制電壓,也可以實(shí)現(xiàn)數(shù)控調(diào)整頻率,但產(chǎn)生信號的頻率穩(wěn)定度不高。 方案二:采用鎖相式頻率合成器,利用鎖相環(huán),將壓控振蕩器(VCO)的輸出頻率鎖定在所需頻率上,該方案性能良好,但難以達(dá)到輸出頻率覆蓋系數(shù)的要求,且電路復(fù)雜。 方案三:采用單片機(jī)編程的方法來實(shí)現(xiàn)。該方法可以通過編程的方法來控制信號波形的頻率和幅度,而且在硬件
9、電路不變的情況下,通過改變程序來實(shí)現(xiàn)頻率的變換。此外,由于通過編程方法產(chǎn)生的是數(shù)字信號,所以信號的精度可以做的很高。 鑒于方案一的信號頻率不夠穩(wěn)定和方案二的電路復(fù)雜,頻率覆蓋系數(shù)難以達(dá)標(biāo)等缺點(diǎn),所以決定采用方案三的設(shè)計(jì)方法。它不僅采用軟硬件結(jié)合,軟件控制硬件的方法來實(shí)現(xiàn),使得信號頻率的穩(wěn)定性和精度的準(zhǔn)確性得以保證,而且它使用的幾種元器件都是常用的元器件,容易得到,且價(jià)格便宜,使得硬件的開銷達(dá)到最省。 圖1 函數(shù)發(fā)生器原理結(jié)構(gòu)框圖2.4 硬件設(shè)計(jì)電路數(shù)字信號可以通過數(shù)/模轉(zhuǎn)換器轉(zhuǎn)換成模擬信號,因此可通過產(chǎn)生數(shù)字信號再轉(zhuǎn)換成模擬信號的方法來獲得所需要的波形。89C51單片機(jī)本身就是一個(gè)完整的微型計(jì)
10、算機(jī),具有組成微型計(jì)算機(jī)的各部分部件:中央處理器CPU、隨機(jī)存取存儲器RAM、只讀存儲器ROM、I/O接口電路、定時(shí)器/計(jì)數(shù)器以及串行通訊接口等,只要將89C51再配置鍵盤及、數(shù)模轉(zhuǎn)換及波形輸出、放大電路等部分,即可構(gòu)成所需的波形發(fā)生器,硬件原理方框圖如圖所示:圖2 函數(shù)發(fā)生器硬件原理框圖3.系統(tǒng)硬件設(shè)計(jì)3.1主控制器選擇AT89C51單處機(jī)內(nèi)部設(shè)置兩個(gè)16位可編程的定時(shí)器/計(jì)數(shù)器T0和T1,它們具有計(jì)數(shù)器方式和定時(shí)器方式兩種工作方式及4種工作模式。在波形發(fā)生器中,將其作定時(shí)器使用,用它來精確地確定波形的兩個(gè)采樣點(diǎn)輸出之間的延遲時(shí)間。模式1采用的是16位計(jì)數(shù)器,當(dāng)T0或T1被允許計(jì)數(shù)后,從初值
11、開始加計(jì)數(shù),最高位產(chǎn)生溢出時(shí)向CPU請求中斷。中斷系統(tǒng)是使處理器具有對外界異步事件的處理能力而設(shè)置的。當(dāng)中央處理器CPU正在處理某件事的時(shí)候外界發(fā)生了緊急事件,要求CPU暫停當(dāng)前的工作,轉(zhuǎn)而去處理這個(gè)緊急事件。在波形發(fā)生器中,只用到片內(nèi)定時(shí)器計(jì)數(shù)器溢出時(shí)產(chǎn)生的中斷請求,即是在AT89C51輸出一個(gè)波形采樣點(diǎn)信號后,接著啟動定時(shí)器,在定時(shí)器未產(chǎn)生中斷之前,AT89C51等待,直到定時(shí)器計(jì)時(shí)結(jié)束,產(chǎn)生中斷請求,AT89C51響應(yīng)中斷,接著輸出下一個(gè)采樣點(diǎn)信號,如此循環(huán)產(chǎn)生所需要的信號波形。 如圖3所示,AT89C51從P0口接收來自鍵盤的信號,并通過P1口輸出一些控制信號,并在數(shù)碼管上顯示出來。圖
12、3 AT89C51引腳圖3.2顯示電路 顯示電路是用來顯示波形信號的頻率,使得整個(gè)系統(tǒng)更加合理,從經(jīng)濟(jì)的角度出發(fā),所以顯示器件采用LED數(shù)碼管顯示器。而且LED數(shù)碼管是采用共陽極接法,當(dāng)主控端口輸出一個(gè)低電平后,與其相對應(yīng)的數(shù)碼管即變亮,顯示所需數(shù)據(jù)。圖4顯示電路3.3數(shù)模轉(zhuǎn)換電路由于單片機(jī)產(chǎn)生的是數(shù)字信號,要想得到所需要的波形,就要把數(shù)字信號轉(zhuǎn)換成模擬信號,所以該文選用價(jià)格低廉、接口簡單、轉(zhuǎn)換控制容易并具有8位分辨率的數(shù)模轉(zhuǎn)換器DAC0832。DAC0832主要由8位輸入寄存器、8位DAC寄存器、8位D/A轉(zhuǎn)換器以及輸入控制電路四部分組成。但實(shí)際上,DAC0832輸出的電量也不是真正能連續(xù)可
13、調(diào),而是以其絕對分辨率為單位增減,是準(zhǔn)模擬量的輸出。DAC0832是電流型輸出,在應(yīng)用時(shí)外接運(yùn)放使之成為電壓型輸出。 圖5數(shù)模轉(zhuǎn)換電路3.4時(shí)鐘及復(fù)位電路 8051單片機(jī)有兩個(gè)引腳(XTAL1,XTAL2)用于外接石英晶體和微調(diào)電容,從而構(gòu)成時(shí)鐘電路,其電路圖如圖3.5所示。 電容C1、C2對振蕩頻率有穩(wěn)定作用,其容量的選擇為30pf,振蕩器選擇頻率為12MHz的石英晶體。由于頻率較大時(shí),三角波、正弦波、鋸齒波中每一點(diǎn)的延時(shí)時(shí)間為幾微秒,故延時(shí)時(shí)間還要加上指令時(shí)間才能獲得較大的頻率波形。圖6時(shí)鐘及復(fù)位電路3.5系統(tǒng)總體電路圖圖7系統(tǒng)總體設(shè)計(jì)圖4 設(shè)計(jì)語言及軟件介紹4.1 匯編語言介紹匯編大多是
14、指匯編語言,匯編程序。把匯編語言翻譯成機(jī)器語言的過程稱為匯編。在匯編語言中,用助記符(Memoni)代替操作碼,用地址符號(Symbol)或標(biāo)號(Label)代替地址碼。這樣用符號代替機(jī)器語言的二進(jìn)制碼,就把機(jī)器語言變成了匯編語言。于是匯編語言亦稱為符號語言。用匯編語言編寫的程序,機(jī)器不能直接識別,要由一種程序?qū)R編語言翻譯成機(jī)器語言,這種起翻譯作用的程序叫匯編程序,匯編程序是系統(tǒng)軟件中語言處理的系統(tǒng)軟件。隨著現(xiàn)代軟件系統(tǒng)越來越龐大復(fù)雜,大量經(jīng)過了封裝的高級語言如C/C+、Pascal/Object Pascal也應(yīng)運(yùn)而生。這些新的語言使得程序員在開發(fā)過程中能夠更簡單,更有效率,使軟件開發(fā)人員
15、得以應(yīng)付快速的軟件開發(fā)的要求。而匯編語言由于其復(fù)雜性使得其適用領(lǐng)域逐步減小。但這并不意味著匯編已無用武之地。由于匯編更接近機(jī)器語言,能夠直接對硬件進(jìn)行操作,生成的程序與其他的語言相比具有更高的運(yùn)行速度,占用更小的內(nèi)存,因此在一些對于時(shí)效性要求很高的程序、許多大型程序的核心模塊以及工業(yè)控制方面大量應(yīng)用。4.2 wave6000軟件介紹wave6000,這個(gè)軟件是南京偉福公司的單片機(jī)開發(fā)軟件,一般就是用在C51單片機(jī)。不需要購買仿真器,使用軟件模擬器就可以了,使用很方便的。 也支持KEILC,但最好不要在WAVE內(nèi)使用C,如果想用C編寫,還是用KEIL C方便。WAVE6000編譯軟件,采用中文界
16、面。用戶源程序大小不受限制,有豐富的窗口顯示方式,能夠多方位、動態(tài)地展示程序的執(zhí)行過程。其項(xiàng)目管理功能強(qiáng)大,可使單片機(jī)程序化大為小,化繁為簡,便于管理。另外,其書簽、斷點(diǎn)管理功能以及外設(shè)管理功能等為51單片機(jī)的仿真帶來極大的便利。n1.數(shù)據(jù)存儲器n8051單片機(jī)數(shù)據(jù)存儲器用于暫存程序執(zhí)行過程中產(chǎn)生的數(shù)據(jù)和運(yùn)算結(jié)果等。n8051單片機(jī)數(shù)據(jù)存儲器也可以分為片內(nèi)數(shù)據(jù)存儲器和片外數(shù)據(jù)存儲器。當(dāng)片內(nèi)數(shù)據(jù)存儲器不夠用時(shí),可擴(kuò)展片外數(shù)據(jù)存儲器。一般情況下,片外數(shù)據(jù)存儲器的容量不超過64KB。與內(nèi)、外部的程序存儲器不同,內(nèi)部和外部數(shù)據(jù)存儲器空間存在重疊(內(nèi)部RAM的地址范圍為00H07FH, 外部RAM的地址
17、范圍為0000H0FFFFH,如圖3-1所示),通過不同指令來區(qū)別。當(dāng)訪問內(nèi)部RAM時(shí),用MOV類指令;當(dāng)訪問外部RAM時(shí),則用MOVX類指令,所以地址重疊不會造成操作混亂。n8051單片機(jī)的內(nèi)部數(shù)據(jù)存儲器空間共計(jì)128字節(jié),占用00H7FH地址范圍。特殊功能寄存器區(qū)也是128字節(jié),占用80H0FFH這段空間。n片內(nèi)數(shù)據(jù)存儲器分成三大部分:工作寄存器區(qū)、可位尋址區(qū)、通用RAM區(qū)。n2.特殊功能寄存器n特殊功能寄存器(SFR)也稱為專用寄存器,特殊功能寄存器反映了51單片機(jī)的運(yùn)行狀態(tài)。很多功能也通過特殊功能寄存器來定義和控制程序的執(zhí)行。n在8051單片機(jī)中設(shè)置了21個(gè)特殊功能寄存器,它們不連續(xù)地
18、分布在地址為80H-FFH的128個(gè)字節(jié)的存儲空間中。n在這21個(gè)SFR中,凡是字節(jié)地址能被8整除(即16進(jìn)制的地址碼尾數(shù)為0或8)的11個(gè)單元均具有位尋址能力,有效的位地址共有82個(gè)。表3-3是特殊功能寄存器分布一覽表。n82個(gè)有效位地址可用位地址、位符號、單元地址.位序和寄存器名.位序四種方法來表示,但一般是用位符號或寄存器名.位序來表示的。n1.51單片機(jī)指令系統(tǒng)n(1)指令、指令系統(tǒng)的概念n指令是使計(jì)算機(jī)內(nèi)部執(zhí)行的一種操作,提供給用戶編程使用的一種命令。由構(gòu)成計(jì)算機(jī)的電子器件特性所決定,計(jì)算機(jī)只能識別二進(jìn)制代碼。以二進(jìn)制代碼來描述指令功能的語言,稱之為機(jī)器語言。由于機(jī)器語言不便被人們識
19、別、記憶、理解和使用,因此給每條機(jī)器語言指令賦予助記符號來表示,這就形成了匯編語言。也就是說,匯編語言是便于人們識別、記憶、理解和使用的一種指令形式,它和機(jī)器語言指令一一對應(yīng),也是由計(jì)算機(jī)的硬件特性所決定的。n指令的描述形式有兩種:機(jī)器語言形式和匯編語言形式。現(xiàn)在描述計(jì)算機(jī)指令系統(tǒng)及實(shí)際應(yīng)用中主要采用匯編語言形式。采用機(jī)器語言編寫的程序稱之為目標(biāo)程序。采用匯編語言編寫的程序稱之為源程序。計(jì)算機(jī)能夠直接識別并執(zhí)行的只有機(jī)器語言。匯編語言程序不能被計(jì)算機(jī)直接識別并執(zhí)行,必須經(jīng)過一個(gè)中間環(huán)節(jié)把它翻譯成機(jī)器語言程序,這個(gè)中間過程叫做匯編。匯編有兩種方式:機(jī)器匯編和手工匯編。機(jī)器匯編是用專門的匯編程序,
20、在計(jì)算機(jī)上進(jìn)行翻譯;手工匯編是編程員把匯編語言指令逐條翻譯成機(jī)器語言指令。現(xiàn)在主要使用機(jī)器匯編,但有時(shí)也用到手工匯編。5 系統(tǒng)軟件設(shè)計(jì)5.1程序流程圖本文中子程序的調(diào)用是通過按鍵的選擇來實(shí)現(xiàn),在取得按鍵相應(yīng)的鍵值后,啟動計(jì)時(shí)器和相應(yīng)的中斷服務(wù)程序,再直接查詢程序中預(yù)先設(shè)置的數(shù)據(jù)值,通過轉(zhuǎn)換輸出相應(yīng)的電壓,從而形成所需的各種波形。 系統(tǒng)程序主要包括主程序,輸出顯示子程序等程序模塊。 5.1.1主程序主程序的流程圖如圖4.1所示,在程序開始運(yùn)行之后,首先是對各模塊進(jìn)行初始化,之后判斷信號頻率值,如符合所需的頻率,則重置時(shí)間常數(shù),并通過顯示器顯示出來,不符則返回。在中斷結(jié)束后,還要來判斷波形是否符合
21、,如符合,則顯示其頻率,不符則返回,重新判斷。圖8 主程序流程圖5.1.2輸出顯示子程序如圖所示,在中斷服務(wù)子程序開始后,通過判斷來確定各種波形的輸出,當(dāng)判斷選擇的不是方波后,則轉(zhuǎn)向?qū)φ也ǖ呐袛啵绱朔磸?fù)。如果選擇的是方波,則用查表的方法求出相應(yīng)的數(shù)據(jù),并通過D/A轉(zhuǎn)換 器將數(shù)據(jù)轉(zhuǎn)換成模擬信號,形成所需波形信號。圖9輸出顯示程序流程圖5.2 控制源程序#include <reg52.h>#include <absacc.h>#define uchar unsigned char#define DA0832 XBYTE0xffffuchar code tab13=0x3
22、f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39;uchar code num 93=0,0,1,0,3,0,0,2,9,0,2,8,0,2,7,0,2,6,0,2,5,0,2,4,0,2,3,0,2,2,0,2,1,0,2,0,0,1,9,0,1,8,0,1,7,0,1,6,0,1,5,0,1,4,0,1,3,0,1,2,0,1,1,0,1,0,0,0,9,0,0,8,0,0,7,0,0,6,0,0,5,0,0,4,0,0,3,0,0,2,0,0,1;uchar code tosin256=0x7F,0x82,0x85
23、,0x88,0x8B,0x8F,0x92,0x95,0x98,0x9B,0x9E,0xA1,0xA4,0xA7,0xAA,0xAD,0xB0,0xB3,0xB6,0xB8,0xBB,0xBE,0xC1,0xC3,0xC6,0xC8,0xCB,0xCD,0xD0,0xD2,0xD5,0xD7,0xD9,0xDB,0xDD,0xE0,0xE2,0xE4,0xE5,0xE7,0xE9,0xEB,0xEC,0xEE,0xEF,0xF1,0xF2,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFB,0xFC,0xFD,0xFD,0xFE,0xFE,0xFE,0xFE
24、,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFD,0xFD,0xFC,0xFB,0xFB,0xFA,0xF9,0xF8,0xF7,0xF6,0xF5,0xF4,0xF2,0xF1,0xEF,0xEE,0xEC,0xEB,0xE9,0xE7,0xE5,0xE4,0xE2,0xE0,0xDD,0xDB,0xD9,0xD7,0xD5,0xD2,0xD0,0xCD,0xCB,0xC8,0xC6,0xC3,0xC1,0xBE,0xBB,0xB8,0xB6,0xB3,0xB0,0xAD,0xAA,0xA7,0xA4,0xA1,0x9E,0x9B,0x98,0x95,0x92
25、,0x8F,0x8B,0x88,0x85,0x82,0x7F,0x7C,0x79,0x76,0x73,0x6F,0x6C,0x69,0x66,0x63,0x60,0x5D,0x5A,0x57,0x54,0x51,0x4E,0x4B,0x48,0x46,0x43,0x40,0x3D,0x3B,0x38,0x36,0x33,0x31,0x2E,0x2C,0x29,0x27,0x25,0x23,0x21,0x1E,0x1C,0x1A,0x19,0x17,0x15,0x13,0x12,0x10,0x0F,0x0D,0x0C,0x0A,0x09,0x08,0x07,0x06,0x05,0x04,0x03
26、,0x03,0x02,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0C,0x0D,0x0F,0x10,0x12,0x13,0x15,0x17,0x19,0x1A,0x1C,0x1E,0x21,0x23,0x25,0x27,0x29,0x2C,0x2E,0x31,0x33,0x36,0x38,0x3B,0x3D,0x40,0x43,0x46,0x48,0x4B,0x4E,0x51,0x54
27、,0x57,0x5A,0x5D,0x60,0x63,0x66,0x69,0x6C,0x6F,0x73,0x76,0x79,0x7C;uchar fun=1,b=0,c=0,d=0,e=0,tl,th,flag=0;sbit P3_0=P30;sbit P3_1=P31;sbit P3_2=P32;sbit P2_7=P27;uchar de1,de2;uchar A=3;void key1(void);void key2(void);void key3(void);void delay(uchar k);void main(void)TMOD=0X01;th=0xff;tl=0x1e;TH0=
28、th;TL0=tl;ET0=1;EA=1;EX1=1;PX1=1;IT1=1;TR0=1;while(1) P3_0=0; P3_1=1; P3_2=0;if(numflag*3!=0)P1=tabnumflag*3;delay(0.01);elseP1=0;P3_0=1; P3_1=0; P3_2=0;P1=tabnumflag*3+1;delay(0.01);P1=0;P3_0=0; P3_1=0; P3_2=0;P1=tabnumflag*3+2;delay(0.01);P1=0;P3_0=1; P3_1=1; P3_2=0;P1=tabfun+9;delay(0.01);P1=0; v
29、oid delay(uchar k) /延時(shí)程序for(de1=0;de1<10;de1+) for(de2=0;de2<k;de2+);void key1(void) /鍵選擇發(fā)波類型,1為正弦波,2為三角波,3為方波fun+;if(fun=4)fun=0x01; void key2(void) /鍵加大頻率tl+=0x00;if(tl>0x1e)tl=0x01;if(flag>0)flag-;elseflag=30;void key3(void) /鍵減小頻率if(th>0x00)th-=0x1;if(flag<30)flag+;else flag=0;
30、void time0_int(void) interrupt 1 /中斷服務(wù)程序 TR0=0; if(fun=1) DA0832=tosinb/4*A; /正弦波 delay(flag) ; b+; else if(fun=2) /三角波 if(c<128) DA0832=c*2/4*A; delay(flag); else DA0832=(255-c)*2/4*A; delay(flag); c+; else if(fun=3) / 方波 d+; if(d<=128) DA0832=0x00; delay(flag); else DA0832=0xff/4*A; delay(fl
31、ag); TH0=th;TL0=tl;TR0=1;void int1 (void) interrupt 2 /int1中斷服務(wù)程序 if(P2!=0xff) delay(flag);if(P2=0xff) return; if(P2=0xef) key1(); if(P2=0xdf) key2(); if(P2=0xbf) key3();HEX輸出文件。5.3 調(diào)試及仿真經(jīng)軟件調(diào)試-仿真器proteus調(diào)試通過,并燒錄芯片,得到所要求的設(shè)計(jì)結(jié)果。如圖5.4試驗(yàn)成功。(1)正弦波仿真圖: 圖10函數(shù)發(fā)生器仿真圖(2)方波仿真圖:圖11函數(shù)發(fā)生器仿真圖(3)三角波仿真圖:圖12函數(shù)發(fā)生器仿真圖5.4結(jié) 論課程設(shè)計(jì)是培養(yǎng)
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 考察教育行業(yè)的專業(yè)知識
- 焊接方法與設(shè)備培訓(xùn)知識
- 博物館綜合安防方案
- 財(cái)務(wù)新視野培訓(xùn)之出口退稅培訓(xùn)
- 紅色卡通插畫風(fēng)消防安全教育
- 顧客心理在新零售門店布局中的影響
- 風(fēng)能產(chǎn)業(yè)發(fā)展趨勢與政策激勵(lì)研究
- 顧客為中心新零售體驗(yàn)設(shè)計(jì)的基石
- 音樂產(chǎn)業(yè)在經(jīng)濟(jì)發(fā)展中的貢獻(xiàn)與影響分析
- 非物質(zhì)文化遺產(chǎn)的數(shù)字化跨領(lǐng)域融合與創(chuàng)新應(yīng)用
- 品管圈PDCA改善案例-降低住院患者跌倒發(fā)生率
- 銀行催收實(shí)習(xí)心得
- 2024年高考政治總復(fù)習(xí)必修三《政治與法治》 綜合測試題及答案
- 2023水電工程費(fèi)用構(gòu)成及概(估)算費(fèi)用標(biāo)準(zhǔn)
- Unit2 Bridging Cultures Discovering useful structures 課件英語人教版(2019)選擇性必修第二冊
- 天然氣管道安裝施工組織方案
- 《能源培訓(xùn)講義》課件
- GB/T 12996-2024電動輪椅車
- 機(jī)械制圖教學(xué)工作頁 第2版 課件 項(xiàng)目7測繪一級直齒圓柱減速器主動齒輪軸
- 2022年國家公務(wù)員考試《行測》真題(行政執(zhí)法)及答案解析
- 2023-2024學(xué)年七年級英語下學(xué)期期末考試試卷(天津卷)
評論
0/150
提交評論