微控制器技術(shù)課程設(shè)計6點陣LED廣告屏_第1頁
微控制器技術(shù)課程設(shè)計6點陣LED廣告屏_第2頁
微控制器技術(shù)課程設(shè)計6點陣LED廣告屏_第3頁
微控制器技術(shù)課程設(shè)計6點陣LED廣告屏_第4頁
微控制器技術(shù)課程設(shè)計6點陣LED廣告屏_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、6點陣LED廣告屏1.1設(shè)計任務(wù)16×16 LED點陣由四塊8×8 LED點陣組成??刂泣c陣的掃描顯示,使1 6×16 LED點陣循環(huán)顯示漢字。例如:北京信息科技大學(xué)自動化學(xué)院!。1.2設(shè)計思路字模用軟件事前生成程序中要不斷的逐層掃描顯示.1.3原理圖及參考連線16×16 LED點陣由四塊8×8 LED 點陣組成,如圖4-7-1所示,8×8 點陣內(nèi)部結(jié)構(gòu)圖及外部引腳圖如圖4-7-2 與圖4-7-3 所示。由圖4-7-2 可知,當(dāng)行為“0”,列為“1”,則對應(yīng)行、列上的LED 點亮。漢字顯示如圖4-7-4所示。點陣顯示接線圖1.4 軟件

2、設(shè)計流程圖:程序代碼:#define Row1 XBYTE0xef00/ 端口定義#define Row2 XBYTE0xdf00#define Col1 XBYTE0xbf00#define Col2 XBYTE0x7f00void Delay(void)/ 延時子程序unsigned char i;for(i=0; i<60; i+);void clear(void)/ 清屏Row1 = 0x00;Row2 = 0x00;Col1 = 0xff;Col2 = 0xff;void main(void)unsigned char Scan=0x01, i, j;unsigned int

3、count=0;clear();while(1)for(i=0; i<50; i+)for(j=0; j<8; j+)Row1 = 0x00;Col1 = hzdotcount;/ 0-7列Col2 = hzdotcount+1;/ 8-15列count+=2;Row1 = Scan;/ 0-7行Scan = (Scan<<1)|(Scan>>7);/ 行掃Delay();Row1 = 0x00;for(j=0; j<8; j+)Row2 = 0x00;Col1 = hzdotcount;Col2 = hzdotcount+1;count+=2;Row

4、2 = Scan;/ 8-15行Scan = (Scan<<1)|(Scan>>7);Delay();Row2 = 0x00;count-=32;count+=2;if(count = (448-32) count=0;unsigned char code hzdot448 = /北(0) 京(1) 信(2) 息(3) 科(4) 技(5) 大(6) 學(xué)(7) 自(8) 動(9) 化(10) 學(xué)(11) 院(12) !(13)0x20,0x02,0x20,0x02,0x20,0x02,0x20,0x22,0x20,0x72,0x3E,0x1A,0x20,0x06,0x20

5、,0x02,0x20,0x02,0x20,0x02,0x30,0x02,0x2C,0x42,0x27,0x42,0x22,0x42,0x20,0x7C,0x00,0x00,/"北",0/0x40,0x00,0x80,0x10,0xFE,0x3F,0x00,0x00,0x00,0x00,0xF8,0x0F,0x08,0x08,0x08,0x08,0xF8,0x0F,0x80,0x00,0x90,0x0C,0x98,0x18,0x8C,0x30,0x82,0x10,0xA0,0x00,0x40,0x00,/"京",1/0x10,0x01,0x30,0x06,

6、0x18,0x02,0xE8,0x7F,0x0C,0x00,0xCC,0x1F,0x0A,0x00,0xC9,0x1F,0x08,0x00,0xC8,0x1F,0x48,0x10,0x48,0x10,0x48,0x10,0xC8,0x1F,0x48,0x10,0x00,0x00,/"信",2/0x80,0x00,0x40,0x00,0xF8,0x0F,0x08,0x08,0xF8,0x0F,0x08,0x08,0xF8,0x0F,0x08,0x08,0xF8,0x0F,0x00,0x00,0x90,0x00,0x14,0x21,0x14,0x49,0x16,0x48,0xE

7、0,0x0F,0x00,0x00,/"息",3/0x60,0x10,0x1E,0x11,0x10,0x12,0x10,0x12,0x7F,0x10,0x18,0x11,0x38,0x12,0x54,0x12,0x14,0x70,0x12,0x1E,0xD1,0x11,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,/"科",4/0x08,0x04,0x08,0x04,0x08,0x04,0xBF,0x7F,0x08,0x04,0x28,0x04,0x98,0x3F,0x8C,0x10,0x0B,0x11

8、,0x08,0x09,0x08,0x06,0x08,0x06,0x08,0x09,0x88,0x70,0x6A,0x20,0x04,0x00,/"技",5/0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0xFF,0x7F,0x80,0x00,0x40,0x01,0x40,0x01,0x40,0x02,0x20,0x02,0x20,0x04,0x10,0x08,0x08,0x18,0x04,0x70,0x02,0x20,/"大",6/0x80,0x10,0x08,0x31,0x30,0x13,0x10,

9、0x09,0xFE,0x7F,0x02,0x20,0xF1,0x17,0x00,0x02,0x00,0x01,0xFE,0x7F,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x40,0x01,0x80,0x00,/"學(xué)",7/0x80,0x00,0x80,0x01,0x40,0x00,0xF8,0x1F,0x08,0x10,0x08,0x10,0xF8,0x1F,0x08,0x10,0x08,0x10,0x08,0x10,0xF8,0x1F,0x08,0x10,0x08,0x10,0x08,0x10,0xF8,0x1F,0x08,0x1

10、0,/"自",8/0x00,0x04,0x00,0x04,0x7E,0x04,0x00,0x04,0x00,0x3F,0xFF,0x24,0x08,0x24,0x08,0x24,0x24,0x24,0x44,0x24,0xF2,0x22,0x5F,0x22,0x02,0x21,0x80,0x28,0x40,0x10,0x00,0x00,/"動",9/0x10,0x01,0x30,0x01,0x10,0x11,0x08,0x31,0x08,0x19,0x0C,0x0D,0x0A,0x07,0x09,0x03,0x88,0x01,0x48,0x01,0x28

11、,0x01,0x08,0x21,0x08,0x21,0x08,0x21,0x08,0x3E,0x00,0x00,/"化",10/0x80,0x10,0x08,0x31,0x30,0x13,0x10,0x09,0xFE,0x7F,0x02,0x20,0xF1,0x17,0x00,0x02,0x00,0x01,0xFE,0x7F,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x40,0x01,0x80,0x00,/"學(xué)",11/0x00,0x01,0x1F,0x02,0xF1,0x7F,0x29,0x20,0x05,0x0

12、0,0xC5,0x1F,0x09,0x00,0x11,0x00,0xF1,0x7F,0x95,0x04,0x89,0x04,0x81,0x04,0x41,0x44,0x41,0x44,0x21,0x44,0x11,0x78,/"院",12/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x00,0x00,0x08,0x00,0x00,0x00,/"!&q

13、uot;,13/;1.51 實驗調(diào)試結(jié)果1.61實驗心得這個試驗中,字符顯示順序本來是本來是從上往下顯示,如果想要使顯示的漢字順序顛倒現(xiàn)在改成從下顯示。有兩種方法,第一個就是直接更改字符庫,使字符庫顛倒;第二個就是利用軟件的方法來解決。注意在輸入字符的時候要從后面的字符往前輸入.比如想顯示“北京信息科技大學(xué)自動化學(xué)院!”字符輸入時輸入”!院學(xué)化動自學(xué)大技科息信京北”具體程序如下:#include "sst89x5x4.h"#include "Absacc.h"/#include "hzdot.h"#include "hzdo

14、t1.h"#define Row1 XBYTE0xef00/ 端口定義#define Row2 XBYTE0xdf00#define Col1 XBYTE0xbf00#define Col2 XBYTE0x7f00void Delay(void)/ 延時子程序unsigned char i;for(i=0; i<60; i+);void clear(void)/ 清屏Row1 = 0x00;Row2 = 0x00;Col1 = 0xff;Col2 = 0xff;void main(void)unsigned char Scan=0x01, i, j; int count=416

15、-32;clear();while(1)for(i=0; i<50; i+)for(j=0; j<8; j+)Row1 = 0x00;Col1 = hzdotcount;/ 0-7列Col2 = hzdotcount+1;/ 8-15列count+=2;Row1 = Scan;/ 0-7行Scan = (Scan<<1)|(Scan>>7);/ 行掃Delay();Row1 = 0x00;for(j=0; j<8; j+)Row2 = 0x00;Col1 = hzdotcount;Col2 = hzdotcount+1;count+=2;Row2 =

16、Scan;/ 8-15行Scan = (Scan<<1)|(Scan>>7);Delay();Row2 = 0x00;count-=32;count-=2;if(count =0) count=416-32;unsigned char code hzdot416 = 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x00,0x00,0x08,0x00,0x00

17、,0x00,/"!",13/0x00,0x01,0x1F,0x02,0xF1,0x7F,0x29,0x20,0x05,0x00,0xC5,0x1F,0x09,0x00,0x11,0x00,0xF1,0x7F,0x95,0x04,0x89,0x04,0x81,0x04,0x41,0x44,0x41,0x44,0x21,0x44,0x11,0x78,/"院",12/0x80,0x10,0x08,0x31,0x30,0x13,0x10,0x09,0xFE,0x7F,0x02,0x20,0xF1,0x17,0x00,0x02,0x00,0x01,0xFE,0x7

18、F,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x40,0x01,0x80,0x00,/"學(xué)",11/0x10,0x01,0x30,0x01,0x10,0x11,0x08,0x31,0x08,0x19,0x0C,0x0D,0x0A,0x07,0x09,0x03,0x88,0x01,0x48,0x01,0x28,0x01,0x08,0x21,0x08,0x21,0x08,0x21,0x08,0x3E,0x00,0x00,/"化",10/0x00,0x04,0x00,0x04,0x7E,0x04,0x00,0x04,0x

19、00,0x3F,0xFF,0x24,0x08,0x24,0x08,0x24,0x24,0x24,0x44,0x24,0xF2,0x22,0x5F,0x22,0x02,0x21,0x80,0x28,0x40,0x10,0x00,0x00,/"動",9/0x80,0x00,0x80,0x01,0x40,0x00,0xF8,0x1F,0x08,0x10,0x08,0x10,0xF8,0x1F,0x08,0x10,0x08,0x10,0x08,0x10,0xF8,0x1F,0x08,0x10,0x08,0x10,0x08,0x10,0xF8,0x1F,0x08,0x10,/&quo

20、t;自",8/0x80,0x10,0x08,0x31,0x30,0x13,0x10,0x09,0xFE,0x7F,0x02,0x20,0xF1,0x17,0x00,0x02,0x00,0x01,0xFE,0x7F,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x40,0x01,0x80,0x00,/"學(xué)",7/0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0xFF,0x7F,0x80,0x00,0x40,0x01,0x40,0x01,0x40,0x02,0x20,0x02,0

21、x20,0x04,0x10,0x08,0x08,0x18,0x04,0x70,0x02,0x20,/"大",6/0x08,0x04,0x08,0x04,0x08,0x04,0xBF,0x7F,0x08,0x04,0x28,0x04,0x98,0x3F,0x8C,0x10,0x0B,0x11,0x08,0x09,0x08,0x06,0x08,0x06,0x08,0x09,0x88,0x70,0x6A,0x20,0x04,0x00,/"技",5/0x60,0x10,0x1E,0x11,0x10,0x12,0x10,0x12,0x7F,0x10,0x18,0x

22、11,0x38,0x12,0x54,0x12,0x14,0x70,0x12,0x1E,0xD1,0x11,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,/"科",4/0x80,0x00,0x40,0x00,0xF8,0x0F,0x08,0x08,0xF8,0x0F,0x08,0x08,0xF8,0x0F,0x08,0x08,0xF8,0x0F,0x00,0x00,0x90,0x00,0x14,0x21,0x14,0x49,0x16,0x48,0xE0,0x0F,0x00,0x00,/"息",3/0x1

23、0,0x01,0x30,0x06,0x18,0x02,0xE8,0x7F,0x0C,0x00,0xCC,0x1F,0x0A,0x00,0xC9,0x1F,0x08,0x00,0xC8,0x1F,0x48,0x10,0x48,0x10,0x48,0x10,0xC8,0x1F,0x48,0x10,0x00,0x00,/"信",2/0x40,0x00,0x80,0x10,0xFE,0x3F,0x00,0x00,0x00,0x00,0xF8,0x0F,0x08,0x08,0x08,0x08,0xF8,0x0F,0x80,0x00,0x90,0x0C,0x98,0x18,0x8C,0

24、x30,0x82,0x10,0xA0,0x00,0x40,0x00,/"京",1/0x20,0x02,0x20,0x02,0x20,0x02,0x20,0x22,0x20,0x72,0x3E,0x1A,0x20,0x06,0x20,0x02,0x20,0x02,0x20,0x02,0x30,0x02,0x2C,0x42,0x27,0x42,0x22,0x42,0x20,0x7C,0x00,0x00,/"北",0/;1.52 實驗調(diào)試結(jié)果1.62實驗心得這個實驗是給的固定的程序,count給定值是320,點陣是四個8×8 每個字要掃描32次,所以

25、最多能輸入10個字,要輸入多的漢字,必須修改count的值,同時要注意在hzdot數(shù)組中也要對應(yīng)修改相應(yīng)的值,使其不會會溢出.同時字符顯示的速度由i來控制,i字體越大顯示的越慢。7.電子發(fā)聲設(shè)計1.1設(shè)計任務(wù)通過產(chǎn)生不同頻率的波形,使發(fā)生器產(chǎn)生歌曲.1.2設(shè)計思路一個音符對應(yīng)一個頻率,將對應(yīng)一個音符頻率的方波通到揚聲器上,就 可以發(fā)出這個音符的聲音。將一段樂曲的音符對應(yīng)頻率的方波依次送到揚聲 器,就可以演奏出這段樂曲。利用定時器控制單片機的 I/O 引腳輸出方波, 將相應(yīng)一種頻率的計數(shù)初值寫入計數(shù)器,就可產(chǎn)生對應(yīng)頻率的方波。 要產(chǎn)生音頻脈沖,只要計算出某一音頻的周期(1/頻率),然后將此周 期

26、除以2,即為半周期的時間。利用定時器計時這個半周期時間。每當(dāng)計時到 后就將輸出脈沖的I/O反相,就可以在I/O腳上得到此頻率的脈沖。 音符與頻率對照關(guān)系如表所示。對于每一個音符的演奏時間,可以通過 軟件延時來處理。首先確定單位延時時間程序(根據(jù)CPU的頻率不同而有所 變化)。然后確定每個音符演奏需要幾個單位時間,就幾次調(diào)用延時子程序 即可。音符與頻率對照表(單位:Hz) 表 音符與頻率對照表(單位:Hz)頻率表是將曲譜中的音符對應(yīng)的頻率值依次記錄下來,時間表是將各個音 符發(fā)音的相對時間記錄下來(由曲譜中節(jié)拍得出)。 頻率表和時間表是一一對應(yīng)的,頻率表的最后一項為0,作為重復(fù)的標(biāo)志。 根據(jù)頻率表

27、中的頻率算出對應(yīng)的計數(shù)初值,然后依次寫入T0 的計數(shù)器。將時間 表中相對時間值帶入延時程序來得到音符演奏時間。1.3原理圖及參考連線電子發(fā)聲單元原理圖電子發(fā)聲接線圖音符與頻率對照表(單位:Hz)1.4 軟件設(shè)計 程序代碼:#include "SST89x5x4.h"sbit POUT = P00;/揚聲器控制引腳#define Clk 0x070000unsigned char data val_H;/計數(shù)器高字節(jié)unsigned char data val_L;/計數(shù)器低字節(jié)/頻率表unsigned int code freq_list = 371,495,495,495

28、,624,556,495,556,624, 495,495,624,742,833,833,833,742,624, 624,495,556,495,556,624,495,416,416, 371,495,833,742,624,624,495,556,495, 556,833,742,624,624,742,833,990,742, 624,624,495,556,495,556,624,495,416, 416,371,495,0;/時間表unsigned char code time_list= 4, 6, 2, 4, 4, 6, 2, 4, 4, 6, 2, 4, 4,12, 1,

29、3, 6, 2, 4, 4, 6, 2, 4, 4, 6, 2, 4, 4,12, 4, 6, 2, 4, 4, 6, 2, 4, 4, 6, 2, 4, 4,12, 4, 6, 2, 4, 4, 6, 2, 4, 4, 6, 2, 4, 4,12;void t0_isr() interrupt 1/定時器0中斷處理程序POUT = POUT;/產(chǎn)生方波TH0 = val_H;/重新裝入計數(shù)值TL0 = val_L;void Delay(unsigned char cnt)/單位延時unsigned char i;unsigned int j;for(i=0; i<cnt; i+)for

30、(j=0; j<0x3600; j+);void main(void)unsigned int val; unsigned char i;TMOD = 0x01;/初始化IE = 0x82;TR0 = 1;while(1)i = 0;while(freq_listi)/頻率為0重新開始val = Clk/(freq_listi);val = 0xFFFF - val;/計算計數(shù)值val_H = (val>>8)&0xff;val_L = val&0xff;TH0 = val_H;TL0 = val_L;Delay(time_listi);i+;1.5實驗心得這

31、個電子發(fā)生實驗,最后成果會演奏"友誼地久天長",如果想讓它演奏別的樂曲時,除了改樂譜還有改波形持續(xù)的時間.計算比較復(fù)雜.8.字符型LCD顯示1.1 設(shè)計任務(wù)(1)在液晶顯示器上顯示字符串、數(shù)字等,并循環(huán)動態(tài)顯示。如顯示“Happy new year!”(2)按下不同按鈕,顯示內(nèi)容改變。1.2設(shè)計思路在程序里設(shè)置數(shù)組,儲存要輸出的內(nèi)容,通過開關(guān)控制P0口的選值輸出到LCD液晶顯示上不同的內(nèi)容。1.3原理圖及參考連線液晶單元原理圖該指令完成下列功能:將空碼(20H)寫入DDRAM的全部 80個單元內(nèi),將地址指針計數(shù)器 AC清零,光標(biāo)或閃爍歸HOME 位,設(shè)置輸入方式參數(shù)I/D1

32、,即地址指針 AC為自動加一輸入方式。該指令將地址指針計數(shù)器 AC 清零。執(zhí)行該指令的效果有:將光標(biāo)或閃爍位返回到顯示屏的左上第一字符位上,即DDRAM地址00H單元位置,這是因為光標(biāo)和閃爍位都是以地址指針計數(shù)器AC當(dāng)前值定位的。如果畫面已滾動,則撤消滾動效果,將畫面拉回到 HOME 位。該指令的功能在于設(shè)置了顯示字符的輸入方式,即在計算機讀/寫DDRAM或 CGRAM后,地址指針計數(shù)器 AC 的修改方式,反映在顯示效果上,當(dāng)寫入一個字符后畫面或光標(biāo)的移動。該指令的兩個參數(shù)位I/D 和S確定了字符的輸入方式。I/D表示當(dāng)計算機讀/寫DDRAM或CGRAM的數(shù)據(jù)后,地址指針計數(shù)器 AC的修改方式

33、,由于光標(biāo)位置也是由AC值確定,所以也是光標(biāo)移動的方式。 I/D0: AC為減一計數(shù)器,光標(biāo)左移一個字符位。 I/D1 :AC為加一計數(shù)器,光標(biāo)右移一個字符位。 S表示在寫入字符時,是否允許顯示畫面的滾動 S0:禁止?jié)L動 S1:允許滾動 S1且I/D0:顯示畫面向右滾動一個字符 S1且I/D1:顯示畫面向左滾動一個字符 綜合而論,該指令可以實現(xiàn)四種字符的輸入方式,見表所示。該指令控制著畫面,光標(biāo)及閃爍的開與關(guān)。該指令有三個狀態(tài)位D、C、B,這三個狀態(tài)位分別控制著畫面,光標(biāo)和閃爍的顯示狀態(tài)。 D:畫面顯示狀態(tài)位。當(dāng) D1 時為開顯示,當(dāng) D0 時為關(guān)顯示。主要關(guān)顯示僅是畫面不出現(xiàn),而DDRAM內(nèi)

34、容不變。這與清屏指令截然不同。 C:光標(biāo)顯示狀態(tài)位。當(dāng)C1時為光標(biāo)顯示,當(dāng) C0 時為光標(biāo)消失。 B:閃爍顯示狀態(tài)位。當(dāng) B1 時為閃爍啟用,當(dāng) B0 時為閃爍禁止。閃爍是指一個字符位交替進行正常顯示態(tài)和全亮顯示態(tài)。S/C:滾動對象選擇。S/C1:畫面滾動;S/C0:光標(biāo)滾動。/R/L:滾動方向選擇。R/L1:向右滾動;R/L0:向左滾動。 該指令代碼表如下表所示:DL:設(shè)置控制器與計算機的接口形式。接口形式體現(xiàn)在數(shù)據(jù)總線長度上。 DL1:設(shè)置數(shù)據(jù)總線為8位長度,即DB7DB0 有效 DL0:設(shè)置數(shù)據(jù)總線為 4 位長度,即 DB7DB4 有效。該方式下 8 位指令代碼和數(shù)據(jù)將按先高4位后低4位

35、的順序分兩次傳輸。 N:設(shè)置顯示的字符行數(shù)。N0為一行字符行;N1 為兩行字符行。 F:設(shè)置顯示字符的字體。F0為5×7點陣字符體;F1 為 5×10 點陣字符體。計算機對指令寄存器通道讀操作(RS0,R/W1)時,將讀出此格式的“忙”標(biāo)志 BF值和7位地址指針計數(shù)器AC的當(dāng)前值。計算機隨時都可以對 HD44780U讀“忙”操作。BF值反映HD44780U的接口狀態(tài)。計算機在對 HD44780U每次操作時首先都要讀 BF值判斷HD44780U的當(dāng)前接口狀態(tài),僅有在BF0時計算機才可以向HD44780U寫指令代碼或顯示數(shù)據(jù)和從HD44780U讀出顯示數(shù)據(jù)。 計算機讀出的地址指

36、針計數(shù)器AC當(dāng)前值可能是 DDRAM地址也可能是 CGRAM的地址,這取決于最近一次計算機向AC寫入的是哪類地址。下圖:LCD液晶顯示接線圖1.4 軟件設(shè)計#include<reg51.h>#include<intrins.h>/引腳定義sbit RSPIN = P15;sbit RWPIN = P16; sbit EPIN = P17; /使能引腳unsigned char XPOS,YPOS;unsigned char DisTab1 = "TD-NMC+ Xi'an Tang Du Crop. "unsigned char DisTab

37、2 = ""void delay(unsigned int t) unsigned int i,j; for(i=0;i<t;i+) for(j=0;j<10;j+);void lcdwaitidle(void)/忙狀態(tài)判別 P0=0xff; /p0輸入先給全1 RSPIN=0; /指令 RWPIN=1; /讀數(shù)據(jù) EPIN=1; while(P0&0x80)=0x80);/讀取忙標(biāo)志BF, 判為1否, 為1等待 EPIN=0;void lcdwcn(unsigned char c)/寫指令c RSPIN=0; RWPIN=0

38、; P0=c; EPIN=1; _nop_(); EPIN=0;void lcdwc(unsigned char c)/查詢忙標(biāo)志, 然后寫指令c lcdwaitidle(); lcdwcn(c);void lcdwd(unsigned char d)/查詢忙標(biāo)志, 然后寫數(shù)據(jù)d lcdwaitidle(); RSPIN=1; RWPIN=0; P0=d; EPIN=1; _nop_(); EPIN=0;void lcdpos(void)XPOS&=0x3f; /第一行地址YPOS&=0x03;if(YPOS=0x00) lcdwc(XPOS|0x80); /DDRAM地址設(shè)置

39、(第1行)else if(YPOS=0x01)lcdwc(XPOS+0x40)|0x80);/DDRAM地址設(shè)置(第2行)void lcdinit(void)/LCD初始化 delay(150); lcdwcn(0x38);/總線8位, 兩行顯示, 5*7點陣字符體 delay(50); lcdwcn(0x38); delay(50); lcdwcn(0x38); lcdwc(0x38); lcdwc(0x08);/關(guān)閉顯示, 光標(biāo)消失, 閃爍禁止 lcdwc(0x01); /清屏 lcdwc(0x06);/AC加1計數(shù), 禁止?jié)L動 lcdwc(0x0e);/開顯示void Display(v

40、oid)/ 顯示子程序for(XPOS=0; XPOS<16; XPOS+)YPOS=0; lcdpos(); lcdwd(DisTab1XPOS); /顯示數(shù)據(jù)函數(shù)YPOS=1; lcdpos(); lcdwd(DisTab2XPOS);delay(2000);for(XPOS=16; XPOS<30; XPOS+)lcdwc(0x18);/ 左滾屏YPOS=0; lcdpos(); lcdwd(DisTab1XPOS);YPOS=1; lcdpos(); lcdwd(DisTab2XPOS);delay(2000);void main(void) EPIN=0;lcdinit(

41、);while(1)lcdwc(0x01);lcdwc(0x02);Display(); delay(5000);1.5實驗調(diào)試結(jié)果1.6實驗心得本實驗難度較大,在掃描時滾動時,左滾屏?xí)r能全部顯示。課程設(shè)計體會作為一名自動化專業(yè)的大三學(xué)生,我覺得做單片機課程設(shè)計是十分有意義的,而且是十分必要的。在已度過的大學(xué)時間里,我們大多數(shù)接觸的是專業(yè)課。我們在課堂上掌握的僅僅是專業(yè)課的理論知識,如何去鍛煉我們的實踐能力?如何把我們所學(xué)的專業(yè)基礎(chǔ)課理論知識運用到實踐中去呢?我想做類似的課程設(shè)計就為我們提供了良好的實踐平臺。課程設(shè)計是培養(yǎng)學(xué)生綜合運用所學(xué)知識,發(fā)現(xiàn),提出,分析和解決實際問題,鍛煉實踐能力的重要環(huán)節(jié),是對學(xué)生實際工作能力的具體訓(xùn)練和考察過程.隨著科學(xué)技術(shù)發(fā)展的日新日異,單片機已經(jīng)成為當(dāng)今計算機應(yīng)用中空前活躍的領(lǐng)域,在生活

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論