51單片機(jī) 1602顯示程序 C語(yǔ)言

上傳人:z**** 文檔編號(hào):114222857 上傳時(shí)間:2022-06-28 格式:DOC 頁(yè)數(shù):13 大小:110.50KB
收藏 版權(quán)申訴 舉報(bào) 下載
51單片機(jī) 1602顯示程序 C語(yǔ)言_第1頁(yè)
第1頁(yè) / 共13頁(yè)
51單片機(jī) 1602顯示程序 C語(yǔ)言_第2頁(yè)
第2頁(yè) / 共13頁(yè)
51單片機(jī) 1602顯示程序 C語(yǔ)言_第3頁(yè)
第3頁(yè) / 共13頁(yè)

本資源只提供3頁(yè)預(yù)覽,全部文檔請(qǐng)下載后查看!喜歡就下載吧,查找使用更方便

15 積分

下載資源

資源描述:

《51單片機(jī) 1602顯示程序 C語(yǔ)言》由會(huì)員分享,可在線閱讀,更多相關(guān)《51單片機(jī) 1602顯示程序 C語(yǔ)言(13頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、** * 描述: LCD 1602 滾動(dòng)顯示 * *顯示方式: * *1、從左到右逐字顯示,閃動(dòng)二次,清屏。 * *2、再?gòu)挠业阶笾鹱诛@示,閃動(dòng)二次,清屏。 * *3、周期性地重復(fù)上述顯示方式。 * ******************************************************************************* */ ^include ^include tvpedef unsigned chai BYTE; tvpedef bit BOOL; sbit LCD_RS = P2A6; s

2、bit LCD_RW = P2八 5; sbit LCD_EP = P2A7; BYTE code disl[] = {H WELCOME TO H}; BYTE code dis2[] = {H ”}; BYTE code dis3[] = {H OT EMOCLEW 冷; BYTE code dis4[] = {H MOC.NIHCEREWWW H}; delay(int ms) { //延時(shí)子程序 inti; wliile(ms-) { fbi(i = 0; i< 250; i++) { _nop_(); _nop_(); _nop_(); _nop_();

3、} } } BOOL lcd_bz() //測(cè)試LCD忙碌狀態(tài) BOOL result; LCD_RS = 0; LCD_RW= 1; LCD_EP= 1; _nop_0; _nop_0; _nop_0; _nop_0; result = (BOOL)(PO & 0x80); LCD_EP = 0; return result; } lcd_wcmd(BYTE cmd) { //寫(xiě)入指令數(shù)據(jù)到LCD while(lcd_bzQ); LCD_RS = 0; LCD.RW = 0; LCD_EP = 0; _nop_0; _nop_0; P0 =

4、cmd; _nop_0; _nop_0; _nop_0; _nop_0; LCD_EP= 1; _nop_0; _nop_0; _nop_0; _nop_0; LCD_EP = 0; } lcd_pos(BYTE pos) { 〃設(shè)定顯示位置 lcd_wcmd(pos | 0x80); } lcd_wdat(BYTE dat) { 〃寫(xiě)入字符顯示數(shù)據(jù)到LCD while(lcd_bzQ); LCD_RS = 1; LCD.RW = 0; LCD EP = 0: PO = dat; _nop_0; _nop_0; _nop_0; _nop_0; LCD

5、_EP= 1; _nop_0; _nop_0; _nop_0; _nop_0; LCD_EP = 0; } lcd_init() { //LCD初始化設(shè)定 lcd_wcmd(0x38); //16*2顯示,5*7點(diǎn)陣,8位數(shù)據(jù) delay(l); lcd_wcmd(0x0c); 〃顯示開(kāi),關(guān)光標(biāo) delay(l); lcd_wcmd(0x06); 〃移動(dòng)光標(biāo) delay(l); lcd_wcmd(0x01); 〃清除LCD的顯示內(nèi)容 delay(l); } main() { //初始化LCD wlule(l) lcd_wcmd(0

6、x06); lcd_pos(0); i = 0; while(disl[ i ] != 9) { lcd_wdat(disl[ i ]); 1++; delay(30); } lcd_pos(0x40); 1 = 0; BYTE 1; lcd^uiitQ; delay(lO); 〃向右移動(dòng)光標(biāo) //設(shè)置顯示位置為第一行的第1個(gè)字符 〃顯示字符” WLCOME TO" 〃控制兩字之間顯示速度 〃設(shè)置顯示位置為第二行第1個(gè)字符 while(dis2[ i ] != *\0*) { lcd_\vdat(dis2[ i ]); 1++; delay(30); }

7、 delay(800); lcd_wcmd(0x01); delay(l); lcd_wcmd(0x04); lcd_pos(15); i = 0; while(dis3[ i ] != *\0*) { lcd_\vdat(dis3[ i ]); 1++; delay(30); } lcd_pos(0x4F); i = 0; while(dis4[ i ] != *\0*) { lcd_\vdat(dis4[ i ]); 1++; delay(30); } delay(800); lcd_wcmd(0x01); delay(200); 〃顯示字符” ”

8、 〃控制兩字之間顯示速度 〃控制停留時(shí)間 〃清除LCD的顯刀£內(nèi)容 〃向左移動(dòng)光標(biāo) 〃設(shè)置顯示位置為第一行的第16個(gè)字符 //顯示字符“WLCON4E TO" 〃控制兩字之間顯示速度 〃設(shè)置顯示位置為第二行的第16個(gè)字符 〃顯示字符” ” 〃控制兩字之間顯示速度 〃控制停留時(shí)間 〃清除LCD的顯示內(nèi)容 〃控制兩屏轉(zhuǎn)換時(shí)間 嚴(yán)***************************************************************************** * * * * 描 述 : 1602 字符型 LCD 顯示演示程序 wel

9、come 在第二行顯示 www? PRECHIN.com ******************************************************************************* */ ^include ^include tvped

10、ef unsigned chai BYTE; tvpedef unsigned mt WORD; tvpedef bit BOOL; // sbit rs = P2A6; sbit rw = P2A5; sbit ep = P2A7; BYTE code disl[] = {Hwelcome!n}; BYTE code dis2[] = {hvww.PRECHIN.com”}; delay(BYTE ms) { //延時(shí)子程序 BYTE i; while(ms-) { for(i = 0; i< 250; i++) { _nop_(); _nop_(); _nop

11、_(); _nop_(); } } //測(cè)試LCD忙碌狀態(tài) BOOL lcd_bz() { BOOL result; rs = 0; rw= 1; ep= 1; _nop_0; _nop_0; _nop_0; _nop_0; result = (BOOL)(PO & 0x80); ep = 0; return result; } lcd_wcmd(EYTE cmd) { 〃寫(xiě)入指令數(shù)據(jù)到LCD while(lcd_bz()); rs = 0; rw = 0; ep = 0; _nop_0; _nop_0; P0 = cmd; _nop_0;

12、 _nop_0; _nop_0; _nop_0; ep= 1; _nop_0; _nop_0; _nop_0; _nop_0; ep = O; } lcd_pos(BYTE pos) { //設(shè)定顯示位置 lcd_wcmd(pos | 0x80); } lcd.wdat(BYTE dat) { 〃寫(xiě)入字符顯示數(shù)據(jù)到LCD while(lcd_bz()); rs = 1; rw = 0; ep = 0; P0 = dat; _nop_0; _nop_0; _nop_(); _nop_0; ep= 1; _nop_0; _nop_0; _nop

13、_0; _nop_0; ep = O; lcd_init() { lcd_wcmd(0x38); delay(l); lcd_wcmd(OxOc); delay(l); lcd_wcmd(0x06); delay(l); lcd_wcmd(0x01); delay(l); } //LCD初始化設(shè)定 // // // 〃清除LCD的顯示內(nèi)容 main() { BYTE i; lcd^uiitQ; delay(lO); lcd_pos(4); //初始化LCD //設(shè)置顯示位置為第一行的第5個(gè)字符 1 = 0; while(disl[i] != *

14、\0J { //顯示字符“welcome!” lcd_wdat(disl[i]); 1卄; } lcd_pos(0x41); 1 = 0; //設(shè)置顯示位置為第二行第二個(gè)字符 while(dis2[i] != 1 lcd_wdat(dis2[i]); // 顯示字符“ ” } while(l); ** * 描述: * LCD 1602 移 動(dòng)顯示 *顯示方式: * 1 、 LCD * 第一行顯示 : BIG BIG WORLD * LCD 第二行顯 示: I LOVE PUZHONG * 2、先將兩行字符寫(xiě)

15、入DDRAM中,然后從右至左逐字移出顯示。 * * 3、在指定位置停留1.6秒后,閃爍2次,清屏。 * *4、反復(fù)循環(huán)上述顯示方式。 * ******************************************************************************* */ #include ^include frdefine uchai unsigned char frdefine umt unsigned mt sbit LCD_RS = P2A6; sbit LCD_RW = P2八 5; sbit

16、LCD_EN = P2A7; uchai code disl[] = {nBIG BIG WORLD”}; uchai code dis2[] = {nI LOVE PUZHONG”}; 嚴(yán)******************************************************************/ /*延時(shí)子程序 嚴(yán)******************************************************************/ void delay(iiit nis) { mt i; while(nis-) fbr(i =

17、 0; i< 250; i++) _nop_(); _nop_(); _nop_(); _nop_(); } } } 嚴(yán)******************************************************************/ 嚴(yán)檢查L(zhǎng)CD忙狀態(tài) /*lcd_busy為1時(shí),忙,等待o lcd-busy為0時(shí),閑,可寫(xiě)指令與數(shù)據(jù)。 嚴(yán)******************************************************************/ bit lcd_busv() { bit result; LCD_RS

18、 = 0; LCD_RW=1; LCD_EN = 1; _nop_0; _nop_0; _nop_0; _nop_0; result = (bit)(P0&0x80); LCD_EN = 0; return result; 嚴(yán)寫(xiě)指令數(shù)據(jù)到LCD /*RS=L, RW=L,己=高脈沖,D0-D7=指令碼。 嚴(yán)******************************************************************/ void lcd_wcmd(uchai- cmd) { \vhile(lcd_bu syQ); LCD_RS = 0;

19、 LCD RW = 0: LCD_EN = 0; _nop_(); _nop_(); P0 = cmd; _nop_(); _nop_(); _nop_(); _nop_(); LCD_EN = 1; _nop_(); _nop_(); _nop_(); _nop_(); LCD_EN = 0; 嚴(yán)******************************************************************/ 嚴(yán)寫(xiě)顯示數(shù)據(jù)到LCD 嚴(yán)RS=H, RW=L,丘=高脈沖,D0-D7=數(shù)據(jù)。 嚴(yán)***************************

20、***************************************/ void lcd_wdat(uchai dat) { \vlule(lcd_bu syQ); LCD_RS = 1; LCD.RW = 0; LCD_EN = 0; P0 = dat; _nop_0; _nop_0; _nop_0; _nop_0; LCD_EN= 1; _nop_0; _nop_0; _nop_0; _nop_0; LCD_EN = 0; } 嚴(yán)***************************************************************

21、***/ /*設(shè)定顯示位置 嚴(yán)******************************************************************/ 〃數(shù)據(jù)指針=80+地址變量 void lcd_pos(uchar pos) { lcd_wcmd(pos|0x80); } 嚴(yán)******************************************************************/ /* LCD初始化設(shè)定 嚴(yán)*******************************************************

22、***********/ void lcd_iiiit() 〃等待LCD電源穩(wěn)定 //16*2顯示,5^7點(diǎn)陣,8位數(shù)據(jù) { delay(15); lcd_wcmd(0x38); delay(5); lcd_wcmd(0x38); delay(5); lcd_wcmd(0x38); delay(5); lcd_wcmd(0x0c); delay(5); lcd_wcmd(0x06); delay(5); lcd_wcmd(0x01); delay(5); } 〃顯示開(kāi),關(guān)光標(biāo) 〃移動(dòng)光標(biāo) 〃清除LCD的顯示內(nèi)容 嚴(yán)******************

23、************************************************/ /*清屏子程序 嚴(yán)******************************************************************/ void lcd_clr() { 〃清除LCD的顯示內(nèi)容 lcd_wcmd(0x01); delay(5); 嚴(yán)******************************************************************/ 閃動(dòng)子程序 嚴(yán)****************************

24、**************************************/ void flash() { delay(600); lcd_wcmd(0x08); delay(200); lcd_wcmd(0x0c); delay(200); lcd_wcmd(0x08); delay(200); lcd_wcmd(0x0c); delay(200); } //控制停留時(shí)間 〃關(guān)閉顯示 〃延時(shí) 〃開(kāi)顯示 〃關(guān)閉顯示 〃延時(shí) 〃開(kāi)顯示 嚴(yán)********************************************************

25、**********/ /*主程序 嚴(yán)******************************************************************/ main() { uchar ij; 〃初始化LCD delay(10); lcd.initQ; wlule(l) { lcd_clr(); lcd_pos(0xl0); 1 = 0; 〃設(shè)置顯示位置為第一行第17列 〃顯示字符” while(disl[i] != \0*) { lcd_\vdat(disl[i]); i++; Icd_pos(0x50); 1 = 0; while(dis2[i] != \0*) { lcd_\vdat(dis2[i]); 1++; } for(j=0j<16j++) { lcd_wcmd(0xl8); delay(100); } flash(); 〃設(shè)置顯示位置為第二行第17列 〃顯示字符” ” 〃向左移動(dòng)16格 〃字符同時(shí)左移一格 //控制移動(dòng)時(shí)間 〃閃動(dòng)二次

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

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶(hù)上傳的文檔直接被用戶(hù)下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!