




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、-. z心形流水燈設計摘 要本課題是利用STC89C52設計了一個心形流水燈電路,該電路可以實現32個LED燈循環(huán)閃亮、依次熄滅、對角閃亮、對角熄滅、間隔閃亮、間隔熄滅等多種功能。該電路主要由單片機芯片STC89C52、電源電路、時鐘電路、復位電路和顯示電路組成。利用Keil軟件編寫C語言程序,并生成目標代碼He*文件。使用Proteus軟件設計仿真電路,并調入已編譯好的目標代碼,即可在仿真圖中看到模擬實物的運行狀態(tài)和過程。使用Altium Designer軟件對電路進展原理圖設計和PCB設計,并對該電路行安裝和調試,調試結果可以實現流水燈的多種亮滅循環(huán)的功能。關鍵詞:AT89C52,復位電路
2、,時鐘電路,發(fā)光二極管目 錄 TOC o 1-3 h z u HYPERLINK l _Toc4851985711 緒論 PAGEREF _Toc485198571 h 1HYPERLINK l _Toc4851985721.1 課題描述 PAGEREF _Toc485198572 h 1HYPERLINK l _Toc4851985731.2 根本工作原理及框圖 PAGEREF _Toc485198573 h 1HYPERLINK l _Toc4851985742 相關芯片及硬件電路設計 PAGEREF _Toc485198574 h 2HYPERLINK l _Toc4851985752.
3、1 AT89C52芯片 PAGEREF _Toc485198575 h 2HYPERLINK l _Toc4851985762.1.1 AT89C52的功能特性 PAGEREF _Toc485198576 h 2HYPERLINK l _Toc4851985772.1.2 AT89C52的主要性能參數 PAGEREF _Toc485198577 h 2HYPERLINK l _Toc4851985782.2 時鐘電路 PAGEREF _Toc485198578 h 3HYPERLINK l _Toc4851985792.3 復位電路 PAGEREF _Toc485198579 h 4HYPER
4、LINK l _Toc4851985802.4 顯示電路 PAGEREF _Toc485198580 h 4HYPERLINK l _Toc4851985812.6 總原理圖設計 PAGEREF _Toc485198581 h 5HYPERLINK l _Toc4851985823 系統(tǒng)軟件設計 PAGEREF _Toc485198582 h 6HYPERLINK l _Toc4851985833.1 程序主要流程 PAGEREF _Toc485198583 h 6HYPERLINK l _Toc4851985843.2 程序設計 PAGEREF _Toc485198584 h 7HYPERL
5、INK l _Toc4851985853.4 電路功能仿真 PAGEREF _Toc485198585 h 20HYPERLINK l _Toc485198586總 結 PAGEREF _Toc485198586 h 21HYPERLINK l _Toc485198587致 PAGEREF _Toc485198587 h 22HYPERLINK l _Toc485198588參考文獻 PAGEREF _Toc485198588 h 23-. z1 緒論1.1 課題描述隨著現代科學技術的持續(xù)進步和開展以及人們生活水平的不斷提高,以大規(guī)模、超大規(guī)模集成電路為首的電子工藝技術的使用也越來越廣泛,結合
6、單片機技術設計的電子電路也層出不窮。 LED彩燈由于其豐富的燈光色彩、低廉的造價以及控制簡單等特點而得到了廣泛的應用,用彩燈來裝飾街道和城市建筑物已經成為一種時尚。利用控制電路可使彩燈按一定的規(guī)律不斷的改變狀態(tài),不僅可以獲得良好的欣賞效果,而且可以省電。 彩燈的運用已經遍布于人們的生活中,從歌舞廳到卡拉OK包房,從節(jié)日的祝賀到日常生活中的點綴,這些不僅說明了我們對生活的要求有了質的飛躍,也說明科技在現實生活中的運用有了較大的開展。在這一設計中我們將運用單片機技術,與單片機芯片STC89C52的功能,對心形流水燈系統(tǒng)進展設計,來實現流水燈的多種亮與滅的循環(huán),給人帶來美感1。1.2 根本工作原理及
7、框圖本課程設計的*系統(tǒng)原理如圖1所示。電源電路 AT89C52 顯示電路時鐘電路復位電路圖1根本工作原理框圖2 相關芯片及硬件電路設計2.1AT89C52芯片。圖2 AT89C52引腳圖2.1.1 AT89C52的功能特性STC89C52是STC公司生產的一種低功耗、高性能的微控制器,具有8K的系統(tǒng)可編程Flash存儲器,其具有傳統(tǒng)51單片機不具備的功能,在經典的MCS-51核上做了很多的改良,使得STC89C52在處理嵌入式控制應用系統(tǒng)時更加高效、靈活。STC89C52具有以下標準功能:4個外部中斷、全雙工串行口、一個7向量4級中斷構造、3個16位定時器/計數器、8K字節(jié)Flash、512字
8、節(jié)RAM隨機存儲器、看門狗定時器,其12周期和6周期可以任意選擇,其工作電壓在3V5.5V之間,工作頻率在040MHZ,實際工作頻率可達48MHZ2。其管腳的封裝圖如圖2所示。2.1.2 AT89C52的主要性能參數AT89C52主要性能參數如下:與MC51產品指令系統(tǒng)完全兼容VCC38腳:芯片電源,接+5VGND16腳:接地端*TAL115腳:片振蕩器反相放大器和時鐘發(fā)生器電路的輸入端。當使用片振蕩器時,該引腳連接外部石英晶體和微調電容;當采用外接時鐘源時,該引腳接外部時鐘振蕩器的信號 *TAL214腳:片振蕩器反相放大器的輸出端。當使用片振蕩器時,該引腳連接外部石英晶體和微調電容;當采用外
9、部時鐘源時,該引腳懸空ALE27腳:用來鎖存P0口送出的低8位地址PSEN26腳:外部ROM讀選通信號RST4腳:復位信號輸入端EA/Vpp29腳:外ROM選擇/片EPROM編程電源P0口:8位,漏極開路的雙向I/O口P1口:8位,準雙向I/O口,具有部上拉電阻P2口:8位,準雙向I/O口,具有部上拉電阻P3口:8位,準雙向I/O口,具有部上拉電阻2.2時鐘電路單片機有一個由反相放大器所構成的振蕩電路,*TAL1和*TAL2分別為振蕩電路的輸入端和輸出端。在*TAL1和*TAL2引腳上外接石英晶體和微調電容構成并聯振蕩回路。晶振頻率設置為11.0592MHZ,作用是產生時鐘信號。單片機晶振提供
10、的時鐘頻率越高,則單片機運行速度就越快,單片接的一切指令的執(zhí)行都是建立在單片機晶振提供的時鐘頻率。電容值為30pF,可以起到頻率微調作用3。時鐘電路如圖3所示。圖3 時鐘電路圖2.3復位電路單片機RST接口為復位信號輸入端,高電平有效。在該引腳上加上持續(xù)時間大于兩個機器周期的高電平,就可以使單片機復位。在單片機正常工作時,此引腳應為小于或等于0.5V的低電平。復位電路接單片機RST端口,在RST輸入端出現高電平時實現復位和初始化4。復位電路如4所示。圖4 復位電路2.4 顯示電路單片機的P0口為8位的漏極開路的雙向I/O口,當P0口作為普通的I/O口使用時,需要上拉電阻,這時為準雙向口。P1
11、、P2、 P3 都為8位的準雙向口,具有部上拉電阻。圖5為顯示電路,單片機I/O口一對一直接控制LED燈,顯示電路中的32個電阻既為上拉電阻,也起到電路分壓作用,防止燒壞元器件5。顯示電路如圖5 所示圖5顯示電路圖2.6 總原理圖設計總結時鐘電路、復位電路、以及顯示電路,把其放入一個電路。得到總體的電路??傮w電路如圖6所示。圖6 電路原理圖3 系統(tǒng)軟件設計3.1 程序主要流程單片機的應用系統(tǒng)由硬件和軟件組成,在硬件原理圖搭建完成上電之后,暫時還不能看到流水燈循環(huán)點亮的現象,還需要編寫程序控制單片機管腳電平的上下變化,來實現LED燈的各種亮滅功能。先將P0、P1、P2、P3全部置1,即通入高電平
12、,用16進制表示為0*FFH,則32個LED燈全部處于熄滅狀態(tài)。然后給P0口賦值0*7FH,即只有P0.0處于低電平時,LED1燈點亮。使用延時函數delay,并設置延時時間為2秒,延時時間一到P0口的值就變?yōu)?*3FH,即P0.0和P0.1都為高電平,LED2也開場點亮,如此循環(huán)P0口控制的8個LED燈全部點亮,當高電平變?yōu)榈碗娖綍r,LED燈熄滅。P1、P2、P3口控制的LED燈閃亮和熄滅原理同P0口一樣,所以就可以看到LED燈的流水效果了6。程序流程圖如圖7所示,開場讀取I/O口狀態(tài)判斷I/O口狀態(tài)低電平高電平LED燈點亮LED燈熄滅 延時燈流動運行完畢圖7 程序設計流程圖3.2 程序設計
13、*include*include *defineuint unsigned int*defineuchar unsigned charuchar code table=0*fe,0*fc,0*f8,0*f0,0*e0,0*c0,0*80,0*00; / 逐個點亮07uchar code table1=0*7f,0*3f,0*1f,0*0f,0*07,0*03,0*01,0*00; / 逐個點亮70uchar code table2=0*01,0*03,0*07,0*0f,0*1f,0*3f,0*7f,0*ff; / 逐個滅07uchar code table3=0*80,0*c0,0*e0,0
14、*f0,0*f8,0*fc,0*fe,0*ff; / 逐個滅70void delay(uint t);/延時void zg(uint t,uchar a);/兩邊逐個亮void qs(uint t,uchar a);/全部閃爍void zg*h(uint t,uchar a); / 逆時針逐個點亮/void zg*h1(uint t,uchar a); / 順時針逐個點亮void djs(uint t,uchar a); /對角閃void lbzgm(uint t,uchar a);/兩邊逐個滅/void sszgm(uint t,uchar a); / 順時針逐個滅void nszgm(ui
15、nt t,uchar a); / 逆時針逐個滅void sztl(uint t,uchar a);/順時逐個同步亮void nztl(uint t,uchar a);/逆時逐個同步亮void sztm(uint t,uchar a);/順時逐個同步滅void nztm(uint t,uchar a);/逆時逐個同步滅void hwzjl(uint t,uchar a); /橫往中間亮void hwzjm(uint t,uchar a); /橫往中間滅/void swzjl(uint t,uchar a); /豎往中間亮/void swzjm(uint t,uchar a); /豎往中間滅voi
16、d nzdl(uint t,uchar a); /逆時逐段亮void nzdgl(uint t,uchar a); /逆時逐段一個點亮void jgs(uint t,uchar a); /間隔閃void zg(uint t,uchar a)/兩邊逐個亮uchar i,j; for(j=0;ja;j+) P0=P1=P2=P3=0*ff; P0=0*7f;delay(t); for(i=0;i7;i+) P0=table1i+1; P2=table1i; delay(t); P2=0*00;P1=0*fe; delay(t); for(i=0;i7;i+) P1=tablei+1;P3=tabl
17、e1i;delay(t); P3=0*00;delay(t); void qs(uint t,uchar a) /全部閃爍uchar j;for(j=0;ja;j+) P0=P1=P2=P3=0*ff; delay(t); P0=P1=P2=P3=0*00; delay(t); void zg*h(uint t,uchar a) / 逆時針逐個點亮uchar i,j;for (j=0;ja;j+)P0=P1=P2=P3=0*ff;for (i=0;i8;i+)P0=table1i;delay(t);for(i=0;i8;i+)P1=tablei;delay(t);for(i=0;i8;i+)P
18、3=tablei;delay(t);for(i=0;i8;i+)P2=tablei;delay(t);void nszgm(uint t,uchar a) / 逆時針逐個滅uchar i,j;for(j=0;ja;j+)P0=P1=P2=P3=0*00;for (i=0;i8;i+)P0=table3i;delay(t);for (i=0;i8;i+)P1=table2i;delay(t);for (i=0;i8;i+)P3=table2i;delay(t);for (i=0;i8;i+)P2=table2i;delay(t);void zg*h1(uint t,uchar a) / 順時針逐
19、個點亮uchar i,j;for (j=0;ja;j+)P0=P1=P2=P3=0*ff;for (i=0;i8;i+)P2=table1i;delay(t);for(i=0;i8;i+) P3=table1i;delay(t);for(i=0;i8;i+)P1=table1i;delay(t);for(i=0;i8;i+)P0=tablei;delay(t);void sszgm(uint t,uchar a) / 順時針逐個滅uchar i,j;for(j=0;ja;j+)P0=P1=P2=P3=0*00;for (i=0;i8;i+)P2=table3i;delay(t);for (i=
20、0;i8;i+)P3=table3i;delay(t);for (i=0;i8;i+)P1=table3i;delay(t);for (i=0;i8;i+)P0=table2i;delay(t);void djs(uint t,uchar a) /對角閃uchar j;for(j=0;ja;j+) P0=P1=P2=P3=0*ff;P0=P3=0*00;delay(t);P0=P1=P2=P3=0*ff;P1=P2=0*00;delay(t);void lbzgm(uint t,uchar a)/兩邊逐個滅 uchar i,j; for (j=0;j1;i-)P1=tablei-1;P3=ta
21、ble1i-2;delay(t);P1=0*fe;P3=0*ff;delay(t);P1=0*ff;P2=0*01;delay(t);for(i=7;i1;i-)P0=table1i-1;P2=table1i-2;delay(t);P0=0*7f;P2=0*ff;delay(t);P0=0*ff;delay(t); void sztl(uint t,uchar a)/順時逐個同步亮uchar i,j;for(j=0;ja;j+)P0=P1=P2=P3=0*ff;for(i=0;i8;i+)P0=tablei;P1=P2=P3=table1i; delay(t);void nztl(uint t
22、,uchar a)/逆時逐個同步亮uchar i,j;for(j=0;ja;j+)P0=P1=P2=P3=0*ff;for(i=0;i8;i+)P0=table1i;P1=P2=P3=tablei;delay(t);void sztm(uint t,uchar a)/順時逐個同步滅uchar i,j;for(j=0;ja;j+)P0=P1=P2=P3=0*00;for(i=0;i8;i+)P0=table2i;P1=P2=P3=table3i;delay(t);void nztm(uint t,uchar a)/逆時逐個同步滅uchar i,j;for(j=0;ja;j+)P0=P1=P2=P
23、3=0*ff;for(i=0;i8;i+)P0=table3i;P1=P2=P3=table2i;delay(t);void hwzjl(uint t,uchar a) /橫往中間亮uchar i,j;for (j=0;ja;j+)P0=P1=P2=P3=0*ff;for(i=0;i8;i+)P0=P2=P1=table1i;P3=tablei;delay(t);void hwzjm(uint t,uchar a) /橫往中間滅uchar i,j;for (j=0;ja;j+)P0=P1=P2=P3=0*00;for(i=0;i8;i+)P0=P2=P1=table3i;P3=table2i;
24、delay(t);void swzjl(uint t,uchar a) /豎往中間亮uchar i,j;for (j=0;ja;j+)P0=P1=P2=P3=0*ff;for(i=0;i8;i+)P0=P2=P1=tablei;P3=table1i;delay(t);void swzjm(uint t,uchar a) /豎往中間滅uchar i,j;for (j=0;ja;j+)P0=P1=P2=P3=0*00;for(i=0;i8;i+)P0=P2=P1=table2i;P3=table3i;delay(t);void nzdl(uint t,uchar a) /逆時逐段亮uchar i,
25、j;for (j=0;ja;j+)P0=P1=P2=P3=0*ff;for(i=0;i8;i+)P0=table1i;delay(t);P0=0*ff;for(i=0;i8;i+)P1=tablei;delay(t);P1=0*ff;for(i=0;i8;i+)P3=tablei;delay(t);P3=0*ff;for(i=0;i8;i+)P2=tablei;delay(t);P2=0*ff;void nzdgl(uint t,uchar a) /逆時逐段一個點亮uchar i,j,k,l;for (j=0;ja;j+)k=table10;P0=k;l=table0;P1=P2=P3=l;d
26、elay(t);for(i=0;i8;i+)k=_crol_(k,-1);P0=k;l=_crol_(l,1);P1=P2=P3=l;delay(t);void jgs(uint t,uchar a) /間隔閃uchar j;for (j=0;ja;j+)P0=0*55;P1=P2=P3=0*aa;delay(t);P0=0*aa;P1=P2=P3=0*55;delay(t);void main()uchar i;while(1) zg(100,1); /兩邊逐個亮 lbzgm(100,1); /兩邊逐個滅 jgs(300,10); djs(100,20); /對角閃P1=P2=P3=0*ff
27、;for(i=0;i3;i+) P0=0*00;delay(800); P0=0*ff;delay(800); P0=0*00; for(i=0;i3;i+) P1=0*00;delay(800); P1=0*ff;delay(800); P1=0*00; for(i=0;i3;i+) P3=0*00;delay(800); P3=0*ff;delay(800); P3=0*00; for(i=0;i3;i+) P2=0*00;delay(800); P2=0*ff;delay(800); qs(500,3);for(i=0;i6;i+) zg*h(50,1); nszgm(50,1); dj
28、s(100,20); /對角閃for(i=0;i3;i+) zg(100,1); /兩邊逐個亮 lbzgm(100,1); /兩邊逐個滅 qs(200,10);djs(100,50); for(i=0;i5;i+) sztl(200,1); /順時逐個同步亮nztm(200,1); nztl(200,1);sztm(200,1); /順時逐個同步滅 djs(300,10); /對角閃 nzdgl(300,10); /逆時逐段一個點亮 jgs(300,10); /間隔閃for(i=0;i3;i+) zg*h(100,1); nszgm(100,1); for(i=0;i5;i+) zg*h1(1
29、00,1); sszgm(100,1); nzdl(200,3); /逆時逐段亮 jgs(50,100); /間隔閃P0=P1=P2=P3=0*ff;for (i=0;i8;i+)P0=table1i;delay(200);for (i=0;i8;i+)P1=tablei;delay(200);for(i=0;i3;i+)P0=P1=0*00;delay(200);P0=P1=0*ff;delay(200);for (i=0;i8;i+)P2=table1i;delay(200);for (i=0;i8;i+)P3=table1i;delay(200);for(i=0;i3;i+)P2=P3=
30、0*00;delay(200);P2=P3=0*ff;delay(200);nzdgl(50,40); /逆時逐段一個點亮for(i=0;i4;i+) zg(100,1);qs(100,10); lbzgm(100,1); djs(50,100); /對角閃for(i=0;i3;i+) zg*h(100,1); nszgm(100,1); djs(1000,10); for(i=0;i10;i+) hwzjl(200,1); /橫往中間亮hwzjm(200,1); /橫往中間滅 djs(300,10); /對角閃 for(i=0;i10;i+) swzjl(200,1); /豎往中間亮swzj
31、m(200,1); /豎往中間滅 for(i=0;i5;i+) zg*h(100,1); nszgm(100,1); djs(100,20); /對角閃 zg(300,1); lbzgm(300,1);for(i=0;i5;i+) zg*h1(100,1); sszgm(100,1); for(i=0;i0;*-)for (y=120;y0;y-);3.4 電路功能仿真在各局部電路設計的根底上,按照總體電路圖在Proteus上一一進展器件選擇,并連接。將電路連接好后,為各個器件選擇適宜的參數,然后調入已編譯好的目標代碼He*文件,啟動仿真。根據LED燈是否發(fā)亮,判斷所設計的電路是否可以實現32個LED燈依次點亮、依次熄滅、對角閃亮、對角熄滅、間隔閃亮、間隔熄滅等多種功能。剛開場時,LED燈不亮,仔細檢查原來是將LED燈接反了,改正之后LED燈便可以正常發(fā)光了。電路仿真的結果為32個LED燈依次發(fā)亮、依次熄滅,并可以實現多種亮滅功能。根據仿真結果可知電路原理及程序無誤,可以進展PCB設計7。如圖8所示。圖8 電路仿真圖總 結在設計電路圖的過程中,經過了屢次分析和仿真驗證,并結合所給的器件清單最后確定了需要哪些器件來實現電路的功能,并且保證了所需要的元器件在給出的清單圍。經過Proteus軟件屢次仿真和修改后,在仿真電路圖實現設計要求的前提下確定了最終的原理圖。然后在Alti
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 勞動合同勞務派遣合同
- IT系統(tǒng)開發(fā)與維護服務協議
- 互聯網醫(yī)院合作協議
- 合法的商品買賣合同
- 簽訂二手房買賣合同應注意的事項
- 項目總結報告及未來發(fā)展方向展望與分析
- 教育培訓行業(yè)在線課程服務合同
- 聯合采購協議書
- 基于用戶需求的移動支付應用創(chuàng)新方案設計
- 文化傳播項目投資合同
- 山東省海洋知識競賽(初中組)考試題及答案
- 藥品流通監(jiān)管培訓
- JD37-009-2024 山東省存量更新片區(qū)城市設計編制技術導則
- 《廣西高標準農田耕地質量評價工作 指導手冊》
- 幼兒園藝術領域活動設計
- 人教版四年級下冊數學全冊教案含反思
- 北京市海淀區(qū)重點中學2025屆高考數學押題試卷含解析
- 霧化吸入技術教學課件
- 2024EPC施工總包合同范本
- 上海市寶山區(qū)2024-2025學年高三一模英語試卷(含答案)
- 2024年神農架林區(qū)林投集團招聘工作人員6名管理單位遴選500模擬題附帶答案詳解
評論
0/150
提交評論