版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 1設(shè)計目的</b></p><p><b> 1.1設(shè)計目的</b></p><p> 1、通過單片機課程設(shè)計,熟練掌握單片機C語言的編程方法,將理論聯(lián)系到實踐中去,提高我們的動腦和動手的能力。</p><p> 2、通過定時器控制兩個LED顯示器顯示10秒秒表系統(tǒng)的設(shè)計,掌握定時/計數(shù)
2、器和LED顯示器的使用方法,同時掌握簡單程序的編寫,最終提高我們的邏輯抽象能力。</p><p> 1.2設(shè)計內(nèi)容和要求</p><p> 內(nèi)容:設(shè)計一個能夠控制兩個LED顯示器顯示10秒秒表的模擬系統(tǒng)。</p><p> 要求:利用單片機的定時器定時,控制LED顯示器顯示。</p><p><b> 1.3 設(shè)計思路<
3、;/b></p><p> 1.先熟悉實驗原理,了解4只LED滾動閃爍系統(tǒng)燈的工作過程,組成滾動閃爍系統(tǒng)需要的組件。</p><p> 2.了解各個硬件的工作原理,</p><p> 3.繪制電路原理圖,編寫程序,并進行仿真,基本實現(xiàn)LED滾動閃爍系統(tǒng)燈的功能。</p><p><b> 2設(shè)計原理分析</b&g
4、t;</p><p> 2.1十秒秒表的系統(tǒng)設(shè)計</p><p> 通過編寫程序,實現(xiàn)對發(fā)光二極管的控制,來4只LED滾動閃爍燈的管理。每延時一段時間,燈的顯示情況都會按LED燈的顯示規(guī)律進行狀態(tài)轉(zhuǎn)換。采用單片機內(nèi)部的I/O口上的P0口中的4個引腳即可來控制4個LED燈。</p><p> 2.2十秒秒表的功能要求</p><p>
5、本設(shè)計能模擬基本的LED滾動閃爍系統(tǒng),是用中斷的方式定時控制LED定的閃爍及滾動。</p><p><b> 2.2.1計時顯示</b></p><p> 定時/計數(shù)器工作方式寄存器,定時器采用T0定時器0工作于模式2 位數(shù):8位計數(shù)范圍:0-255 具有自動加載功能</p><p><b> 2.2.2中斷設(shè)置</b&g
6、t;</p><p> 每累計若干次定時器中斷才執(zhí)行一次閃爍。</p><p> 2.3定時器控制4只LED滾動閃爍制系統(tǒng)的基本構(gòu)成及原理</p><p> 單片機設(shè)LED燈閃爍系統(tǒng),可用單片機直接控制信號燈的狀態(tài)變化可以廣泛的應用到商業(yè)和工業(yè)的流程控制測電路當中。</p><p> 圖2.1 系統(tǒng)的總體框圖</p>&
7、lt;p> 據(jù)此,本設(shè)計系統(tǒng)以單片機為控制核心,連接成最小系統(tǒng)。系統(tǒng)的總體框圖如上所示。因為它能夠準確地劃分成時鐘頻率,與UART(通用異步接收器/發(fā)送器)量常見的波特率相關(guān)。特別是較高的波特率(19600,19200),不管多么古怪的值,這些晶振都是準確,常被使用的。當定時器1被用作波特率發(fā)生器時,波特率工作于方式1和方式3是由定時器1的溢出率和SMOD的值(PCON.7------雙倍速波特率)決定:</p>
8、<p> 方式1、3波特率= (定時器1的溢出率) 特殊時,定時器被設(shè)在自動重袋模式(模式2,TMOD的高四位為0100B),其為:方式1、 3波特率= 11.0592MHZ晶振的一些典型波特率如下:波特率SMOD TH1 19200 1 0FDH 9600 0 0FDH 4800 0 0FAH2400 0 0F4H 1200 0 0E8H 300 0 0A0H更換一種計算
9、方式,它將以修改公式達到我們需求的波特率來計算出晶振。最小晶振頻率=波特率x 384 x 2 SMOD 這就是我們所需波特率的最小晶振頻率,此頻率能成倍增加達到我們需求的時鐘頻率。 </p><p> 3 系統(tǒng)硬件電路的設(shè)計</p><p> 3.1系統(tǒng)硬件總電路構(gòu)成及原理</p><p> 實現(xiàn)本設(shè)計要求的具體功能,可以選用AT89S51單片機及外
10、圍器件構(gòu)成最小控制系統(tǒng),4個發(fā)光二極管分成1組紅綠藍黃4燈構(gòu)成信號燈指示模塊等。</p><p><b> 主要器件的選擇:</b></p><p><b> 表3-1</b></p><p> 3.2 主控制部分――AT89C51單片機簡介</p><p> 89C51是一種帶4K字節(jié)閃存
11、可編程可擦除只讀存儲器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低電壓、高性能CMOS 8位微處理器,俗稱單片機。AT89C2051是一種帶2K字節(jié)閃存可編程可擦除只讀存儲器的單片機。單片機的可擦除只讀存儲器可以反復擦除1000次。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器
12、組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡版本。AT89C單片機為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。</p><p> AT89C51單片機為40引腳雙列直插芯片,有4個I/O口,P0 ,P1, P2, P3,單片機的最小系統(tǒng)如圖所示,18引腳和19引腳接時鐘脈沖電路,XTAL1接外部晶振和微調(diào)電容的一端,在片內(nèi)它是震蕩器倒相放大器的輸入,X
13、TAL2接外部晶振和微調(diào)電容的另一端,在片內(nèi)她是振蕩器倒相放大器的輸出端,第9引腳為復位輸入端,接上電容,電阻及開關(guān)后構(gòu)成上電復位電路,20引腳為接地端,40引腳為電源端。如圖所示:</p><p> 圖3.1 晶振與單片機的連接</p><p> 3.2.1 AT89C51的內(nèi)部結(jié)構(gòu)功能</p><p><b> ·中央處理器:<
14、/b></p><p> 中央處理器(CPU)是整個單片機的核心部件,是8位數(shù)據(jù)寬度的處理器,能處理8位二進制數(shù)據(jù)或代碼,CPU負責控制、指揮和調(diào)度整個單元系統(tǒng)協(xié)調(diào)的工作,完成運算和控制輸入輸出功能等操作。</p><p> ·數(shù)據(jù)存儲器(內(nèi)部RAM):</p><p> 數(shù)據(jù)存儲器用于存放變化的數(shù)據(jù)。AT89S51中數(shù)據(jù)存儲器的地址空間為25
15、6個RAM單元,但其中能作為數(shù)據(jù)存儲器供用戶使用的僅有前面128個,后128個被專用寄存器占用。</p><p> ·程序存儲器(內(nèi)部ROM):</p><p> 程序存儲器用于存放程序和固定不變的常數(shù)等。通常采用只讀存儲器,且其又多種類型,在89系列單片機中全部采用閃存。AT89C51內(nèi)部配置了4KB閃存。</p><p> ·定時/計數(shù)
16、器(T0):</p><p> 定時/計數(shù)器用于實現(xiàn)定時和計數(shù)功能。AT89C51共有2個16位定時/計數(shù)器。</p><p> ·并行輸入輸出(I/O)口:</p><p> 8051共有4組8位I/O口(P0、 P1、P2或P3),用于對外部數(shù)據(jù)的傳輸。 每個口都由1個鎖存器和一個驅(qū)動器組成。它們主要用于實現(xiàn)與外部設(shè)備中數(shù)據(jù)的并行輸入與輸出,有些
17、I/O口還有其他功能。</p><p><b> ·全雙工串行口:</b></p><p> A89C51內(nèi)置一個全雙工串行通信口,用于與其它設(shè)備間的串行數(shù)據(jù)傳送,該串行口既可以用作異步通信收發(fā)器,也可以當同步移位器使用。</p><p><b> ·時鐘電路:</b></p>&l
18、t;p> 時鐘電路的作用是產(chǎn)生單片機工作所需要的時鐘脈沖序列。</p><p><b> ·中斷系統(tǒng):</b></p><p> 中斷系統(tǒng)的作用主要是對外部或內(nèi)部的終端請求進行管AT89C51共有5個中斷源,其中有2個外部中斷源和3個內(nèi)部中斷源。</p><p> 3.2.2 51單片機的串行接口工作方式</p&
19、gt;<p> 51單片機的串行接口有四種工作方式。方式0是將SBUF作為8位同步移位寄存器使用(固定波特率);方式1是10位異步通信方式(可變波特率);方式2是11位異步通信方式(固定波特率);方式3是11位異步通信方式(可變波特率)。</p><p> 圖 3.2 串行接口與單片機的連接 </p><p><b> 3.3其它器件</b><
20、;/p><p> 3.4.1發(fā)光二極管</p><p> 根據(jù)本設(shè)計的特點,LED的顯示不可少,LED的顯示采用普通的發(fā)光二極管。在硬件上連接圖上也是對稱分布的,如下圖3.4所示。</p><p> 圖3.3 LED燈的連接</p><p> 在本設(shè)計中,實際控制的燈只有4個,其中均是低電平有效,所以在運行前LED燈的狀態(tài)是滅。</
21、p><p> 3.4定時器控制4只LED滾動閃爍控制系統(tǒng)原理圖</p><p> 本系統(tǒng)以單片機為核心,系統(tǒng)硬件電路由單片機,電阻,LED顯示組成。其具體的硬件電路總圖如圖3.6所示。</p><p><b> 圖3.4系統(tǒng)原理</b></p><p> 3.5設(shè)計的連線圖:</p><p>
22、 3.5.1單片機實物圖:</p><p><b> 圖3.5實物圖 </b></p><p> 3.6 硬件資源及其分配</p><p> 主要用到的硬件:P0口、LED發(fā)光二極管、定時器T0。</p><p><b> 硬件分配:</b></p><p> (
23、1)P1口:做為輸出口,與發(fā)光二極管相連接。</p><p> ?。?)定時/計數(shù)器T0用來產(chǎn)生1秒的定時。</p><p><b> 3.7運行步驟</b></p><p> 1、接硬件圖接線,為了確保LED燈能夠?qū)@示,實驗時,對P0口的接線做了調(diào)整。即,P0.0接L1,P0.1接L2,P0.2接L3,P0.3接L4。</p&
24、gt;<p> 2、開始連續(xù)運行,觀察4個LED燈是與程序設(shè)計思路對應,如果有偏差,則單步運行或斷點運行,進行調(diào)試,直至滿足設(shè)計要求。</p><p> 3、整體運行,觀察LED顯示是否都符合要求,如果不符合,則再調(diào)試。直至滿足要求。</p><p><b> 3.8檢測與調(diào)試 </b></p><p> 3.8.1硬件調(diào)
25、試:</p><p> 硬件調(diào)試是利用開發(fā)系統(tǒng)、基本測試儀器(萬用表、示波器等), 檢查用戶系統(tǒng)硬件中存在的故障。</p><p> 硬件調(diào)試可分為靜態(tài)調(diào)試與動態(tài)調(diào)試兩步進行。</p><p><b> 靜態(tài)調(diào)試 </b></p><p> 靜態(tài)調(diào)試是在用戶系統(tǒng)未工作時的一種硬件檢測。 </p>&
26、lt;p> 第一步:目測。檢查外部的各種元件或者是電路是否有斷點。 </p><p> 第二步:用萬用表測試。先用萬用表復核目測中有疑問的連接點, 再檢測各種電源線與地線之間是否有短路現(xiàn)象。 </p><p> 第三步:加電檢測。給板加電,檢測所有的插座或是器件的電源端是否符合要求的值 </p><p> 第四步:是聯(lián)機檢查。因為只有用單片機開發(fā)系統(tǒng)
27、才能完成對用戶系統(tǒng)的調(diào)試。 </p><p><b> 動態(tài)調(diào)試 </b></p><p> 動態(tài)調(diào)試是在用戶系統(tǒng)工作的情況下發(fā)現(xiàn)和排除用戶系統(tǒng)硬件中存在的器件內(nèi)部故障、器件連接邏輯錯誤等的一種硬件檢查。動態(tài)調(diào)試的一般方法是由近及遠、由分到合。 </p><p> 由分到合是指首先按邏輯功能將用戶系統(tǒng)硬件電路分為若干塊,當調(diào)試電路時,與該
28、元件無關(guān)的 器件全部從用戶系統(tǒng)中去掉,這樣可以將故障范圍限定在某個局部的電路上。當各塊電路無故障后,將各電路逐塊加入系統(tǒng)中,在對各塊電路功能及各電路間可能存在的相互聯(lián)系進行調(diào)試。由分到合的調(diào)試既告完成。 </p><p> 由近及遠是將信號流經(jīng)的各器件按照距離單片機的邏輯距離進行由近及遠的分層,然后分層調(diào)試。調(diào)試時,仍采用去掉無關(guān)元件的方法,逐層調(diào)試下去,就會定位故障元件了。</p><p&
29、gt; 3.8.2軟件調(diào)試: </p><p> 軟件調(diào)試是通過對擁護程序的匯編、連接、執(zhí)行來發(fā)現(xiàn)程序中存在的語法錯誤與邏輯錯誤并加以排除糾正的過程。程序后,編輯,查看程序是否有邏輯的錯誤。 </p><p> 4 系統(tǒng)軟件程序的簡單設(shè)計</p><p><b> 4.1程序框圖</b></p><p><
30、b> 圖4.1程序框圖</b></p><p> 4.2程序流程圖及程序</p><p> 4.2.1程序流程圖:</p><p><b> 圖4.2程序圖</b></p><p> 4.2.2程序清單:</p><p><b> 主程序:</b>
31、;</p><p> #include <reg51.h> //定義8051寄存器的頭文件</p><p> #define uchar unsigned char //定義無符號字符型(0——255)</p><p> #define uint unsigned int //定義無符號整型(0——65535)</p>
32、<p> //字符與整型分為有符號(signed)與無符號(unsigned)兩類</p><p> //通常sbit數(shù)據(jù)類型是用于存取內(nèi)部可位尋址的數(shù)據(jù)存儲器</p><p> sbit B1=P2^0; //聲明B1為P1.0端口</p><p> sbit G1=P2^1;</p><p> sbit R1=
33、P2^2;</p><p> sbit Y1=P2^3;</p><p> //若要使用權(quán)sbit數(shù)據(jù)類型,則其聲明方式有下列幾種:</p><p> //1.先聲明一個bdata存儲器形式的變量,再聲明屬于該變量的sbit變量,例如:</p><p> //char bdata scan; 聲明scan為bdata存儲器類型
34、的字符</p><p> //sbit input_0=scan^0; 聲明input_0為scan變量的bit 0</p><p> //2.先聲明一個sfr變量,再聲明屬于該變量的sbit變量,例如:</p><p> //sfr P0=0x80;聲明P0為0X80存儲器位置,即P0</p><p> //sbit
35、 P0_0=P0^0;聲明P0_0為P0變量的bit0</p><p> //3.直接指定存儲器位置,例如要聲明P0的bit0,則</p><p> //sbit P0_0=0X80^0; 聲明P0_0為0x80地址的bit0</p><p> uint i,j,k;</p><p> //------------------
36、-------------------------------------------------</p><p><b> //主程序</b></p><p> //-------------------------------------------------------------------</p><p> void main
37、() //主程序開始</p><p><b> {</b></p><p><b> i=j=k=0;</b></p><p> P2=0xff; //開始時全部關(guān)閉</p><p> TMOD=0X02; //定時/計數(shù)器工作方式寄存器低4位</p>
38、<p> //T0定時器0工作于模式2 位數(shù):8位計數(shù)范圍:0-255 具有自動加載功能</p><p> TH0=256-200;//200us定時</p><p> TL0=256-200;</p><p> IE=0X82; //中斷使能寄存器IE,相當于EA=1;ET0=1;</p><p> TR0=1;
39、 //定時器/計數(shù)器控制寄存器TCOD Timer0的啟動開關(guān)</p><p> while(1); //無窮循環(huán)</p><p><b> }</b></p><p> //-------------------------------------------------------------</p>&l
40、t;p><b> //T0中斷函數(shù)</b></p><p> //--------------------------------------------------------------</p><p> void LED_Flash_and_Scroll() interrupt 1</p><p> { //每累計若干次定
41、時器中斷才執(zhí)行一次閃爍</p><p> if(++k<35)return; //if條件語句</p><p><b> k=0;</b></p><p> switch(i)//多分支選擇語句,switch語句開始 </p><p><b> {</b></p>
42、<p> case 0:B1=!B1;//藍燈閃爍</p><p> break; //終止執(zhí)行switch或循環(huán)語句</p><p> case 1:G1=!G1;//綠燈閃爍</p><p><b> break;</b></p><p> case 2:R1=!R1; /
43、/紅燈閃爍</p><p><b> break;</b></p><p> case 3:Y1=!Y1; //黃燈閃爍</p><p> break; //退出switch語句</p><p> default:i=0;</p><p><b> }</
44、b></p><p> if(++j<150)//每次LED持續(xù)閃爍一段時間</p><p> return;//從函數(shù)返回語句</p><p><b> j=0;</b></p><p> P2=0xff; //關(guān)閉顯示</p><p> i++;//切換到下一
45、LED</p><p> //符號:++ ,功能: 加1 ,范例:i++ ,說明:執(zhí)行運算后再將X變量的值加1</p><p> //符號:-- ,功能: 減1 ,范例:i-- ,說明:執(zhí)行運算后再將X變量的值減1</p><p><b> } </b></p><p> 4.2.3實驗仿真結(jié)果圖:&l
46、t;/p><p> 圖4.2實驗仿真結(jié)果圖</p><p><b> 結(jié) 論</b></p><p> 定時器控制4只LED滾動閃爍對于單片機初學者有著非常重要的作用。本文完成了基于單片機的定時器控制4只LED滾動閃爍系統(tǒng)的設(shè)計與模擬。包括閃爍方案的設(shè)計,系統(tǒng)的硬件開發(fā)、軟件編程與仿真調(diào)試等。在論文完成過程中,主要做的工作有:</p&
47、gt;<p> (1)確定LED滾動閃爍系統(tǒng)具體的通行方案以及要求其他多功能的實現(xiàn)。</p><p> ?。?)以ATMEL公司的AT89S51單片機為核心進行系統(tǒng)硬件設(shè)計,輸入量包括:輸出LED燈亮滅狀態(tài)及時間顯示。</p><p> 通過單片機課程設(shè)計,我不僅加深了對單片機理論的理解,將理論很好地應用到實際當中去,而且我還學會了如何去培養(yǎng)我們的創(chuàng)新精神,從而不斷地戰(zhàn)勝
48、自己,超越自己。創(chuàng)新,是要我們學會將理論很好地聯(lián)系實際,并不斷地去開動自己的大腦,從為人類造福的意愿出發(fā),做自己力所能及的,別人卻沒想到的事。使之不斷地戰(zhàn)勝別人,超越前人。同時,更重要的是,我在這一設(shè)計過程中,學會了堅持不懈,不輕易言棄。設(shè)計過程,也好比是我們?nèi)祟惓砷L的歷程,常有一些不如意,也許這就是在對我們提出了挑戰(zhàn),勇敢過,也戰(zhàn)勝了,勝利的鐘聲也就一定會為我們而敲響。</p><p><b> 參
49、考文獻</b></p><p> 【1】謝維成. 單片微型計算機原理及應用.清華大學出版社,2009. </p><p> 【2】余錫存 曹國華.單片機原理及接口技術(shù).西安電子科技大學出版社,2011.</p><p> 【3】雷麗文 等.微機原理與接口技術(shù).電子工業(yè)出版社,1997.</p><p> 【4】吳黎明, 王
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機課程設(shè)計--秒表定時器
- 單片機課程設(shè)計--定時器實驗
- 單片機課程設(shè)計---加熱定時器
- 單片機課程設(shè)計智能定時器
- 音樂提示定時器--單片機課程設(shè)計
- 單片機經(jīng)典數(shù)字定時器課程設(shè)計
- 使用定時器延時單片機課程設(shè)計報告
- 單片機控制技術(shù)課程設(shè)計--定時器控制電路
- 單片機定時器
- 電子定時器-單片機原理及應用課程設(shè)計
- 基于單片機的9h定時器課程設(shè)計
- 音樂提示定時器單片機原理與應用課程設(shè)計
- 單片機課程設(shè)計---led點陣屏滾動
- 單片機課程設(shè)計---基于單片機的定時控制器設(shè)計
- 單片機實驗二 定時器
- 單片機課程設(shè)計--四路定時控制器
- 畢業(yè)論文 --單片機定時器設(shè)計
- 課程設(shè)計---基于定時器的單片機仿真和c語言開發(fā)
- 基于單片機匯編編程的音樂提示定時器課程設(shè)計報告
- 單片機與接口技術(shù)課程設(shè)計報告---定時器控制交通燈
評論
0/150
提交評論