LED單片機課程設計_第1頁
LED單片機課程設計_第2頁
LED單片機課程設計_第3頁
LED單片機課程設計_第4頁
LED單片機課程設計_第5頁
已閱讀5頁,還剩15頁未讀, 繼續免費閱讀

下載本文檔

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

文檔簡介

1、一、課程設計目的單片機原理及應用課程設計是一項重要的實踐性教育環節,是學生在校期間必須接受的一項工程訓練。在課程設計過程中,在教師指導和同學幫助下,應用工程的方法,通過一個課題的設計練習,可使學生初步體驗單片機應用系統的設計過程、設計要求、完成的工作內容和具體的設計方法,了解必須提交的各項工程文件,也達到鞏固、充實和綜合運用所學知識解決實際問題的目的。通過課程設計,應該能加強學生如下能力的培養:(1)獨立工作能力和創造力;(2)綜合運用專業及基礎知識,解決實際工程技術問題的能力;(3)查閱圖書資料、產品手冊和各種工具書的能力;(4)工程繪圖的能力;(5)編寫技術報告和編寫技術資料的能力。二、設

2、計要求(1)認真研究設計任務書,明確設計要求、條件、內容和步驟;復習課程有關內容,熟 悉有關單元電路的設計方法和步驟;搜集、分析、消化相關資料、軟件等;掌握微型計算機 應用系統軟件設計方法;準備好設計需要的圖書、資料和工具;擬定設計計劃等;(2)系統總體及功能設計,制定總體方案及元器件的選擇;(3)硬件設計,完成硬件結構圖設計、系統電路圖設計和繪制及電路模塊的連接;(4 )軟件設計,完成軟件流程圖的設計、程序設計與調試;(5 )系統程序調試;(6 )設計工作總結;(7)寫出設計報告。三、硬件電路總體設計3.1系統硬件總框圖圖1硬件總框圖蜂鳴器主控電路液晶顯示3.2系統設計原理3、2、1AT89

3、C52單片機本設計中所用的單片機型號為 AT89C52,其主要特性為:1) 有CHMO工藝的節能運行方式2) 兼容MCS51指令系統3)3個16位可編程定時/計數器中斷4)2個串行中斷5)2個外部中斷源6)2個讀寫中斷口線7) 低功耗空閑和掉電模式8)8k 可反復擦寫(1000 次)Flash ROM9)256x8 bit 內部 RAM10) 時鐘頻率0-24MHZ11) 可編程UART串行通道12) 共6個中斷源,3級加密位13) 軟件設置睡眠和喚醒功能1 1i12:S 1:S *JUJU21 11 1!IG 1二二1111 1*1*1:1xxhdhd i iI IJ J:歲1- -i i

4、v v11民333 3、2 2、2 2 LEDLED流水燈實現8個LED流水燈程序用中文表示為:P1.0低、延時、P1.0高、P1.1低、延時、P1.1高、P1.2低、延時、P1.2高、P1.3低、延時、P1.3高、P1.4低、延時、P1.4高、P1.5低、 延時、P1.5高、P1.6低、延時、P1.6高、P1.7低、延時、P1.7高、返回到開始、程序結 束。程序語言”目前主要有匯編語言和C語言兩種:在我們所說的翻譯”軟件,同行們都叫它為“編譯器”,將“程序語言”通過編譯器產生單片機的二進制代碼的過程叫編譯。前面說到,要想使 LED1變亮,只需將對應的單片機引腳電平變為低電平就可以了。CLR

5、:是將其后面指定的位清為0,程序中使對應端口輸出低電平ACALL :是子程序調用指令,程序中調用了DELAY延時子程序SETB :是將其后面指定的位置成1,程序中是對應端口輸出高電平AJMP :是無條件跳轉指令,意思是:跳轉到指定的標號處繼續運行END :是程序結束的偽指令,意思是告訴編譯器,程序到此結束。偽指令只告訴編譯器此程序到此有何要求或條件,它不參與和影響程序的執行。圖2 AT89C52單片機引腳圖圖3 LED流水燈(返回主程序圖4流水燈程序流程圖3 3、2 2、3 3蜂鳴器本電路通過一個 PNP三極管9012來放大驅動蜂鳴器,蜂鳴器的正極接到VCC (+ 5V)電源上面,蜂鳴器的負極

6、接到三極管的發射極,三極管的基極經過限流電阻Ri后由單片機的10控制,當輸出高電平時,三極管Q截止,沒有電流流過線圈,蜂鳴器不發聲;當輸出低電平時,三極管導通,這樣蜂鳴器的電流形成回路,發出聲音。因此,可以通過程序控制 IO 口輸出的電平來使蜂鳴器發出聲音和關閉。產生各種可能的音響。圖5蜂鳴器電路3、2、4 數碼管數碼管動態顯示接口是單片機中應用最為廣泛的一種顯示方式之一,動態驅動是將所有數碼管的8個顯示筆劃a, b,c, d,e,f,g,dp的同名端連在一起,另外為每個數碼管 的公共極COM增加位選通控制電路,位選通由各自獨立的I/O線控制,當單片機輸出字形碼時,所有數碼管都接收到相同的字形

7、碼,但究竟是那個數碼管會顯示出字形,取決于單片機對位選通COM端電路的控制,所以我們只要將需要顯示的數碼管的選通控制打開,該位就顯示出字形,沒有選通的數碼管就不會亮。通過分時輪流控制各個數碼管的的COM端,就使各個數碼管輪流受控顯示,這就是動態驅動。在輪流顯示過程中,每位數碼管的點亮時間為1s,由于人的視覺暫留現象及發光二極管的余輝效應,盡管實際上各位數碼管并非同時點亮,但只要掃描的速度足夠快,給人的印象就是一組穩定的顯示數據,不會有閃爍感,動態顯示的效果和靜態顯示是一樣的, 能夠節省大量的I/O端口,而且功耗更低。V2V2圖6 數碼管引腳圖325 LM032L的LCD夜晶顯示時間可以對年、月

8、、日 周日時、分、秒進行計時,具有閏年補償功能,工作電壓為2.5V5.5V。采用三線接口與CPU進行同步通信,并可采用突發方式一次傳送多個字節的時鐘信號或RAM數據。LCD液晶顯示器是Liquid Crystal Display的簡稱,LCD的構造是在兩片平行的玻璃當中放置液態的晶體,兩片玻璃中間有許多垂直和水平的細小電線,透過通電與否來控制桿狀水晶分子改變方向,將光線折射出來產生畫面。LM032I是共陰極的,當高電平時,顯示亮。RS是復位端,E是使能端。圖7DS1302模塊電路圖3.3硬件原理電路圖Ub b !p p ffntffntLJ7 7l l J1J1 COM4COM4a a Lur

9、Lur LiJLiJb bf f r r / / f f COM?7 1 II.p p i icowcowI I1 1 L L DPDPL113DRK11L113DRK11.1JBJR6 7 74 4U U:QRJQRJ 1 1訂)0 0茁|0 0 i.r:mR5i.r:mR5 ? ?1 1 :DPR3DPR3 5 56 6 COM4COM4E E CLAltCLAlt9 9 COM2COM21212 COMICOMI9UU:TJi?期nau:n.:y口ISM皿 WMWM & & WMCUWMCU期舊皿 呱 SE w w(V(V颯博(U(U園C Kl.riFXHI冋0d P Q= : (fl

10、前無丙圖8主程序流程圖五、完整的程序清單主程序清單:#in clude#defi ne uchar un sig ned char#defi ne uint un sig ned intsbit LCD_EN=P3M;sbit LCD_RS=P3A5;sbit s仁 P3A0;sbit s2=P3A1;sbit s3=P3A2;sbit rd=P3A7;uchar coun t,s1 num;char miao,shi,fe n;uchar code table= 陳秋梅 FIR;uchar code table1= 20:25:00;sbit smg1=P2A0;sbit smg2=P2A1

11、;sbit smg3=P2A2;sbit smg4=P2A3;sbit key仁卩0人1;sbit key2=P2A7; sbit key3=P0A3;sbit key4=P0A4;sbit c=P0A5;sbit b=P0A6;sbit a=P0A7;sbit SPK=P0A0; / void delay1( un sig ned int ent) while(-ent);void delay( uint z)uint x,y;for(x=z;x0;x-)for(y=110;y0;y-);void write_com(uchar com)LCD_RS=0;P仁com;delay(5);LCD

12、_EN=1;delay(5);LCD_EN=0;void write_data(uchar date)LCD_RS=1;P仁 date;delay(5);LCD_EN=1;delay(5);LCD_EN=0; void in it() uchar num;LCD_EN=0; write_com(0 x38); write_com(0 x0f); write_com(0 x06);write_com(0 x01);write_com(0 x80);for(num=0; num 15; nu m+) write_data(table nu m); delay(5);write_com(0 x80+

13、0 x40);for(num=0; num 12; nu m+) write_data(table1 nu m); delay(5);TM0D=0 x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=1;TR0=1; void write_sfm(uchar add,uchar date) uchar shi,ge;shi=date/10;ge=date%10; write_com(0 x80+0 x40+add); write_data(0 x30+shi);write_data(0 x30+ge);void keysca n()

14、rd=0;if(s仁=0)delay(5);if(s1=0) s1nu m+;while(!s1);if(s1 num=1)TRO=O;write_com(0 x80+0 x40+10); write_com(OxOf);if(s1 num=2)write_com(0 x80+0 x40+7);if(s1 num=3)write_com(0 x80+0 x40+4);if(s1 num=4)s1num=0;write_com(OxOc);TR0=1;if(s1 nu m!=0)if(s2=0)delay(5);if(s2=0)while(!s2);if(s1 num=1)miao+;if(mi

15、ao=60)miao=0;write_sfm(10,miao);write_com(0 x80+0 x40+10);if(s1 num=2)fen+;if(fen=60)fen=0;write_sfm(7,fe n);write_com(0 x80+0 x40+7);if(s1 num=3)shi+;if(shi=24)shi=0;write_sfm(4,shi);write_com(0 x80+0 x40+4);if(s3=0)delay(5);if(s3=0)while(!s3);if(s1 num=1)miao-;if(miao=-1)miao=59;write_sfm(10,miao)

16、;write_com(0 x80+0 x40+10);if(s1 num=2)fen-;if(fen=-1)fen=59;write_sfm(7,fe n);write_com(0 x80+0 x40+7);if(s1 num=3)shi-;if(shi=-1)shi=23;write_sfm(4,shi);write_com(0 x80+0 x40+4);/main () uchar i;smg1=1;smg2=1;smg3=1;smg4=1;while(1)if(key1=0)P仁 0 xf9;smg1=0;delay(2);smg1=1;P仁OxcO;smg2=0;delay(2);sm

17、g2=1;P1=0 xf8;smg3=0;delay(2);smg3=1;P1=0 xa4;smg4=0;delay(2);smg4=1;if(key2=0)c=0;b=0;a=0;for(i=0;i10;i+) delay1(2000);c=0;b=0;a=1;for(i=0;i10;i+) delay1(2000);c=0;b=1;a=0;for(i=0;i10;i+) delay1(2000);c=0;b=1;a=1;for(i=0;i10;i+) delay1(2000);c=1;b=0;a=0; for(i=0;i10;i+) delay1(2000);c=1;b=0;a=1;for

18、(i=0;i10;i+) delay1(2000);c=1;b=1;a=0;for(i=0;i10;i+) delay1(2000);c=1;b=1;a=1;for(i=0;i10;i+)delay1(2000);if(key3=0)SPK=!SPK;for(i=0;i50;i+) delay1(500);if(key4=0)ini t();while(1)keysca n();void timerO() in terrupt 1TH0=(65536-50000)/256;TL0=(65536-50000)%256; coun t+;if(cou nt=18)coun t=0;miao+;if

19、(miao=60)miao=0;fen+;if(fen=60)fen=0;shi+;if(shi=24)shi=0;write_sfm(4,shi);write_sfm(7,fe n);write_sfm(10,miao);六、調試情況及小結6.1硬件調試硬件調試是一件重要而細微的工作,許多硬件錯誤往往是在軟件調試時被發現的。通常,先排除明顯的硬件故障,之后,再和測試軟件結合起來調試。硬件調試可分為靜態調試和動態調試兩步。靜態調試是在用戶系統未工作時的一種硬件檢測。檢測步驟如下: 目測:檢查外部的各種元件或者是電路是否有斷點,及焊點是否牢固,是否存在虛焊等現象; 用萬用表測試:先用萬用表復核目

20、測中有疑問的焊接點及可能在焊接過程中燒壞的元 件,再檢測各種電源線與地線之間是否有短路現象; 加電檢測:給板加電,檢測所有插座或器件的電源是否符合要求; 聯機檢測:要完成對用戶系統的調試,需在單片機開發系統環境下進行。動態調試是在用戶系統工作的情況下發現和排查錯誤的一種硬件檢測。動態調試的一般方法是由近及遠、由分到合。由分到合是指首先按邏輯功能將用戶系統硬件電路分為若干塊, 當調試電路時,與該元件無關的器件全部從用戶系統中去掉,這樣可以將故障范圍限定在某個局部的電路上。當各塊電路無故障后,將各電路逐塊加入系統中,在對各塊電路功能及各電路間可能存在的相互聯系進行調試。由分到合的調試既告完成。由近

21、及遠是將信號流經的各器件按照距離單片機的邏輯距離進行由近及遠的分層,然后分層調試。調試時,仍采用 去掉無關元件的方法,逐層調試下去,就會定位故障元件了。6.2軟件調試軟件調試是通過對程序的匯編、連接、執行來發現程序中存在的語法錯誤與邏輯錯誤并 加以排除糾正的過程。6、3調試結果keyl數碼管顯示動態的數字1072,當key2鍵按下后流水燈,當key3鍵按下后可以顯示蜂 鳴器工作,當key4鍵按下后可以調節電子鐘的分時間當key4鍵。七、記錄程序的步驟1、 用編輯軟件編寫程序, 注意,使用匯編語言編寫的程序文件名后綴(即擴展名)是.c, 編寫的程序稱為源程序。2、通過編程器擴展名為.HEX的可執行文件燒寫到單片機內。在寫入之前還可以進行軟件仿真,即在軟件上模擬單片機程序原形情況,以便進行調試和修改。八、心得體會兩個星期的實踐和體驗對我來說學到的不僅是那些知識,更多的是團隊與合作。 這項看起來不需要多少技術的工作卻是非常需要耐心和精力在兩個星期后的今天我已明白課程設 計對我來說的意義,它不僅僅是讓我們把所學的理論知識與實踐相結合起來,提高自己的實際動手能力和獨立思考的能力,更重要的是同學間的團結,雖然我們這次花去的時間比別人多,但我

溫馨提示

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

評論

0/150

提交評論