第一篇:單片機總結報告
單片機總結報告
——IC卡
小組成員:劉紹凱
06291043
劉永歡
06291044
一、實驗設備
………..二、實驗原理
劉中芳
06291045
如硬件連接圖所示,本系統可分為如下幾個模塊:
單片機80C196模塊(復位、晶振電路,電源電路)顯示模塊
鍵位模塊
IC卡(24C01)模塊
80C196單片機的外圍電路:復位P22 80196內部的振蕩電路是一個單級非門電路,它與石英晶體配合時,可以組成一個振蕩器,構成單片機所需要的時鐘。
顯示見預習
鍵位見預習
IC卡見預習及資料
三、設計框圖
四、程序
五、調試過程
雖然最后還是做出來了,但做的過程還是挺復雜的。
(1)將wave6000仿真軟件復位后有如下沒注意到的語法錯誤.:
1.AX
EQU
20H 錯誤提示:“行:1,錯誤334:重復定義:AX
錯誤原因是AX寄存器在仿真軟件里的設置匯編預定義符號里已經定義過了。解決辦法一是去掉相對應的偉福預定義寄存器,二是將源程序里的寄存器定義去掉。
2.LDB
AX,OEH 錯誤原因將寄存器地址單元0E寫成了OEH,應將大寫字母O改為0(2)分步調試單步執行,斷點
3.首先檢查程序運行后4個顯示數碼管是否都有顯示,再看其顯示是否合乎要求。
按地址鍵時,發現低兩位數據每次在加1,說明控制四個字位的寄存器的順序不對,控制數碼管從高到低依次應是HSO.0~HSO.3; 4.源程序運行后,發現數碼管的高兩位數據一直在加1。
錯誤原因:當任意一個按鍵按下去后,給P0口送的是低電平,而我們編的程序恰恰相反,應該是讓P0.0~P0.3檢測到低電平時跳轉到相應的子程序。
5.每按下一次地址鍵或數據鍵時,有時要跳好幾個數,不能連續地變化。
源程序如下:DATA:
LCALL
DL1
JBS
0EH,0,SCAN DL1:
LDB
25H,#80 H1:
NOP
NOP H2:
LDB
AX,#200
NOP
NOP
DJNZ
AX,H2
DJNZ
25H,H1
RET
錯誤原因是設置按鍵的延時時間不夠長,而且當一次長時間按時,會出現數據一直往前跳的情況。要消除此種現象,我們運用了如下的程序:DAT: LCALL DL1
JBC 0EH,0,DAT 6.當按下數據鍵后,顯示的數據會往下加,但當按下寫鍵后,數據又變為寫之前的數據。說明WR子程序,改變了DATABUF里面的數據。經過我們的仔細檢查后發現在寫子程序里有如下兩句語句: LCALL
READ LD
DATABUF,READDATA 它們的作用是將IC卡當前地址中的數據讀到數碼管中,但此時更改后的數據還沒被寫入到IC卡中。應該將它們去掉或放在調用寫子程序的后面。6.每次讀出來的數據都是FF。而且將更改后的數據寫入當前的地址時,當程序復位后再找到該地址時,沒有顯示之前寫入的數據,而仍然是FF。說明無法對IC卡進行讀/寫操作。此時我們耐心地從每個與讀和寫有關的子程序查起,發現數據子程序,地址子程序,寫子程序,還有發送起始信號,結束信號,SDA及SCK信號均無異常。
此時我們想到了先單步執行,然后到寫和讀子程序時跟蹤執行,注意到了當前更改后的數據確實是存到了DATABUF,而當前的數據卻沒有進入到READDATA,說明數據沒能夠進入到IC卡中,也沒有從IC卡中讀出來。而讀時序和寫時序我們也都檢查了幾遍了,也都符合24C01的規定。此時,我們只有找到指導老師,老師幫我們看了一下程序后,發現也沒什么地方有問題,就覺得應該是IC卡有問題。所以給我們換了一張卡,然后我們試了一下,發現果然能對IC卡進行讀寫了,而且每次讀出來的數據都是隨機的。
到此,已能對IC進行正常地讀/寫了,調試完畢了!
六、設計心得
俗話說“好的開始是成功的一半”。我認為最重要的就是做好設計的預習,我們首先搜索到了IC卡的相關資料,弄清楚了單片機對該IC卡進行讀和寫的工作過程。明白了讀寫器件尋址地址、起始信號和結束信號在讀和寫的過程中所發揮的作用。然后通過編寫程序,知道了硬件的接口是如何進行連接的,進而使我加深了對整個系統工作原理的理解。
其次,老師對實驗的講解要一絲不茍的去聽去想,因為只有都明白了,做起設計就會事半功倍,如果沒弄明白,就迷迷糊糊的去調試,到頭來所做的工作都是白費。最后,要重視程序的模塊化,修改的方便,也要注重程序的調試,掌握其方法。
另外,我也學到了一些調試程序的小技巧。比如,如何設置斷點進行調試程序。還有在“單步運行”、“跟蹤執行”時觀察單片機內各寄存器內容和狀態用以檢驗目標程序是否正確、以及硬件系統的連線及功能是否正確。
軟件的編程要我們不斷的調試,最終一個能完成課程設計的勞動成果出來了,很高興它能按著設計的思想與要求工作起來。
當然,這其中也有很多問題,第一、不夠細心比如對課本理論的不熟悉導致編程出現錯誤。第二,是在學習態度上,這次課設是對我的學習態度的一次檢驗。對于這次單片機課程設計,我的第一大心得體會就是作為一名工程技術人員,要求具備的首要素質絕對應該是嚴謹。我們這次實習所遇到的多半問題多數都是由于我們不夠嚴謹。第三,是知識學得比較死,不會靈活地運用,不會舉一反三。第四,在做人上,我認識到,無論做什么事情,只要你足夠堅強,有足夠的毅力與決心,有足夠的挑戰困難的勇氣,就沒有什么辦不到的。
實踐證明,通過該課程設計,不僅提高了學生學習的興趣,加深了對專業知識的理解,開闊了視野,也為以后畢業設計打下良好的基礎。單片機課程設計這一實踐教學環節的有效開展,有助于學生有效地掌握所學知識,縮短從理論知識到實際應用的過程,很好地培養了我們對專業的興趣,增強了學生的創新意識,提高了學生的動手能力和實際應用能力。
我認為,學編程讀別人的程序非常重要,每個人都有不同的思維,相同的任務卻有很多不同的方法,在每個程序里都能找到些經典的段子,讓人回味。從中可以學到很多的方法,并且有些可以直接的引用。一個出色的程序員在編程時,并不是從零開始,而應該是先找出類似的例子進行分析,參考,看看有沒有值得引用和借鑒的地方,加以修改,為自己所用。實踐證明,這樣做是對的。
當然,努力歸努力,方法也很重要。在這里,我總結一下,與大家共勉:
1、基本功要雜實,要有一定的數模電基礎。學單片機首先要搞清楚它的基本結構和存儲單元的分配。
4、多讀有代表性的程序,讀得多了自然就會學到很多的好方法。可買本單片機子程序集看看,也可網上下載程序分析。
5、多泡泡單片機相關的論壇,與大家多交流交流,單片機完全可以自學的。
我覺得以上幾點相當重要,因為它對我幫助很大,算是將我領進了單片機的大門,以至于我學起來不那么吃力,沒有感覺到像大家說的那樣的難。我看過很多的程序,也調試過很多的程序,每一次收獲都不小。我的實驗室就是KEIL和PROTEUS。這使我做實驗很方便。雖是虛擬的,但調試程序還是可以的,省去了很多的時間提高了效率。最近我在學CX51,因為學單片機掌握C語言是非常重要的,C語言的通用性對學習其它類型的單片機有很大的幫助。今后,我想做嵌入式系統工程師,想學ARM,想搞操作系統。所以我現在必須打好基礎,這樣才能進步。
通過這種途徑的實踐教學活動,我們將前幾年所學的知識綜合起來了,將所學的知識應用于實踐中去了。這樣,到了社會上我們就更
有競爭力了。
實踐證明,通過該課程設計,不僅提高了學生學習的興趣,加深了對專業知識的理解,開闊了視野,也為以后畢業設計打下良好的基礎。單片機課程設計這一實踐教學環節的有效開展,有助于學生有效地掌握所學知識,縮短從理論知識到實際應用的過程,很好地培養了學生的專業興趣,增強了學生的創新意識,提高了學生的動手能力和實際應用能力。
第二篇:單片機課程學習總結報告
單片機課程學習總結
班級 09微電子學號姓名
這學期我們選擇了單片機這門課,從第一節課開始,我們就感覺到了這門課與其他的課有一些不同。單片機課程不僅是學習書本的內容,也需要從實驗中掌握知識。這門課程確實讓我們受到了很多的啟發,并學到了很多的知識。學習單片機,要掌握單片機指令系統中匯編語言各種基本語句的意義及匯編語言程序設計的基本知識和方法,以及單片機與其他設備相連接的輸入輸出中斷等接口技術。使我們從硬件軟件的結合上理論聯系實際,提高動手能力,從而全面掌握單片機的應用。
熟悉單片機的人都知道,要學好單片機可不是一件容易的事,倒不是因為單片機很難學,而是很難找到一本專為單片機入門者而編寫的教材。翻一下身邊的單片機教材,都好像是為已經懂單片機的人而寫的,一般先介紹單片機的硬件結構和指令系統,再是系統擴展和外圍器件,順便講一些應用設計。如果按照此種學習方法,想進行產品開發,就必須先把所有的知識全部掌握了才可以進行實際應用。學習使用單片機只能靠循序漸進的積累,不可能一蹴而就。萬事開頭難、要勇敢邁出第一步知識點用到才學,不用的暫時丟一邊。想把厚厚的一本書看完在做實驗,估計是不太可能的。看著人頭都暈了,學了后面的,前面的估計也快忘光了,所以,最好結合實際程序,用到的時候才去看。我們在焊接具體電路之前,最好做個仿真,這樣實驗的成功率會大大提高。我們都學習過C語言,相信的大家的基礎都不錯,在編寫程序千萬不要光看不寫,一定要自己寫一次。剛開始我們可以模仿別人的程序,然后慢慢的學會自己編寫,這是一個完全自主學習的過程,需要恒心和信心。
在學習這門課程時,我遇到過許多困難,這并不可怕,因為只要我們敢于面對,團結合作,就沒有解決不了的問題。在焊接電路過程中,我們需要互相學習焊接技巧,互相幫助、互相鼓勵。在編寫程序的時候,要善于把自己好的算法給大家分享,不會的時候要虛心向同學和老師請教。當然更要利用當今社
會為我們提供的網絡資源,學會在網絡上搜索資料,自主學習。切忌拿別人做好的實驗和編寫好的程序去蒙混過關,這樣對自己百害無一利。
在學習單片機的時候,讓我學會了思考生活中的點點滴滴。比如說,當我看到交通燈的時候會想到它的程序是怎樣實現的?為什么它的led燈會有如此的高亮度?而我的led燈亮度很低,如果電流稍過大,就會燒毀。在家鄉的公家車上看到遠程led信息遠程發布測試的時候,我便會想到它應有通信模塊和顯示模塊兩部分組成,也許我想的過于簡單,但是讓我學會了思考。
總之,學習單片機這門課程,不僅學會了這門專業課的知識,還提高了我的自主學習能力,更讓我的世界觀、方法論有了深層的提高,謝謝老師對我的教誨,讓我受益匪淺。
第三篇:1單片機實訓總結報告
單片機實訓總結 為了鍛煉學生的動手能力及激發學生的創新能力,我們班于第十五周在單片機實驗室迚行了單片機實訓。在實訓過程中首先我們要明確實訓目的:
1熟悉單片機應用系統的開發、研制過程。
2、能運用MCS-51單片機迚行簡單的單片機應用系統的硬件設計。
3、能采用MCS-51單片機匯編語言迚行簡單的單片機應用系統的軟件設計。
4、掌握單片機應用系統的硬件、軟件調試方法。
5、熟悉單片機仿真開發系統的作用,基本掌握運用單片機仿真開發系統迚行在線仿真、調試和目標程序固化的方法。
6、為今后從事單片機應用系統的開發、生產和維護工作奠定基礎。
在實訓的第一天我們經過指導老師,XX老師和xx老師詳細的為我們講解了實訓指導書,讓我們了解實訓當中所學的內容與一些元器件和我們要實驗的課題。在實驗中主要有三個課題。第一是十字路口交通信號燈的設計與制作。課題
2、比賽用秒表的設計與制作。課題
3、模擬霓虹燈控制系統的設計與制作。為了能讓我們更好的掌握知識我們把全班31人分成10組,我們在小組里也分工合作,也可以培養我們同
學之間的合作能力。在此有做硬件的,有做軟件的,這樣能夠更好的加強自己的動手操作能力。第一個課題是我們必須做的,在做完的第一個的基礎下才能選擇第二個或底三個,第一個課題在同學們的認真操作下很快就完成了,幾乎在第二天大部分小組都可以完成。這也證明同學們是很認真的投入到實訓當中和知識的牢固性。
在第三天,正是實訓的高潮,每個同學都投入到這種氛圍當中,在實訓操作中把不懂的記下,然后問指導老師,在老師的細心指導及時的解決問題。看到我們的不足之處。理論與實踐相結合是最好的效果。時光飛逝,一轉眼,一個周又迚尾聲了,實訓就這樣過去了,但真正的實訓還未開始,我將要繼續努力,繼續奮斗。
俗話說“好的開始是成功的一半”。說起課程設計,我認為最重要的就是做好設計的預習,認真的研究老師給的題目,選一個自己有興趣的題目。其次,老師對實驗的講解要一絲不茍的去聽去想,因為只有都明白了,做起設計就會事半功倍,如果沒弄明白,就迷迷糊糊的去選題目做設計,到頭來一點收獲也沒有。最后,要重視程序的模塊化,修改的方便,也要注重程序的調試,掌握其方法。
雖然這次的課程設計算起來在實驗室的時間只有三天,不過因為我們都有自己的實驗板,所以在宿舍里做實驗的時間一定不止三天。
硬件的設計跟焊接都要我們自己動手去焊,軟件的編程也要我們不斷的調試,最終一個能完成課程設計的勞動成果出來了,很高興它能按著設計的思想與要求運動起來。當然,這其中也有很多問題,第一、不夠細心比如由于粗心大意焊錯了線,由于對課本理論的不熟悉導致編程出現錯誤。第二,是在學習態度上,這次課設是對我的學習態度的一次檢驗。對于這次單片機綜合課程實習,我的第一大心得體會就是如果作為一名工程技術人員,要求具備的首要素質絕對應該是嚴謹。我們這次實習所遇到的多半問題多數都是由于我們不夠嚴謹。第三,在做人上,我認識到,無論做什么事情,只要你足夠堅強,有足夠的毅力與決心,有足夠的挑戰困難的勇氣,就沒有什么辦不到的。
第四篇:單片機課程設計總結報告參考22
湖州師范學院
課程設計總結報告
課程名稱電子系統綜合設計設計題目基于STC89C52的電子號碼鎖的設計
專業 班級 姓名學號指導教師報告成績
信息與工程學院(求真學院信息與工程系,兩選一)
二〇〇九年十月十九日
《電子系統綜合設計》課程設計任務書
一、課題名稱
《基于STC89C52的電子號碼鎖的設計》
二、設計任務
1.采用STC單片機和鍵盤,設置4位密碼用于模擬門鎖、保險箱的開門密碼,設置的密碼存
儲在I2C AT24X存儲器芯片中;
2.上電時初始化密碼為“0000”,數碼管顯示為“0000”;
3.密碼設置與更改:輸入“*XXXX#YYYY#”,其中“XXXX”為原先4位密碼,第一次設置
為初始密碼,“YYYY”為欲設置的4位密碼,如設置成功,則綠色LED燈亮,蜂鳴器長鳴一聲,之后LED滅;否則紅色LED閃爍三次。
4.模擬開門:輸入“#YYYY#”,如輸入密碼與存儲的密碼相符,則綠色LED燈亮,蜂鳴器
發出“滴-滴-滴”三聲,之后LED滅;否則紅色LED閃爍三次。
三、設計報告撰寫規范
單片微機應用系統設計總結報告正文,主要含以下內容(硬件、軟件各部分內容也可組合起來進行撰寫說明):
1.系統總體設計方案(畫出系統原理框圖、方案的論證與比較等內容);
2.硬件系統分析與設計(各模塊或單元電路的設計、工作原理闡述、參數計算、元器件選擇、完整的系統電路圖、系統所需的元器件清單。等內容);
3.軟件系統分析與設計(各功能模塊的程序設計流程圖與說明、軟件系統設計、軟件抗干擾
措施、完整的程序等內容);
4.系統仿真調試與參數測量(使用儀器儀表、故障排除、電路硬件和軟件調試的方法和技巧、指標測試的參數和波形、測量誤差分析);
5.總結(本課題核心內容及使用價值、電路設計、軟件設計的特點和選擇方案的優缺點、改
進方向和意見等);
6.按統一格式列出主要參考文獻。
《基于STC89C52的電子號碼鎖的設計》
課程設計總結報告
一、系統總體方案
(以下各小節可以根據內容分1.XXX2.XXX3.XXX分別進行撰寫)
(畫出系統原理框圖、方案工作過程的論述、整體設計電路圖、單片機的選型);
二、單片機概述
用到的單片機的選型及主要特點,設計時需要注意的問題?
三、鍵盤電路
鍵盤掃描概述、此次用到的鍵盤電路圖、工作原理、硬件電路注意的問題、程序流程、編程注意點?
四、顯示電路
一般顯示電路概述、用到的電路圖、用到動態掃描工作原理、硬件電路注意的問題、程序流程、編程注意點?
四、單片機擴展I2C總線器件的接口與通信
I2C總線器件概述、工作原理、與單片機的接口電路、模擬通信、程序流程、編程注意點?
五、系統調試
調試的軟硬件環境和使用說明(參考901U--USB全自動在線編程單片機實驗板實驗指導書)、調試技巧與方法、調試過程中遇到的問題及解決方法?
六、總結
心得體會、課程設計中遇到的問題及解決方法?
附錄:
(完整的程序,字號可小一二號,分兩欄排版以節省紙張)
主要參考文獻:
例:
[1] 周立功.ARM&WinCE實踐與實驗:基于S3C2410[M]北京:北京航空航天大學出版社,2007.[2] 李朝青.PC機及單片機數據通信技術[M].北京:北京航空航天大學出版社,2000
[3] 馬春華,于莉莉.SMS方式遠程監控軟件的設計與實現[J].廣東通信技術,2003,23
(4):39-41.[4] 肖冬榮,殷傳軍.魯棒GMC 控制及其工程應用[J]微計算機信息2007,30(3):21-23
第五篇:單片機實驗四總結報告 2
單片機實驗四報告
直流電機實驗實驗
一. 實驗目的利用 PWM 控制直流電機的轉動速度。
二. 實驗設備及器件
IBM PC 機 一臺
DP-51PRO 單片機綜合仿真實驗儀 一臺
三. 實驗內容
學習如何控制直流電機。PWM
功率驅動電路如下:
原理圖如圖 3.34,只要ZDJ_A 的電壓比ZDJ_B 的電壓高,電機正轉。如果ZDJ_B 的電壓比ZDJ_A 高,電機反轉。
四. 實驗要求
利用實驗六的程序,用D1 區的按鍵KEY2 與KEY3 改變PWM 的占空比來控制直 流電機的轉速。
五. 實驗步驟
1.用導線連接 A2 區的P11 與D1 區J53 接口的KEY1。
2.用導線連接 A2 區的P12 與D1 區J53 接口的KEY2。
3.用導線連接 A2 區的P10 與B8 區的J78 接口ZDJ_A。
4.B8 區J78 接口的ZDJ_B 連接到C1 區的GND。
5.短接 B8 區JP18 的電機電源跳線。
六. 實驗參考程序
#include “reg52.h”
sbit P1_0=P1^0;
sbit P1_1=P1^1;
sbit P1_2=P1^2;
unsigned char PWMH;//高電平脈沖的個數
//總脈沖個數 unsigned char PWM;
unsigned char COUNTER;
void K1CHECK();
void K2CHECK();
void INTTO()interrupt 1//定時器0中斷服務程序,在這里控制P1_0口的輸出電平,驅動電機
{
COUNTER++;//計數值加1 if((COUNTER!=PWMH)&&(COUNTER==PWM))//如果脈沖計數個數達到了預定的總脈沖個數
{
COUNTER=1;
} P1_0=1;//計數器復位 //P1.0變為高電平1,開始新的下一周期
else if(COUNTER==PWMH)//如果脈沖計數個數達到了預定的高電平脈沖數
P1_0=0;//P1.0輸出為高電平1的脈沖個數已經達到,開始變為低電平0
}
main()
{
PWMH=0x02;//預定高電平脈沖個數
COUNTER=0x01;PWM=0x15;//預定總脈沖個數 TMOD=0x02;TL0=0x38;TH0=0x38;ET0=1;EA=1;TR0=1;while(1){if(P1_1==0)K1CHECK();//掃描按鍵KEY1,如果符合,進入電機轉速加速處理函數 if(P1_2==0)//定時器0在模式2下工作 //定時器每200us產生一次溢出,設定自動重裝的值。//使能定時器0中斷 //使能總中斷 //定時器0開始計時
K2CHECK();//掃描按鍵KEY2,如果符合,進入電機轉速減速處理函數
}
}
void K1CHECK()
{
while(P1_1==0);if(PWMH!=PWM){PWMH++;//高電平脈沖個數加1,增加占空比 if(PWMH==PWM)//如果高電平脈沖個數等于總的脈沖個數,{} TR0=0;//關閉定時器,P1_0=1;//P1_0恒輸出1,達到最大轉速 else {} if(PWMH==0x02)//高電平脈沖個數增加到2時候,開啟定時器 {TR0=1;}
}
}
void K2CHECK()
{
unsigned char TEMP;
while(P1_2==0);
if(PWMH!=0x01){PWMH--;//高電平脈沖個數減1,減少占空比TEMP=PWM;TEMP--;if(PWMH==0x01)//如果高電平脈沖個數減少到1,{} else {} if(PWMH==TEMP){} TR0=1;TR0=0;//關閉定時器,P1_0=0;//P1_0恒輸出0,電機停止轉動
} }
步進電機控制實驗
一.實驗目的了解步進電機的工作原理,掌握它的轉動控制方式和調速方法。
二. 實驗設備及器件
IBM PC 機 一臺
DP-51PRO 單片機綜合仿真實驗儀 一臺
三. 實驗內容
1.編寫程序,通過單片機的 P1 口控制步進電機的控制端,使其按一定的控制方式進 行轉動。
2.分別采用雙四拍(AB→BC→CD→DA→AB)方式、單四拍(A→B→C→D→A)方
式和單雙八拍(A→AB→B→BC→C→CD→D→DA→A)方式編程,控制步進電機 的轉動方向和轉速。
3.觀察不同控制方式下,步進電機轉動時的振動情況和步進角的大小,比較這幾種控 制方式的優缺點。
四. 實驗要求
學會步進電機的工作原理和控制方法,掌握一些簡單的控制電路和基本的電機基礎
知識。
五. 實驗步驟
1.安裝C10區JP6接口上的短路帽,將C10區J41接口與A2區J61接口的P10~P13 對應相連。
2.打開程序調試軟件,下載運行編寫好的軟件程序,觀察步進電機的轉動情況。
3.修改步進電機的控制程序,再次運行程序,比較它們的不同控制效果。
六. 實驗程序代碼
#include “reg51.h”
void DELAY();
main()
{
while(1){
P1=0x08;DELAY();P1=0x0C;DELAY();P1=0x04;DELAY();P1=0x06;DELAY();P1=0x02;DELAY();P1=0x03;DELAY();P1=0x01;DELAY();P1=0x09;DELAY();//A //AB //B //BC //C //CD //D //DA
}
}
void DELAY()
{
unsigned char i,j;
for(i=0;i<10;i++)
for(j=0;j<100;j++);
}
總結:
通過是要進一步熟悉了之前對于51單片機的開發環境,鞏固掌握了單片機開發語言的使用以及循環結構的設置及調用。通過上機,將書本上學習到的知識運用到實際中,實際操作的過程中通過修改代碼達到改變控制的效果。