




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、精選優質文檔-傾情為你奉上專業方向課程設計課程設計報告題目: 心形花樣流水燈與點陣顯示 專業: 電子信息工程 班級: 二 班 學號: 姓名: 指導老師: 重慶交通大學信息科學與工程學院設計時間:2013年 9 月 8 日 到 2013 年 11 月 16 號一、 設計任務說明隨著社會的發展,單片機得到了廣泛的應用,人們越來越重視單片機的應用。比如溫度是和每個人息息相關的,并且在有的生產車間里還要進行溫度時時測量,甚至是對溫度的進一步調控等,這些都是單片機的應用之例。本設計是用單片機和點陣加一個小的流水燈電路, 這次作品的初衷是希望通過單片機學習,做個生日禮物送給朋友。二、 總體設計本系統主要有
2、AT89C51單片機、5mm彩色LED燈、74HC245、8*8LED點陣、200歐電阻等元件組成。1.流水燈設計:(1)AT89C51單片機:AT89C51具有如下特點:40個引腳,8k Bytes Flash片內程序存儲器,256 bytes的隨機存取數據存儲器(RAM),32個外部雙向輸入/輸出(I/O)口,5個中斷優先級2層中斷嵌套中斷,2個16位可編程定時計數器,2個全雙工串行通信口,看門狗(WDT) AT89C51引腳圖電路,片內時鐘振蕩器。此外,AT89S52設計和配置了振蕩頻率可為0Hz并可通過軟件設置省電模式??臻e模式下,CPU暫停工作,而RAM定時計數器,串行口,外中斷 系
3、統可繼續工作,掉電模式凍結振蕩器而保存RAM的數據,停止芯片其它功能直至外中斷激活或硬件復位。引腳圖如右圖所示。此次設計把51單片機的4個I/O口與32個5mm高亮LED燈相接,通過單片機控制各I/O引腳的高低電平控制LED的亮滅從而形成各種不同亮滅的花樣。2.點陣顯示設計:(1)8*8點陣原理圖 :從圖中可以看出,8X8點陣共需要64個發光二極管組成,且每個發光二極管是放置在行線和列線的交叉點上,當對應的某一列置1電平,某一行置0電平,則相應的二極管就亮;因此要實現一根柱形的亮法,如圖所示,對應的一列為一根豎柱,或者對應的一行為一根橫柱,因此實現柱的亮的方法如下所述:一根豎柱:對應的列置1,
4、而行則采用掃描的方法來實現。一根橫柱:對應的行置0,而列則采用掃描的方法來實現。 (2)74HC245:74HC245是一種三態輸出、八路信號收發器,主要應用于大屏顯示,以及其它的消費類電子產品中增加驅動 主要特性:采用CMOS工藝寬電壓工作范圍:3.0V5.0V雙向三態輸出八線雙向收發器封裝形式:SOP20、SOP20-2、TSSOP20、DIP20此次設計采用74HC245來驅動8*8點陣,74HC245一端與51單片機的P0口想連,另一端則與點陣的輸入端相連,從而通過單片機控制驅動點陣。三、 硬件設計心型流水燈的硬件設計如下圖:此次設計把51單片機的4個I/O口與32個5mm高亮LED燈
5、相接,通過單片機控制各I/O引腳的高低電平控制LED的亮滅從而形成各種不同亮滅的花樣。點陣顯示的硬件設計圖如下:本次設計通過74HC245來驅動8*8點陣,74HC245的輸入端與51單片機的P0口想連,74HC245的輸出端則與點陣的行相連,而點陣的列則與單片機的P3口相連,通過單片機控制、74HC245驅動,從而完成了點陣的顯示。四、 軟件設計心形花樣流水燈的程序如下:#include<reg52.h>#include <intrins.h>#defineuint unsigned int#defineuchar unsigned charuchar code ta
6、ble=0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00; / 逐個點亮07uchar code table1=0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00; / 逐個點亮70uchar code table2=0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff; / 逐個滅07uchar code table3=0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff; / 逐個滅70/*/void delay(uint t);/延時void zg(uint t,uchar a)
7、;/兩邊逐個亮void qs(uint t,uchar a);/全部閃爍void zgxh(uint t,uchar a); / 逆時針逐個點亮void djs(uint t,uchar a); /對角閃void lbzgm(uint t,uchar a);/兩邊逐個滅void nszgm(uint 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);/
8、逆時逐個同步滅void hwzjl(uint t,uchar a); /橫往中間亮void hwzjm(uint t,uchar a); /橫往中間滅void 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;j<a;j+) P0=P1=P2=P3=0xff; P0=0x7f;delay(t); for(i=0;i<7;i+) P0=table
9、1i+1; P2=table1i; delay(t); P2=0x00;P1=0xfe; delay(t); for(i=0;i<7;i+) P1=tablei+1;P3=table1i;delay(t); P3=0x00;delay(t); void qs(uint t,uchar a) /全部閃爍uchar j;for(j=0;j<a;j+) P0=P1=P2=P3=0xff; delay(t); P0=P1=P2=P3=0x00; delay(t); void zgxh(uint t,uchar a) / 逆時針逐個點亮uchar i,j;for (j=0;j<a;j+
10、)P0=P1=P2=P3=0xff;for (i=0;i<8;i+)P0=table1i;delay(t);for(i=0;i<8;i+)P1=tablei;delay(t);for(i=0;i<8;i+)P3=tablei;delay(t);for(i=0;i<8;i+)P2=tablei;delay(t);void nszgm(uint t,uchar a) / 逆時針逐個滅uchar i,j;for(j=0;j<a;j+)P0=P1=P2=P3=0x00;for (i=0;i<8;i+)P0=table3i;delay(t);for (i=0;i<
11、;8;i+)P1=table2i;delay(t);for (i=0;i<8;i+)P3=table2i;delay(t);for (i=0;i<8;i+)P2=table2i;delay(t);void djs(uint t,uchar a) /對角閃uchar j;for(j=0;j<a;j+)P0=P1=P2=P3=0xff;P0=P3=0x00;delay(t);P0=P1=P2=P3=0xff;P1=P2=0x00;delay(t);void lbzgm(uint t,uchar a)/兩邊逐個滅 uchar i,j; for (j=0;j<a;j+) P0=
12、P2=0x00;P3=0x01;delay(t);for(i=7;i>1;i-)P1=tablei-1;P3=table1i-2;delay(t);P1=0xfe;P3=0xff;delay(t);P1=0xff;P2=0x01;delay(t);for(i=7;i>1;i-)P0=table1i-1;P2=table1i-2;delay(t);P0=0x7f;P2=0xff;delay(t);P0=0xff;delay(t); void sztl(uint t,uchar a)/順時逐個同步亮uchar i,j;for(j=0;j<a;j+)P0=P1=P2=P3=0xff
13、;for(i=0;i<8;i+)P0=tablei;P1=P2=P3=table1i;delay(t);void nztl(uint t,uchar a)/逆時逐個同步亮uchar i,j;for(j=0;j<a;j+)P0=P1=P2=P3=0xff;for(i=0;i<8;i+)P0=table1i;P1=P2=P3=tablei;delay(t);void sztm(uint t,uchar a)/順時逐個同步滅uchar i,j;for(j=0;j<a;j+)P0=P1=P2=P3=0x00;for(i=0;i<8;i+)P0=table2i;P1=P2=
14、P3=table3i;delay(t);void nztm(uint t,uchar a)/逆時逐個同步滅uchar i,j;for(j=0;j<a;j+)P0=P1=P2=P3=0xff;for(i=0;i<8;i+)P0=table3i;P1=P2=P3=table2i;delay(t);void hwzjl(uint t,uchar a) /橫往中間亮uchar i,j;for (j=0;j<a;j+)P0=P1=P2=P3=0xff;for(i=0;i<8;i+)P0=P2=P1=table1i;P3=tablei;delay(t);void hwzjm(uin
15、t t,uchar a) /橫往中間滅uchar i,j;for (j=0;j<a;j+)P0=P1=P2=P3=0x00;for(i=0;i<8;i+)P0=P2=P1=table3i;P3=table2i;delay(t);void nzdl(uint t,uchar a) /逆時逐段亮uchar i,j;for (j=0;j<a;j+)P0=P1=P2=P3=0xff;for(i=0;i<8;i+)P0=table1i;delay(t);P0=0xff;for(i=0;i<8;i+)P1=tablei;delay(t);P1=0xff;for(i=0;i&l
16、t;8;i+)P3=tablei;delay(t);P3=0xff;for(i=0;i<8;i+)P2=tablei;delay(t);P2=0xff;void nzdgl(uint t,uchar a) /逆時逐段一個點亮uchar i,j,k,l;for (j=0;j<a;j+)k=table10;P0=k;l=table0;P1=P2=P3=l;delay(t);for(i=0;i<8;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
17、;for (j=0;j<a;j+)P0=0x55;P1=P2=P3=0xaa;delay(t);P0=0xaa;P1=P2=P3=0x55;delay(t);void main()uchar i;while(1) zg(100,1); /兩邊逐個亮 lbzgm(100,1); /兩邊逐個滅 jgs(300,10); djs(100,20); /對角閃/P1=P2=P3=0xff;for(i=0;i<3;i+) P0=0x00;delay(800); P0=0xff;delay(800); P0=0x00; for(i=0;i<3;i+) P1=0x00;delay(800);
18、 P1=0xff;delay(800); P1=0x00; for(i=0;i<3;i+) P3=0x00;delay(800); P3=0xff;delay(800); P3=0x00; for(i=0;i<3;i+) P2=0x00;delay(800); P2=0xff;delay(800); qs(500,3);/for(i=0;i<6;i+) zgxh(50,1); nszgm(50,1); djs(100,20); /對角閃for(i=0;i<3;i+) zg(100,1); /兩邊逐個亮 lbzgm(100,1); /兩邊逐個滅 qs(200,10);dj
19、s(100,50); for(i=0;i<5;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;i<3;i+) zgxh(100,1); nszgm(100,1); nzdl(200,3); /逆時逐段亮 jgs(50,100); /間隔閃/nzdgl(50,40); /逆時逐段一個點亮for(i=0;i<4;i+) zg(100,1);qs(100
20、,10); lbzgm(100,1); for(i=0;i<3;i+) zgxh(100,1); nszgm(100,1); djs(1000,10); for(i=0;i<10;i+) hwzjl(200,1); /橫往中間亮hwzjm(200,1); /橫往中間滅 djs(300,10); /對角閃for(i=0;i<5;i+) zgxh(100,1); nszgm(100,1); djs(100,20); /對角閃 zg(300,1); lbzgm(300,1); for(i=0;i<5;i+) sztl(200,1); /順時逐個同步亮nztm(200,1);
21、nztl(200,1);sztm(200,1); /順時逐個同步滅 djs(500,20); /對角閃 djs(100,30); /對角閃 djs(50,50); /對角閃 delay(1000);void delay(uint t) uint x,y;for (x=t;x>0;x-)for (y=120;y>0;y-);點陣顯示的程序如下:RS_CNTEQU30HNUMEQU31HTCON_TEQU32HORG00HLJMPSTARTORG0BHLJMPINT_T0START:MOVRS_CNT,#00HMOV NUM,#00HMOVTCON_T,#00HMOVTMOD,#01H
22、MOVTH0,#(65536-5000)/256MOVTL0,#(65536-5000)MOD 256MOVIE,#82HSETBTR0SJMP$INT_T0:MOVTH0,#(65536-5000)/256MOVTL0,#(65536-5000)MOD 256MOV DPTR,#TABLEMOVA,RS_CNTMOVCA,A+DPTRMOVP3,AMOVDPTR,#TABLE1MOVA,NUMMOVB,#8MULABADDA,RS_CNTMOVCA,A+DPTRCPLAMOVP0,AINCRS_CNTMOVA,RS_CNTCJNEA,#8,NEXTMOVRS_CNT,#00H NEXT:INCTCON_T MOVA,TCON_TCJNEA,#200,RETUNEMOVTCON_T,#00HINCNUMMOVA,NUMCJNEA,#7,RETUNEMOVNUM,#00HRETUNE:R
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國數碼經絡治療儀行業發展機遇與投資方向預測研究報告
- 留守兒童與義務教育論文
- 湖北省“黃鄂鄂”2025年高三下學期4月聯考試題 生物 含答案
- 獸醫病理解剖試題含答案
- 池州市重點中學2025年高考英語二模試卷含答案
- 遼寧省錦州市第四中學2025屆高三一診考試英語試卷含解析
- 職業技術學院護理五年制專業人才培養方案
- 2025年吉林省長春市中考二模歷史試題(原卷版+解析版)
- 河南省名校大聯考2024-2025學年高一下學期4月期中數學試題(原卷版+解析版)
- 糖果與巧克力食品安全與質量控制方法實踐案例分析實踐案例考核試卷
- 眼睛的結構和視覺系統
- 陜09J01 建筑用料及做法圖集
- 2024年醫療信息安全培訓資料
- 心電監護技術
- 餐廳銷售技巧培訓
- 電機與電氣控制技術課程說課
- 國開《Windows網絡操作系統管理》形考任務2-配置本地帳戶與活動目錄域服務實訓
- GA/T 2087-2023法庭科學玻璃破碎痕跡檢驗技術規程
- XX醫院高警示藥品(高危藥品)目錄
- 鎖邊機安全操作規程
- 特種設備日管控、周排查、月調度模板
評論
0/150
提交評論