【正文】
根據(jù)設計的要求,單片機的任務是:內部進行計數(shù),在計算出速度后顯示。軟件編程用C語言完成的,需要能掌握C語言,還要熟練AT89C51單片機。從程序流程圖、編寫程序、編譯,到最后的調試,是很復雜的。下面作簡單介紹:系統(tǒng)軟件主程序的功能是完成系統(tǒng)的初始化、顯示程序。 主程序初始化定時器的初始化AT89C51有兩個定時器/計數(shù)器T0和T1,每個定時器/計數(shù)器均可設置成為16位,也可以設置成為13位進行定時或計數(shù)。計數(shù)器的功能是對T0或T1外來脈沖的進行計數(shù),外部輸入脈沖負跳變時,計數(shù)器進行加1。定時功能是通過計數(shù)器的計數(shù)來實現(xiàn)的,每個機器周期產生1個計數(shù)脈沖,即每個機器周期計數(shù)器加1,因此定時時間等于計數(shù)個數(shù)乘以機器周期。定時器工作時,每接收到1個計數(shù)脈沖(或機器周期)則在設定的初值基礎上自動加1,當所有位都位1時,再加1就會產生溢出,將向CPU提出定時器溢出中斷身請。當定時器采用不同的工作方式和設置不同的初值時,產生溢出中斷的定時值和計數(shù)值將不同,從而可以適應不同的定時或計數(shù)控制。定時器有4種工作方式:方式0、方式方式2和方式3,在此對工作方式不做具體介紹。工作方式寄存器TMOD[12]的設定:GATEC/TM1M0GATEC/TM1M0TMOD各位的含義如下:GATE:門控位,用于控制定時/計數(shù)器的啟動是否受外部中斷請求信號的影響。C/T:定時或計數(shù)方式選擇位,當C/T=1時工作于計數(shù)方式;當C/T=0時工作于定時方式。MM0為工作方式選擇位,用于對T0的四種工作方式,T1的三種工作方式進行選擇,:M1M0=00為方式0;M1M0=01為方式1; MM0為工作方式選擇位MOM1工作方式方式說明00110101012313位定時/計數(shù)器16位定時/計數(shù)器8位自動重置定時/計數(shù)器兩個8位定時/計數(shù)器(只有T0有)中斷允許控制MCS51單片機中沒有專門的開中斷和關中斷指令,對各個中斷源的允許和屏蔽是由內部的中斷允許寄存器IE的各位來控制的。中斷允許寄存器IE的字節(jié)地址為A8H,可以進行位尋址。 中斷位尋址表IED7D6D5D4D3D2D1D0(A8H)EAET2ESET1EX1ET0EX0EA:中斷允許總控位。EA=0,屏蔽所有的中斷請求;EA=1,開放中斷。ET2:定時器/計數(shù)器T2的溢出中斷允許位ES:串行口中斷允許位。ET1:定時器/計數(shù)器T1的溢出中斷允許位。EX1:外部中斷 INT1的中斷允許位。ET0:定時器/計數(shù)器T0的溢出中斷允許位。EX0:外部中斷 INT0的中斷允許位。 主程序流程圖程序流程圖總結采用單片機與光電傳感器技術來實現(xiàn)測速的測量,可以快速測量顯示速度,可以提高速度測量的精確度,本設計簡單易于用于工業(yè)等領域,且成本低廉,適合大規(guī)模生產,技術性要求較低。對于單片機與光電傳感器領域,技術研究非常完善,技術相對成熟,問題解決能力要求不高,對原有的各種性能特性無明顯的要求,能夠與其他設備相互整合,因而具有較寬的應用范圍和廣闊的應用的前景。基于單片機的速度測量系統(tǒng),具有硬件電路簡單,程序簡單和運算速度快,測速范圍廣,抗干擾性能好的特點。本課題由于能力的限制,在以下幾個問題上面有待進一步改進:在設計的信號處理電路中經過濾波,能夠進一步減少誤差,是測速精度得到提高。多套光電傳感器的運用可以進一步提高測速精度以及準確度。本課題沒有考慮報警環(huán)節(jié)設計。這個課題沒有進行仿真,如果進行仿真,本設計會更完美。致謝經過幾個月的忙碌,本次畢業(yè)設計已經接近尾聲,通過這次學校組織的畢業(yè)設計,端正了自己學習的態(tài)度,鍛煉了自己獨立動手的能力,在此,我要感謝每一個幫助過我的人。首先,我要感謝的是我的導師楊全玖老師。楊老師平日里工作繁多,但在我做畢業(yè)設計的每個階段,都給予我悉心的指導和幫助。每次我都是通過郵件以及電話詳細詢問論文設計所用到的一些技術問題,楊老師總是及時回復給予解答,另外,他的治學嚴謹和科學研究的精神也是我永遠學習的榜樣,并將積極影響我今后的學習和工作。再次,我要感謝的是我的同學***和@@在我畢業(yè)設計期間,他們給了我不少的關心和幫助,幫助我分析原理,尋找解決方案,同我共同探討設計方案,幫助我設計電路圖并講解,在此非常的感謝。理論與實踐的結合,是對知識較好牢固掌握的一種方法,這次的畢設就有這種理念?;诟淖兏叻值湍艿默F(xiàn)狀,對于即將畢業(yè)的我們,社會更迫切需要的是能力而不是以往的高分。學??闯隽诉@種現(xiàn)狀,所以安排了畢業(yè)生的最后一門課:理論實踐相結合。所以作為畢業(yè)生的我表示深切感謝。這次真的是機不可失??傊?,感謝每一位關心過我,愛護過我的人。滴水之恩,當涌泉相報。參考文獻[1][M].北京:電子工業(yè)出版社, 2011:213216.[2]、應用及仿真[M].北京:電子工業(yè)出版社, 2012:6972.[3][M].北京:電子工業(yè)出版社,2009:9299.[4]:北京航空航天大學出版社,.[5][M].北京:清華大學出版社,2010:224230.[6]:北京航空航天大學出版社,1990:263278.[7] 蔣智勇. :遼寧科學技術出版設,1992:4560.[8]:北京航空航天大學出版社,1990:3438[9]:機械工業(yè)出版社,1995:6974.[10]:哈爾濱工業(yè)大學出版社,1990:8790.[11]Tierney, J., Rader, ., and Gold, B. A Digital Frequency Synthesizer, IEEE Transactions on Audio and Electroacoustics AU19:1, March 1971:96110.[12]Goldberg, BarGiora, Digital Techniques in Frequency Synthesis, New York: McGrawHill, 1996:123134.附錄附錄A 系統(tǒng)總電路圖附錄B 系統(tǒng)總程序清單include include unsigned int num =0,S。unsihned char buf[16]。unsigned char shu[10]={0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f}。unsigned char number[10]={0,1,2,3,4,5,6,7,8,9}。float v。sbit Q1=P3^3。sbit Q2=P3^2。sbit k1=P2^4。sbit k2=P2^5。sbit k3=P2^6。sbit k4=P2^7。void main (){unsigned int a。unsigned char i。time_int()。Q1=0。Q2=0。while(1){while(Q1==0)。TR1=1。While(Q2==0)。TR1=0。a=num。V=s/(a*)。sprintf (buf ,“%.2f\n”,v)。for(i=0。i4。i++){P0=0。 if(i==0)K1=1。if(i==1){K2=1。P0=0x80。}if(i==2)K3=1。if(i==3)K4=1。If(i!=2)P0=shu[number[buf[i]]]。}}}void time_int (){ TMOD=0x10。 TH1=0x9E。 TL1=0x58。 TF1=0。 ET1=1。 TR1=0。 EA=1。}Void time0_int() interrupt{num++。 TH1=0x9E。 TL1=0x58。