c語言LcD動態(tài)顯示技術(shù)資料講解_第1頁
c語言LcD動態(tài)顯示技術(shù)資料講解_第2頁
c語言LcD動態(tài)顯示技術(shù)資料講解_第3頁
c語言LcD動態(tài)顯示技術(shù)資料講解_第4頁
c語言LcD動態(tài)顯示技術(shù)資料講解_第5頁
已閱讀5頁,還剩7頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、c語言LcD動態(tài)顯示技術(shù)粘品文檔實例84:液晶時鐘設(shè)計#include /包含單片機寄存器的頭文件 #include 包含隨機函數(shù)rand()的定義文件 #include 包lV_nop_Q函數(shù)定義的頭文件sbit RS=P2A0; 寄存器選擇位,將RS位定義為P2.0引腳 sbit RW=P2A1; 讀寫選擇位,將RW位定義為P2.1引腳 sbit E=P2人2; 使能信號位,將E位定義為P2.2引腳sbit BF=P0A7; 忙碌標(biāo)志位,將BF位定義為P0.7引腳sbit kO=PlAO;sbitkl=PlAl;sbit k2=PlA2;sbit k3=Pl 人3;sbit k4=PlA4

2、;sbit k5=PlA5;sbit k6=PlA6;sbit k7=PlA7;sbit k8=P2 人 6;sbit k9=P2A7;unsigned char table_l 9=0x00,0x00,0x3A,0x00,0x00,0x3A,0x00,0x00,0x00;/定義字符數(shù)組顯示數(shù)字unsigned chai count; /定義變量統(tǒng)計中斷累計次數(shù)unsigned chai sjn,h; 定義變量儲存秒、分鐘和小時/* *函數(shù)功能:延時Ims+2)*1=(3X33+2)X10=1010(微秒),可以認(rèn)為是1毫秒*/void delavlms()unsigned chai ij;f

3、oi(i=0;i10;i+)foi(j=0;j33;j 卄)*函數(shù)功能:延時若干毫秒入口參數(shù):n*void delav(unsigned char n)unsigned chai i;if(k9=0)收集于網(wǎng)絡(luò).如有便權(quán)請聯(lián)系管理員刪除粘品文檔n=ii/2;foi(i=0;in;i+)delay ImsO;*函數(shù)功能:判斷液晶模塊的忙碌狀態(tài)返回值:result o iesult=l,忙碌;iesult=O,不忙* /unsigned chai BusyTest(void)bit result;RS=0;根據(jù)規(guī)定,RS為低電平,RW為高電平時,可以讀狀態(tài)RW=1;E=l; /E=l,才允許讀寫_

4、nop_Q; 空操作_nop_Q;_nop_Q;_nop_Q; 空操作四個機器周期,給硬件反應(yīng)時間result=BF; 將忙碌標(biāo)志電平賦給resultE=0; 將E恢復(fù)低電平letuin result;/* *函數(shù)功能:將模式設(shè)置指令或顯示地址寫入液晶模塊入口參數(shù):dictate */void Wnteliistniction (unsigned char dictate) wlule(BusyTestO= 1); 如果忙就等待RS=0;根據(jù)規(guī)定,RS和R/W同時為低電平時,可以寫入指令RW=0;E=0;/E置低電平(根據(jù)表8-6,寫指令時,E為高脈沖,就是讓E從0到1發(fā)生正跳變,所以應(yīng)先置”

5、0”-nop_();_nop_();空操作兩個機器周期,給硬件反應(yīng)時間PO=dictate; 將數(shù)據(jù)送入POD,即寫入指令或地址-nop_();-nop_();-nop_();_nop_();/空操作四個機器周期,給硬件反應(yīng)時間E=l;/E置高電平-nop_();-nop_();收集于網(wǎng)絡(luò),如有侵權(quán)請聯(lián)系管理員刪除箝品文檔_nop_(); -nop_(); E=0;空操作四個機器周期,給硬件反應(yīng)時間當(dāng)E由高電平跳變成低電平時,液晶模塊開始執(zhí)行命令* *和函數(shù)功能:轉(zhuǎn)換*/void CovlunsQtable_l0=lV10+0x30; table_ll=h% 10+0x30;table_l3=

6、m/10+0x30; table_l4=m% 10+0x30; table_l6=s/10+0x30;table_l7=s% 10+0x30;/* *函數(shù)功能:指定字符顯示的實際地址入口參數(shù):X*:void WnteAddiess(unsigned char x)Writeliistmction(x10x80); 顯示位置的確定方法規(guī)定為n80H+地址碼xu /* * 函數(shù)功能:將數(shù)據(jù)(字符的標(biāo)準(zhǔn)ASCII碼)寫入液晶模塊 入口參數(shù):y(為字符常量) *:void WnteData(unsigned char y)wlule(BusyTestQ= 1);RS=1;RS為高電平,RW為低電平時,

7、可以寫入數(shù)據(jù)RW=0;E=0;/E置低電平(根據(jù)表8-6,寫指令時,E為高脈沖,/就是讓E從0到1發(fā)生正跳變,所以應(yīng)先置”0“Covhms();P0=y; 將數(shù)據(jù)送入POD,即將數(shù)據(jù)寫入液晶模塊 _nop_();_nop_();_nop_();_nop_0;空操作四個機器周期,給硬件反應(yīng)時間E=l; E置高電平收集于網(wǎng)絡(luò).如有便權(quán)請聯(lián)系管理員刪除粘品文檔_nop_();_nop_();_nop_();_nop_();/空操作四個機器周期,給硬件反應(yīng)時間E=0;當(dāng)E由高電平跳變成低電平時,液晶模塊開始執(zhí)行命令*函數(shù)功能:對LCD的顯示模式進(jìn)行初始化設(shè)置 */void Lcdlnitiate(vo

8、id)delay(15); 延時15ms,首次寫指令時應(yīng)給LCD 段較長的反應(yīng)時間Wnteliistniction(0x38); /顯示模式設(shè)置:16X2顯示,5X7點陣,8位數(shù)據(jù)接 口delay(5);延時5ms ,給硬件一點反應(yīng)時間Wnteliistniction(0x3 8);delay(5);Wnteliisuiiction(0x38); 連續(xù)三次,確保初始化成功delay(5);Wnteliisti-uction(OxOc); 顯示模式設(shè)置:顯示開,無光標(biāo),光標(biāo)不閃爍delay(5);Wnteliisuiiction(0x06); 顯示模式設(shè)置:光標(biāo)右移,字符不移delay(5);W

9、nteIiisuiiction(OxO 1); 清屏幕指令,將以前的顯示內(nèi)容清除delay(5);嚴(yán)* main void main(void)fxuiction*/unsigned char ij,k=0x00;LcdlmtiateQ; 調(diào)用LCD初始化函數(shù)TMOD=0x01;使用定時器TO的模式1TH0=0xD8; 定時器TO的高8位設(shè)置初值TL0=0xF0;定時器TO的低8位設(shè)置初值EA=1;ET0=l;開總中斷定時器T0中斷允許TR0=l; count=0; s=0;啟動定時器TO中斷次數(shù)初始化為0秒初始化為0m=0;分鐘初始化為0收集于網(wǎng)絡(luò).如有便權(quán)請聯(lián)系管理員刪除粘品文檔h=12;

10、while(!kO) 如果是按鍵kO按下靜止 WriteAddress(Ox 10);/寫地址 foi(i=0;i8;i+) WnteData(table_li); LcdliutiateQ; while(!kl)/如果是按鍵kl按下整體閃爍WnteAddress(Ox 10);/寫地址 foi(i=0;i8;i+) WriteData(table_li); delay(5000); delay(5000); delay(5000);WiiteIiistniction(OxO 1);delay(5000);delay(5000);delay(5000); while(!k2)/如果是按鍵k2按

11、下單字閃爍fdr0=O;j8;j +)WriteAddress(0x50);/ 寫地址 fbi(i=0;i8;i+) WriteData(table_li); delay(5000); delay(5000);LcdhiitiateQ; WiiteAddiess(0x50);foi(i=0;i8;i+)table_lj=OxOO;WriteData(table_ 1 i);;ifd=2|j=5) table_l|j=0x3A; delay(5000); delav(5000);Lcdliiitiate();收集于網(wǎng)絡(luò).如有便權(quán)請聯(lián)系管理員刪除粘品文檔;while(!k3)/如果是按鍵k3按下向

12、前向后滾動 for0=0;j33;j+)WriteAddress(OxOO+j); 寫地址 foi(i=0;i0;j-)WriteAddress(OxOO+j); 寫地址 foi(i=0;i8;i+) WnteData(table_li);delav(5000); Lcdliiitiate();; vhile(!k4) /如果是按鍵k4按下單字移動 foi(j=0;j8;j 十十)WriteAddress(0x50);/ 寫地址 for(i=0;i8;i-H-) WriteData(table_li);delay(5OOO);delay(5OOO);LcdLutiateQ;WriteAddie

13、ss(OxlO+j);WriteData(table_l j);WriteAddress(0x50); fbr(i=O;i8;i+)table_lj=OxOO;WriteData(table_ 1 1);; if(j=2|j=5)table_l|j=Ox3A;delay(5OOO);delay(5OOO);LcdLutiate();收集于網(wǎng)絡(luò),如有侵權(quán)請聯(lián)系管理員刪除精品文檔while(!k5)/如果是按鍵k5按下向兩邊擴張 WriteAddress(0x50);/ 寫地址 for(i=0;i8;i+) WriteData(table_li);delav(5000);delav(5000);L

14、cdliutiateQ;WriteAddiess(0x4c);/ 寫地址 for(i=0;i8;i+)WriteData(table_l i);W iiteData(table_l 8);idelav(5000);delav(5000);LcdliutiateQ;WriteAddress(0x48);/ 寫地址for(i=0;i8;i+) WriteData(table_l i);W iiteData(table_l 8);W iiteData(table_l 8);delav(5000);delav(5000);LcdliutiateQ;WriteAddress(0x44);/ 寫地址for

15、(i=0;i8;i+) WriteData(table_l i);W iiteData(table_l 8);W iiteData(table_l 8);W iiteData(table_l 8);idelav(5000);delav(5000);LcdliutiateQ;WnteAddress(0x40);/ 寫地址 for(i=0;i8;i+)W iiteData(table_l i);收集于網(wǎng)絡(luò).如有便權(quán)請聯(lián)系管理員刪除粘品文檔WnteData(table_l 8); W iiteData(table_l 8); WnteData(table_l 8); WnteData(table_l

16、 8);;delay(5000); delay(5000); LcdliutiateQ;while(!k6)/如果是按鍵k6按下向中間壓縮 WriteAddiess(0x40);/寫地址for(i=0;i8;i+)WnteData(table_l i);WnteData(table_l 8);WnteData(table_l 8);WnteData(table_l 8);WnteData(table_l 8); ;delay(5000);delay(5000);LcdliutiateQ;WnteAddiess(0x44);/ 寫地址for(i=0;i8;i+)WnteData(table_l

17、i);WnteData(table_l 8);WnteData(table_l 8);WnteData(table_l 8); ;delay(5000); delay(5000); LcdliutiateQ;WnteAddiess(0x48);/ 寫地址 for(i=0;i8;i+)WnteData(table_l i);WnteData(table_l 8);WnteData(table_l 8); ;delay(5000); delay(5000); LcdliutiateQ;W iiteAddress(0x4c);/ 寫地址收集于網(wǎng)絡(luò).如有便權(quán)請聯(lián)系管理員刪除粘品文檔for(i=0;i8

18、;i+)WiiteData(table_l i);W iiteData(table_l 8); idelay(5000);delay(5000);LcdliutiateQ;WriteAddiess(0x50);/ 寫地址 for(i=0;i8;i-H-)WriteData(table_li);delay(5000);delay(5000);LcdliutiateQ;while(!k7)/如果是按鍵k7按下上下移動 WnteAddress(Ox 10);/寫地址 for(i=0;i8;i-H-)WriteData(table_li);delay(5000);LcdliutiateQ;WriteAddiess(0x50);/ 寫地址 for(i=0;i8;i-H-)WriteData(table_li);delay(5000);LcdliutiateQ;vhile(!k8) 如果是按鍵k8按下,組合運動 for(i=0;i8;i+)for(k=0;k&k+)WnteAddiess(Ox 10+k);/ 寫地址 WriteData(table_l i);WriteAddress(

溫馨提示

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

評論

0/150

提交評論