紅外遙控及點陣顯示器件的應(yīng)用_第1頁
紅外遙控及點陣顯示器件的應(yīng)用_第2頁
紅外遙控及點陣顯示器件的應(yīng)用_第3頁
紅外遙控及點陣顯示器件的應(yīng)用_第4頁
紅外遙控及點陣顯示器件的應(yīng)用_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1 軟件介紹 21.1 PROTUES軟件介紹 21.2 KEIL 軟件 22 . 設(shè)計原理或方法 32.1 主要元器件介紹 32.2 設(shè)計方案介紹 73 . 程序框圖 84 硬件連線圖及仿真結(jié)果 94.1 硬件連線圖 94.2 仿真結(jié)果圖 105 源程序 116 資源分配 187 性能分析 198 總結(jié)和心得 199 參考文獻 201 軟件介紹1.1 protues軟件介紹Proteus ISIS 是英國 Labcenter 公司開發(fā)的電路分析與實物仿真軟件。它運行于 Windows操作系統(tǒng)上,可以仿真、分析(SPICE)各種模擬器件和集成電路,該軟件的特點是:(1) 1)實現(xiàn)了單片機仿真和

2、SPICE電路仿真相結(jié)合。具有模擬電路仿真、數(shù)字電路仿真、單片機及其外圍電路組成的系統(tǒng)的仿真、RS232動態(tài)仿真、I2C調(diào)試器、 SPI 調(diào)試器、鍵盤和LCD系統(tǒng)仿真的功能;有各種虛擬儀器,如示波器、邏輯分析儀、信號發(fā)生器等。( 2)支持主流單片機系統(tǒng)的仿真。目前支持的單片機類型有:68000 系列、 8051系列、AVR系列、PIC12系列、 PIC16系列、 PIC18系列、 Z80系列、HC11系列以及各種外圍芯片。(3) 提供軟件調(diào)試功能。在硬件仿真系統(tǒng)中具有全速、單步、設(shè)置斷點等調(diào)試功能,同時可以觀察各個變量、寄存器等的當前狀態(tài),因此在該軟件仿真系統(tǒng)中,也必須具有這些功能;同時支持第

3、三方的軟件編譯和調(diào)試環(huán)境,如Keil C51 uVision2 等軟件。(4) 具有強大的原理圖繪制功能??傊?,該軟件是一款集單片機和SPICE分析于一身的仿真軟件,功能極其強大。本章介紹Proteus ISIS 軟件的工作環(huán)境和一些基本操作。特點:支持ARM,7 PIC , AVR, HC11以及8051 系列的微處理器CPU模型,更多模型正在開發(fā)中:交互外設(shè)模型有LCD顯示、RS232終端、通用鍵盤、開關(guān)、按鈕、LED等;強大的調(diào)試功能,如訪問寄存器與內(nèi)存,設(shè)置斷點和單步運行模式;支持如IAR、 Keil 和 Hitech 等開發(fā)工具的源碼C和匯編的調(diào)試;一鍵“make”特性:一個鍵完成編

4、譯與仿真操作;內(nèi)置超過6000標準SPICE模型,完全兼容制造商提供的SPICE模型; DLL界面為應(yīng)用提供特定的模式;基于工業(yè)標準的SPICE3F5混合模型電路仿真器。 14 種虛擬儀器:示波器、邏輯分析儀、信號發(fā)生器、規(guī)程分析儀等;高級仿真包含強大的基于圖形的分析功能:模擬、數(shù)字和混合瞬時圖形;頻率;轉(zhuǎn)換;噪聲;失真;付立葉;交流、直流和音頻曲線;模擬信號發(fā)生器包括直流、正旋、脈沖、分段線性、音頻、指數(shù)、單頻FM;數(shù)字信號發(fā)生器包括尖脈沖、脈沖、時鐘和碼流;1.2 Keil 軟件Keil C51是美國Keil Software公司出品的51 系列兼容單片機C語言軟件開發(fā)系統(tǒng),與匯編相比,C

5、語言在功能上、結(jié)構(gòu)性、可讀性、可維護性上有明顯的優(yōu)勢,因而易學(xué)易用。 Keil 提供了包括C編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個集成開發(fā)環(huán)境(uVision)將這些部分組合在一起。運行Keil 軟件需要WIN98、 NT、 WIN2000、 WINXP等操作系統(tǒng)。如果你使用C語言編程,那么 Keil 幾乎就是你的不二之選,即使不使用C語言而僅用匯編語言編程,其方便易用的集成環(huán)境、強大的軟件仿真調(diào)試工具也會令你事半功倍。Keil C51開發(fā)系統(tǒng)基本知識Keil C51開發(fā)系統(tǒng)基本知識( 1)系統(tǒng)概述Keil C51 軟件提供豐富的庫函數(shù)和功能強大

6、的集成開發(fā)調(diào)試工具,全Windows界面。另外重要的一點,只要看一下編譯后生成的匯編代碼,就能體會到Keil C51 生成的目標代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時更能體現(xiàn)高級語言的優(yōu)勢。下面詳細介紹Keil C51 開發(fā)系統(tǒng)各部分功能和使用。2 2) Keil C51 單片機軟件開發(fā)系統(tǒng)的整體結(jié)構(gòu)C51工具包的整體結(jié)構(gòu),uVision 與 Ishell 分別是 C51 for Windows 和 for Dos的集成開發(fā)環(huán)境(IDE) ,可以完成編輯、編譯、連接、調(diào)試、仿真等整個開發(fā)流程。開發(fā)人員可用IDE本身或其它編輯器編輯C或匯編源文件。也可以與庫文

7、件一起經(jīng)L51連接定位生成絕對目標文件(.ABS) 。 ABS文件由OH51轉(zhuǎn)換成標準的Hex文件,以供調(diào)試器 dScope51 或 tScope51 使用進行源代碼級調(diào)試,也可由仿真器使用直接對目標板進行調(diào)試,也可以直接寫入程序存貯器如EPROM中。Keil C51 生成的目標代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易2.設(shè)計原理或方法2.1主要元器件介紹1. MCS-51 單片機的結(jié)構(gòu)及編程方法MCS-51 單片機的組成:I/O 口 ( 串口、并口)、內(nèi)部總線PU(進行運算、控制 )、 RAM數(shù)據(jù)存儲器() 、 ROM程序存儲器) (、8051單片機的組成框圖( 1) cpu 中

8、央處理器由運算器和控制器組成,是8 位的cpu,具有布爾運算和8位尋址功能。運算器完成算術(shù)運算和邏輯運算。CPU根據(jù)PC中的地址將欲執(zhí)行指令的指令碼從存儲器中取出,存放在 IR 中, ID 對 IR 中的指令碼進行譯碼,定時控制邏輯在OSC配合下對ID 譯碼后的信號進行分時,以產(chǎn)生執(zhí)行本條指令所需的全部信號。2)存儲器MCS-51單片機按程序存儲器可分為內(nèi)部無ROM型(如 8031)和內(nèi)部有ROM型(如8051)兩種,連接時 引腳有區(qū)別。程序存儲器結(jié)構(gòu)如右圖所示:程序存儲器ROM)用做程序存儲器。可尋址空間為64KB,用于存放用戶程序、數(shù)據(jù)和表格等信息。數(shù)據(jù)存儲器:一般將隨機存儲器AM) 用做

9、數(shù)據(jù)存儲器??蓪ぶ房臻g為64KB。 MCS-51數(shù)據(jù)存儲器可分為片內(nèi)和片外兩部分。3)特殊功能寄存器(SFR)MCS-51有 21 個特殊功能寄存器(也稱為專用寄存器),包括算術(shù)運算寄存器、指針I(yè)/O 口鎖存器、定時器/ 計數(shù)器、串行口、中斷、狀態(tài)、控制寄存器等,它們被離128 個存儲單元,80H FFH地址單元中(不包括PC) ,共占據(jù)了構(gòu)成了 S運行狀態(tài)。8 整除的SFR可位尋址。SFR反映了MCS-51單片機的80C51內(nèi)部結(jié)構(gòu)( 4) I/O 接口I/O 接口是MCS-51單片機對外部實現(xiàn)控制和信息交換的必經(jīng)之路,用于信息傳送過程中的速度匹配和增加它的負載能力。8051 內(nèi)部有 4 個

10、 8 位并行接口P0, P1, P2, P3 ,有 1個全雙工的可編程串行I/O 接口。( 5)定時器/ 計數(shù)器8051 內(nèi)部有兩個16位可編程序的定時器/計數(shù)器, 均為二進制加1 計數(shù)器, 分別命名為 T0 和 T1。( 6)中斷系統(tǒng)8051 可處理 5 個中斷源(2 個外部, 3 個內(nèi)部)發(fā)出的中斷請求,并可對其進行優(yōu)先權(quán)處理。外部中斷的請求信號可以從P3.2, P3.3 引腳上輸入,有電平或邊沿兩種觸發(fā)方式;內(nèi)部中斷源有3 個, 2 個定時器 /計數(shù)器中斷源和1 個串行口中斷源。8051 的中斷系統(tǒng)主要由中斷允許控制器IE 和中斷優(yōu)先級控制器IP 等電路組成。2 . 16*16 點陣 L

11、ED下圖為8× 8點陣LED外觀及引腳圖,其等效電路如下圖所示,只要其對應(yīng)的X、 Y軸順向偏壓,即可使LED發(fā)亮。例如如果想使左上角LED點亮,則Y0=1, X0=0即可。應(yīng)用時限流電阻可以放在X軸或 Y軸。LED掃描法介紹:LED一般采用掃描式顯示,實際運用分為三種方式:1)點掃描;( 2)行掃描;(3) 列掃描。若使用第一種方式,其掃描頻率必須大于16× 64=1024Hz,周期小于1ms即可。若使用則頻率必須大于16× 8=128Hz, 周期小于7.8ms即可符合視覺暫留要求。8顆 LED)時需外加驅(qū)動電路提高電流,否則LED亮度會不足。3 .紅外控制相關(guān)介

12、紹紅外遙控系統(tǒng)由發(fā)射和接收兩大部份組成,應(yīng)用編/解碼專用集成電路芯片來進行控1 所示。發(fā)射部份包括鍵盤矩陣、編碼調(diào)制、LED紅外發(fā)送器;接收部份包HT6221 鍵碼的形成:當發(fā)射器按鍵按下后,即有遙控碼發(fā)出,所按的鍵不同遙控編碼也不同。這種遙控碼0.565ms、間隔0.56ms、周期為1.125ms“0”;以脈寬為0.565ms、間隔1.685ms、周期為2.25ms 的組合表示“1 ”。2.2 設(shè)計方案介紹1.設(shè)計總體思路本次課程設(shè)計的要求是利用紅外遙控器控制,在 16× 16 點陣的顯示器件上循顯示 “武”6 個漢字,控制項目:循環(huán)顯示的速度可調(diào),循環(huán)顯示進入方向(從左至右、16

13、*16 點陣顯示漢字, 而 80C51 的 I/O 接口8 位的, 我們可以用4個 8*8 點陣來組成。由于 80C51的 I/O 口不多 (只有 4組, 32個) ,I/O 口,我們用74HC154( 4線 -16 譯碼器)作為點陣的列驅(qū)動,P2口和P0口作16*16 的點陣漢字,我們需建一個表先將要顯示的漢字的點陣碼存起16*16 點陣漢字提取軟件來獲得我們所需要的漢字的點陣碼),然后編寫一個合適的查表程序就可以按給定要求顯示漢字。至于改變漢字移動的速度,可以通過用按鍵改變漢字在LED上的顯示時間來改變,通過改變的數(shù)值大小就可以改變漢字的移動速度。題目所要求的用紅外控制我們可以先用開關(guān)模擬

14、達到要求,再將開關(guān)的功能用紅外來實現(xiàn),這樣就可以基本上達到要求。通過紅外接收器所解出來的碼將其送到89C51的一個I/O 口以達到開關(guān)的效果。這樣就可以基本達到要求了。2 . 與題目相關(guān)的具體設(shè)計漢字的顯示:可以采用掃描的方式,先使一個I/O 口產(chǎn)生一個選行(列)信號(通過74HC154),先選中一行,對選中的行進行掃描,然后用另外2組 I/O 口輸送數(shù)據(jù),這樣一個字的1/16 就送到LED點陣上了,接著選下一行,這樣經(jīng)過16 次就可以顯示一個字了,再適當延時使顯示的字清晰。漢字的移動:在LED上顯示一個漢字并延時后,可以通過增加所取表的地址(加2);這樣下一次LED上顯示的字就移動了一個點陣

15、,可以通過適當?shù)脑O(shè)計來控制漢字移動循環(huán)的的次數(shù)。漢字的左右上下移動:可以通過建立不同的表,來實現(xiàn)漢字的各種移動,或者改變查表的方式來實現(xiàn)。3 .程序框圖退出移動系統(tǒng)主程序流程圖顯示驅(qū)動程序流程圖4 硬件連線圖及仿真結(jié)果4.1 硬件連線圖是是是是否否否否C2-L- C1口卜CRYSTAL22pT uTEKlU1C3日IQu<TB-i2- _R11k的AMPOO/ADOPO .1 科口 1X| AL JPO 4;'AL>4MJ JoJADbnSTPO fJAD?r2.UM«5FZ.1raN"r2 2jA1U nn ojijh -4 dALEPi 4JA1 &

16、#163;EAP2.5/A13產(chǎn)zjtw禺qqFVl TJ urrl .Uf lx:r J.UJrOWi no w /rwrspi 11rl.工XJI KUPl _2P3.2Jr4T0HI .JPI 4HJ.JJSMI eP3 4JT0PI .5P1.6P3.5/TlrJ.wVMTPi /PJ.f JKU19IBI:U2n1_DID2:LJiUJ¥rENALL55a0JifVI力12W1D,:Q11J411SJl6Qn4DECODER 4 15=.TEXT>713736RP1RESPACK-62fi271011a2crIB Clh_2_17*.771一ZL»1-DHO

17、MS(N守5 源程序#include <reg51.h>#define uchar unsigned charsbit k1=P30;sbit k2=P31;sbit k3=P36;sbit k4=P37;uchar z1,z2,z3,z4,z,speed;uchar code hz=0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x0

18、0,0x00,0x00,/"武 ",0x20,0x40,0x20,0xC0,0x24,0x7E,0x24,0x40, 0x24,0x40,0xA4,0x3F,0x24,0x22,0x24,0x22, 0x20,0x20,0xFF,0x03,0x20,0x0C,0x22,0x10, 0x2C,0x20,0x20,0x40,0x20,0xF8,0x00,0x00,/"漢 ",0x10,0x04,0x60,0x04,0x02,0x7C,0x0C,0x03, 0xC0,0x80,0x02,0x80,0x1E,0x40,0xE2,0x20, 0x02,0x13,0

19、x02,0x0C,0x02,0x13,0xE2,0x20, 0x1E,0x40,0x00,0x80,0x00,0x80,0x00,0x00,/"理 ",0x04,0x20,0x84,0x60,0x84,0x20,0xFC,0x1F, 0x84,0x10,0x84,0x10,0x00,0x40,0xFE,0x44, 0x92,0x44,0x92,0x44,0xFE,0x7F,0x92,0x44, 0x92,0x44,0xFE,0x44,0x00,0x40,0x00,0x00,/"工 ",0x00,0x20,0x04,0x20,0x04,0x20,0x04,

20、0x20, 0x04,0x20,0x04,0x20,0x04,0x20,0xFC,0x3F, 0x04,0x20,0x04,0x20,0x04,0x20,0x04,0x20, 0x04,0x20,0x04,0x20,0x00,0x20,0x00,0x00,/"大 ",0x20,0x80,0x20,0x80,0x20,0x40,0x20,0x20, 0x20,0x10,0x20,0x0C,0x20,0x03,0xFF,0x00, 0x20,0x03,0x20,0x0C,0x20,0x10,0x20,0x20, 0x20,0x40,0x20,0x80,0x20,0x80,0x0

21、0,0x00,/"學(xué) ",0x40,0x04,0x30,0x04,0x11,0x04,0x96,0x04, 0x90,0x04,0x90,0x44,0x91,0x84,0x96,0x7E, 0x90,0x06,0x90,0x05,0x98,0x04,0x14,0x04, 0x13,0x04,0x50,0x04,0x30,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x

22、00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00;uchar code lie=0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7, 0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfe,0xff;void delay(uchar x) /延時函數(shù)uchar i,j;for(i=0;i<x;i+)for(j=0;j<100;j+); void scanf_dir() /判斷按鍵if(k1=0)delay(3);z1=0,z2=1,z3=1,z4=1;if(k2=0)delay(3);z1=1

23、,z2=0,z3=1,z4=1;if(k3=0)delay(3);z1=1,z2=1,z3=0,z4=1;if(k4=0)delay(3);z1=1,z2=1,z3=1,z4=0;/顯示漢字將編號為c 的漢字從第b 條開始顯示n 條到屏幕的l 條開始void left()/左移動uchar i,zishu,x;P1=0x00;for(zishu=0;zishu<6;zishu+) /6 個字P0=0xff;P2=0xff;for(x=0;x<16;x+)/ 從左向右移動16次,(第一屏、第二屏。)if(z1!=0)break;for(z=0;z<speed;z+)/改變在z&

24、lt;的值可以調(diào)整移動速度for(i=0;i<16;i+)/16 列循環(huán)顯示scanf_dir();if(z1!=0)break;P1=liei;P0=hz2*i+zishu*32+x*2;P2=hz2*i+zishu*32+x*2+1;/ 顯示漢字delay(3);P0=0xff;P2=0xff; void showc(uchar c,uchar b,uchar n,uchar l) /右移動輔助函數(shù) uchar i;for(i=0;i<n;i+)scanf_dir();if(z2!=0)break;P1=liei+l;P0=hzc*32+i*2+b*2;P2=hzc*32+i*

25、2+1+b*2;delay(3);P0=0xff;P2=0xff;void right()/右移動uchar i,zishu;P1=0x00;for(zishu=0;zishu<6;zishu+)for(i=0;i<16;i+)if(z2!=0)break;for(z=0;z<speed;z+)/這個可以調(diào)整移動速度showc(zishu,0,16-i,i);showc(zishu+1,15-i,i,0); void up()/上移動uchar i,zishu,y,n;uchar t1,t2,t3;P1=0x00;for(zishu=0;zishu<6;zishu+)

26、P0=0xff;P2=0xff;for(n=0;n<2;n+)for(y=0;y<8;y+)if(z3!=0)break;for(z=0;z<speed;z+)/可以調(diào)整移動速度 for(i=0;i<16;i+) scanf_dir();if(z3!=0)break;if(n=0)t1=hz2*i+zishu*32;t2=hz2*i+1+zishu*32;t3=hz2*i+zishu*32+32; elset1=hz2*i+1+zishu*32;t2=hz2*i+zishu*32+32;t3=hz2*i+1+zishu*32+32; P1=liei;P0=(t1>

27、>y)|(t2<<(7-y);P2=(t2>>y)|(t3<<(7-y);delay(1);P0=0xff;P2=0xff;void down() /下移動uchar i,zishu,y,n;uchar t1,t2,t3;P1=0x00;for(zishu=0;zishu<6;zishu+)P0=0xff;P2=0xff;for(n=0;n<2;n+)for(y=0;y<8;y+)if(z4!=0)break;for(z=0;z<speed;z+)/調(diào)整速度for(i=0;i<16;i+)scanf_dir();if(z4

28、!=0)break;if(n=0)t1=hz2*i+zishu*32;t2=hz2*i+1+zishu*32;t3=hz2*i+1+zishu*32+32;elset1=hz2*i+1+zishu*32+32;t2=hz2*i+zishu*32;t3=hz2*i+zishu*32+32;P1=liei;P0=(t1<<y)|(t3>>(7-y);P2=(t2<<y)|(t1>>(7-y);delay(1);P0=0xff;P2=0xff; void main() z1=0;EA=1; EX0=1; IT0=1; EX1=1; IT1=1; spe

29、ed=20;while(1)scanf_dir();if(z1=0)left();else if(z2=0) right();else if(z3=0)up();else if(z4=0) down();void exint() interrupt 0 /加速if(speed=5)speed=5;elsespeed=speed-5;void exint1() interrupt 2 /減速speed=speed+5;6 資源分配P1.0 到 P1.3 接 74HC154( 4-16 譯碼器)給16*16 點陣提供選行信號。P0.0 到 P0.7接 16*16 點陣的上半塊作為數(shù)據(jù)線,給16*1

30、6 點陣上部提供數(shù)據(jù),點亮相應(yīng)的LED, P2.0到 P2.7 接 16*16 點陣的下半塊作為數(shù)據(jù)線,給 16*16 點陣下部提供數(shù)據(jù),點亮相應(yīng)的LED。P1.0-P1.3 接譯碼器,P3.0、 P3.1 、 P3.6、 P3.7 接開關(guān),分別用于控制漢字左右上下方向P3.2、 P3.3 接開關(guān),分別用于控制循環(huán)顯示的加速和減速。7 性能分析程序通過keil 軟件編譯生成.hex 文件加載到protues 軟件的原理原理圖中能夠進行仿真,可以用開關(guān)控制漢字的移動速度和系統(tǒng)是否開始顯示。系統(tǒng)開始顯示后,漢字先左移,下移動,右移動,上移動。漢字顯示很清晰明亮,效果很不錯。由于PROTUE沒有紅S外模塊的仿真,所以用開關(guān)代替了紅外,實現(xiàn)了相同的功能。用開關(guān)控制漢字的移動速度也比較明顯。8 總結(jié)和心得大三下學(xué)期了,馬上就要進入大四,此次課設(shè)也是大學(xué)僅剩的幾個課設(shè)之一了,我想通過自己的努力,好好做一下,好好鍛煉自己的專業(yè)能力。作為一名電信專業(yè)的大三學(xué)生,我覺得這個單片機是十分有意義的,而且是十分必要的。在已度過的大學(xué)時間里, 我

溫馨提示

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

評論

0/150

提交評論