單片機(jī)實(shí)驗(yàn)課程設(shè)計(jì)_第1頁(yè)
單片機(jī)實(shí)驗(yàn)課程設(shè)計(jì)_第2頁(yè)
單片機(jī)實(shí)驗(yàn)課程設(shè)計(jì)_第3頁(yè)
單片機(jī)實(shí)驗(yàn)課程設(shè)計(jì)_第4頁(yè)
單片機(jī)實(shí)驗(yàn)課程設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩16頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、武漢理工大學(xué)單片機(jī)原理與應(yīng)用課程設(shè)計(jì)說(shuō)明書 課程設(shè)計(jì)任務(wù)書學(xué)生姓名: 王夢(mèng) 專業(yè)班級(jí): 電信1406班 指導(dǎo)教師: 劉運(yùn)茍 工作單位: 信息工程學(xué)院 題 目:具有可變圖案的走馬燈顯示功能的設(shè)計(jì)初始條件: 具備數(shù)字電路的理論知識(shí);具備單片機(jī)原理的理論知識(shí)和實(shí)踐能力;熟悉51單片機(jī)的CPU結(jié)構(gòu)和指令系統(tǒng);熟悉相關(guān)常用接口電路的設(shè)計(jì)使用方法。要求完成的主要任務(wù):(包括課程設(shè)計(jì)工作量及其技術(shù)要求,以及說(shuō)明書撰寫等具體要求) 用定時(shí)器設(shè)計(jì)發(fā)光二極管的輪流顯示,顯示圖案和延時(shí)時(shí)間可按設(shè)定的規(guī)律變化,要求顯示的方式為相向、相反、交替閃爍。延時(shí)時(shí)間可設(shè)置為100ms、200ms、300ms。時(shí)間安排: 二十二

2、周一周,其中3天硬件設(shè)計(jì),2天硬件調(diào)試指導(dǎo)教師簽名: 年 月 日系主任(或責(zé)任教師)簽名: 年 月 日 目錄1 走馬燈的介紹52.設(shè)計(jì)走馬燈的軟硬件介紹52.1 51系列單片機(jī)52.2 Keil C51軟件63 走馬燈的系統(tǒng)設(shè)計(jì)73.1 設(shè)計(jì)思路73.2 電路設(shè)計(jì)74 C語(yǔ)言程序設(shè)計(jì)85 仿真測(cè)試及分析126實(shí)物圖及結(jié)果分析137 心得體會(huì)148 參考文獻(xiàn)15 摘要 設(shè)計(jì)要求:用定時(shí)器設(shè)計(jì)發(fā)光二極管的輪流顯示,顯示圖案和延時(shí)時(shí)間可按設(shè)定的規(guī)律變化,要求顯示的方式為相向、相反、交替閃爍。延時(shí)時(shí)間可設(shè)置為100ms、200ms、300ms。 流水燈的設(shè)計(jì)涉及到了軟硬件方面的知識(shí),需要軟硬件綜合。

3、軟件方面,可以使用C語(yǔ)言或者匯編語(yǔ)言,本課程設(shè)計(jì)中使用C語(yǔ)言,涉及到其中的循環(huán)結(jié)構(gòu)、選擇結(jié)構(gòu)以及函數(shù)調(diào)用的應(yīng)用,編寫程序需要從要求中看出可以簡(jiǎn)化編寫的結(jié)構(gòu)從而加以使用,同時(shí)考慮到單片機(jī)的輸出端的實(shí)際情況,使用條件語(yǔ)句進(jìn)行修正。 硬件方面,選用了51系列單片機(jī),使用了定時(shí)/計(jì)數(shù)器以及并行口,主要使用了中斷功能。定時(shí)/計(jì)數(shù)器實(shí)質(zhì)上是一個(gè)加1計(jì)數(shù)器,它可以工作于定時(shí)方式,也可以工作于計(jì)數(shù)方式,兩種方式實(shí)際都是對(duì)脈沖計(jì)數(shù),只不過(guò)所記脈沖的來(lái)源不同,本次課程設(shè)計(jì)只使用定時(shí)器,脈沖來(lái)源來(lái)自晶振的振蕩。在使用定時(shí)器的時(shí)候,計(jì)數(shù)的脈沖來(lái)自振蕩器的12分頻后的脈沖,即對(duì)系統(tǒng)的機(jī)器周期計(jì)數(shù)。計(jì)數(shù)為加1計(jì)數(shù),記滿溢

4、出后清零并產(chǎn)生溢出中斷。使用并行口是為了使用矩陣鍵盤。鍵盤是計(jì)算機(jī)系統(tǒng)中不可缺少的輸入設(shè)備,當(dāng)鍵盤少時(shí)可以接成線性鍵盤。鍵的編碼可以用軟件的運(yùn)算完成,稱為非編碼鍵盤,也可以由硬件編碼器完成,稱為編碼鍵盤,本設(shè)計(jì)使用非編碼鍵盤。中斷裝置和中斷處理程序統(tǒng)稱為中斷系統(tǒng)。中斷系統(tǒng)是計(jì)算機(jī)的重要組成部分。實(shí)時(shí)控制、故障自動(dòng)處理、計(jì)算機(jī)與外圍設(shè)備間的數(shù)據(jù)傳送往往采用中斷系統(tǒng)。中斷系統(tǒng)的應(yīng)用大大提高了計(jì)算機(jī)效率。關(guān)鍵字:51單片機(jī)、定時(shí)計(jì)數(shù)器、鍵盤控制中斷、走馬燈 1 走馬燈的介紹在古代,走馬燈古稱蟠螭燈(秦漢)、仙音燭和轉(zhuǎn)鷺燈(唐)、馬騎燈(宋),漢族特色工藝品,亦是傳統(tǒng)節(jié)日玩具之一,屬于燈籠的一種。常見(jiàn)

5、于元夕、元宵、中秋等節(jié)日。燈內(nèi)點(diǎn)上蠟燭,燭產(chǎn)生的熱力造成氣流,令輪軸轉(zhuǎn)動(dòng)。輪軸上有剪紙,燭光將剪紙的影投射在屏上,圖象便不斷走動(dòng)。因多在燈各個(gè)面上繪制古代武將騎馬的圖畫,而燈轉(zhuǎn)動(dòng)時(shí)看起來(lái)好像幾個(gè)人你追我趕一樣,故名走馬燈。走馬燈內(nèi)的蠟燭需要切成小段,放入走馬燈時(shí)要放正,切勿斜放。 而現(xiàn)如今,現(xiàn)代人用火炭燒起來(lái)作氣流動(dòng)力改為電風(fēng)扇帶動(dòng)馬燈運(yùn)。流動(dòng)字幕顯示屏橫向或直向不斷移動(dòng)的字幕,常用于電視新聞鏡面,如新聞跑馬燈(簡(jiǎn)稱“跑馬燈”)是在電視新聞畫面上的一個(gè)小空間,通常是用來(lái)顯示頭條新聞或是新聞報(bào)道中較小的細(xì)節(jié)。跑馬燈有時(shí)也指在某些建筑物、網(wǎng)站或室內(nèi)空間用來(lái)表現(xiàn)訊息的顯示版。網(wǎng)站跑馬燈在電

6、腦上當(dāng)然也可以弄出新聞跑馬燈這個(gè)玩意,早在二十一世紀(jì)初,新浪網(wǎng)、搜狐網(wǎng)就已經(jīng)推出網(wǎng)絡(luò)新聞跑馬燈技術(shù)。2.設(shè)計(jì)走馬燈的軟硬件介紹2.1 51系列單片機(jī)51單片機(jī)是對(duì)所有兼容Intel 8031指令系統(tǒng)的單片機(jī)的統(tǒng)稱。該系列單片機(jī)的始祖是Intel的8031單片機(jī),后來(lái)隨著Flash rom技術(shù)的發(fā)展,51單片機(jī)是基礎(chǔ)入門的一個(gè)單片機(jī),還是應(yīng)用最廣泛的一種。需要注意的是52系列的單片機(jī)一般不具備自編程能力。51單片機(jī)的功能有:·8位CPU·4kbytes程序存儲(chǔ)器(ROM) (52為8K)·128bytes的數(shù)據(jù)存儲(chǔ)器(RAM) (52有256bytes的RAM)&#

7、183;32條I/O口線·111條指令,大部分為單字節(jié)指令·21個(gè)專用寄存器·2個(gè)可編程定時(shí)/計(jì)數(shù)器·5個(gè)中斷源,2個(gè)優(yōu)先級(jí)(52有6個(gè))·一個(gè)全雙工串行通信口·外部數(shù)據(jù)存儲(chǔ)器尋址空間為64kB·外部程序存儲(chǔ)器尋址空間為64kB·邏輯操作位尋址功能·雙列直插40PinDIP封裝·單一+5V電源供電CPU:由運(yùn)算和控制邏輯組成,同時(shí)還包括中斷系統(tǒng)和部分外部特殊功能寄存器; RAM:用以存放可以讀寫的數(shù)據(jù),如運(yùn)算的中間結(jié)果、最終結(jié)果以及欲顯示的數(shù)據(jù);ROM:用以存放程序、一些原始數(shù)據(jù)和表格;I/O口

8、:四個(gè)8位并行I/O口,既可用作輸入,也可用作輸出T/C:兩個(gè)定時(shí)/記數(shù)器,既可以工作在定時(shí)模式,也可以工作在記數(shù)模式;五個(gè)中斷源的中斷控制系統(tǒng);一個(gè)全雙工UART(通用異步接收發(fā)送器)的串行I/O口,用于實(shí)現(xiàn)單片機(jī)之間或單片機(jī)與微機(jī)之間的串行通信;2.2 Keil C51軟件Keil C51是美國(guó)Keil Software公司出品的51系列兼容單片機(jī)C語(yǔ)言軟件開(kāi)發(fā)系統(tǒng),與匯編相比,C語(yǔ)言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢(shì),因而易學(xué)易用。Keil提供了包括C編譯器、宏匯編、連接器、庫(kù)管理和一個(gè)功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開(kāi)發(fā)方案,通過(guò)一個(gè)集成開(kāi)發(fā)環(huán)境(uVision)將這些部

9、分組合在一起。運(yùn)行Keil軟件需要WIN98、NT、WIN2000、WINXP等操作系統(tǒng)。Keil C51工具包的整體結(jié)構(gòu),uVision與Ishell分別是C51 for Windows和for Dos的集成開(kāi)發(fā)環(huán)境(IDE),可以完成編輯、編譯、連接、調(diào)試、仿真等整個(gè)開(kāi)發(fā)流程。開(kāi)發(fā)人員可用IDE本身或其它編輯器編輯C或匯編源文件。然后分別由C51及C51編譯器編譯生成目標(biāo)文件(.OBJ)。目標(biāo)文件可由LIB51創(chuàng)建生成庫(kù)文件,也可以與庫(kù)文件一起經(jīng)L51連接定位生成絕對(duì)目標(biāo)文件(.ABS)。ABS文件由OH51轉(zhuǎn)換成標(biāo)準(zhǔn)的Hex文件,以供調(diào)試器dScope51或tScope51使用進(jìn)行源代碼

10、級(jí)調(diào)試,也可由仿真器使用直接對(duì)目標(biāo)板進(jìn)行調(diào)試,也可以直接寫入程序存貯器如EPROM中。2.3 Proteus軟件Proteus軟件是英國(guó)Lab Center Electronics公司出版的EDA工具軟件(該軟件中國(guó)總代理為廣州風(fēng)標(biāo)電子技術(shù)有限公司)。它不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機(jī)及外圍器件。它是目前最好的仿真單片機(jī)及外圍器件的工具。雖然目前國(guó)內(nèi)推廣剛起步,但已受到單片機(jī)愛(ài)好者、從事單片機(jī)教學(xué)的教師、致力于單片機(jī)開(kāi)發(fā)應(yīng)用的科技工作者的青睞。3 走馬燈的系統(tǒng)設(shè)計(jì)3.1 設(shè)計(jì)思路走馬燈的顯示分為相向、反向、整體閃爍交替三種模式,分別可以用循環(huán)左移、循環(huán)右移和按位取反來(lái)實(shí)現(xiàn),

11、延時(shí)的時(shí)間可以通過(guò)改變中斷中的變量的值來(lái)實(shí)現(xiàn)。三種模式的顯示可以通過(guò)調(diào)用三個(gè)不同的顯示函數(shù)來(lái)分開(kāi)顯示,而模式、延時(shí)的選擇則通過(guò)鍵盤來(lái)進(jìn)行輸入。程序在運(yùn)行的時(shí)候則重復(fù)掃描鍵盤和顯示的過(guò)程即可。3.2 電路設(shè)計(jì)電路設(shè)計(jì)主要包括矩陣鍵盤及其顯示功能的設(shè)計(jì)。矩陣鍵盤:在鍵盤中按鍵數(shù)量較多時(shí),為了減少I/O口的占用,通常將按鍵排列成矩陣形式,如圖1所示。在矩陣式鍵盤中,每條水平線和垂直線在交叉處不直接連通,而是通過(guò)一個(gè)按鍵加以連接。這樣,一個(gè)端口(如P1口)就可以構(gòu)成4*4=16個(gè)按鍵,比之直接將端口線用于鍵盤多出了一倍,而且線數(shù)越多,區(qū)別越明顯,比如再多加一條線就可以構(gòu)成20鍵的鍵盤,而直接用端口線則

12、只能多出一鍵(9鍵)。由此可見(jiàn),在需要的鍵數(shù)比較多時(shí),采用矩陣法來(lái)做鍵盤是合理的。 圖1 矩陣鍵盤判斷有無(wú)按鍵:將行線P3.0置低電平,然后檢測(cè)列線的狀態(tài)。只要有一列的電平為低,則表示鍵盤中有鍵被按下,而且閉合的鍵位于低電平線與該根行線相交叉的4個(gè)按鍵之中。若所有列線均為高電平,則鍵盤中無(wú)鍵按下。顯示電路:由于要求使用四個(gè)發(fā)光二極管,所以顯示電路由四個(gè)發(fā)光二極管構(gòu)成LED燈組,如圖2-3所示。這組LED燈共陽(yáng)極,而陰極分別接入單片機(jī)的P1口。由發(fā)光二級(jí)管的特性知,當(dāng)P1口為高電平時(shí),二極管截止,發(fā)光二級(jí)管為暗,當(dāng)P1口為低電平時(shí),發(fā)光二級(jí)管亮??刂七@組LED燈則通過(guò)給P1口上不同的高低電平得到

13、。而顯示的頻率則通過(guò)P1口電平變化的快慢來(lái)實(shí)現(xiàn)。 圖2 顯示電路4 C語(yǔ)言程序設(shè)計(jì)#include <reg52.h>#include <intrins.h>unsigned char num,temp,led,t,tt,flag;void delay(unsigned int z)(延時(shí)去抖動(dòng))unsigned int x,y;for(x=z;x>0;x-)for(y=110;y>0;y-);void keyscan()(鍵盤掃描)P3=0xfe;(第一行掃描)temp=P3;(鍵盤檢測(cè))temp=temp&0xf0;while(temp!=0xf

14、0) delay(5);(延時(shí)去抖動(dòng)) temp=P3;(再次檢測(cè))temp=temp&0xf0;while(temp!=0xf0)temp=P3;switch(temp)case 0xee:num=1;/S6break;case 0xde:num=2;/S7break;case 0xbe:num=3;/S8break;case 0x7e:num=4;/S9break;while(temp!=0xf0)(等待按鍵釋放)temp=P3;temp=temp&0xf0; P3=0xfd;(第二行檢測(cè))temp=P3;temp=temp&0xf0;while(temp!=0xf

15、0)delay(5);temp=P3;temp=temp&0xf0;while(temp!=0xf0)temp=P3;switch(temp)case 0xed:num=5;/S10break;case 0xdd:num=6;/S11break;while(temp!=0xf0)temp=P3;temp=temp&0xf0;void M1()(相向)P1=led;(初始值0xfe)if(tt>=t)(計(jì)時(shí)到t*50ms右移一位)led=_crol_(led,1);/1111 1110-1111 1101if(led=0xef) led=0xfe;(僅僅啟用低四位)tt=0

16、;void M2()(反向)P1=led;if(tt>=t)led=_cror_(led,1);if(led=0x7f) led=0xf7;tt=0;void M3()(整體交替閃爍)P1=0xfa;/1111 1010while(1)if(tt<=t) continue;tt=0;break;P1=0xf5;/1111 0101while(1)if(tt<=t) continue;tt=0;break;void main()num=0; led=0xfe;tt=0;flag=1;t=2;TMOD=0x01;TH0=(665536-45872)/256;TL0=(665536

17、-45872)%256;EA=1; ET0=1;TR0=1;while(1)keyscan();switch(num)case 1:flag=1;break;case 2:flag=2;break;case 3:flag=3;break;case 4:t=2;break;/100mscase 5:t=4;break;/200mscase 6:t=6;break;/300msswitch(flag)case 1:M1();break;case 2:M2();break;case 3:M3();void time0() interrupt 1 /50msTH0=(65536-45872)/256;

18、TL0=(65536-45872)%256;tt+;5 仿真測(cè)試及分析圖3 單向的兩種模式的顯示設(shè)計(jì)要求中的相反和相向在圖中無(wú)法顯示出來(lái),但可以仿真。圖4 整體閃爍交替模式的顯示模式3是LED燈組交替閃爍的模式。而不同時(shí)間間隔的選擇以及模式混搭雖然也實(shí)現(xiàn)了,但是無(wú)法在圖中表現(xiàn)出來(lái)。設(shè)計(jì)要求中的延時(shí)100ms、200ms、300ms、也可以通過(guò)矩陣鍵盤的按鍵加以實(shí)現(xiàn),由此可知,實(shí)驗(yàn)仿真正確,滿足設(shè)計(jì)要求,開(kāi)始設(shè)計(jì)實(shí)物。6實(shí)物圖及結(jié)果分析 結(jié)果分析:四個(gè)發(fā)光二極管可以輪流相向,相反顯示,也可以實(shí)現(xiàn)二極管的交替閃爍,同時(shí)也完成了100ms、200ms、300ms的延時(shí)??偟膩?lái)說(shuō),本次課程設(shè)計(jì)雖然并各個(gè)獨(dú)立的部分不難,但是關(guān)鍵在于軟硬見(jiàn)的結(jié)合與合理的設(shè)計(jì)。 通過(guò)小組成員的努力,最終我們完成了仿真以及實(shí)物,雖然在設(shè)計(jì)過(guò)程中也有難題,出現(xiàn)仿真結(jié)果不正確,延時(shí)時(shí)間不對(duì),在進(jìn)行調(diào)試過(guò)程中,程序燒不進(jìn)去,雖然遇到很多的困難,但都一一得到解決,同時(shí)提高了自己的能力。217 心得體會(huì)具有可變圖案的走馬燈顯示功能的課程設(shè)計(jì)是完成從初期設(shè)計(jì)到實(shí)物的一整套的制作,是一次很好的理論與實(shí)際的結(jié)合。本次課程設(shè)計(jì)的關(guān)鍵在于完成軟件與硬件的結(jié)合??偟膩?lái)說(shuō)還是硬件決定了軟件的制作,在初期設(shè)計(jì)階段,先是構(gòu)思出了硬件的基本構(gòu)成結(jié)構(gòu),再編寫相應(yīng)的軟件。而軟件對(duì)硬件構(gòu)成具有簡(jiǎn)化,修正的反作用。在軟件編寫中產(chǎn)出的

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論