單片機原理及應用課程設計--信號發(fā)生器_第1頁
單片機原理及應用課程設計--信號發(fā)生器_第2頁
單片機原理及應用課程設計--信號發(fā)生器_第3頁
單片機原理及應用課程設計--信號發(fā)生器_第4頁
單片機原理及應用課程設計--信號發(fā)生器_第5頁
已閱讀5頁,還剩19頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、武漢紡織大學單片機原理及應用課程設計姓 名: 向彬彬 學 號: 1103751068 班 級: 光電1102班 指導教師: 鄒崇濤 所在院系:電子與電氣工程學院 2021年12月V目錄1設計目的及要求31-1設計目的31-2設計要求32方案設計32-1總體方案設計32-1.1系統(tǒng)原理分析32-2硬件電路設計42-2.1主要芯片介紹42-3軟件設計72-3.1軟件程序流程圖72-3.2發(fā)送數(shù)據(jù)子程序82-3.3波形產(chǎn)生過程83 Protues仿真. 94調試及實驗結果105實驗中遇到的問題125-1錯誤125-2不足126心得體會127參考文獻13附錄 程序清單.14- 24 -基于STC89C

2、52的信號發(fā)生器課程設計報告1 設計目的及要求1-1 設計目的(1)掌握各個接口芯片(如DAC0832等)的功能特性及接口方法,并能運用其實現(xiàn)一個簡單的微機應用系統(tǒng)功能器件。(2)以單片機為基礎,設計并開發(fā)能輸出多種波形(正弦波、三角波、方波等)且頻率可變的函數(shù)發(fā)生器。(3)利用所學單片機的理論知識進行軟硬件整體設計,鍛煉我們理論聯(lián)系實際、提高我們的綜合應用能力。(4)通過運用相關芯片實現(xiàn)信號發(fā)生器的功能,從而達到熟練掌握各種器件的目的,同時,鍛煉動手能力及編程調試能力,更深地理解課上所學的單片機的知識,增加電子電路知識,提升作為一個電子信息工程專業(yè)學生的專業(yè)素養(yǎng)1-2 設計要求(1)用單片機

3、加之DAC芯片等器件,實現(xiàn)能產(chǎn)生方波,三角波,正弦波且頻率可變的信號發(fā)生器。(2)熟悉各個器件的性能和使用方法,特別是89c52,掌握他們之間的連接和數(shù)據(jù)傳輸方法,能夠熟練使用它們及編寫程序。(3)完成單片機和DAC的選型,了解不同波形的產(chǎn)生原理和設計方案,畫出硬件電路圖,并編程完成軟件部分,最后調試觀察產(chǎn)生不同類型的波形信號。2 方案設計2-1 總體方案設計通過要求分析,以下幾點是解題的關鍵:用單片機加之DA芯片,實現(xiàn)能產(chǎn)生方波,三角波,正弦波信號發(fā)生器掌握89c51和DAC0832轉換芯片之間的連接和數(shù)據(jù)傳輸方法,熟練使用它們及編寫程序2-1.1 系統(tǒng)原理分析數(shù)字信號可以通過數(shù)/模轉換器轉

4、換成模擬信號,因此可通過產(chǎn)生數(shù)字信號再轉換成模擬信號的方法來獲得所需要的波形。89C52單片機本身就是一個完整的微型計算機,具有組成微型計算機的各部分部件:中央處理器CPU、隨機存取存儲器RAM、只讀存儲器ROM、I/O接口電路、定時器/計數(shù)器以及串行通訊接口等,只要將89C51再配置鍵盤及、數(shù)模轉換及波形輸出、放大電路等部分,即可構成所需的波形發(fā)生器,其信號發(fā)生器構成系統(tǒng)框圖如下圖所示。LCD顯示電路DAC0832數(shù)模轉換電路鍵盤控制電路STC89C51最小系統(tǒng)低通濾波電路放大電路圖1 系統(tǒng)框圖 2-2 硬件電路設計2-2.1 主要芯片介紹1單片機STC89C52介紹STC89C52是STC

5、公司生產(chǎn)的一種低功耗、高性能CMOS8位微控制器,具有 8K 在系統(tǒng)可編程Flash存儲器。STC89C52使用經(jīng)典的MCS-51內核,但做了很多的改進使得芯片具有傳統(tǒng)51單片機不具備的功能。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash,使得STC89C52為眾多嵌入式控制應用系統(tǒng)提供高靈活、超有效的解決方案。 具有以下標準功能: 8k字節(jié)Flash,512字節(jié)RAM, 32 位I/O 口線,看門狗定時器,內置4KB EEPROM,MAX810復位電路,3個16 位定時器/計數(shù)器,4個外部中斷,一個7向量4級中斷結構(兼容傳統(tǒng)51的5向量2級中斷結構),全雙工串行口。另外 ST

6、C89C52 可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式。空閑模式下,CPU 停止工作,允許RAM、定時器/計數(shù)器、串口、中斷繼續(xù)工作。掉電保護方式下,RAM內容被保存,振蕩器被凍結,單片機一切工作停止,直到下一個中斷或硬件復位為止。最高運作頻率35MHz,6T/12T可選。外形及引腳排列如下圖所示:AT89C51管腳說明:VCC:供電電壓。 GND:接地。 P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當P1口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時,P0 口作為原碼輸入口

7、,當FIASH進行校驗時,P0輸出原碼,此時P0外部必須被拉高。 P1口:P1口是一個內部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。 P2口:P2口為一個內部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當P2口被寫“1”時,其管腳被內部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內部上拉的緣故。P2口當用于外部程序存儲器或16位地址外部

8、數(shù)據(jù)存儲器進行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內部上拉優(yōu)勢,當對外部八位地址數(shù)據(jù)存儲器進行讀寫時,P2口輸出其特殊功能寄存器的內容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。 P3口:P3口管腳是8個帶內部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當P3口寫入“1”后,它們被內部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。RST:復位輸入。當振蕩器復位器件時,要保持RST腳兩個機器周期的高電平時間。 ALE/PROG:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)

9、。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數(shù)據(jù)存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時, ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。 /PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/PSEN信號將不出現(xiàn)。 /EA/VPP:當/

10、EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內部程序存儲器。注意加密方式1時,/EA將內部鎖定為RESET;當/EA端保持高電平時,此間內部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。 XTAL1:反向振蕩放大器的輸入及內部時鐘工作電路的輸入。 XTAL2:來自反向振蕩器的輸出。 圖2 STC89C52引腳圖2DAC0832介紹:1) DAC0832是8分辨率的D/A轉換集成芯片。與微處理器完全兼容。這個DA芯片以其價格低廉、接口簡單、轉換控制容易等優(yōu)點,在單片機應用系統(tǒng)中得到廣泛的應用。D/A轉換器由8位輸入鎖存器、8位DA

11、C寄存器、8位D/A轉換電路及轉換控制電路構成。圖中,VDD和AGND為電源端和接地端,DIN,OUT 為數(shù)據(jù)輸入端和輸出端,REFIN應給予2.7-5.5v的參考電壓,此電壓根據(jù)所需波形的復制而定。2) 5616的十六位數(shù)據(jù)值包括兩部分:D0D7:8位數(shù)據(jù)輸入線,TTL電平,有效時間應大于90ns(否則鎖存器的數(shù)據(jù)會出錯)ILE:數(shù)據(jù)鎖存允許控制信號輸入線,高電平有效;CS:片選信號輸入線(選通數(shù)據(jù)鎖存器),低電平有效;WR1:數(shù)據(jù)鎖存器寫選通輸入線,負脈沖(脈寬應大于500ns)有效。由ILE、CS、WR1的邏輯組合產(chǎn)生LE1,當LE1為高電平時,數(shù)據(jù)鎖存器狀態(tài)隨輸入數(shù)據(jù)線變換,LE1的負

12、跳變時將輸入數(shù)據(jù)鎖存;XFER:數(shù)據(jù)傳輸控制信號輸入線,低電平有效,負脈沖(脈寬應大于500ns)有效;WR2:DAC寄存器選通輸入線,負脈沖(脈寬應大于500ns)有效。由WR2、XFER的邏輯組合產(chǎn)生LE2,當LE2為高電平時,DAC寄存器的輸出隨寄存器的輸入而變化,LE2的負跳變時將數(shù)據(jù)鎖存器的內容打入DAC寄存器并開始D/A轉換。IOUT1:電流輸出端1,其值隨DAC寄存器的內容線性變化;IOUT2:電流輸出端2,其值與IOUT1值之和為一常數(shù);Rfb:反饋信號輸入線,改變Rfb端外接電阻值可調整轉換滿量程精度;Vcc:電源輸入端,Vcc的范圍為+5V+15V;VREF:基準電壓輸入線

13、,VREF的范圍為-10V+10V;AGND:模擬信號地;DGND:數(shù)字信號地。 圖3 DAC0832芯片引腳圖3)硬件連接如圖4,是DAC0832與51單片機的連接方式。 圖4 DAC0832與單片機連接圖3 LCD1602介紹工業(yè)字符型液晶,能夠同時顯示16x02即32個字符。(16列2行)1602液晶也叫1602字符型液晶,它是一種專門用來顯示字母、數(shù)字、符號等的點陣型液晶模塊。它由若干個5X7或者5X11等點陣字符位組成,每個點陣字符位都可以顯示一個字符,每位之間有一個點距的間隔,每行之間也有間隔,起到了字符間距和行間距的作用,正因為如此所以它不能很好地顯示圖形(用自定義CGRAM,顯

14、示效果也不好)。1602LCD是指顯示的內容為16X2,即可以顯示兩行,每行16個字符液晶模塊(顯示字符和數(shù)字)。市面上字符液晶大多數(shù)是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780寫的控制程序可以很方便地應用于市面上大部分的字符型液晶。 圖5 LCD1602引腳圖4 LM324介紹LM324系列器件帶有差動輸入的四運算放大器。與單電源應用場合的標準運算放大器相比,它們有一些顯著優(yōu)點。該四放大器可以工作在低到3.0伏或者高到32伏的電源下,靜態(tài)電流為MC1741的靜態(tài)電流的五分之一。共模輸入范圍包括負電源,因而消除了在許多應用場合中采用外部偏置元件的必要性。每一組運

15、算放大器可用圖6所示的符號來表示,它有5個引出腳,其中“+”、“-”為兩個信號輸入端,“V+”、“V-”為正、負電源端,“Vo”為輸出端。兩個信號輸入端中,Vi-(-)為反相輸入端,表示運放輸出端Vo的信號與該輸入端的位相反;Vi+(+)為同相輸入端,表示運放輸出端Vo的信號與該輸入端的相位相同。 圖6 LM324芯片引腳圖 2-3 軟件設計2-3.1 軟件程序流程圖如下:需要明確的是,該設計最核心的部分是信號發(fā)生部分,要想完成此設計,最先應該設計的是怎樣產(chǎn)生各種波形,只有產(chǎn)生了波形,才會有后續(xù)進行精確地調試,產(chǎn)生完波形后,需要完成單片機與DAC0832之間的數(shù)據(jù)通信,編寫程序,可以先編寫該程

16、序進行數(shù)據(jù)傳送的調試。圖7 程序流程圖2-3.2 發(fā)送數(shù)據(jù)子程序:DAC0832單緩沖方式是控制輸入寄存器和DAC寄存器同時接收資料,或者只用輸入寄存器而把DAC寄存器接成直通方式。此方式適用只有一路模擬量輸出或幾路模擬量異步輸出的情形。2-3.3 波形產(chǎn)生過程1)方波產(chǎn)生過程方波的實現(xiàn)只需開始的時候設置一個初值然后直接輸出這個值就行了,輸出一段時間后,然后再重新置一個數(shù)據(jù),然后再輸出這個數(shù)據(jù)一段時間,但是此時的時間一定要等于前面那段時間。這樣才是一個方波。由此可以調節(jié)兩個電壓維持的時間,產(chǎn)生占空比不同的方波,相比于模擬電驢,這樣的方式輸出的方波占空比更加精確,且電壓更加穩(wěn)定。2)三角波產(chǎn)生過

17、程 三角波的輸出的基礎是鋸齒波,將鋸齒波的產(chǎn)生當作是三角波的前半部分,然后再相反的舉行減法,逐漸減為零,如此循環(huán),即可產(chǎn)生三角波。類似的,通過改變延時時間可以改變輸出的頻率,通過改變最大值,可以改變輸出的電壓。輸出的波形連續(xù)性好,且波形很光滑。3)正弦波產(chǎn)生過程正弦波的實現(xiàn)實際上是一個查表過程,所查的每一個值都對應著一個電壓,并且對應著的電壓匯成圖形即為正弦波,然后重復這樣一個過程即可產(chǎn)生連續(xù)的正弦波.產(chǎn)生的正弦波,波形光滑且頻率可調。3 Protues仿真 1 仿真連接圖圖8 仿真連接圖 2 仿真波形圖圖9 三角波仿真圖圖10 方波仿真圖圖11 正弦波仿真圖4 調試及實驗結果 1 開始時,我

18、們并未接低通濾波電路。因此所得到的波形誤差很大,但是基本形狀大致一樣。圖12 實際方波圖1圖13 實際三角波圖1圖14 實際正弦波圖1最終,我們加入低通濾波電路之后,所得到的波形圖得到了很大的改善,但是由于我們設計的波形頻率范圍在1000Hz以下,所以還是有一些誤差。圖15 修改后的實際三角波圖16 修改后的實際方波圖17 修改后的實際正弦波5 實驗中遇到的問題5-1 錯誤1) 最初LCD1602顯示錯誤,總是一排黑方塊;后來通過搜索,終于知道是因為初始化程序有問題,改正之后正常顯示。2) 在實驗室調試波形時,最開始因為沒有加低通濾波器,導致輸出波形失真嚴重;后來加了低通濾波電路后,效果大大改

19、善。3) 開始復位電路不起作用,后來經(jīng)檢查是因為線路連接時出現(xiàn)問題,最后復位電路正常。5-2 不足1)由于我們設計的低通濾波電路截止頻率為1500Hz,而信號發(fā)生器的頻率范圍在1000Hz以下,因此還是有噪聲的影響。2)由于運放的參數(shù)是理想值,實際有差距,因此幅度誤差比較大。3)本設計只能頻率可調,幅度無法調整。6 心得體會通過這次課程設計,令我們對單片機有了更好的掌握,鍛煉了我們的編程能力,在課程設計中,我們遇到的最大的挑戰(zhàn),就是對程序的調試,我們收獲最大的地方也在于此,我們需要逐條運行每一小段調試程序,逐段逐句進行編程調試,我們嘗試用匯編和C語言兩種語言進行編程,將課上的學習的知識進行了運

20、用。在此次試驗中,我們還深刻體會到了理論與現(xiàn)實的差別。在Protues仿真中,只要將線路連接好后,所得的仿真結果便是理想中的波形,而現(xiàn)實中還必須考慮到電路中的噪聲,電磁干擾等。通過此次課程設計,我們真的學到了許多課堂上學不到的實戰(zhàn)經(jīng)驗。7 參考文獻單片機原理與應用設計 ,張毅剛, 電子工業(yè)出版社, 2021年。單片微機原理及其接口技術,胡漢才,清華大學出版社,2021 年。單片機原理與應用,孫亟芳,北京航空航天大學出版社,2021 年。單片機程序設計基礎,周航慈,北京航空航天大學出版社,2021 年。附錄 程序清單1 波形生成數(shù)組(PLTABLE.H)#ifndef _PLTABLE_h_#d

21、efine _PLTABLE_h_/*這兩組數(shù)組很重要,需要根據(jù)波形來調試,選擇合適的值,使輸出波形達到頻率要求*/uchar code waveTH= 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 waveTL= 0x16,0x9a,0x20,0x5e,0x88,0xa3,0xb8,0xc3,0xce,0xd6, /正弦

22、波頻率調整中間值0xbc,0xce,0x58,0x8a,0xa9,0xbf,0xcb,0xd8,0xe0,0xee,/三角波頻率調整中間值0x98,0x60,0xa0,0x42,0x44,0xce,0x5a,0xb3,0xf5,0x3c; /*/uchar code triangle_tab= /每隔數(shù)字8,采取一次0x00,0x08,0x10,0x18,0x20,0x28,0x30,0x38,0x40,0x48,0x50,0x58,0x60,0x68,0x70,0x78,0x80,0x88,0x90,0x98,0xa0,0xa8,0xb0,0xb8,0xc0,0xc8,0xd0,0xd8,0

23、xe0,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,0x00;uchar code sine_tab256=/輸出電壓從0到最大值(正弦波1/4部分)0x80,0x83,0x86,0x89,0x8d,0x90,0x93,0x96,0x99,0x9c,0x9f,0xa2,0xa5,0xa8,0x

24、ab,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,0

25、xfe,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到最小

26、值(正弦波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,0x0

27、1,0x00,0x00,0x00,0x00,0x00,0x00,/輸出電壓從最小值到0(正弦波1/4部分)0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02 ,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,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,

28、0x55,0x57,0x5a,0x5d,0x60,0x63,0x66 ,0x69,0x6c,0x6f,0x72,0x76,0x79,0x7c,0x80; #endif2 鍵盤控制子程序(KEY.H)#ifndef _KEY_h_#define _KEY_h_#include "adc0832.h"#include "delay.h"#include "lcd1602.h"bit ST=0;bit DUQU=0;sbit key=P32;unsigned char keytemp;unsigned int total_freq; /總頻

29、率void key_int0() interrupt 0 EA=0; TR0=0; /關總中斷與定時器delay(50); /延時夠嗎if(key=0) /確實有按鍵按下而引發(fā)中斷delay(50);if (key=0)keytemp=P3&0xf8; switch(keytemp) case 0xf0:/選擇波形 waveform+; if(waveform>2) waveform=0; break; case 0xe8: /頻率按規(guī)定單位依次增加 wavefreqwaveform+; if(wavefreqwaveform>10) wavefreqwaveform=1;

30、 break; case 0xd8: /頻率按規(guī)定單位依次衰減 wavefreqwaveform-; if(wavefreqwaveform<1) wavefreqwaveform=10; break; THtemp=waveTHwaveform*10+(wavefreqwaveform-1); /方括號中選取第幾個數(shù)后,并把該值賦給T_tempTLtemp=waveTLwaveform*10+(wavefreqwaveform-1);total_freq= wavefreqwaveform * freq_unitwaveform; /求輸出頻率(個數(shù)*單位) lcd_hang25=to

31、tal_freq%10+0x30;lcd_hang35=total_freq%10+0x30; /在液晶中顯示個位,(0x30 在液晶顯示中表示數(shù)字0) total_freq/=10; lcd_hang24=total_freq%10+0x30;lcd_hang34=total_freq%10+0x30; /在液晶中顯示時十位 total_freq/=10; lcd_hang23=total_freq%10+0x30;lcd_hang33=total_freq%10+0x30; /在液晶中顯示時百位 total_freq/=10; lcd_hang22=total_freq%10+0x30;

32、lcd_hang32=total_freq%10+0x30;/在液晶中顯示時千位 disp_lcd(0x80,&lcd_hang1waveform*16); /在第一行顯示 disp_lcd(0xc0,lcd_hang2); /在第二行顯示 wavecount=0; /'抽點'計數(shù)清零 while(!key); EA=1; TR0=1; /開啟總中斷與定時器#endif3 DAC0832數(shù)模轉換子程序(DAC0832.H)#ifndef _ADC0832_H_#define _ADC0832_H_#define DAdata P1/DA數(shù)據(jù)端口uchar wavecou

33、nt; /'抽點'計數(shù)uchar THtemp,TLtemp;/傳遞頻率的中間變量uchar judge=1; /在方波輸出函數(shù)中用于簡單判別作用uchar waveform; /當其為0、1、2時,分別代表三種波uchar code freq_unit3=5,25,100; /三種波的頻率單位uchar idata wavefreq3=1,1,1; /給每種波定義一個數(shù)組單元,用于存放單位頻率的個數(shù)sbit DA_S1= P27; / 控制DAC0832的8位輸入寄存器,僅當都為0時,可以輸出數(shù)據(jù)(處于直通狀態(tài)),否則,輸出將被鎖存void triangle_out()/三角

34、波輸出 DAdata=triangle_tabwavecount+;if(wavecount>64) wavecount=0;DA_S1=0; /打開8位輸入寄存器DA_S1=1; /關閉8位輸入寄存器void sine_out() /正弦波輸出 DAdata=sine_tabwavecount+;DA_S1=0; /打開8位輸入寄存器DA_S1=1; /關閉8位輸入寄存器void square_out() /方波輸出 judge=judge; if(judge=1) DAdata=0xff;else DAdata=0x00;DA_S1=0; /打開8位輸入寄存器DA_S1=1; /關閉

35、8位輸入寄存器#endif4 LCD1602顯示子程序(LCD1602.H)#ifndef _LCD1602_h_#define _LCD1602_h_#include "delay.h"uchar code lcd_hang1="ZX Wave " "SJ Wave " "JX Wave " "System Is Ready! " "Now to switch." "SAVE . " "Finish! " "Reading

36、. " ;uchar idata lcd_hang216="F= Hz "uchar idata lcd_hang316="F= Hz . V"/*1602液晶的相關函數(shù)*/sbit rs=P20;sbit rw=P21;sbit lcden=P22;sbit lcdbf=P07;/sbit st=P21;/sbit sh=P22;/sbit ds=P20;unsigned char i,j; /*void LCD_Wait(void)/讀忙狀態(tài)rs=0;rw=1;lcden=1;lcden=0;/下降沿while(lcdbf); lcden=

37、0;lcden=1; /仿真才需要此語句,實際硬件中不需要delay(10); */void write_com(uchar dat)/LCD_Wait();lcden=0;rs=0;rw=0;lcden=1;P0=dat;lcden=0;delay(10);void write_date(uchar date)/LCD_Wait();lcden=0;rs=1;rw=0;lcden=1;P0=date;lcden=0;delay(10);void disp_lcd(uchar addr,uchar *temp1) reentrantuchar num;write_com(addr);delay

38、(1); /延時一會兒?for(num=0;num<16;num+)write_date(temp1num);/或者這樣寫write_date(*(temp1+num);delay(1);void init_lcd()/uchar num;lcden=0; /可有可無?rw=0; /初始化一定要設置為零,表示寫數(shù)據(jù)write_com(0x38); /使液晶顯示點陣,為下面做準備write_com(0x38);write_com(0x0c); /初始設置write_com(0x06); /初始設置write_com(0x01); /清零delay(10);write_com(0x80);

39、/使指針指向第一行第一格 disp_lcd(0x80,&lcd_hang13*16); /在第一行顯示 disp_lcd(0xc0,&lcd_hang14*16); /在第二行顯示/*1602液晶函數(shù)聲明結束*/#endif5 延時子程序(DELAY.H)#ifndef _DELAY_h_#define _DELAY_h_#define uchar unsigned char#define uint unsigned intvoid delay(uchar z) uchar x,y;for(x=z;x>0;x-)for(y=110;y>0;y-);void dela

40、y5us() uchar i; for(i=1;i>0;i-);#endif6 主程序(main.c)#include<reg52.h>#include "lcd1602.h"#include "delay.h"#include "pltable.h"#include "key.h"#include "adc0832.h"void timer0() interrupt 1TH0=THtemp;TL0=TLtemp;if(waveform=0) sine_out();else i

41、f(waveform=1) triangle_out();else if(waveform=2) square_out();void main() DAdata=0;DA_S1=1; /關閉8位輸入寄存器init_lcd();TMOD=0x01; /設置定時器0為16位工作方式IT0=1; /設置外部中斷0為下降沿觸發(fā)ET0=1; /開定時器中斷EX0=1; EA=1;while(1) ; 教師見習報告總結期待已久的見習已經(jīng)結束了,在龍巖三中高中部見習聽課,雖然只是短短的兩個星期,但感觸還是蠻深的,以前作為一名學生坐在課室聽課,和現(xiàn)在作為一名準教師坐在課室聽課是完全不同的感受,感覺自己學到了一

42、些在平時課堂上學不到的東西。在這里,我獲得的不僅是經(jīng)驗上的收獲,更多是教學管理,課堂教學等的理念,以及他們帶給我的種種思考。教育見習實踐過程:聽課。教育見習的主要目的是讓學生在指導教師的引導下,觀摩教師上課方法、技巧等。聽課是教育見習的主要內容。我院規(guī)定在一周的見習中需完成至少6課的見習任務。我在教師的安排指導下,分別對高一、高二物理專業(yè)課型為主,其他課型齊頭的方式,積極主動的完成了聽課任務,收到良好的效果。我聽的第一節(jié)課是高二(8)班,這是一個平衡班,水平不如實驗班高。在上課前。科任老師已經(jīng)跟我說了這個班的紀律是比較差的,而且成績也不是很好。在我聽課期間,確實有幾個學生在課堂上說話,但是我發(fā)

43、現(xiàn)了一個有趣的現(xiàn)象,這個現(xiàn)象我在往后的幾個班都發(fā)現(xiàn)了,就是絕大部分的學生的學習熱情都好高漲,積極舉手發(fā)言,積極參與課堂活動。我跟老師們提起這個現(xiàn)象的時候,科任老師就跟我說,一個班里不可能所有的學生都能全神貫注地聽完一節(jié)課,所以作為一名教師,應該想辦法吸引學生的注意力,調動的積極性,比如可以以小組為單位,以搶答計分的形式調動學生的積極性,這樣課堂氣氛就會活躍起來了。在為期兩周的見習工作中,我真的有很大的感觸,我第一次感受到自己已經(jīng)從一名學生向一名教師靠近,走在校園里,每當有學生叫我一聲老師,我在感到無比自豪的同時,還感受到了自己的責任。見習工作結束了,我要回到學校繼續(xù)我的學習了,但是我會好好記住我從*中學學到的一切,并應用于我的專業(yè)學習中去。一、教學管理理念 在龍巖三中,從領導階層到一位普通的科任老師,都秉承以學生為主體的宗旨進行學校的管理,進行教學工作的開展。作為一個課程改革的示范學校,一個教育實驗基地。這所學校鼓勵著老

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論