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

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

ks0108驅動

作者:佚名   來源:本站原創   點擊數:  更新時間:2012年11月28日   【字體:
.unsigned char const chardot_5x8[][5] = {
{0x00,0x00,0x00,0x00,0x00},/*    CHAR_20 */
{0x00,0x00,0x5F,0x00,0x00},/*!   CHAR_21 */
{0x00,0x07,0x00,0x07,0x00},/*"   CHAR_22 */
{0x14,0x7F,0x14,0x7F,0x14},/*#   CHAR_23 */
{0x24,0x2E,0x7B,0x2A,0x12},/*$   CHAR_24 */
{0x23,0x13,0x08,0x64,0x62},/*%   CHAR_25 */
{0x36,0x49,0x56,0x20,0x50},/*&   CHAR_26 */
{0x00,0x04,0x03,0x01,0x00},/*'   CHAR_27 */
{0x00,0x1C,0x22,0x41,0x00},/*(   CHAR_28 */
{0x00,0x41,0x22,0x1C,0x00},/*)   CHAR_29 */
{0x22,0x14,0x7F,0x14,0x22},/**   CHAR_2A */
{0x08,0x08,0x7F,0x08,0x08},/*+   CHAR_2B */
{0x40,0x30,0x10,0x00,0x00},/*,   CHAR_2C */
{0x08,0x08,0x08,0x08,0x08},/*-   CHAR_2D */
{0x00,0x60,0x60,0x00,0x00},/*.   CHAR_2E */
{0x20,0x10,0x08,0x04,0x02},/*/   CHAR_2F */
{0x3E,0x51,0x49,0x45,0x3E},/*0   CHAR_30 */
{0x00,0x42,0x7F,0x40,0x00},/*1   CHAR_31 */
{0x62,0x51,0x49,0x49,0x46},/*2   CHAR_32 */
{0x21,0x41,0x49,0x4D,0x33},/*3   CHAR_33 */
{0x18,0x14,0x12,0x7F,0x10},/*4   CHAR_34 */
{0x27,0x45,0x45,0x45,0x39},/*5   CHAR_35 */
{0x3C,0x4A,0x49,0x49,0x31},/*6   CHAR_36 */
{0x01,0x71,0x09,0x05,0x03},/*7   CHAR_37 */
{0x36,0x49,0x49,0x49,0x36},/*8   CHAR_38 */
{0x46,0x49,0x49,0x29,0x1E},/*9   CHAR_39 */
{0x00,0x36,0x36,0x00,0x00},/*:   CHAR_3A */
{0x40,0x36,0x36,0x00,0x00},/*;   CHAR_3B */
{0x08,0x14,0x22,0x41,0x00},/*<   CHAR_3C */
{0x14,0x14,0x14,0x14,0x14},/*=   CHAR_3D */
{0x00,0x41,0x22,0x14,0x08},/*>   CHAR_3E */
{0x02,0x01,0x59,0x05,0x02},/*?   CHAR_3F */
{0x3E,0x41,0x5D,0x55,0x5E},/*@   CHAR_40 */
{0x7C,0x12,0x11,0x12,0x7C},/*A   CHAR_41 */
{0x7F,0x49,0x49,0x49,0x36},/*B   CHAR_42 */
{0x3E,0x41,0x41,0x41,0x22},/*C   CHAR_43 */
{0x7F,0x41,0x41,0x41,0x3E},/*D   CHAR_44 */
{0x7F,0x49,0x49,0x49,0x41},/*E   CHAR_45 */
{0x7F,0x09,0x09,0x09,0x01},/*F   CHAR_46 */
{0x3E,0x41,0x51,0x51,0x72},/*G   CHAR_47 */
{0x7F,0x08,0x08,0x08,0x7F},/*H   CHAR_48 */
{0x00,0x41,0x7F,0x41,0x00},/*I   CHAR_49 */
{0x20,0x40,0x41,0x3F,0x01},/*J   CHAR_4A */
{0x7F,0x08,0x14,0x22,0x41},/*K   CHAR_4B */
{0x7F,0x40,0x40,0x40,0x40},/*L   CHAR_4C */
{0x7F,0x02,0x0C,0x02,0x7F},/*M   CHAR_4D */
{0x7F,0x04,0x08,0x10,0x7F},/*N   CHAR_4E */
{0x3E,0x41,0x41,0x41,0x3E},/*O   CHAR_4F */
{0x7F,0x09,0x09,0x09,0x06},/*P   CHAR_50 */
{0x3E,0x41,0x51,0x21,0x5E},/*Q   CHAR_51 */
{0x7F,0x09,0x19,0x29,0x46},/*R   CHAR_52 */
{0x26,0x49,0x49,0x49,0x32},/*S   CHAR_53 */
{0x01,0x01,0x7F,0x01,0x01},/*T   CHAR_54 */
{0x3F,0x40,0x40,0x40,0x3F},/*U   CHAR_55 */
{0x1F,0x20,0x40,0x20,0x1F},/*V   CHAR_56 */
{0x7F,0x20,0x18,0x20,0x7F},/*W   CHAR_57 */
{0x63,0x14,0x08,0x14,0x63},/*X   CHAR_58 */
{0x03,0x04,0x78,0x04,0x03},/*Y   CHAR_59 */
{0x61,0x51,0x49,0x45,0x43},/*Z   CHAR_5A */
{0x7F,0x7F,0x41,0x41,0x00},/*[   CHAR_5B */
{0x02,0x04,0x08,0x10,0x20},/*\   CHAR_5C */
{0x00,0x41,0x41,0x7F,0x7F},/*]   CHAR_5D */
{0x04,0x02,0x7F,0x02,0x04},/*^   CHAR_5E */
{0x08,0x1C,0x2A,0x08,0x08},/*_   CHAR_5F */
{0x00,0x00,0x01,0x02,0x04},/*`   CHAR_60 */
{0x24,0x54,0x54,0x38,0x40},/*a   CHAR_61 */
{0x7F,0x28,0x44,0x44,0x38},/*b   CHAR_62 */
{0x38,0x44,0x44,0x44,0x08},/*c   CHAR_63 */
{0x38,0x44,0x44,0x28,0x7F},/*d   CHAR_64 */
{0x38,0x54,0x54,0x54,0x08},/*e   CHAR_65 */
{0x08,0x7E,0x09,0x09,0x02},/*f   CHAR_66 */
{0x98,0xA4,0xA4,0xA4,0x78},/*g   CHAR_67 */
{0x7F,0x08,0x04,0x04,0x78},/*h   CHAR_68 */
{0x00,0x00,0x79,0x00,0x00},/*i   CHAR_69 */
{0x00,0x80,0x88,0x79,0x00},/*j   CHAR_6A */
{0x7F,0x10,0x28,0x44,0x40},/*k   CHAR_6B */
{0x00,0x41,0x7F,0x40,0x00},/*l   CHAR_6C */
{0x78,0x04,0x78,0x04,0x78},/*m   CHAR_6D */
{0x04,0x78,0x04,0x04,0x78},/*n   CHAR_6E */
{0x38,0x44,0x44,0x44,0x38},/*o   CHAR_6F */
{0xFC,0x24,0x24,0x24,0x18},/*p   CHAR_70 */
{0x18,0x24,0x24,0x24,0xFC},/*q   CHAR_71 */
{0x04,0x78,0x04,0x04,0x08},/*r   CHAR_72 */
{0x48,0x54,0x54,0x54,0x24},/*s   CHAR_73 */
{0x04,0x3F,0x44,0x44,0x24},/*t   CHAR_74 */
{0x3C,0x40,0x40,0x3C,0x40},/*u   CHAR_75 */
{0x1C,0x20,0x40,0x20,0x1C},/*v   CHAR_76 */
{0x3C,0x40,0x3C,0x40,0x3C},/*w   CHAR_77 */
{0x44,0x28,0x10,0x28,0x44},/*x   CHAR_78 */
{0x9C,0xA0,0xA0,0x90,0x7C},/*y   CHAR_79 */
{0x44,0x64,0x54,0x4C,0x44},/*z   CHAR_7A */
{0x08,0x36,0x41,0x00,0x00},/*{   CHAR_7B */
{0x00,0x00,0x77,0x00,0x00},/*|   CHAR_7C */
{0x00,0x00,0x41,0x36,0x08},/*}   CHAR_7D */
{0x08,0x04,0x08,0x10,0x08},/*~   CHAR_7E */
{0x55,0x2A,0x55,0x2A,0x55}/*   CHAR_7F */
};
/**********************************************************************************************
  5*8ascii 點整

***********************************************************************************************/ void write_english5_8(uchar x, uchar y,uchar ascii) { uchar n,*p; p = (unsigned char*)chardot_5x8[ascii-' ']; y= y+x/21; x = x%21; if(x!=10) { if(x<10){choose(0);x*=6;} else {choose(1);x=x*6-64;} lcd_code(0xb8+y); lcd_code(0x40+x); lcd_wram(0x00); for(n=0;n<5;n++) { lcd_wram(*p++); } } else { choose(0); lcd_code(0xb8+y); lcd_code(0x40+60); lcd_wram(0x00); for(n=0;n<3;n++) { lcd_wram(*p++); } choose(1); lcd_code(0xb8+y); lcd_code(0x40); lcd_wram(*p++); lcd_wram(*p++); } } void Display_Locate(uchar x,uchar y,uchar dat) { uchar y_temp,x_temp; y_temp = y+(x/128); x_temp = x&0x7f; if(x_temp>63){choose(1);x_temp -=64;} else choose(0); lcd_code(0xb8+y_temp); lcd_code(0x40+x_temp); lcd_wram(dat); } void write_word8_8(uchar page, uchar row, uchar *adr) { uchar n; if(row>15){page=page+row/16;row=row%16;} if(row<8){choose(0); row=row<<3; } else {choose(1);row=(row-8)<<3; } lcd_code(0xb8+page); lcd_code(0x40+row); for(n=0;n<8;n++) { lcd_wram(*(adr+n)); } } void write_word16_16(uchar page, uchar row, uchar *adr) { uchar n; if(row>7){page=page+row/8;row=row%8;} { if(row<4){choose(0); row=row<<4; } else {choose(1);row=(row-4)<<4; } page=page<<1; // 4 兩行顯示一字 lcd_code(0xb8+page); lcd_code(0x40+row); for(n=0;n<16;n++) lcd_wram(*(adr+n)); //上半部分 lcd_code(0xb9+page); lcd_code(0x40+row); for(n=16;n<32;n++) lcd_wram(*(adr+n)); } //下半部分 } void write_word8_16(uchar page, uchar row, uchar *adr) { uchar n; if(row>15){page=page+row/16;row=row%16;} if(row<8){choose(0); row=row<<3; } else {choose(1);row=(row-8)<<3; } page=page<<1; // 4 兩行顯示一字 lcd_code(0xb8+page); lcd_code(0x40+row); for(n=0;n<8;n++) { lcd_wram(*(adr+n)); } //上半部分 lcd_code(0xb9+page); lcd_code(0x40+row); for(n=8;n<16;n++) { lcd_wram(*(adr+n)); } } void lcd_busy(void) { unsigned char ac; RS(0); RW(1); E(0); LATD = 0X00; PORTDD_IN; do { E(1); Delay_us(1); ac=PORTD_IN; ac&=0x80; ac&=0x80;////////////延時 E(0); }while(ac==0x80); E(0); } void lcd_code(char Data) { lcd_busy(); E(0); RS(0); RW(0); PORTDD_OUT; E(1); PORT_D=Data; Delay_us(1); E(0); } void lcd_wram(char Data) { lcd_busy(); E(0); RS(1); RW(0); PORTDD_OUT; E(1); PORT_D=Data; Delay_us(1); E(0); LATD = 0X00; } uchar lcd_rram(uchar page,uchar arrange) //page頁地址.arrange列地址) { uchar dat; lcd_code(page+0xb8); lcd_code(arrange+0x40); E(0); RW(1); RS(1); LATD = 0X00; PORTDD_IN; E(1); Delay_us(2); E(0); //12864讀數據時第二次讀才有效,第一次讀取的值不采集 Delay_us(2); E(1); dat=PORTD_IN; Delay_us(2); E(0); return(dat); } void choose(uchar n) { switch(n) { case 0:C1(0);C2(1);break; case 1:C1(1);C2(0);break; case 2:C1(0);C2(0);break; default:break; } } void clear12864(void) // 清屏 { uchar page,row; choose(2); for(page=0xb8;page<0xc0;page++) { lcd_code(page); lcd_code(0x40); for(row=0;row<64;row++) { lcd_wram(0x00); } } } void write_word8_16(uchar page, uchar row, uchar *adr) { uchar n; if(row>15){page=page+row/16;row=row%16;} if(row<8){choose(0); row=row<<3; } else {choose(1);row=(row-8)<<3; } page=page<<1; // 4 兩行顯示一字 lcd_code(0xb8+page); lcd_code(0x40+row); for(n=0;n<8;n++) { lcd_wram(*(adr+n)); } //上半部分 lcd_code(0xb9+page); lcd_code(0x40+row); for(n=8;n<16;n++) { lcd_wram(*(adr+n)); } } void write_word8_8(uchar page, uchar row, uchar *adr) { uchar n; if(row>15){page=page+row/16;row=row%16;} if(row<8){choose(0); row=row<<3; } else {choose(1);row=(row-8)<<3; } lcd_code(0xb8+page); lcd_code(0x40+row); for(n=0;n<8;n++) { lcd_wram(*(adr+n)); } } void write_word16_16(uchar page, uchar row, uchar *adr) { uchar n; if(row>7){page=page+row/8;row=row%8;} { if(row<4){choose(0); row=row<<4; } else {choose(1);row=(row-4)<<4; } page=page<<1; // 4 兩行顯示一字 lcd_code(0xb8+page); lcd_code(0x40+row); for(n=0;n<16;n++) lcd_wram(*(adr+n)); //上半部分 lcd_code(0xb9+page); lcd_code(0x40+row); for(n=16;n<32;n++) lcd_wram(*(adr+n)); } //下半部分 } /*void write_word32(uchar page, uchar row, uchar *adr) { uchar n; if(row>3){page=page+row/4;row=row%4;} if(row<2) { row=row<<5; choose(0);} else {choose(1); row=(row-2)<<5; } page=page<<2; lcd_code(0xb8+page); lcd_code(0x40+row); for(n=0;n<32;n++) lcd_wram(*(adr+n)); lcd_code(0xb9+page); lcd_code(0x40+row); for(n=32;n<64;n++) lcd_wram(*(adr+n)); lcd_code(0xba+page); lcd_code(0x40+row); for(n=64;n<96;n++) lcd_wram(*(adr+n)); lcd_code(0xbb+page); lcd_code(0x40+row); for(n=96;n<128;n++) lcd_wram(*(adr+n)); } */ /*void play_photos(char *adr) { uchar n,z; clear12864(); for(z=0;z<8;z++) { for(n=0;n<128;n++) { if(n<64) { choose(0); lcd_code(0x40+n); lcd_code(0xb8+z); lcd_wram(*(adr+n+(z<<7))); } else { choose(1); lcd_code(0x40+n-64); lcd_code(0xb8+z); lcd_wram(*(adr+n+(z<<7))); } } } } */ //顯示一個點x=0~127 y=0~63; void display1(uchar x,uchar y) { uchar dat; if(x>63){choose(1);x=x-64;} else{choose(0);} dat =lcd_rram(y/8,x); lcd_code(0xb8+y/8); lcd_code(0x40+x); lcd_wram(dat|(1<<y%8)) ; } //清除一個點 void disclr1(uchar x,uchar y) { uchar dat; if(x>63){choose(1);x=x-64;} else{choose(0);} dat =lcd_rram(y/8,x); lcd_code(0xb8+y/8); lcd_code(0x40+x); lcd_wram(dat&(~(1<<y%8))) ; }
關閉窗口

相關文章

主站蜘蛛池模板: 成人精品国产 | 日本不卡一区二区三区在线观看 | 国产免费福利小视频 | 国产成人精品一区二区三区在线 | 色婷婷精品久久二区二区蜜臂av | 国产伦精品一区二区三区照片91 | 欧美理论片在线观看 | 狠狠爱网址 | 夜夜爽99久久国产综合精品女不卡 | 成人在线观看中文字幕 | 一级a爱片性色毛片免费 | 在线国产视频 | 亚洲乱码一区二区 | 亚洲欧美在线观看 | 欧美精品久久 | 亚洲福利一区 | 国产精品国产精品国产专区不卡 | 成人精品网 | 国产福利在线视频 | 久久久久久亚洲精品 | 亚洲一区| 欧美一区二区在线播放 | 中文字幕第一页在线 | 日本在线中文 | 99精品99久久久久久宅男 | 久久久久久久久久久久久久国产 | 欧美精品成人 | 久久久久亚洲精品中文字幕 | 精品国产欧美一区二区 | 99热热精品| 亚洲国产精品一区二区三区 | 久久久久久久国产精品 | 又黄又色| 99福利在线观看 | 亚洲狠狠丁香婷婷综合久久久 | 国产偷录视频叫床高潮对白 | 91精品国产一区 | 999免费网站 | 日韩在线| 亚洲 欧美 日韩 在线 | 视频在线亚洲 |