|
基于51單片機的5110液晶顯示程序
0.png (59.45 KB, 下載次數(shù): 105)
下載附件
2016-4-24 21:03 上傳
采用spi方式的51單片機程序如下:
- #include <reg51.h>
- sbit sce = P2^0; //片選
- sbit res = P2^1; //復(fù)位,0復(fù)位
- sbit dc = P2^2; //1寫數(shù)據(jù),0寫指令
- sbit sdin = P2^3; //數(shù)據(jù)
- sbit sclk = P2^4; //時鐘
- sbit P27=P2^7;
-
- //6*16字符
- unsigned char code shuzi[]={
- /*-- 文字: > --*/
- /*-- 宋體9; 此字體下對應(yīng)的點陣為:寬x高=6x12 --*/
- /*-- 高度不是8的倍數(shù),現(xiàn)調(diào)整為:寬度x高度=6x16 --*/
- 0x00,0x02,0x04,0x88,0x50,0x20,0x00,0x02,0x01,0x00,0x00,0x00,
-
- /*-- 文字: W --*/
- /*-- 宋體9; 此字體下對應(yīng)的點陣為:寬x高=6x12 --*/
- /*-- 高度不是8的倍數(shù),現(xiàn)調(diào)整為:寬度x高度=6x16 --*/
- 0x1C,0xE0,0x3C,0xE0,0x1C,0x00,0x00,0x03,0x00,0x03,0x00,0x00,
-
- /*-- 文字: Y --*/
- /*-- 宋體9; 此字體下對應(yīng)的點陣為:寬x高=6x12 --*/
- /*-- 高度不是8的倍數(shù),現(xiàn)調(diào)整為:寬度x高度=6x16 --*/
- 0x04,0x1C,0xE0,0x1C,0x04,0x00,0x00,0x02,0x03,0x02,0x00,0x00,
-
- /*-- 文字: G --*/
- /*-- 宋體9; 此字體下對應(yīng)的點陣為:寬x高=6x12 --*/
- /*-- 高度不是8的倍數(shù),現(xiàn)調(diào)整為:寬度x高度=6x16 --*/
- 0xF0,0x08,0x04,0x44,0xCC,0x40,0x00,0x01,0x02,0x02,0x01,0x00
-
-
- };
-
- unsigned char code hanzi[]=
- {
- /*-- 文字: 單 --*/
- /*-- 宋體9; 此字體下對應(yīng)的點陣為:寬x高=12x12 --*/
- /*-- 高度不是8的倍數(shù),現(xiàn)調(diào)整為:寬度x高度=12x16 --*/
- 0x00,0x00,0x7C,0x55,0x56,0xFC,0x56,0x55,0x54,0x7C,0x00,0x00,0x01,0x01,0x01,0x01,
- 0x01,0x07,0x01,0x01,0x01,0x01,0x01,0x00,
-
- /*-- 文字: 片 --*/
- /*-- 宋體9; 此字體下對應(yīng)的點陣為:寬x高=12x12 --*/
- /*-- 高度不是8的倍數(shù),現(xiàn)調(diào)整為:寬度x高度=12x16 --*/
- 0x00,0x00,0xFF,0x48,0x48,0x48,0x4F,0xC8,0x08,0x08,0x08,0x00,0x04,0x02,0x01,0x00,
- 0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x00,
-
- /*-- 文字: 機 --*/
- /*-- 宋體9; 此字體下對應(yīng)的點陣為:寬x高=12x12 --*/
- /*-- 高度不是8的倍數(shù),現(xiàn)調(diào)整為:寬度x高度=12x16 --*/
- 0x84,0x64,0xFF,0x24,0x44,0xFE,0x02,0x02,0xFF,0x02,0x00,0x00,0x01,0x00,0x07,0x04,
- 0x02,0x01,0x00,0x00,0x07,0x04,0x07,0x00,
-
- /*-- 文字: 開 --*/
- /*-- 宋體9; 此字體下對應(yīng)的點陣為:寬x高=12x12 --*/
- /*-- 高度不是8的倍數(shù),現(xiàn)調(diào)整為:寬度x高度=12x16 --*/
- 0x20,0x22,0x22,0xFE,0x22,0x22,0x22,0xFE,0x22,0x23,0x22,0x00,0x04,0x04,0x02,0x01,
- 0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x00,
-
- /*-- 文字: 發(fā) --*/
- /*-- 宋體9; 此字體下對應(yīng)的點陣為:寬x高=12x12 --*/
- /*-- 高度不是8的倍數(shù),現(xiàn)調(diào)整為:寬度x高度=12x16 --*/
- 0x08,0x0E,0x88,0x78,0x2F,0xE8,0x28,0xA9,0x6A,0x08,0x08,0x00,0x04,0x02,0x05,0x04,
- 0x02,0x02,0x01,0x02,0x02,0x04,0x04,0x00,
-
- /*-- 文字: 工 --*/
- /*-- 宋體9; 此字體下對應(yīng)的點陣為:寬x高=12x12 --*/
- /*-- 高度不是8的倍數(shù),現(xiàn)調(diào)整為:寬度x高度=12x16 --*/
- 0x00,0x02,0x02,0x02,0x02,0xFE,0x02,0x02,0x03,0x02,0x00,0x00,0x04,0x04,0x04,0x04,
- 0x04,0x07,0x04,0x04,0x04,0x04,0x04,0x00,
-
- /*-- 文字: 作 --*/
- /*-- 宋體9; 此字體下對應(yīng)的點陣為:寬x高=12x12 --*/
- /*-- 高度不是8的倍數(shù),現(xiàn)調(diào)整為:寬度x高度=12x16 --*/
- 0x10,0x08,0xFC,0x13,0x08,0x04,0xFF,0x24,0x24,0x24,0x04,0x00,0x00,0x00,0x07,0x00,
- 0x00,0x00,0x07,0x01,0x01,0x01,0x01,0x00,
-
- /*-- 文字: 室 --*/
- /*-- 宋體9; 此字體下對應(yīng)的點陣為:寬x高=12x12 --*/
- /*-- 高度不是8的倍數(shù),現(xiàn)調(diào)整為:寬度x高度=12x16 --*/
- 0x04,0x06,0x4A,0x6A,0x5A,0xCB,0x4A,0x5A,0x6A,0x4A,0x06,0x00,0x04,0x04,0x05,0x05,
- 0x05,0x07,0x05,0x05,0x05,0x04,0x04,0x00,
-
- /*-- 文字: 雨 --*/
- /*-- 宋體9; 此字體下對應(yīng)的點陣為:寬x高=12x12 --*/
- /*-- 高度不是8的倍數(shù),現(xiàn)調(diào)整為:寬度x高度=12x16 --*/
- 0x02,0xFA,0x9A,0x2A,0x0A,0xFE,0x9A,0x2A,0x0A,0xFB,0x02,0x00,0x00,0x07,0x00,0x01,
- 0x00,0x07,0x00,0x05,0x04,0x07,0x00,0x00,
-
- /*-- 文字: 亭 --*/
- /*-- 宋體9; 此字體下對應(yīng)的點陣為:寬x高=12x12 --*/
- /*-- 高度不是8的倍數(shù),現(xiàn)調(diào)整為:寬度x高度=12x16 --*/
- 0x60,0x22,0xA2,0xBA,0xAA,0xAB,0xAA,0xAA,0xBA,0x22,0x60,0x00,0x00,0x00,0x00,0x04,
- 0x04,0x07,0x00,0x00,0x00,0x00,0x00,0x00,
-
- /*-- 文字: 電 --*/
- /*-- 宋體9; 此字體下對應(yīng)的點陣為:寬x高=12x12 --*/
- /*-- 高度不是8的倍數(shù),現(xiàn)調(diào)整為:寬度x高度=12x16 --*/
- 0x00,0xFC,0x94,0x94,0x94,0xFF,0x94,0x94,0x94,0xFE,0x04,0x00,0x00,0x01,0x00,0x00,
- 0x00,0x03,0x04,0x04,0x04,0x04,0x06,0x00,
-
- /*-- 文字: 子 --*/
- /*-- 宋體9; 此字體下對應(yīng)的點陣為:寬x高=12x12 --*/
- /*-- 高度不是8的倍數(shù),現(xiàn)調(diào)整為:寬度x高度=12x16 --*/
- 0x20,0x21,0x21,0x21,0x21,0xF9,0x29,0x25,0x23,0x31,0x20,0x00,0x00,0x00,0x00,0x04,
- 0x04,0x07,0x00,0x00,0x00,0x00,0x00,0x00,
-
- /*-- 文字: 第 --*/
- /*-- 宋體9; 此字體下對應(yīng)的點陣為:寬x高=12x12 --*/
- /*-- 高度不是8的倍數(shù),現(xiàn)調(diào)整為:寬度x高度=12x16 --*/
- 0x04,0xEA,0xAB,0xAE,0xAA,0xFC,0xAA,0xAB,0xAE,0xBA,0x82,0x00,0x04,0x04,0x02,0x01,
- 0x00,0x07,0x00,0x02,0x02,0x02,0x01,0x00,
-
- /*-- 文字: 一 --*/
- /*-- 宋體9; 此字體下對應(yīng)的點陣為:寬x高=12x12 --*/
- /*-- 高度不是8的倍數(shù),現(xiàn)調(diào)整為:寬度x高度=12x16 --*/
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x30,0x20,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-
- /*-- 文字: 行 --*/
- /*-- 宋體9; 此字體下對應(yīng)的點陣為:寬x高=12x12 --*/
- /*-- 高度不是8的倍數(shù),現(xiàn)調(diào)整為:寬度x高度=12x16 --*/
- 0x48,0x24,0xF3,0x08,0x09,0x09,0x09,0x09,0xF9,0x09,0x08,0x00,0x00,0x00,0x07,0x00,
- 0x00,0x04,0x04,0x04,0x07,0x00,0x00,0x00,
-
- /*-- 文字: 二 --*/
- /*-- 宋體9; 此字體下對應(yīng)的點陣為:寬x高=12x12 --*/
- /*-- 高度不是8的倍數(shù),現(xiàn)調(diào)整為:寬度x高度=12x16 --*/
- 0x00,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x06,0x04,0x00,0x00,0x02,0x02,0x02,0x02,
- 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x00,
-
- /*-- 文字: 三 --*/
- /*-- 宋體9; 此字體下對應(yīng)的點陣為:寬x高=12x12 --*/
- /*-- 高度不是8的倍數(shù),現(xiàn)調(diào)整為:寬度x高度=12x16 --*/
- 0x00,0x02,0x22,0x22,0x22,0x22,0x22,0x22,0x23,0x02,0x00,0x00,0x04,0x04,0x04,0x04,
- 0x04,0x04,0x04,0x04,0x04,0x06,0x04,0x00
-
- };
-
- void delayms(unsigned int ii)//1ms延時函數(shù)
- {
- unsigned int i,x;
- for (x=0;x<ii;x++)
- {
- for (i=0;i<200;i++);
- }
- ;
- }
-
- /*--------------------------------------------
- LCD_write_byte: 使用SPI接口寫數(shù)據(jù)到LCD
- 輸入?yún)?shù):dt:寫入的數(shù)據(jù);
- command :寫數(shù)據(jù)/命令選擇;
- 編寫日期:20080918
- ----------------------------------------------*/
- void LCD_write_byte(unsigned char dt, unsigned char command)
- {
- unsigned char i;
- sce=0;
- dc=command;
- for(i=0;i<8;i++)
- {
- if(dt&0x80)
- sdin=1;
- else
- sdin=0;
- dt=dt<<1;
- sclk=0;
- sclk=1;
- }
- dc=1;
- sce=1;
- sdin=1;
- }
- /*---------------------------------------
- LCD_init: 3310LCD初始化
- 編寫日期:20080918
- ----------------------------------------- */
- void LCD_init(void)
- {
- res=0;
- delayms(10);
- res=1;
- LCD_write_byte(0x21,0);//初始化Lcd,功能設(shè)定使用擴(kuò)充指令
- LCD_write_byte(0xd0,0);//設(shè)定液晶偏置電壓
- LCD_write_byte(0x20,0);//使用基本指令
- LCD_write_byte(0x0C,0);//設(shè)定顯示模式,正常顯示
- }
- /*-------------------------------------------
- LCD_set_XY: 設(shè)置LCD坐標(biāo)函數(shù)
- 輸入?yún)?shù):X:0-83 Y:0-5
- 編寫日期:20080918
- ---------------------------------------------*/
- void LCD_set_XY(unsigned char X, unsigned char Y)
- {
- LCD_write_byte(0x40 | Y, 0);// column
- LCD_write_byte(0x80 | X, 0);// row
- }
- /*------------------------------------------
- LCD_clear: LCD清屏函數(shù)
- 編寫日期:20080918
- --------------------------------------------*/
- void LCD_clear(void)
- {
- unsigned char t;
- unsigned char k;
- LCD_set_XY(0,0);
- for(t=0;t<6;t++)
- {
- for(k=0;k<84;k++)
- {
- LCD_write_byte(0x00,1);
-
- }
- }
- }
- /*---------------------------------------------
- LCD_write_shu: 顯示6(寬)*16(高)點陣列數(shù)字字母符號等半角類
- 輸入?yún)?shù):c:顯示的字符;
- 編寫日期:20080918
- -----------------------------------------------*/
- void LCD_write_shu(unsigned char row, unsigned char page,unsigned char c) //row:列 page:頁 dd:字符
- {
- unsigned char i;
-
- LCD_set_XY(row*6, page);// 列,頁
- for(i=0; i<6;i++)
- {
- LCD_write_byte(shuzi[c*12+i],1);
- }
-
- LCD_set_XY(row*6, page+1);// 列,頁
- for(i=6; i<12;i++)
- {
- LCD_write_byte(shuzi[c*12+i],1);
- }
- }
- /*---------------------------------------------
- LCD_write_hanzi: 顯示12(寬)*16(高)點陣列漢字等半角類
- 輸入?yún)?shù):c:顯示的字符;
- 編寫日期:20080918
- -----------------------------------------------*/
- void LCD_write_hanzi(unsigned char row, unsigned char page,unsigned char c) //row:列 page:頁 dd:字符
- {
- unsigned char i;
-
- LCD_set_XY(row*6, page);// 列,頁
- for(i=0; i<12;i++)
- {
- LCD_write_byte(hanzi[c*24+i],1);
- }
-
- LCD_set_XY(row*6, page+1);// 列,頁
- for(i=12; i<24;i++)
- {
- LCD_write_byte(hanzi[c*24+i],1);
- }
- }
- main()
- {
-
- unsigned char k;
- res=0;
- for(k=0;k<250;k++);
- res=1;
- LCD_init(); //初始化LCD模塊
- LCD_clear(); //清屏幕
- LCD_write_hanzi(0,0,0); //單
- LCD_write_hanzi(2,0,1); //片
- LCD_write_hanzi(4,0,2); //機
- LCD_write_hanzi(6,0,3); //開
- LCD_write_hanzi(8,0,4); //發(fā)
- LCD_write_hanzi(10,0,5); //工
- LCD_write_hanzi(12,0,6); //作
- LCD_write_hanzi(0,2,7); //室
-
- LCD_write_hanzi(2,4,8); //雨
- LCD_write_hanzi(4,4,9); //亭
- LCD_write_hanzi(6,4,10); //電
- LCD_write_hanzi(8,4,11); //子
-
- LCD_write_shu(10,4,0); //>
- LCD_write_shu(11,4,1); //W
- LCD_write_shu(12,4,2); //Y
- LCD_write_shu(13,4,3); //G
-
- while(1)
- {
- }
- }
復(fù)制代碼
|
-
-
5110_spi.zip
2016-4-23 12:50 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
25.57 KB, 下載次數(shù): 25, 下載積分: 黑幣 -5
c程序
評分
-
查看全部評分
|