標題: 基于LPC1788的12864液晶顯示 [打印本頁]
作者: z790440726 時間: 2017-2-10 17:08
標題: 基于LPC1788的12864液晶顯示
完整的實驗文檔下載:
基于LPC1788的液晶顯示.docx
(113.49 KB, 下載次數: 17)
2017-2-10 17:07 上傳
點擊文件名下載附件
程序
下載積分: 黑幣 -5
實驗二 液晶12864實驗
一、實驗目的
1.熟悉液晶顯示的操作。
2.掌握LPC1788 GPIO口數據輸入、輸出的方法。
3.了解實驗系統板有關12864的硬件機構。
二、實驗內容
1. 閱讀液晶12864文檔,掌握液晶12864顯示的工作原理。
2. 閱讀SN74LVC4245A芯片文檔,掌握SN74LVC4245A芯片的工作原理。
3. 編寫液晶12864顯示程序。
三、實驗設備
硬件部分:PC機(宿主機)、LPC1788實驗板、液晶12864、JLINK仿真器。
軟件部分:PC機WINDOWS系統、MDK KEIL軟件、JLINK仿真調試驅動程序
四、實驗電路
1.001.jpg (14.93 KB, 下載次數: 121)
下載附件
2017-2-10 21:56 上傳
1.002.jpg (13.32 KB, 下載次數: 128)
下載附件
2017-2-10 21:56 上傳
圖 1
1.003.jpg (30.69 KB, 下載次數: 129)
下載附件
2017-2-10 21:56 上傳
圖3
圖1中,當總線收發芯片SN74LVC4245A的DIR引腳復位時,數據由MCU
傳輸給液晶12864;DIR置位時,數據由液晶12864傳輸給MCU。
六、代碼分析
- #include "12864.h"
- #include "lpc177x_8x.h"
-
- #define LCD_RS_1() LPC_GPIO2->SET|= (1uL<<13) /* p2.13 H:Data L:Instruction */
- #define LCD_RS_0() LPC_GPIO2->CLR|= (1uL<<13)
- #define LCD_RW_1() LPC_GPIO1->SET|= (1uL<<26) /* P1.26 H:Read L:Write */
- #define LCD_RW_0() LPC_GPIO1->CLR|= (1uL<<26)
- #define LCD_E_1() LPC_GPIO1->SET|= (1uL<<27)
- /* P1.27 H:Enable L:Disable */
- #define LCD_E_0() LPC_GPIO1->CLR|= (1uL<<27)
- #define LCD_DIR_1() LPC_GPIO1->SET|= (1uL<<29)
- /* P1.29 SN74LV4245A總線收發器方向控制位
- H: 數據由 12864到MCU L: 數據由 MCU到 12864 */
- #define LCD_DIR_0() LPC_GPIO1->CLR|= (1uL<<29)
-
- void delay(uint32_t x) //延時 x ms
- {
- uint32_t i,j;
- for(i=x;i>0;i--)
- for(j=110;j>0;j--);
- }
-
- void Clr_Screen(void)//清屏函數,注意要經常調用清屏函數,即使在剛剛初始化后;
- {
- LCD_Wcmd(0x30);
- LCD_Wcmd(0x01);
- }
-
- void LCD_Init(void) //液晶屏初始化,包括CPU的相關端口設置
- {
- LPC_GPIO1->DIR |= ((1uL<< 26)|(1uL<< 27)|(1uL<< 29)|(1uL<< 28)); /* 所有管腳配置為數字輸出 */
- LPC_GPIO2->DIR |= ((1uL<< 0 )|(1uL<< 1 )|(1uL<< 2 )|(1uL<< 3)|(1uL<< 4 )|(1uL<< 5 )|(1uL<< 6 )|(1uL<< 7 )|(1uL<< 13 ));
-
- LPC_GPIO1->SET |= ((1uL<< 26)|(1uL<< 27)|(1uL<< 29)|(1uL<< 28)); /* 所有管腳配置為數字輸出 */
- LPC_GPIO2->SET |= ((1uL<< 0 )|(1uL<< 1 )|(1uL<< 2 )|(1uL<< 3)|(1uL<< 4 )|(1uL<< 5 )|(1uL<< 6 )|(1uL<< 7 )|(1uL<< 13 ));
- LCD_DIR_0(); /*數據由 MCU到 12864 */
- LCD_Wcmd(0x30); //8位MPU接口,默認基本指令集,參見12864數據手冊
- LCD_Wcmd(0x0C); //開顯示,關光標,不閃爍
- LCD_Wcmd(0x06); //指定在資料寫入或讀取時,光標的移動方向
- LCD_Wcmd(0x01);
-
- void check_busy(void) //檢測忙狀態
- {
- LPC_GPIO2->SET |= (1uL<< 7); //DB7狀態位置1
- delay(1);
- LCD_DIR_1(); //數據由 12864 到 MCU
- LCD_RS_0();
- LCD_RW_1(); //讀忙狀態
- delay(1);
- LPC_GPIO2->DIR &= ((0x0<< 0 )&(0x0<< 1 )& (0x0<< 2 )&(0x0<< 3)&(0x0<< 4)& (0x0<< 5)&(0x0<< 6)&(0x0<<7)); //數據口設為輸入
- LCD_E_1();
- while((LPC_GPIO2->PIN&0x00000080)==0x00000080); //一直等待,直到DB7狀態位為0;
- LCD_E_0();
- LPC_GPIO1->DIR |= ((1uL<< 26)|(1uL<< 27)|(1uL<< 29)|(1uL<< 28)); /* 所有管腳配置為數字輸出 */
- LPC_GPIO2->DIR |= ((1uL<< 0 )|(1uL<< 1 )|(1uL<< 2 )|(1uL<< 3)|(1uL<< 4 )|(1uL<< 5 )|(1uL<< 6 )|(1uL<< 7 )|(1uL<< 13 ));
- LCD_DIR_0();
- }
-
- void LCD_Wcmd(uint8_t cmd) //寫命令
- {
- check_busy();
- delay(1);
- LCD_DIR_0();
- LCD_RS_0();
- LCD_RW_0(); //寫命令
- delay(1);
-
- LCD_E_1();
- LPC_GPIO2->MASK=~0x000000FF;
- LPC_GPIO2->PIN=cmd; //命令寫到 P2_0~P2_7
- LPC_GPIO2->MASK=0;
- delay(50);
- LCD_E_0();
- delay(50); //使能的下降沿將信號傳給12864
- }
-
- void LCD_Wdata(uint8_t data) //寫數據,時序參考PDF
- {
- check_busy();
- LCD_DIR_0();
- LCD_RS_1();
- LCD_RW_0(); //寫數據
-
- LCD_E_1();
- LPC_GPIO2->MASK=~0x000000FF;
- LPC_GPIO2->PIN=data; //數據寫到 P2_0~P2_7
- LPC_GPIO2->MASK=0;
- delay(50);
- LCD_E_0();
- delay(50); //使能的下降沿將信號傳給12864
- }
-
- //注意:中文顯示時空格符或數字ASCII碼必需兩個一起用,標點符號注意中英文
- void LCD_Write_Str(uint8_t x, uint8_t y, uint8_t *str) //向某行某列寫字符串
- {
- uint8_t addr;
- if(1==x){addr=0x80;}
- if(2==x){addr=0x90;}
- if(3==x){addr=0x88;}
- if(4==x){addr=0x98;}
- addr=addr+y;
- delay(1);
- LCD_Wcmd(addr);
- while(*str)
- {
- LCD_Wdata(*str);
- delay(35);
- str++;
- }
- }
-
- void Menu(void)
- {
- Clr_Screen();
- LCD_Write_Str(1,0,"LPC1788 嵌入式");
- delay(5);
- LCD_Write_Str(2,0,"自動化學院歡迎您");
- delay(5);
- LCD_Write_Str(3,1,"!@#$%^&*");
- delay(5);
- LCD_Write_Str(4,2,"11234567");
- delay(5);
- }
-
- int main(void)
- {
- LCD_Init();
- Menu();
- return 0;
- }
-
復制代碼
歡迎光臨 (http://www.zg4o1577.cn/bbs/) |
Powered by Discuz! X3.1 |
主站蜘蛛池模板:
亚洲精品美女
|
热久久免费视频
|
国产精品小视频在线观看
|
欧美片网站免费
|
黄色一级大片在线免费看产
|
中文字幕一区二区三区在线视频
|
亚洲精品福利视频
|
一区二区福利视频
|
青娱乐自拍|
成人在线免费网站
|
九九热免费在线观看
|
国产激情视频
|
午夜无码国产理论在线
|
久色网
|
一呦二呦三呦国产精品
|
中文字幕在线观看一区二区
|
亚洲成人在线网
|
欧美男人天堂
|
亚洲精品永久免费
|
国产一区二区三区在线看
|
亚洲免费在线视频
|
免费看日韩视频
|
99精品国自产在线观看
|
欧美黄色片
|
三级免费
|
日本高清视频网站
|
艹逼网|
91久久国产综合久久
|
波多野结衣中文字幕一区二区三区
|
99视频免费
|
日韩欧美网|
欧美a在线
|
美女福利视频一区
|
国产精品久久国产精品
|
日朝毛片
|
欧美日韩在线播放
|
午夜影院视频在线观看
|
欧美片网站免费
|
日日久|
婷婷色国产偷v国产偷v小说
|
成人av网站在线观看
|