久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7025|回復: 1
打印 上一主題 下一主題
收起左側

發個12864LCD程序學習一下

[復制鏈接]
跳轉到指定樓層
樓主
ID:25972 發表于 2010-9-10 12:16 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
//實驗目的:熟悉12864LCD的使用
//12864LCD帶中文字庫
//編程讓12864LCD顯示公司LOGO和公司名字
//硬件設置:
//關斷所有撥碼開關。 #include <p30f6014.h> //dsPIC30F6014標準頭文件 _FOSC(CSW_FSCM_OFF & XT_PLL4); //4倍頻晶振,Failsafe 時鐘關閉 _FWDT(WDT_OFF); //關閉看門狗定時器 _FBORPOR(PBOR_OFF & MCLR_EN); //掉電復位禁止,MCLR復位使能。 _FGS(CODE_PROT_OFF); //代碼保護禁止 #define di LATBbits.LATB4 //命令/數據選擇 #define rw LATBbits.LATB5 //讀/寫選擇 #define e LATBbits.LATB6 //使能 #define psb LATBbits.LATB2 //8位/4位并口選擇 #define rst LATBbits.LATB7 //復位 unsigned int __attribute__((address(0x900))) temp; unsigned int __attribute__((address(0x902))) temp1; const unsigned char TAB1[ ]={ //定義顯示圖片的數據表 0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE, 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X01, 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X01, 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, 0X00,0X81,0X00,0X10,0X40,0X00,0X02,0X41, 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, 0X00,0X81,0X00,0X10,0X40,0X00,0X02,0X41, 0XFF,0XFF,0XC0,0X00,0X00,0X7F,0XFF,0XFF, 0X07,0XE2,0X00,0XFE,0XC0,0X00,0X06,0X01, 0XFF,0XFF,0X00,0X00,0X00,0X1F,0XFF,0XFF, 0X01,0X87,0XE0,0X00,0X80,0X03,0XFF,0XF1, 0XFF,0XFC,0X00,0X00,0X00,0X07,0XFF,0XFF, 0X01,0X04,0X00,0X44,0XFC,0X02,0X04,0X01, 0XFF,0XF0,0X00,0X00,0X00,0X07,0XFF,0XFF, 0X01,0X08,0X00,0X48,0X04,0X02,0X04,0X41, 0XFF,0XF0,0X00,0X00,0X00,0X03,0XFF,0XFF, 0X0F,0XD8,0X00,0X08,0X04,0X03,0XF6,0X81, 0XFF,0XF0,0X00,0X00,0X00,0X01,0XFF,0XFF, 0X08,0X40,0X01,0XFE,0XFC,0X06,0X27,0X01, 0XFF,0XF0,0X00,0X00,0X00,0X01,0XFF,0XFF, 0X0F,0XCF,0X80,0X01,0X00,0X04,0X23,0X01, 0XFF,0XF0,0X3F,0XF0,0X3F,0XC1,0XFF,0XFF, 0X08,0XC1,0X00,0X01,0X00,0X04,0XE7,0X21, 0XFF,0XF0,0X7F,0XE0,0X7F,0XC1,0XFF,0XFF, 0X10,0X82,0X01,0XF9,0XF8,0X08,0X99,0XA1, 0XFF,0XF0,0X7F,0XE0,0X7F,0XC1,0XFF,0XFF, 0X1F,0X86,0X01,0X09,0X00,0X08,0X10,0XE1, 0XFF,0XF0,0XFF,0XC0,0XFF,0XC1,0XFF,0XFF, 0X06,0X04,0X01,0X09,0XF0,0X00,0X00,0X01, 0XFF,0XF0,0XFF,0XC1,0XFF,0XC1,0XFF,0XFF, 0X04,0X08,0X01,0XFA,0X00,0X07,0XFF,0X01, 0XFF,0XF0,0XFF,0X83,0XFF,0XC1,0XFF,0XFF, 0X7F,0XD0,0X03,0X12,0X00,0X06,0X89,0X01, 0XFF,0XF0,0XFF,0X03,0XFF,0XC1,0XFF,0XFF, 0X04,0X10,0X83,0X13,0XF0,0X08,0X91,0X01, 0XFF,0XF0,0XFE,0X07,0XFF,0XC1,0XFF,0XFF, 0X04,0X10,0X83,0XF2,0X00,0X08,0X91,0X01, 0XFF,0XF0,0XFC,0X0F,0XFF,0XC1,0XFF,0XFF, 0X04,0X3F,0X02,0X12,0X08,0X1B,0X93,0X01, 0XFF,0XF0,0XFC,0X0F,0XFF,0XC1,0XFF,0XFF, 0X08,0X00,0X02,0X23,0XF0,0X3F,0XFF,0XC1, 0XFF,0XF0,0XF8,0X1F,0XFF,0XC1,0XFF,0XFF, 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X01, 0XFF,0XF0,0XF0,0X3F,0XFF,0XC1,0XFF,0XFF, 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X01, 0XFF,0XF0,0XF0,0X7F,0XFF,0XC1,0XFF,0XFF, 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X01, 0XFF,0XF0,0XE0,0X00,0X1F,0XC1,0XFF,0XFF, 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X01, 0XFF,0XF0,0XE0,0X00,0X0F,0XC1,0XFF,0XFF, 0X00,0X3F,0X80,0X1F,0X00,0X00,0XFF,0X01, 0XFF,0XF0,0XF0,0X00,0X07,0XC1,0XFF,0XFF, 0X00,0XFF,0XE0,0X1F,0X00,0X03,0XFF,0XC1, 0XFF,0XF0,0XF8,0X00,0X07,0XC1,0XFF,0XFF, 0X01,0XFF,0XF0,0X1F,0X00,0X07,0XFF,0XE1, 0XFF,0XF0,0XFC,0X00,0X03,0XC1,0XFF,0XFF, 0X03,0XFF,0XF8,0X1F,0X00,0X07,0XC7,0XE1, 0XFF,0XF0,0XFF,0XFF,0X83,0XC1,0XFF,0XFF, 0X07,0XE0,0XFC,0X1F,0X00,0X07,0XC3,0XE1, 0XFF,0XF0,0XFF,0XFF,0XC1,0XC1,0XFF,0XFF, 0X07,0XC0,0XFC,0X1F,0X00,0X07,0XC0,0X01, 0XFF,0XF0,0XFF,0XFF,0XC1,0XC1,0XFF,0XFF, 0X0F,0XC0,0X7E,0X1F,0X00,0X07,0XFC,0X01, 0XFF,0XF0,0XFF,0XFF,0X83,0XC1,0XFF,0XFF, 0X0F,0XC0,0X7E,0X1F,0X00,0X07,0XFF,0X81, 0XFF,0XF0,0XFF,0XFF,0X03,0XC1,0XFF,0XFF, 0X0F,0XC0,0X7E,0X1F,0X00,0X03,0XFF,0XC1, 0XFF,0XF0,0XFF,0XFE,0X07,0XC1,0XFF,0XFF, 0X0F,0XC0,0X7E,0X1F,0X00,0X00,0XFF,0XE1, 0XFF,0XF0,0XFF,0XFC,0X0F,0XC1,0XFF,0XFF, 0X0F,0XC0,0X7E,0X1F,0X00,0X00,0X1F,0XF1, 0XFF,0XF0,0XFF,0XFC,0X1F,0XC1,0XFF,0XFF, 0X0F,0XC6,0X7E,0X1F,0X00,0X00,0X03,0XF1, 0XFF,0XF0,0XFF,0XF8,0X3F,0XC1,0XFF,0XFF, 0X07,0XC7,0XFC,0X1F,0X00,0X0F,0X81,0XF1, 0XFF,0XF0,0XFF,0XF0,0X7F,0XC1,0XFF,0XFF, 0X07,0XE3,0XFC,0X1F,0X00,0X0F,0XC1,0XF1, 0XFF,0XF0,0X7F,0XE0,0X7F,0XC1,0XFF,0XFF, 0X03,0XFF,0XF8,0X1F,0XFF,0X87,0XE3,0XE1, 0XFF,0XF8,0X7F,0XC0,0XFF,0XC3,0XFF,0XFF, 0X03,0XFF,0XF8,0X1F,0XFF,0X87,0XFF,0XE1, 0XFF,0XF8,0X7F,0XC1,0XFF,0X83,0XFF,0XFF, 0X01,0XFF,0XFC,0X1F,0XFF,0X83,0XFF,0XC1, 0XFF,0XFC,0X3F,0X83,0XFF,0X07,0XFF,0XFF, 0X00,0X7F,0XFF,0X1F,0XFF,0X80,0XFF,0X01, 0XFF,0XFE,0X1F,0X07,0XFE,0X0F,0XFF,0XFF, 0X00,0X00,0X1F,0X00,0X00,0X00,0X00,0X01, 0XFF,0XFF,0X00,0X00,0X00,0X1F,0XFF,0XFF, 0X00,0X00,0X07,0X00,0X00,0X00,0X00,0X01, 0XFF,0XFF,0XFC,0X01,0XFF,0XFF,0XFF,0XFF, 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X01, 0XFF,0XFF,0XF0,0X01,0XFF,0XFF,0XFF,0XFF, 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X01, 0XFF,0XFF,0XC0,0X00,0X3F,0XFF,0XFF,0XFF, 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X01, 0XFF,0XFF,0X80,0X00,0X1F,0XFF,0XFF,0XCF, 0X3E,0X83,0XE7,0X3E,0X78,0X21,0X14,0XE1, 0XFF,0XFE,0X00,0X00,0X07,0XFF,0XFC,0X3F, 0X20,0X82,0X09,0X88,0X44,0X51,0X15,0X31, 0XFF,0XFC,0X7C,0X00,0X00,0XFF,0XC0,0X7F, 0X20,0X82,0X08,0X88,0X44,0X51,0X95,0X11, 0XFF,0XFF,0XFF,0XF0,0X00,0X00,0X01,0XFF, 0X20,0X82,0X08,0X08,0X44,0X89,0X95,0X01, 0XFF,0XFF,0XFF,0XFE,0X00,0X00,0X03,0XFF, 0X20,0X82,0X08,0X08,0X44,0X89,0X55,0X01, 0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X07,0XFF, 0X3E,0X83,0XE8,0X08,0X44,0X89,0X55,0X01, 0XFF,0XFF,0XFF,0XFF,0XE0,0X00,0X1F,0XFF, 0X20,0X82,0X08,0X08,0X78,0X89,0X55,0X01, 0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0XFF,0XFF, 0X20,0X82,0X08,0X08,0X48,0X89,0X55,0X01, 0XFF,0XFF,0XFF,0XFF,0XFE,0X03,0XFF,0XFF, 0X20,0X82,0X08,0X08,0X48,0X89,0X35,0X01, 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, 0X20,0X82,0X08,0X88,0X44,0X51,0X35,0X11, 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, 0X20,0X82,0X09,0X88,0X44,0X51,0X15,0X31, 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, 0X3E,0XF3,0XE7,0X08,0X44,0X21,0X14,0XE1, 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X01, 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X01, 0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE, }; unsigned int lcd_x; //X地址 unsigned int lcd_y; //Y地址 // bit busy; //忙標志位 void init(); //系統初始函數 void lcd_init(); //LCD初始函數 void clear_p(); //清屏函數 void han_wr2a(); //寫函數 void wr_zb(); //寫準備函數 void qushu(); //查表函數 void send_d(unsigned char x); //寫一字節數據函數 void send_i(unsigned char x); //寫一字節命令函數 void chk_busy(); //查LCD忙函數 void delay(); //------------------------------------------- int main(void) { init(); //系統初始化 lcd_init(); //LCD初始化 clear_p(); //清除顯示 qushu(); //寫數據到LCD顯示 while(1); } //------------------------------------------- void init() { TRISB=0X0000; //設置B口為輸出 TRISD=0X0000; //設置D口為輸出 } //------------------------------------------- void lcd_init() { rst=0; //復位LCD delay(); rst=1; //LCD正常工作 delay(); psb=1; //8位并行通信 send_i(0x30); //基本操作指令 send_i(0x01); //關顯示 send_i(0x06); //指定在寫入或讀取時,光標的移動方向 send_i(0x0c); //開顯示,關光標,不閃爍 } //------------------------------------------- void wr_zb() { send_i(0x34); //擴展操作指令 send_i(lcd_y); //設置Y地址 send_i(lcd_x); //設置X地址 send_i(0x30); //基本操作指令 } //------------------------------------------- void clear_p() { send_i(0x1); //清除顯示 send_i(0x34); //擴展操作指令 send_i(0x30); //基本操作指令 } //------------------------------------------ void qushu() { unsigned char i,j,k; //定義臨時變量 temp=0; //查表偏移地址 lcd_x=0x0080; //上半屏X地址80H for(i=0;i<2;i++) //共兩屏 { lcd_y=0x0080; //每一行的Y地址80H(即頂格顯示) for(j=0;j<32;j++) //每半屏共20H行 { wr_zb(); //寫準備(設置X地址和Y地址) for(k=0;k<16;k++) //每一行16字節(因為頂格寫) { temp1=TAB1[temp]; //查表獲取顯示數字 send_d(temp1); //送LCD顯示 temp++; //查表偏移地址+1 } lcd_y++; //送下一行數據 send_i(0x0036); //擴展指令操作:圖形顯示開 send_i(0x0030); //基本指令操作 } lcd_x=0X0088; //下半屏X地址 } } //------------------------------------------- void send_d(unsigned char x) { chk_busy(); //判斷LCD是否忙 di=1; //總線上是數據 delay(); rw=0; //寫操作 delay(); PORTD=x; //數據送總線 e=1; //使能 delay(); e=0; delay(); } //-------------------------------------------- void send_i(unsigned char x) { chk_busy(); //判斷忙信號 di=0; //總線上是命令 delay(); rw=0; //寫操作 delay(); PORTD=x; //數據送總線 e=1; //使能 delay(); e=0; delay(); } //------------------------------------------- void chk_busy() { // busy=1; //先置忙信號 TRISD=0Xffff; //更改總線方向為輸入 di=0; //總線上為命令 delay(); rw=1; //讀操作 delay(); while(PORTDbits.RD7) { delay(); delay(); e=1; delay(); delay(); e=0; } e=0; TRISD=0X0000; //總線還原為輸出 } //------------------------------------------- void delay() { int m; for(m=0;m<10;m++) {;} }
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:56605 發表于 2014-6-10 17:24 | 只看該作者
多謝分享!辛苦了!
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久久www| 欧美日韩视频 | 欧美三区 | 视频一区二区三区在线观看 | 成人在线视频免费观看 | 免费视频一区二区 | 久久综合久久综合久久综合 | 亚洲视频三区 | 日韩成人专区 | 国产精品一区一区三区 | 欧美一区二区三区在线观看 | 九九热精品免费 | 久久精品欧美一区二区三区麻豆 | 日本大香伊一区二区三区 | 国产精品综合久久 | 国产视频一区二区 | 亚洲免费婷婷 | 九九热在线视频观看这里只有精品 | 在线免费黄色小视频 | 亚洲人人 | 99精品观看 | 欧美午夜激情在线 | 一级片在线观看视频 | 丁香久久 | 精品成人在线视频 | 一区二区三区视频在线免费观看 | 第一av | 欧美激情一区二区三区 | 久久久精选 | 中文字幕高清av | 国产精品国产三级国产播12软件 | 99re国产| 亚洲国产成人精品女人久久久 | 一区二区在线不卡 | 亚洲精品视频导航 | 天天射色综合 | 国产在线观看一区二区三区 | 久久国产一区二区三区 | 日韩在线中文字幕 | 欧美精品在线免费观看 | 操久久 |