久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 2164|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

基于51單片機(jī)的信號(hào)發(fā)生器設(shè)計(jì)報(bào)告下載 pdf格式

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:341894 發(fā)表于 2018-5-31 08:58 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式

完整的pdf格式文檔51黑下載地址:
基于51單片機(jī)的信號(hào)發(fā)生器設(shè)計(jì)報(bào)告.pdf (4.91 MB, 下載次數(shù): 39)



摘要
本次設(shè)計(jì)利用單片機(jī)  AT89C52采用程序設(shè)計(jì)方法產(chǎn)生三角波、正弦波、方波三種波形,再通過(guò) D/A轉(zhuǎn)換器  DAC0832將數(shù)字信號(hào)轉(zhuǎn)換成模擬信號(hào),濾波放大,最終由示波器顯示出來(lái),能產(chǎn)生   1Hz—1kHz 的波形。通過(guò)鍵盤(pán)來(lái)控制三種波形的類(lèi)型選擇、撥碼開(kāi)關(guān)控制頻率的變化,并通過(guò)液晶屏  1602 顯示其各自的類(lèi)型以及數(shù)值,系統(tǒng)大致包括信號(hào)發(fā)生部分、數(shù) / 模轉(zhuǎn)換部分以及液晶顯示部分三部分。
本次設(shè)計(jì)是在   proteus  環(huán)境下搭建仿真電路圖并進(jìn)行模擬仿真。
本次設(shè)計(jì)可以產(chǎn)生   5HZ-50HZ的正弦波, 100HZ-1000HZ的方波, 25HZ-250HZ的三角波。


目    錄
1       緒    論........................................................................................ 1
1.1        選題意義............................................................................... 1
1.2        研究現(xiàn)狀............................................................................... 1
1.2.1   信號(hào)發(fā)生器的發(fā)展歷史.................................................... 1
1.2.2   信號(hào)發(fā)生器的發(fā)展特點(diǎn).................................................... 2
2       總體設(shè)計(jì)方案.............................................................................. 5
2.1        設(shè)計(jì)思路............................................................................... 5
2.1.1   設(shè)計(jì)內(nèi)容及要求.............................................................. 5
2.1.2   方案選擇及論證.............................................................. 5
2.2        方案結(jié)構(gòu)模塊劃分................................................................. 6
3       硬件電路的設(shè)計(jì)........................................................................... 9
3.1        主控電路及主控芯片的選擇................................................... 9
3.2        單片機(jī)的發(fā)展史.................................................................... 9
3.3        單片機(jī)的特點(diǎn)...................................................................... 10
3.4     89C51 單片機(jī)最小系統(tǒng)......................................................... 10
3.4.1   D/A 轉(zhuǎn)換電路............................................................... 14
3.4.2   按鍵輸入電路................................................................ 17
3.4.3   液晶顯示電路................................................................ 18
4       軟件設(shè)計(jì)與仿真......................................................................... 19
4.1     PROTEUS 簡(jiǎn)介................................................................... 19
4.2        仿真圖................................................................................ 20
4.3        原理圖................................................................................ 20
4.4        仿真結(jié)果圖......................................................................... 21
5總結(jié)......................................................................................... 25
致    謝.......................................................................................... 27
參考文獻(xiàn)....................................................................................... 29
6附錄......................................................................................... 31



1     緒    論
1.1     選題意義
隨著電子測(cè)量及其他部門(mén)對(duì)各類(lèi)信號(hào)發(fā)生器的廣泛需求及電子技術(shù)的迅速發(fā)展
促使信號(hào)發(fā)生器種類(lèi)增多,性能提高。尤其隨著      70 年代微處理器的出現(xiàn),更促使信號(hào)發(fā)生器向著自動(dòng)化、智能化方向發(fā)展。現(xiàn)在,許多信號(hào)發(fā)生器帶有微處理器,因而具
備了自校、自檢、自動(dòng)故障診斷和自動(dòng)波形形成和修正等功能,可以和控制計(jì)算機(jī)及    其他測(cè)量?jī)x器一起方便的構(gòu)成自動(dòng)測(cè)試系統(tǒng)                                                           [1] 。當(dāng)前信號(hào)發(fā)生器總的趨勢(shì)是向著寬頻率覆蓋、低功耗、高頻率精度、多功能、自動(dòng)化和智能化方向發(fā)展。
在科學(xué)研究、工程教育及生產(chǎn)實(shí)踐中,如工業(yè)過(guò)程控制、教學(xué)實(shí)驗(yàn)、機(jī)械振動(dòng)試驗(yàn)、動(dòng)態(tài)分析、材料試驗(yàn)、生物醫(yī)學(xué)等領(lǐng)域,常常需要用到低頻信號(hào)發(fā)生器。而在我們?nèi)粘I钪校约耙恍┛茖W(xué)研究中,鋸齒波和正弦波、矩形波信號(hào)是常用的基本測(cè)試信號(hào)。譬如在示波器、電視機(jī)等儀器中,為了使電子按照一定規(guī)律運(yùn)動(dòng),以利用熒光屏顯示圖像,常用到鋸齒波產(chǎn)生器作為時(shí)基電路。信號(hào)發(fā)生器作為一種通用的電子
儀器,在生產(chǎn)、科研、測(cè)控、通訊等領(lǐng)域都得到了廣泛的應(yīng)用。                                                                                                      但市面上能看到的儀
器在頻率精度、帶寬、波形種類(lèi)及程控方面都已不能滿足許多方面實(shí)際應(yīng)用的需求。加之各類(lèi)功能的半導(dǎo)體集成芯片的快速生產(chǎn),都使我們研制一種低功耗、寬頻帶,能產(chǎn)生多種波形并具有程控等低頻的信號(hào)發(fā)生器成為可能[3]。
1.2     研究現(xiàn)狀1.2.1     信號(hào)發(fā)生器的發(fā)展歷史
目前,市場(chǎng)上常見(jiàn)的波形發(fā)生器多為純硬件的搭接而成,且波形種類(lèi)有限,多為    鋸齒、正弦、方波、三角等波形。信號(hào)發(fā)生器作為一種常見(jiàn)的應(yīng)用電子儀器設(shè)備,傳    統(tǒng)的可以完全由硬件電路搭接而成。如采用                           555 振蕩電路發(fā)生正弦波、三角波和方波的電路便是可取的路徑之一,不用依靠單片機(jī)。但是這種電路存在波形質(zhì)量差,控制    難,可調(diào)范圍小電路復(fù)雜和體積大等缺點(diǎn)。在科學(xué)研究和生產(chǎn)實(shí)踐中,如工業(yè)過(guò)程控    制,生物醫(yī)學(xué),地震模擬機(jī)械振動(dòng)等領(lǐng)域常常要用到低頻信號(hào)源,而由硬件電路構(gòu)成
的低頻信號(hào)其性能難以令人滿意,而且由于低頻信號(hào)源所需的                                                                                             RC很大:大電阻,大電容在制作上有困難,參數(shù)的精度亦難以保證:體積大,漏電,損耗顯著更是其致命的
弱點(diǎn)。一旦工作需求功能有增加,則電路復(fù)雜程度會(huì)大大增加。
在 70  年代前,信號(hào)發(fā)生器主要有兩類(lèi):正弦波和脈沖波,而函數(shù)發(fā)生器介于兩類(lèi)之間,能夠提供正弦波、余弦波、方波、三角波、上弦波等幾種常用標(biāo)準(zhǔn)波形,產(chǎn)



生其它波形時(shí),需要采用較復(fù)雜的電路和機(jī)電結(jié)合的方法。這個(gè)時(shí)期的波形發(fā)生器多 采用模擬電子技術(shù),而且模擬器件構(gòu)成的電路存在著尺寸大、價(jià)格貴、功耗大等缺點(diǎn),并且要產(chǎn)生較為復(fù)雜的信號(hào)波形,則電路結(jié)構(gòu)非常復(fù)雜。同時(shí),主要表現(xiàn)為兩個(gè)突出問(wèn)題,一是通過(guò)電位器的調(diào)節(jié)來(lái)實(shí)現(xiàn)輸出頻率的調(diào)節(jié),因此很難將頻率調(diào)到某一固定 值二是脈沖的占空比不可調(diào)節(jié)                                                [13] 。
在 70 年代后,微處理器的出現(xiàn),可以利用處理器、   A/D/ 和 D/A ,硬件和軟件使波形發(fā)生器的功能擴(kuò)大,產(chǎn)生更加復(fù)雜的波形。這時(shí)期的波形發(fā)生器多以軟件為主,實(shí)
質(zhì)是采用微處理器對(duì)   DAC的程序控制,就可以得到各種簡(jiǎn)單的波形。
90    年代末,出現(xiàn)幾種真正高性能、高價(jià)格的函數(shù)發(fā)生器、但是                                                                                              HP 公司推出了型號(hào)為 HP770S的信號(hào)模擬裝置系統(tǒng),它由 HP8770A任意波形數(shù)字化和   HP1776A波形發(fā)生軟件組成。HP8770A實(shí)際上也只能產(chǎn)生 8 中波形,而且價(jià)格昂貴。不久以后,Analogic 公司推出了型號(hào)為 Data-2020 的多波形合成器, Lecroy 公司生產(chǎn)的型號(hào)為 9100 的任意波形發(fā)生器等。
二十一世紀(jì), 隨著集成電路技術(shù)的高速發(fā)展,  出現(xiàn)了多種工作頻率可過(guò)         GHz的 DDS 芯片,同時(shí)也推動(dòng)了函數(shù)波形發(fā)生器的發(fā)展,             2003 年,Agilent                    的產(chǎn)品 33220A 能夠產(chǎn)生 17 種波形,最高頻率可達(dá)                      20M,2005 年的產(chǎn)品 N6030A 能夠產(chǎn)生高達(dá)            500MHZ的頻率,采樣的頻率可達(dá)                           1.25GHz。由上面的產(chǎn)品可以看出,函數(shù)波形發(fā)生器發(fā)展很快                            [14] 。
1.2.2     信號(hào)發(fā)生器的發(fā)展特點(diǎn)
而近幾年來(lái),國(guó)際上波形發(fā)生器技術(shù)發(fā)展主要體現(xiàn)在以下幾個(gè)方面:
( 1)過(guò)去由于頻率很低應(yīng)用的范圍比較狹小,輸出波形頻率的提高,使得波形發(fā)生器能應(yīng)用于越來(lái)越廣的領(lǐng)域。波形發(fā)生器軟件的開(kāi)發(fā)正使波形數(shù)據(jù)的輸入變得更加  方便和容易。波形發(fā)生器通常允許用一系列的點(diǎn)、直線和固定的函數(shù)段把波形數(shù)據(jù)存  入存儲(chǔ)器。同時(shí)可以利用一種強(qiáng)有力的數(shù)學(xué)方程輸入方式,復(fù)雜的波形可以由幾個(gè)比  較簡(jiǎn)單的公式復(fù)合成 v=f                                   (t) 形式的波形方程的數(shù)學(xué)表達(dá)式產(chǎn)生。從而促進(jìn)了函數(shù)波形發(fā)生器向任意波形發(fā)生器的發(fā)展,各種計(jì)算機(jī)語(yǔ)言的飛速發(fā)展也對(duì)任意波形發(fā)生器軟
件技術(shù)起到了推動(dòng)作用。目前可以利用可視化編程語(yǔ)言      (如 Visual Basic ,Visual C 等等)
編寫(xiě)任意波形發(fā)生器的軟面板,這樣允許從計(jì)算機(jī)顯示屏上輸入任意波形,來(lái)實(shí)現(xiàn)波形的輸入。
( 2)與 VXI 資源結(jié)合。目前,波形發(fā)生器由獨(dú)立的臺(tái)式儀器和適用于個(gè)人計(jì)算機(jī)    的插卡以及新近開(kāi)發(fā)的             VXI 模塊。由于 VXI   總線的逐漸成熟和對(duì)測(cè)量?jī)x器的高要求, 在很多領(lǐng)域需要使用   VXI 系統(tǒng)測(cè)量產(chǎn)生復(fù)雜的波形,         VXI  的系統(tǒng)資源提供了明顯的優(yōu)越性,但由于開(kāi)發(fā)       VXI        模塊的周期長(zhǎng),而且需要專(zhuān)門(mén)的                                                VXI 機(jī)箱的配套使用,使得波形發(fā)生器 VXI 模塊僅限于航空、軍事及國(guó)防等大型領(lǐng)域。在民用方面,                        VXI        模塊遠(yuǎn)遠(yuǎn)不如臺(tái)式儀器更為方便。
( 3)隨著信息技術(shù)蓬勃發(fā)展,臺(tái)式儀器在走了一段下坡路之后,又重新繁榮起來(lái)。不過(guò)現(xiàn)在新的臺(tái)式儀器的形態(tài),和幾年前的己有很大的不同。這些新一代臺(tái)式儀器具有多種特性,可以執(zhí)行多種功能。而且外形尺寸與價(jià)格,都比過(guò)去的類(lèi)似產(chǎn)品減少了 一半。



2     總體設(shè)計(jì)方案2.1     設(shè)計(jì)思路
由于要求達(dá)到模擬信號(hào)波形發(fā)生,因此要由      D/A 轉(zhuǎn)換芯片來(lái)完成此項(xiàng)任務(wù),由基準(zhǔn)電路來(lái)實(shí)現(xiàn)輸出波形的幅度可調(diào),通過(guò)電位器調(diào)節(jié)波形的變化。經(jīng)過(guò)數(shù)模轉(zhuǎn)換電路
輸出的信號(hào)為電流形式,因此需要加電流    /電壓轉(zhuǎn)換電路來(lái)改變輸出信號(hào)的形式。
2.1.1     設(shè)計(jì)內(nèi)容及要求
(1)原始數(shù)據(jù)
1)信號(hào)發(fā)生器的頻率范圍:   1Hz~1KHz
2)信號(hào)發(fā)生器的幅度范圍:   100mV  ~5V
(2)技術(shù)要求:
1            )能夠輸出正弦、三角波和方波,并且輸出信號(hào)的頻率和幅度可調(diào)
2            )具有良好的人機(jī)界面
(3)工作要求:
1)采用 proteus 軟件設(shè)計(jì)基于 MCS-51系列單片機(jī)的信號(hào)發(fā)生器
2)采用相關(guān)語(yǔ)言編寫(xiě)應(yīng)用程序并調(diào)試
3)對(duì)系統(tǒng)進(jìn)行測(cè)試和結(jié)果分析
4)寫(xiě)出論文方案選擇及論證
2.1.2     方案選擇及論證
方案一:用分立元件組成的函數(shù)發(fā)生器,通常是單函數(shù)發(fā)生器且頻率不高,其工作不很穩(wěn)定,不易調(diào)試。
方案二:可以由晶體管、運(yùn)放    IC 等通用器件制作,更多的則是用專(zhuān)門(mén)的函數(shù)信號(hào)
發(fā)生器 IC 產(chǎn)生。早期的函數(shù)信號(hào)發(fā)生器 IC,如 L8038、BA205、XR2207/2209 等,它們的功能較少,精度不高,頻率上限只有                                                                  300kHz,無(wú)法產(chǎn)生更高頻率的信號(hào),調(diào)節(jié)方式也不夠靈活,頻率和占空比不能獨(dú)立調(diào)節(jié),二者互相影響。
方案三:利用單片集成芯片的函數(shù)發(fā)生器,能產(chǎn)生多種波形,達(dá)到較高的頻率且
易于調(diào)試。鑒于此,美國(guó)馬克西姆公司開(kāi)發(fā)了新一代函數(shù)信號(hào)發(fā)生器                                                                              ICMAX038 , 它克服了上述方案二中芯片的缺點(diǎn),可以達(dá)到更高的技術(shù)指標(biāo),是上述芯片望塵莫及的。
MAX038 頻率高、精度好,因此它被稱為高頻精密函數(shù)信號(hào)發(fā)生器                                                                                     IC。在鎖相環(huán)、壓控振蕩器、頻率合成器、脈寬調(diào)制器等電路的設(shè)計(jì)上,                                                                                     MAX038 都是優(yōu)選的器件。



方案四:利用專(zhuān)用直接數(shù)字合成    DDS 芯片的函數(shù)發(fā)生器,能產(chǎn)生任意波形并達(dá)到很高的頻率,但成本較高。
方案五:采用函數(shù)信號(hào)發(fā)生器     ICL8038 集成模擬芯片,它是一種可以同時(shí)產(chǎn)生方波、三角波、正弦波的專(zhuān)用集成電路。但是這種模塊產(chǎn)生的波形都不是純凈的波形,    會(huì)寄生一些高次諧波分量,采用其他的措施雖可濾除一些,但不能完全濾除掉,且價(jià)    格較高。
方案六: 采用 AT89C51 單片機(jī)和 DAC0832 數(shù)模轉(zhuǎn)換器相結(jié)合的電路來(lái)產(chǎn)生波形, 由于是軟件濾波,所以不會(huì)有寄生的高次諧波分量,生成的波形比較純凈。它的特點(diǎn)
是價(jià)格低、性能高,在低頻范圍內(nèi)穩(wěn)定性好、操作方便、體積小、耗電少,適合學(xué)生
畢業(yè)設(shè)計(jì)。
經(jīng)比較,方案六既可滿足畢業(yè)設(shè)計(jì)的基本要求又能充分發(fā)揮其優(yōu)勢(shì),電路簡(jiǎn)單,易控制,性價(jià)比高,所以采用此方案。
2.2     方案結(jié)構(gòu)模塊劃分
本次設(shè)計(jì)所研究的就是用單片機(jī)將某種波形所對(duì)應(yīng)的數(shù)字量進(jìn)行輸出,再通過(guò)
D/A 轉(zhuǎn)換器轉(zhuǎn)換輸出一組連續(xù)變化的   5V 的電壓脈沖值,同時(shí)再通過(guò)液晶顯示部分顯示其頻率值和波形名稱              [10] 。在設(shè)計(jì)時(shí)分塊來(lái)做,分為  D/A 轉(zhuǎn)換,單片機(jī)系統(tǒng),鍵盤(pán)控制和液晶顯示             4 個(gè)主要模塊,最后通過(guò)聯(lián)調(diào)仿真,做出電路板成品,從而簡(jiǎn)化人機(jī)交互的問(wèn)題,具體設(shè)計(jì)模塊如圖     2-1 所示。
復(fù)位電路                                                                                                                             D/A 轉(zhuǎn)化電路



晶振電路
按鍵輸入電路

51 單片機(jī)

液晶顯示電路
信號(hào)輸出電路



圖 2-1結(jié)構(gòu)模塊劃分
單片機(jī)最小系統(tǒng):包括時(shí)鐘電路和復(fù)位電路。
鍵盤(pán)控制電路:用按鍵來(lái)控制輸出波形的種類(lèi)和調(diào)節(jié)頻率。
D/A 轉(zhuǎn)換電路:?jiǎn)纹瑱C(jī)把待轉(zhuǎn)換的數(shù)字量輸送到     DAC0832來(lái)把數(shù)字信號(hào)轉(zhuǎn)換為模



擬信號(hào)。
顯示電路:采用液晶顯示器顯示波形的名稱和頻率。
系統(tǒng)要求是便攜式低功耗的,所以在硬件電路建立前首先粗略計(jì)算一下整個(gè)系統(tǒng)所需的功耗,考慮單片機(jī)部分功耗的大小,選擇合適的器件以及參數(shù)。



3     硬件電路的設(shè)計(jì)3.1      主控電路及主控芯片的選擇
單片機(jī)即單片微型計(jì)算機(jī)(   Single CHip Microcomputer )是把組成微型計(jì)算機(jī)的各種功能部件,包括中央處理單元( CPU)、隨機(jī)存儲(chǔ)器( RAM )、程序存儲(chǔ)器( ROM )、定時(shí)器/計(jì)數(shù)器及輸入輸出接口等部件都集成在一塊芯片上。是一種集成度高、性價(jià)比
優(yōu)越、質(zhì)量小、體積小的微型計(jì)算機(jī)。單片機(jī)按其使用目的可以分為通用和專(zhuān)用兩種類(lèi)型。通用單片機(jī)是一種基本芯片,內(nèi)部功能及資源豐富,性能全面,適應(yīng)性強(qiáng)可覆蓋多種用途。用戶可以根據(jù)需要設(shè)計(jì)成各種不同的單片機(jī)控制系統(tǒng),即有一個(gè)再設(shè)計(jì)的過(guò)程。專(zhuān)用型單片機(jī)在設(shè)計(jì)時(shí)已對(duì)系統(tǒng)結(jié)構(gòu)進(jìn)行了簡(jiǎn)化,對(duì)軟、硬件進(jìn)行了優(yōu)化,可靠性高,成本低,但是這類(lèi)單片機(jī)功能單一,通常是針對(duì)某一特定的產(chǎn)品。本設(shè)計(jì)
應(yīng)采用通用型單片機(jī)。
隨著半導(dǎo)體集成工藝的不斷發(fā)展,單片機(jī)也正朝著                                             CMOS 化、低功耗、體積小、大容量、高性能低價(jià)格和外圍電路內(nèi)裝化等幾個(gè)方向發(fā)展。在單片機(jī)家族中,                                                                               Intel                                             公司推出的 MCS-51 系列中的                                             80C51 是其中的佼佼者。MCS-51 系列單片機(jī)是                            8 位單片機(jī)中應(yīng)用范圍最廣的一類(lèi)單片機(jī)。近幾年來(lái),許多單片機(jī)開(kāi)發(fā)廠商也推出了許多基于
80C51 單片機(jī)內(nèi)核的擴(kuò)展型單片機(jī),產(chǎn)品在保持與     51 單片機(jī)兼容的基礎(chǔ)上改善了很多 特性,性能各異。常用的單片機(jī)有很多種: Intel8051 和 8751 系列、Motorola 的 MC6801 系列、Atmel 的 AT89 系列、臺(tái)灣 Winbond( 華邦)W7 和 W78 系列、荷蘭 PHilips 的 51LPC 和 LPC900 系列、ZILOG 的 Z8 系列等。本設(shè)計(jì)中最終選用了                                               ATMEL 公 司 的 AT89C51 單片機(jī)。 AT89C51 單片機(jī)是美國(guó)     ATMEL 公司推出的低功耗   /低電壓、高性能的 8 位單片機(jī),片內(nèi)含                       4KBFlasH 程序存儲(chǔ)器,它采用了   CMOS 工藝和 ATMEL    公司的高密度非易失性存儲(chǔ)器(       NURAM )技術(shù),該存儲(chǔ)器的全稱為閃速可編程可擦除只讀存儲(chǔ)器
(FPEROM,F(xiàn)lasHProgrammable and Erasable Read Only Memor)y,其輸出引腳和指令
系統(tǒng)與標(biāo)準(zhǔn)  MCS-51 系統(tǒng)兼容。由于將多功能   8 位 CPU 和閃爍存儲(chǔ)器組合在單個(gè)芯片中,是一種高效微控制器,為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案
[15]。
3.2     單片機(jī)的發(fā)展史
單片機(jī)誕生于  20 世紀(jì) 70 年代末,經(jīng)歷了 SCM、MCU 、SoC 三大階段。起初模型
1. SCM 即單片微型計(jì)算機(jī)(  Single Chip Microcomputer)階段,主要是尋求最佳的



單片形態(tài)嵌入式系統(tǒng)的最佳體系結(jié)構(gòu)。  “創(chuàng)新模式”獲得成功,奠定了                                                      SCM 與通用計(jì)算機(jī)完全不同的發(fā)展道路。在開(kāi)創(chuàng)嵌入式系統(tǒng)獨(dú)立發(fā)展道路上,                                                             Intel 公司功不可沒(méi)。
2. MCU 即微控制器( Micro Controller Unit    )階段,主要的技術(shù)發(fā)展方向是,不斷擴(kuò)展?jié)M足嵌入式應(yīng)用時(shí),對(duì)象系統(tǒng)要求的各種外圍電路與接口電路,突顯其對(duì)象的智
能化控制能力。 它所涉及的領(lǐng)域都與對(duì)象系統(tǒng)相關(guān), 因此,發(fā)展 MCU的重任不可避免地落在電氣、電子技術(shù)廠家。從這一角度來(lái)看, Intel 逐漸淡出   MCU  的發(fā)展也有其客觀因素。在發(fā)展MCU方面,最著名的廠家當(dāng)數(shù)Philips 公司。
Philips 公司以其在嵌入式應(yīng)用方面的巨大優(yōu)勢(shì),   將 MCS-51 從單片微型計(jì)算機(jī)迅速發(fā)展到微控制器。 因此,當(dāng)我們回顧嵌入式系統(tǒng)發(fā)展道路時(shí),                                             不要忘記 Intel 和 Philips 的歷史功績(jī)。
嵌入式系統(tǒng)
單片機(jī)是嵌入式系統(tǒng)的獨(dú)立發(fā)展之路,   向 MCU 階段發(fā)展的重要因素, 就是尋求應(yīng)用系統(tǒng)在芯片上的最大化解決:因此,專(zhuān)用單片機(jī)的發(fā)展自然形成了                        SoC 化趨勢(shì)。隨著微電子技術(shù)、 IC 設(shè)計(jì)、EDA 工具的發(fā)展, 基于 SoC 的單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)會(huì)有較大的發(fā)展。
因此,對(duì)單片機(jī)的理解可以從單片微型計(jì)算機(jī)、單片微控制器延伸到單片應(yīng)用系統(tǒng)。
3.3     單片機(jī)的特點(diǎn)
1  . 單片機(jī)的存儲(chǔ)器  ROM 和 RAM 時(shí)嚴(yán)格區(qū)分的。 ROM 稱為程序存儲(chǔ)器, 只存放程序,固定常數(shù),及數(shù)據(jù)表格。          RAM 則為數(shù)據(jù)存儲(chǔ)器,用作工作區(qū)及存放用戶數(shù)據(jù)。
2  . 采用面向控制的指令系統(tǒng)。為滿足控制需要,單片機(jī)有更強(qiáng)的邏輯控制能力特別是單片機(jī)具有很強(qiáng)的位處理能力。
3  . 單片機(jī)的 I/O 口通常時(shí)多功能的。由于單片機(jī)芯片上引腳數(shù)目有限,為了解決實(shí)際引腳數(shù)和需要的信號(hào)線的矛盾,采用了引腳功能復(fù)用的方法,引腳處于何種功能 可由指令來(lái)設(shè)置或由機(jī)器狀態(tài)來(lái)區(qū)分。
4  . 單片機(jī)的外部擴(kuò)展能力很強(qiáng)。在內(nèi)部的各種功能部件不能滿足應(yīng)用的需求時(shí),均可在外部進(jìn)行擴(kuò)展,與許多通用的微機(jī)接口芯片兼容,給應(yīng)用系統(tǒng)設(shè)計(jì)帶來(lái)了很大的方便[14] 。
3.4     89C51 單片機(jī)最小系統(tǒng)
51 單片機(jī)是對(duì)目前所有兼容   intel    8031 指令系統(tǒng)的單片機(jī)的統(tǒng)稱。         該系列單片機(jī)的始祖是 intel                          的 8031 單片機(jī),后來(lái)隨著技術(shù)的發(fā)展,成為目前廣泛應(yīng)用的8為單片機(jī)之一。單片機(jī)是在一塊芯片內(nèi)集成了                          CPU、RAM、ROM、定時(shí)器/計(jì)數(shù)器和多功能                          I/O口等計(jì)算機(jī)所需要的基本功能部件的大規(guī)模集成電路,又稱為                          MCU。51 系列單片機(jī)內(nèi)包含以下幾個(gè)部件:



圖 3-1STC89C52RC 單 片 機(jī)
STC89C52RC 本身內(nèi)含 40 個(gè)引腳, 32 個(gè)外部雙向輸入 /輸出( I/O)端口,同時(shí)內(nèi)含 2 個(gè)外中端口, 3 個(gè) 16 位可編程定時(shí)計(jì)數(shù)器                          ,2 個(gè)全雙工串行通信口,                                               STC89C51RC 可以按照常規(guī)方法進(jìn)行編程,                              但不可以在線編程。 其將通用的微處理器和                                       Flash 存儲(chǔ)器結(jié)合在一起,特別是可反復(fù)擦寫(xiě)的                    Flash 存儲(chǔ)器可有效地降低開(kāi)發(fā)成本                                            [9] 。
STC89C52RC 的主要特性如表   3-2 所示:



STC89C52R為C 40 腳雙列直插封裝的   8 位通用微處理器,采用工業(yè)標(biāo)準(zhǔn)的                                            C51內(nèi)核,
在內(nèi)部功能及管腳排布上與通用的     8xc52 相同,其主要用于會(huì)聚調(diào)整時(shí)的功能控制。
功能包括對(duì)會(huì)聚主   IC 內(nèi)部寄存器、數(shù)據(jù)  RAM及外部接口等功能部件的初始化,會(huì)聚調(diào)整控制,會(huì)聚測(cè)試圖控制,紅外遙控信號(hào)                                IR 的接收解碼及與主板                              CPU通信等。主要管腳有:XTAL1(19 腳)和 XTAL2( 18 腳)為振蕩器輸入輸出端口,外接                              12MHz晶振。
RST/Vpd(9 腳)為復(fù)位輸入端口,外接電阻電容組成的復(fù)位電路。                                                                                                    VCC( 40 腳)和 VSS
(20 腳)為供電端口,分別接  +5V 電源的正負(fù)端。 P0~P3 為可編程通用                     I/O      腳,其功能用途由軟件定義,在本設(shè)計(jì)中,                                   P0 端口( 32~39腳)被定義為                                      N1 功能控制端口,分別與 N1 的相應(yīng)功能管腳相連接,              13 腳定義為       IR 輸入端, 10 腳和 11 腳定義為                   I2C 總線控制端口,分別連接                                      N1的 SDAS(18 腳)和 SCLS(19 腳)端口, 12 腳、27 腳及 28腳定義為握手信號(hào)功能端口,連接主板                                  CPU的相應(yīng)功能端,用于當(dāng)前制式的檢測(cè)及會(huì)  聚調(diào)整狀態(tài)進(jìn)入的控制功能。
P0 口: P0 口是一組 8 位漏極開(kāi)路型雙向 I/O 口,也即地址 / 數(shù)據(jù)總線復(fù)用口。作為輸出口用時(shí),每位能吸收電流的方式驅(qū)動(dòng)       8 個(gè)  TTL 邏輯門(mén)電路,對(duì)端口    P0 寫(xiě)“ 1”時(shí),可作為高阻抗輸入端用。在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器或程序存儲(chǔ)器時(shí),這組口線分時(shí)
轉(zhuǎn)換地址(低  8 位)和數(shù)據(jù)總線復(fù)用,在訪問(wèn)期間激活內(nèi)部上拉電阻。在         Flash                       編程時(shí), P0 口接收指令字節(jié),而在程序校驗(yàn)時(shí),輸出指令字節(jié),校驗(yàn)時(shí),要求外接上拉電
阻。
P1 口:P1 是一個(gè)帶內(nèi)部上拉電阻的   8 位雙向 I/O 口,P1 的輸出緩沖級(jí)可驅(qū)動(dòng) (吸
收或輸出電流) 4 個(gè) TTL 邏輯門(mén)電路。對(duì)端口寫(xiě)“ 1”,通過(guò)內(nèi)部的上拉電阻把端口拉到高電平,此時(shí)可作輸入口。作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被
外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流   (IIL)   。與 AT89C51不同之處是, P1.0 和 P1.1 還可分
別作為定時(shí) / 計(jì)數(shù)器    2                                 的外部計(jì)數(shù)輸入( P1.0/T2 )和輸入( P1.1/T2EX)。Flash  編程和程序校驗(yàn)期間,P1 接收低8 位地址。



P2 口: P2 是一個(gè)帶有內(nèi)部上拉電阻的   8 位雙向 I/O 口, P2 的輸出緩沖級(jí)可驅(qū)動(dòng)
(吸收或輸出電流) 4 個(gè) TTL邏輯門(mén)電路。 對(duì)端口 P2 寫(xiě)“ 1”,通過(guò)內(nèi)部的上拉電阻把端口拉到高電平,此時(shí)可作輸入口,作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某個(gè)
引腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流    (IIL)   。在訪問(wèn)外部程序存儲(chǔ)器或                                                        16 位地址的
外部數(shù)據(jù)存儲(chǔ)器(例如執(zhí)行    MOVX@DPT指R 令)時(shí), P2 口送出高 8 位地址數(shù)據(jù)。在訪問(wèn)
8 位地址的外部數(shù)據(jù)存儲(chǔ)器(如執(zhí)行    MOVX@RI指令)時(shí), P2 口輸出 P2 鎖存器的內(nèi)容。
Flash 編程或校驗(yàn)時(shí), P2 亦接收高位地址和一些控制信號(hào)。
P3 口:P3 口是一組帶有內(nèi)部上拉電阻的    8 位雙向 I/O 口。P3 口輸出緩沖級(jí)可驅(qū)動(dòng)
(吸收或輸出電流)   4 個(gè) TTL邏輯門(mén)電路。 對(duì) P3 口寫(xiě)入“ 1”時(shí), 它們被內(nèi)部上拉電阻拉高并可作為輸入端口。此時(shí),被外部拉低的                     P3 口將用上拉電阻輸出電流(                               IIL )。 P3 口除了作為一般的 I/O                               口線外,更重要的用途是它的第二功能                               P3 口還接收一些用于
Flash   閃速存儲(chǔ)器編程和程序校驗(yàn)的控制信號(hào)。
RST:復(fù)位輸入。當(dāng)振蕩器工作時(shí), RST引腳出現(xiàn)兩個(gè)機(jī)器周期以上高電平將使單片機(jī)復(fù)位。
ALE/PROG當(dāng): 訪問(wèn)外部程序存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)器時(shí),     ALE(地址鎖存允許)輸出脈
沖用于鎖存地址的低   8 位字節(jié)。一般情況下,ALE仍以時(shí)鐘振蕩頻率的                           1/6 輸出固定的
脈沖信號(hào),因此它可對(duì)外輸出時(shí)鐘或用于定時(shí)目的。要注意的是:每當(dāng)訪問(wèn)外部數(shù)據(jù)   存儲(chǔ)器時(shí)將跳過(guò)一個(gè)   AL脈沖。對(duì) Flash 存儲(chǔ)器編程期間,該引腳還用于輸入編程脈沖
(PRO)G。如有必要,可通過(guò)對(duì)特殊功能寄存器(     SFR)區(qū)中的  8EH單元的  D0位置位,可禁止  ALE操作。該位置位后,只有一條     MOVX和  MOVC指令才能將   ALE激活。此外,該引腳會(huì)被微弱拉高,單片機(jī)執(zhí)行外部程序時(shí),應(yīng)設(shè)置ALE禁止位無(wú)效。
PSEN:程序儲(chǔ)存允許( PSEN)輸出是外部程序存儲(chǔ)器的讀選通信號(hào),                                                                               當(dāng) STC89C51RC由外部程序存儲(chǔ)器取指令(或數(shù)據(jù))時(shí),每個(gè)機(jī)器周期兩次                                                                               PSEN有效,即輸出兩個(gè)脈   沖。在此期間,當(dāng)訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器,將跳過(guò)兩次                                                                                     PSEN信號(hào)。
EA/VPP:外部訪問(wèn)允許。 欲使  CPU僅訪問(wèn)外部程序存儲(chǔ)器  (地址為  0000H—FFFFH),
EA端必須保持低電平(接地) 。需注意的是:如果加密位  LB1被編程,復(fù)位時(shí)內(nèi)部會(huì)鎖存 EA端狀態(tài)。如                         EA端為高電平(接     Vcc 端),CPU則執(zhí)行內(nèi)部程序存儲(chǔ)器中的指令。
Flash 存儲(chǔ)器編程時(shí), 該引腳加上 +12V的編程允許電源 Vpp,當(dāng)然這必須是該器件是使用 12V編程電壓                         Vpp。
XTAL1:振蕩器反相放大器的及內(nèi)部時(shí)鐘發(fā)生器的輸入端。XTAL2:振蕩器反相放大器的輸出端。
單片機(jī)最小原理圖如圖    3-3 所示。

單片機(jī)最小系統(tǒng)說(shuō)明:

圖 3-3 單片機(jī)最小系統(tǒng)



時(shí)鐘信號(hào)的產(chǎn)生:在 MCS-51芯片內(nèi)部有一個(gè)高增益反相放大器,其輸入端為芯片
引腳 XTAL1,其輸出端為引腳 XTAL2。而在芯片的外部,                                                XTAL1和 XTAL2之間跨接晶體振蕩器和微調(diào)電容,從而構(gòu)成一個(gè)穩(wěn)定的自激振蕩器,這就是單片機(jī)的時(shí)鐘振蕩電路。
時(shí)鐘電路產(chǎn)生的振蕩脈沖經(jīng)過(guò)觸發(fā)器進(jìn)行二分頻之后,才成為單片機(jī)的時(shí)鐘脈沖信號(hào)。
一般地,電容   C2和 C3取 30pF 左右,晶體的振蕩頻率范圍是                       1.2-12MHz。如果晶體振蕩頻率高,則系統(tǒng)的時(shí)鐘頻率也高,單片機(jī)的運(yùn)行速度也就快。
單片機(jī)復(fù)位使   CPU和系統(tǒng)中的其他功能部件都處在一個(gè)確定的初始狀態(tài)下,并從    這個(gè)狀態(tài)開(kāi)始工作。單片機(jī)復(fù)位條件:必須使                     9 腳加上持續(xù)兩個(gè)機(jī)器周期(即                               24 個(gè)振蕩周期)的高電平。
3.4.1        D/A  轉(zhuǎn)換電路
DAC0832是 8 分辨率的 D/A 轉(zhuǎn)換集成芯片。與微處理器完全兼容。這個(gè)                                                                                              DA芯片以其價(jià)格低廉、接口簡(jiǎn)單、轉(zhuǎn)換控制容易等優(yōu)點(diǎn),在單片機(jī)應(yīng)用系統(tǒng)中得到廣泛的應(yīng)用。
D/A 轉(zhuǎn)換器由 8 位輸入鎖存器、8 位 DAC寄存器、 8 位D/A 轉(zhuǎn)換電路及轉(zhuǎn)換控制電路構(gòu)



成。
主要參數(shù)
*       分辨率為  8 位;
*        電流穩(wěn)定時(shí)間   1us;
*        可單緩沖、雙緩沖或直接數(shù)字輸入;
*        只需在滿量程下調(diào)整其線性度;
*  單一電源供電( +5V~+15V);
*        低功耗, 20mW。
*   D0 ~D7: 8 位數(shù)據(jù)輸入線, TTL 電平,有效時(shí)間應(yīng)大于         90ns( 否則鎖存器的數(shù)據(jù)會(huì)出錯(cuò)) ;
*    ILE :數(shù)據(jù)鎖存允許控制信號(hào)輸入線,高電平有效;
*   CS :片選信號(hào)輸入線(選通數(shù)據(jù)鎖存器)  ,低電平有效;
*    WR1:數(shù)據(jù)鎖存器寫(xiě)選通輸入線,負(fù)脈沖(脈寬應(yīng)大于                                                                                   500ns)有效。由                                                                                       ILE 、
CS、WR1的邏輯組合產(chǎn)生   LE1,當(dāng) LE1 為高電平時(shí), 數(shù)據(jù)鎖存器狀態(tài)隨輸入數(shù)據(jù)線變換,
LE1 的負(fù)跳變時(shí)將輸入數(shù)據(jù)鎖存;
*     XFER:數(shù)據(jù)傳輸控制信號(hào)輸入線,低電平有效,負(fù)脈沖(脈寬應(yīng)大于                                                                                   500ns)有



效;
*     WR:2

DAC寄存器選通輸入線,負(fù)脈沖(脈寬應(yīng)大于     500ns)有效。由 WR、2


XFER



的邏輯組合產(chǎn)生   LE2,當(dāng) LE2 為高電平時(shí), DAC寄存器的輸出隨寄存器的輸入而變化,
LE2 的負(fù)跳變時(shí)將數(shù)據(jù)鎖存器的內(nèi)容打入     DAC寄存器并開(kāi)始   D/A 轉(zhuǎn)換。
*   IOUT1 :電流輸出端  1,其值隨 DAC寄存器的內(nèi)容線性變化;
*    IOUT2 :電流輸出端  2,其值與 IOUT1值之和為一常數(shù);
*   Rfb :反饋信號(hào)輸入線,改變   Rfb 端外接電阻值可調(diào)整轉(zhuǎn)換滿量程精度;
*    Vcc :電源輸入端,Vcc 的范圍為 +5V~+15V;
*   VREF:基準(zhǔn)電壓輸入線,   VREF的范圍為 -10V~+10V;
*    AGND:模擬信號(hào)地;
*    DGND:數(shù)字信號(hào)地。
工作方式
根據(jù)對(duì) DAC0832的數(shù)據(jù)鎖存器和 DAC寄存器的不同的控制方式, DAC0832有三種工作方式:直通方式、單緩沖方式和雙緩沖方式。
DAC0832引腳功能電路應(yīng)用原理圖    DAC0832是采樣頻率為八位的                                          D/A 轉(zhuǎn)換芯片,集成電路內(nèi)有兩級(jí)輸入寄存器,使                         DAC0832芯片具備雙緩沖、單緩沖和直通三種輸入方



式,以便適于各種電路的需要   ( 如要求多路   D/A 異步輸入、同步轉(zhuǎn)換等                   ) 。所以這個(gè)芯片的應(yīng)用很廣泛 , 關(guān)于 DAC0832應(yīng)用的一些重要資料見(jiàn)下圖:           D/A 轉(zhuǎn)換結(jié)果采用電流形式輸出。若需要相應(yīng)的模擬電壓信號(hào),可通過(guò)一個(gè)高輸入阻抗的線性運(yùn)算放大器實(shí)現(xiàn)。   運(yùn)放的反饋電阻可通過(guò)                                 RFB 端引用片內(nèi)固有電阻,也可外接。                                 DAC0832邏輯輸入滿足TTL 電平,可直接與                                 TTL 電路或微機(jī)電路連接。
DAC0832引腳功能說(shuō)明:
DI0~DI7:數(shù)據(jù)輸入線,  TLL 電平。
ILE :數(shù)據(jù)鎖存允許控制信號(hào)輸入線,高電平有效。 CS:片選信號(hào)輸入線,低電平有效。
WR:1 為輸入寄存器的寫(xiě)選通信號(hào)。
XFER:數(shù)據(jù)傳送控制信號(hào)輸入線,低電平有效。
WR:2 為 DAC寄存器寫(xiě)選通輸入線。
Iout1:   電流輸出線。當(dāng)輸入全為    1 時(shí) Iout1 最大。
Iout2:    電流輸出線。其值與   Iout1  之和為一常數(shù)。
Rfb: 反饋信號(hào)輸入線 , 芯片內(nèi)部有反饋電阻  .
Vcc: 電源輸入線  (+5v~+15v)
Vref: 基準(zhǔn)電壓輸入線 (-10v~+10v)



AGND模:
DGND數(shù):

擬地 , 摸擬信號(hào)和基準(zhǔn)電源的參考地  .
字地 , 兩種地線在基準(zhǔn)電源處共地比較好  .
圖 3-4 數(shù)模轉(zhuǎn)換模塊電路圖






3.4.2     按鍵輸入電路
圖 3-5 運(yùn)放模塊電路圖



按鍵是由一組按壓式或觸摸式開(kāi)關(guān)構(gòu)成的陣列,是一種常用的輸入設(shè)備。鍵盤(pán)可分為編碼式鍵盤(pán)和非編碼式鍵盤(pán)兩種。
1.  編碼鍵盤(pán)通過(guò)硬件電路產(chǎn)生被按按鍵的鍵碼,    這種鍵盤(pán)所需程序簡(jiǎn)單, 但硬件電路復(fù)雜、價(jià)格昂貴通常不被單片機(jī)系統(tǒng)采用。
2.  非編碼鍵盤(pán)常用一些按鍵排列成行列矩陣,   其硬件邏輯與按鍵編碼不存在嚴(yán)格的對(duì)應(yīng)關(guān)系,而要由所用的程序來(lái)決定。非編碼鍵盤(pán)的硬件接口簡(jiǎn)單,但是要占用較多    的 CPU時(shí)間,通常采用可編程鍵盤(pán)管理芯片來(lái)克服這個(gè)缺點(diǎn)。本設(shè)計(jì)使用兩種按鍵,
一種是按鍵式非編碼鍵盤(pán)和輕觸式非編碼開(kāi)關(guān)。
在接線時(shí)由于有四個(gè)引腳,連接時(shí)需要用萬(wàn)用表進(jìn)行測(cè)量,然后接通兩個(gè)引腳,原理圖如下。
要進(jìn)行數(shù)據(jù)的計(jì)算就必須先進(jìn)行數(shù)據(jù)的輸入,也就必須確定按鍵輸入的數(shù)值是什么,這就需要對(duì)鍵盤(pán)進(jìn)行掃描,從而確定究竟是哪個(gè)鍵按下。






3.4.3           液晶顯示電路
圖 3-6 按鍵電路



LCD顯示模塊的設(shè)計(jì)   通過(guò)液晶  1602 顯示輸出的波形、頻率   1602 的八位數(shù)據(jù)端接單片機(jī)的  P1 口  其三個(gè)使能端  RS、RW、E 分別接單片機(jī)的   P2.2—P.4。通過(guò)軟件控制液晶屏可以顯示波形的種類(lèi)以及波形的頻率。電路如圖 3-6 所示。
圖 3-7  液晶顯示電路



4     軟件設(shè)計(jì)與仿真
4.1       PROTEU簡(jiǎn)S 介
Proteus ISIS    是英國(guó) Labcenter 公司開(kāi)發(fā)的電路分析與實(shí)物仿真軟件。它運(yùn)行于
Windows操作系統(tǒng)上,可以仿真、分析    (SPICE)各種模擬器件和集成電路,該軟件的特點(diǎn)是:
(1)    現(xiàn)了單片機(jī)仿真和 SPICE電路仿真相結(jié)合。 具有模擬電路仿真、數(shù)字電路仿真、單片機(jī)及其外圍電路組成的系統(tǒng)的仿真、   RS232動(dòng)態(tài)仿真、 I2C 調(diào)試器、 SPI 調(diào)試器、鍵盤(pán)和 LCD系統(tǒng)仿真的功能;有各種虛擬儀器,如示波器、邏輯分析儀、信號(hào)發(fā)生器
等。
(2)    支持主流單片機(jī)系統(tǒng)的仿真。目前支持的單片機(jī)類(lèi)型有:             68000 系列、8051 系
列、AVR系列、 PIC12系列、 PIC16 系列、 PIC18 系列、 Z80 系列、 HC11系列以及各種外圍芯片。
(3)   提供軟件調(diào)試功能。 在硬件仿真系統(tǒng)中具有全速、 單步、設(shè)置斷點(diǎn)等調(diào)試功能,同時(shí)可以觀察各個(gè)變量、寄存器等的當(dāng)前狀態(tài),因此在該軟件仿真系統(tǒng)中,也必須具
有這些功能;同時(shí)支持第三方的軟件編譯和調(diào)試環(huán)境,如       Keil C51 uVision2                                                                                等軟件。
(4)    具有強(qiáng)大的原理圖繪制功能。
可以仿真   51 系列、 AVR、PIC、ARM、等常用主流單片機(jī)。還可以直接在基于原理圖的虛擬原型上編程,再配合顯示及輸出,能看到運(yùn)行后輸入輸出的效果。配合系統(tǒng)   配置的虛擬邏輯分析儀、示波器等,                               Proteus  建立了完備的電子設(shè)計(jì)開(kāi)發(fā)環(huán)境。
在  PROTEUS繪制好原理圖后,調(diào)入已編譯好的目標(biāo)代碼文件:      *.HEX,可以在
PROTEU的S 原理圖中看到模擬的實(shí)物運(yùn)行狀態(tài)和過(guò)程。                                                                                  PROTEUS是單片機(jī)課堂教學(xué)的先進(jìn)助手。
PROTEU不S 僅可將許多單片機(jī)實(shí)例功能形象化,  也可將許多單片機(jī)實(shí)例運(yùn)行過(guò)程形象化。前者可在相當(dāng)程度上得到實(shí)物演示實(shí)驗(yàn)的效果,后者則是實(shí)物演示實(shí)驗(yàn)難以達(dá)     到的效果。
它的元器件、連接線路等卻和傳統(tǒng)的單片機(jī)實(shí)驗(yàn)硬件高度對(duì)應(yīng)。這在相當(dāng)程度上
替代了傳統(tǒng)的單片機(jī)實(shí)驗(yàn)教學(xué)的功能,例:元器件選擇、電路連接、電路檢測(cè)、電路修改、軟件調(diào)試、運(yùn)行結(jié)果等。
課程設(shè)計(jì)、畢業(yè)設(shè)計(jì)是學(xué)生走向就業(yè)的重要實(shí)踐環(huán)節(jié)。由于                                                                                    PROTEUS提供了實(shí)驗(yàn)室無(wú)法相比的大量的元器件庫(kù),提供了修改電路設(shè)計(jì)的靈活性、提供了實(shí)驗(yàn)室在數(shù)量、   質(zhì)量上難以相比的虛擬儀器、儀表,因而也提供了培養(yǎng)學(xué)生實(shí)踐精神、創(chuàng)造精神

#include<reg51.h>

#include"LCD1602.h"

#include"DAC0832.h"

sbit K1=P3^2;

uchar code table8[]={

0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xec,0xf6,0xf9,0xfb,0xfc,0xfc,0xfd,0xfd,0xfd,0xfe

};

uchar code table9[]={

0x16,0x9a,0x20,0x5e,0x88,0xa3,0xb8,0xc3,0xce,0xd6,//

正弦波頻率調(diào)整中間值

0xbc,0xce,0x58,0x8a,0xa9,0xbf,0xcb,0xd8,0xe0,0xee,//

三角波頻率調(diào)整中間值

0x98,0x60,0xa0,0x42,0x44,0xce,0x5a,0xb3,0xf5,0x3c

};

uchar key;

uint F;//總頻率

bit ST=0;

bit DUQU=0; //主函數(shù)

void main() { P1=0; DA_S1=1; //關(guān)閉 8 位輸入寄存器

LCD1602_init();

TMOD=0x01;//設(shè)置定時(shí)器 0 為 16位工作方式

IT0=1;//設(shè)置外部中斷 0 為下降沿觸發(fā)

ET0=1; //開(kāi)定時(shí)器中斷

EX0=1; EA=1; while(1);

}//外部 0 中斷子函數(shù)

void wb0() interrupt 0 { EA=0;TR0=0;//關(guān)總中斷與定時(shí)器

delay(50); //延時(shí)夠嗎

if(K1==0) //確實(shí)有按鍵按下而引發(fā)中斷

{ delay(50); if(K1==0) {key=P3&0xf8; switch(key) { case 0xf0: //選擇波形

ee++; if(ee>2) ee=0; break;case 0xe8: //頻率按規(guī)定單位依次增加

table5[ee]++;

if(table5[ee]>10)

table5[ee]=1; break;

case0xd8: //頻率按規(guī)定單位依次衰減

table5[ee]--;

if(table5[ee]<1)

table5[ee]=10; break;

}

} bb=table8[ee*10+(table5[ee]-1)];//方括號(hào)中選取第幾個(gè)數(shù)后,并把該值賦

給T_temp

cc=table9[ee*10+(table5[ee]-1)];F=table5[ee]*table4[ee]; //求輸出頻率(個(gè)數(shù)*單位)

table2[5]=F%10+0x30; table3[5]=F%10+0x30; //在液晶中顯示個(gè)位,(0x30 在液晶顯示中表示數(shù)字0)

附錄

F/=10;

table2[4]=F%10+0x30;

table3[4]=F%10+0x30; //在液晶中顯示時(shí)十位

F/=10; table2[3]=F%10+0x30;

table3[3]=F%10+0x30; //在液晶中顯示時(shí)百位

F/=10; table2[2]=F%10+0x30;

table3[2]=F%10+0x30;//在液晶中顯示時(shí)千位

disp_lcd(0x80,&table1[ee*16]); //在第一行顯示

disp_lcd(0xc0,table2); //在第二行顯示

}aa=0; //'抽點(diǎn)'計(jì)數(shù)清零 while(!K1); EA=1; TR0=1; //開(kāi)啟總中斷與定時(shí)器

} //定時(shí)器 0 中斷子函數(shù) void t0() interrupt 1 {TH0=bb; TL0=cc; if(ee==0) sine_out(); else if(ee==1) triangle_out(); elseif(ee==2) square_out(); } typedef unsigned char uchar; typedef unsigned intuint; uchar code table1[]={"ZX Wave " "SJ Wave " "JXWave " "System Is Ready! " "Now to switch..""SAVE ...... " "Finish! " "Reading ... " }; ucharidata table2[16]={"F= Hz "}; uchar idata table3[16]={"F= Hz .V"}; sbit RS=P2^0; sbit RW=P2^1;

西安交通大學(xué)城市學(xué)院本科生畢業(yè)設(shè)計(jì)(論文)

sbit E=P2^2; sbit DP=P0^7; //延時(shí)子函數(shù)void delay(uchar z)  { uchar x,y;for(x=z;x>0;x--) for(y=110;y>0;y--); } //LCD1602 液晶讀忙狀態(tài)子函數(shù) void LCD1602_wait() { RS=0;RW=1; E=1; delay(10);

E=0; //下降沿

while(DP) { E=0; E=1; //仿真才需要此語(yǔ)句 ,實(shí)際硬件中不需要

}

} //LCD1602 液晶寫(xiě)命令子函數(shù)void write_com(uchar com) { RS=0; RW=0; P0=com; E=1; delay(10); E=0;LCD1602_wait(); } //LCD1602 液晶寫(xiě)數(shù)據(jù)子函數(shù)void write_date(uchar date) { RS=1; RW=0;

附錄

P0=date;

E=1;

delay(10);

E=0;

LCD1602_wait();

} void disp_lcd(ucharaddr,uchar *temp1) reentrant { uchar i; write_com(addr); delay(1); //延時(shí)一會(huì)兒

for(i=0;i<16;i++) {write_date(temp1);//或者這樣寫(xiě)write_date(*(temp1+num));

delay(1); } } //LCD1602 液晶初始化子函數(shù)

void LCD1602_init() { E=0; RW=0; //初始化一定要設(shè)置為零,表示寫(xiě)數(shù)據(jù)

write_com(0x38); //使液晶顯示點(diǎn)陣,為下面做準(zhǔn)備

write_com(0x0c); //初始設(shè)置

write_com(0x06); //初始設(shè)置

write_com(0x01); //清零

write_com(0x80); //使指針指向第一行第一格

disp_lcd(0x80,&table1[3*16]); //在第一行顯示

disp_lcd(0xc0,&table1[4*16]); //在第二行顯示

} uchar aa; //'抽點(diǎn)'計(jì)數(shù)

uchar bb,cc;//傳遞頻率的中間變量

uchar dd=1; //在方波輸出函數(shù)中用于簡(jiǎn)單判別作用

uchar ee; //當(dāng)其為 0、1、2 時(shí),分別代表三種波

uchar codetable4[3]={5,25,100}; // 三種波的頻率單位

uchar idata table5[3]={1,1,1}; //給每種波定義一個(gè)數(shù)組單元,用于存放單位頻率的個(gè)數(shù)

uchar code table6[]={

//每隔數(shù)字 8,采取一次

0x00,0x08,0x10,0x18,0x20,0x28,0x30,0x38,0x40,0x48,0x50,0x58,0x60,0x68,0x70,0x7

8,

0x80,0x88,0x90,0x98,0xa0,0xa8,0xb0,0xb8,0xc0,0xc8,0xd0,0xd8,0xe0,0xe8,0xf0,0xf8,0xff,

0xf8,0xf0,0xe8,0xe0,0xd8,0xd0,0xc8,0xc0,0xb8,0xb0,0xa8,0xa0,0x98,0x90,0x88,0x80,

0x78,0x70,0x68,0x60,0x58,0x50,0x48,0x40,0x38,0x30,0x28,0x20,0x18,0x10,0x08,0x0

0

};

uchar code table7[]={

//輸出電壓從 0 到最大值(正弦波 1/4 部分)

0x80,0x83,0x86,0x89,0x8d,0x90,0x93,0x96,0x99,0x9c,0x9f,0xa2,0xa5,0xa8,0xab,0xae,0xb1,0xb4,0xb7,0xba,0xbc,

0xbf,0xc2,0xc5,0xc7,0xca,0xcc,0xcf,0xd1,0xd4,0xd6,0xd8,0xda,0xdd,0xdf,0xe1,0xe3,0xe5,0xe7,0xe9,0xea,0xec,

0xee,0xef,0xf1,0xf2,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff, //輸出電壓從最大值到0(正弦波1/4 部分)

0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfd,0xfd,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7,0xf6,0xf5,0xf4,0xf2,0xf1,0xef,

0xee,0xec,0xea,0xe9,0xe7,0xe5,0xe3,0xe1,0xde,0xdd,0xda,0xd8,0xd6,0xd4,0xd1,0xcf,0xcc,0xca,0xc7,0xc5,0xc2,


0xbf,0xbc,0xba,0xb7,0xb4,0xb1,0xae,0xab,0xa8,0xa5,0xa2,0x9f,0x9c,0x99,0x96,0x93 ,0x90,0x8d,0x89,0x86,0x83,0x80, //輸出電壓從 0 到最小值(正弦波 1/4 部分)

0x80,0x7c,0x79,0x76,0x72,0x6f,0x6c,0x69,0x66,0x63,0x60,0x5d,0x5a,0x57,0x55,0x51,0x4e,0x4c,0x48,0x45,0x43,

0x40,0x3d,0x3a,0x38,0x35,0x33,0x30,0x2e,0x2b,0x29,0x27,0x25,0x22,0x20,0x1e,0x1c,0x1a,0x18,0x16 ,0x15,0x13,

0x11,0x10,0x0e,0x0d,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00, //輸出電壓從最小值到0(正弦波1/4 部分)

0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x 09,0x0a,0x0b,0x0d,0x0e,0x10,

0x11,0x13,0x15,0x16,0x18,0x1a,0x1c,0x1e,0x20,0x22,0x25,0x27,0x29,0x2b,0x2e,0x30,0x33,0x35,0x38,0x3a,0x3d,

0x40,0x43,0x45,0x48,0x4c,0x4e,0x51,0x55,0x57,0x5a,0x5d,0x60,0x63,0x66,0x69,0x 6c,0x6f,0x72,0x76,0x79,0x7c,0x80 };

sbitDA_S1=P2^7;//控制 DAC0832 的 8 位輸入寄存器, 僅當(dāng)都為 0 時(shí),可以輸出數(shù) 據(jù)(處于直通狀態(tài) ),否則,輸出將被鎖存 //三角波輸出子函數(shù)

void triangle_out() {P1=table6[aa++];

if(aa>64) aa=0;

DA_S1=0; //打開(kāi) 8 位輸入寄存器

DA_S1=1; //關(guān)閉 8 位輸入寄存器 }//正弦波輸出子函數(shù)

void sine_out() {P1=table7[aa++]; DA_S1=0; //打開(kāi)8 位輸入寄存器

DA_S1=1;//關(guān)閉 8 位輸入寄存器 } //方波輸出子函數(shù)

void square_out() {

dd=~dd; if(dd==1) P1=0xff;else P1=0x00;

DA_S1=0; //打開(kāi) 8 位輸入寄存器DA_S1=1; //關(guān)閉8 位輸入寄存器

}



分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国精日本亚洲欧州国产中文久久 | 午夜不卡一区二区 | 成人性生交大片免费看中文带字幕 | 国产精品久久久久久久久久尿 | 欧美高清视频 | 欧洲精品久久久久毛片完整版 | 最新国产精品精品视频 | 91av在线免费观看 | 综合久久综合久久 | 91在线精品播放 | 91在线资源 | 精品久久久久香蕉网 | 亚洲欧美精品国产一级在线 | aa级毛片毛片免费观看久 | 国产一级在线观看 | 99视频在线免费观看 | 日韩欧美精品一区 | 日韩欧美国产一区二区 | 亚洲一一在线 | 日韩有码一区 | 国产精品免费在线 | 伊人伊人伊人 | 日韩欧美在线视频 | 成人a在线观看 | www日韩高清 | 欧美日韩在线一区二区 | 99精品视频免费观看 | 亚洲一区二区三区 | 久久久久久久久久久久久久av | 呦呦在线视频 | 欧美最猛黑人xxxx黑人 | 精品一区二区久久久久久久网站 | 91精品免费视频 | 国产aⅴ | 九九热在线视频观看这里只有精品 | 一区二区在线 | 亚洲手机视频在线 | 国产成人免费视频 | 日韩高清三区 | 97超碰站| 日韩电影中文字幕 |