|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
LCD12232 For ARMlpc214x 顯示程序移植OK. |
| 作者:boy123 欄目:ARM技術(shù) |
源程序工程下載地址: http://www.mcu123.net/bbs/dispbbs.asp?boardid=28&ID=1160&replyID=3530&skin=1 /*============================================================ LPC214X 液晶功能演示 作者: Mingtree ycxms88@163.com bbs.mcu123.com ============================================================== /* 引腳分布 P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7 TX0 RX0 CS1 K4 K3 P0.8 P0.9 P0.10 P0.11 P0.12 P0.13 P0.14 P0.15 TX1 RX1 RW SCL SDA K1 VRST K2 P0.16 P0.17 P0.18 P0.19 P0.20 P0.21 P0.22 P0.23 BEEP SCK1 MISO MOSI SSEL RS_COM RW VB P0.24 P0.25 P0.26 P0.27 P0.28 P0.29 P0.30 P0.31 AOUT D+ D- A_IN1 A_IN2 CS2 ULED LED引腳 L1---------L8 P1.16----P1.23 */ =============================================================*/ #include <LPC214X.H> /* LPC214x definitions */ #include <lcd_ok.H> #define uCHAR unsigned CHAR #define uint unsigned int #define E1 4 //塊1 左邊 #define E2 30 //塊2 右邊 #define RW 22 //讀寫(xiě)控制端 0為寫(xiě) 1為讀 #define A0 21 //A0為1時(shí)是數(shù)據(jù),0時(shí)為指令數(shù)據(jù) #define DATA PORTB //數(shù)據(jù) void Io_Set(uCHAR pin) //單個(gè)IO口置位函數(shù) { unsigned int io_data=1; io_data=io_data<<pin; IOSET0=io_data; //IOSET0為IO線上置位寄存器,1有效,0無(wú) } void Io_Clr(uCHAR pin) //單個(gè)IO口清零函數(shù) { unsigned int io_data=1; io_data=io_data<<pin; IOCLR0=io_data; //IOCLR0為IO線上清零寄存器,1有效,0無(wú) } void Io_Set1(uCHAR pin) //單個(gè)IO口置位函數(shù) { unsigned int io_data=1; io_data=io_data<<pin; IOSET1=io_data; //IOSET0為IO線上置位寄存器,1有效,0無(wú) } void Io_Clr1(uCHAR pin) //單個(gè)IO口清零函數(shù) { unsigned int io_data=1; io_data=io_data<<pin; IOCLR1=io_data; //IOCLR0為IO線上清零寄存器,1有效,0無(wú) } void OUT_DATA(unsigned CHAR data) { unsigned CHAR i; for(i=0;i<8;i++) { if(data&1) {Io_Set1(i+16);} //把相應(yīng)的IO口置位或者清零 else {Io_Clr1(i+16);} data=data>>1; } } //延時(shí) void delay(unsigned int i) { unsigned int k=1000; while(i>0) { i--; } while(k>1)k--; } void delayms (unsigned int i) { /* Delay function */ unsigned int n; while(i>1) { for(n=65535;n>1;n--); i--; } } //左頁(yè) //發(fā)送數(shù)據(jù) void OUTMD(unsigned CHAR i) { Io_Set(A0); //A0_1; //寫(xiě)數(shù)據(jù) delay(1); Io_Set(E1); //E1_1; delay(1); OUT_DATA(i);// DATA=i; delay(1); Io_Clr(E1); //E1_0; } //左頁(yè) //發(fā)送命令 void OUTMI(unsigned CHAR i) { Io_Clr(A0); //A0_0; //寫(xiě)指令 delay(1); Io_Set(E1); //E1_1; delay(1); OUT_DATA(i); //DATA=i; delay(1); Io_Clr(E1); //E1_0; } //右頁(yè) //發(fā)送數(shù)據(jù) void OUTSD(unsigned CHAR i) { Io_Set(A0); //A0_1; //寫(xiě)數(shù)據(jù) delay(1); Io_Set(E2); //E2_1; delay(1); OUT_DATA(i); //DATA=i; delay(1); Io_Clr(E2); //E2_0; } //右頁(yè) //發(fā)送命令 void OUTSI(unsigned CHAR i) { Io_Clr(A0); //A0_0; //寫(xiě)指令 delay(1); Io_Set(E2); //E2_1; delay(1); OUT_DATA(i); //DATA=i; delay(1); Io_Clr(E2); //E2_0; } //初始化 void lcdini(void) { Io_Clr(RW); //RW_0; OUTMI(0XE2); delay(1); OUTSI(0XE2);//復(fù)位 delay(1); OUTMI(0XAE); delay(1); OUTSI(0XAE);//POWER SAVE delay(1); OUTMI(0XA4); delay(1); OUTSI(0XA4);//動(dòng)態(tài)驅(qū)動(dòng) delay(1); OUTMI(0XA9); delay(1); OUTSI(0XA9);//1/32占空比 delay(1); OUTMI(0XA0); delay(1); OUTSI(0XA0);//時(shí)鐘線輸出 delay(1); OUTMI(0XEE); delay(1); OUTSI(0XEE);//寫(xiě)模式 delay(1); OUTMI(0X00); OUTMI(0XC0); OUTSI(0X00); OUTSI(0XC0); OUTMI(0XAF); |
| 2樓: | >>參與討論 |
| 作者: hotpower 于 2006/1/8 2:01:00 發(fā)布:
謝謝!!!要是串行的就更好了 |
|
| 3樓: | >>參與討論 |
| 作者: manet 于 2006/1/8 18:04:00 發(fā)布:
非常感謝!希望能有更多這樣的好漢出現(xiàn)! |
|
| 4樓: | >>參與討論 |
| 作者: hotpower 于 2006/1/9 1:58:00 發(fā)布:
今天開(kāi)發(fā)版到,爭(zhēng)取1/2天搞定串行LCD12232/LCD12864 |
|
| 5樓: | >>參與討論 |
| 作者: boy123 于 2006/1/10 13:50:00 發(fā)布:
不客氣,我也是剛接觸ARM,從我的51那邊移植過(guò)來(lái)的. hotpower 你用的是哪款A(yù)RM CPU? |
|
| 免費(fèi)注冊(cè)為維庫(kù)電子開(kāi)發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |