LCD12864串行和并行显示
2016-10-06 15:40
507 查看
一、LCD12864串行显示
二、LCD12864并行显示
<span style="font-size:18px;">***********************************************************************/ #include <reg52.h> #include <intrins.h> #define uchar unsigned char #define uint unsigned int sbit CS = P2^4; sbit SID = P2^5; sbit SCLK = P2^6; sbit RST = P2^3; sbit CH = P2^1; void delay(unsigned int t) { unsigned int i,j; for(i=0; i<t; i++) for(j=0; j<10; j++); } void sendbyte(unsigned char zdata) { unsigned int i; for(i=0; i<8; i++) { if((zdata << i) & 0x80) { SID = 1; } else { SID = 0; } SCLK = 0; SCLK = 1; } } void write_com(unsigned char cmdcode) { CS = 1; sendbyte(0xf8); sendbyte(cmdcode & 0xf0); sendbyte((cmdcode << 4) & 0xf0); delay(2); } void write_data(unsigned char Dispdata) { CS = 1; sendbyte(0xfa); sendbyte(Dispdata & 0xf0); sendbyte((Dispdata << 4) & 0xf0); delay(2); } void lcdinit() { RST = 0; delay(100); RST = 1; delay(20000); write_com(0x30); delay(50); write_com(0x0c); delay(50); } void hzkdis(unsigned char code *s) </span><pre><span style="font-size:18px;">{ </span><pre><span style="font-size:18px;"> while(*s > 0) { write_data(*s); s++; delay(50); } } void Test() { write_com(0x03); delay(50); write_com(0x81); hzkdis(" LCD12864"); } void Main() { <span style="white-space:pre"> </span>CH = 0; delay(1); lcdinit(); delay(10); </span><pre><span style="font-size:18px;"> while(1) </span><pre><span style="font-size:18px;"> { Test(); </span><pre><span style="font-size:18px;"> delay(5000); <span style="white-space:pre"> </span>delay(5000); </span><pre><span style="font-size:18px;"> }</span>
}
二、LCD12864并行显示
<span style="font-size:18px;">//***********************************************************************/ #include <reg52.h> #include <string.h> #define uchar unsigned char #define uint unsigned int uchar code IC_DAT[]; uchar code pic1[]; uchar code pic2[]; uchar code pic3[]; sbit RS = P2^4; sbit WRD = P2^5; sbit E = P2^6; </span><p><span style="font-size:18px;">sbit PSB = P2^1; sbit RES = P2^3;</span></p><p><span style="font-size:18px;"> </span><pre><span style="font-size:18px;">void TransferData(char data1,bit DI); </span><p><span style="font-size:18px;">void display(void); void display_grapic(void); </span><pre><span style="font-size:18px;">void delayms(uint n); void DisplayGraphic(uchar code *adder); void delay(uint m); void lcd_mesg(uchar code *adder1);</span>
void DisplayLine(uchar line1,uchar line2);
uchar code IC_DAT[]={ " HOT-51 " " " " " " " }; uchar code IC_DAT2[]={ "12 " //0x80 "34 " //0x90 "56 " //0x88 "78 " //0x98 }; unsigned char Convert(unsigned char In_Date) { unsigned char i, Out_Date = 0, temp = 0; for(i=0; i<8; i++) { temp = (In_Date >> i) & 0x01; Out_Date |= (temp << (7 - i)); } return Out_Date; } void initinal(void) { delay(40); PSB=1; delay(1); RES=0; delay(1); RES=1; delay(10); TransferData(0x30,0); delay(100); TransferData(0x30,0); delay(37); TransferData(0x08,0); delay(100); TransferData(0x10,0); delay(100); TransferData(0x0C,0); delay(100); TransferData(0x01,0); delay(10); TransferData(0x06,0); delay(100); } void initina2(void) { delay(40); PSB=1; delay(1); RES=0; delay(1); RES=1; delay(10); TransferData(0x36,0); delay(100); TransferData(0x36,0); delay(37); TransferData(0x3E,0); delay(100); TransferData(0x01,0); delay(100); } void main(void) { while(1) { initina2(); DisplayGraphic(pic2); delayms(200); initinal(); delay(100); lcd_mesg(IC_DAT); delayms(240); delayms(240); initinal(); delay(100); lcd_mesg(IC_DAT2); delayms(240); delayms(240); initinal(); } } void lcd_mesg(unsigned char code *adder1) { unsigned char i; TransferData(0x80,0); delay(100); for(i=0;i<32;i++) { TransferData(*adder1,1); adder1++; } TransferData(0x90,0); delay(100); for(i=32;i<64;i++) { TransferData(*adder1,1); adder1++; } } void TransferData(char data1,bit DI) { WRD=0; RS=DI; delay(1); P0=Convert(data1); E=1; delay(1); E=0; } void delayms(unsigned int n) { unsigned int i,j; for(i=0;i<n;i++) for(j=0;j<2000;j++); } void delay(unsigned int m) { unsigned int i,j; for(i=0;i<m;i++) for(j=0;j<10;j++); } void DisplayGraphic(unsigned char code *adder) { int i,j; for(i=0;i<32;i++) { TransferData((0x80 + i),0); TransferData(0x80,0); for(j=0;j<16;j++) { TransferData(*adder,1); adder++; } } for(i=0;i<32;i++) { TransferData((0x80 + i),0); TransferData(0x88,0); for(j=0;j<16;j++) { TransferData(*adder,1); adder++; } } } unsigned char code pic2[]= { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x1E,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x07,0x80,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xC0,0x01,0xE0,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x00,0x00,0x78,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x00,0x00,0x1E,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x00,0x00,0x07,0x80,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x03,0xC0,0x00,0x00,0x01,0xC0,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x0F,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x00,0x1E,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x03,0xC0,0x00,0x00,0x00,0x00,0x7E,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x0F,0x00,0x00,0x00,0x00,0x01,0xE6,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,0x00,0x07,0x82,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x00,0x1E,0x02,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x01,0xE0,0x00,0x00,0x00,0x00,0x78,0x03,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x01,0xE0,0x00,0x00,0x00,0x01,0xE0,0x03,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x01,0x78,0x00,0x00,0x00,0x07,0x80,0x01,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x03,0x1E,0x00,0x00,0x00,0x1E,0x00,0x07,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x03,0x07,0x80,0x00,0x00,0x78,0x00,0x1F,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x02,0x01,0xE0,0x00,0x01,0xE0,0x00,0x3F,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x06,0x00,0x78,0x1F,0x07,0x80,0x01,0xF1,0x80,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x0E,0x00,0x1E,0x3F,0x9E,0x00,0x03,0xF9,0x80,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x0E,0x00,0x07,0xB3,0x78,0x00,0x0F,0xF9,0x80,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x0F,0x80,0x01,0xFF,0xE0,0x00,0x79,0x98,0x80,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x0F,0xE0,0x00,0x7F,0x80,0x00,0xE0,0xD8,0x80,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x0F,0xF8,0x00,0x0C,0x00,0x07,0xE0,0xF8,0x80,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x0E,0x7E,0x00,0x0C,0x00,0x1F,0xF0,0xF8,0x80,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x0E,0x1F,0x80,0x0C,0x00,0x7E,0x70,0xDC,0x80,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x0F,0x07,0xE0,0x0C,0x01,0xE3,0x70,0x5C,0xC0,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x0F,0x81,0xF8,0x0C,0x07,0x83,0x70,0x5F,0xC0,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x0D,0xE0,0x7E,0x0C,0x1F,0xC1,0xF0,0x5F,0xC0,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x0F,0x78,0x3F,0x8C,0x7F,0xC1,0xB8,0x47,0xC0,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x0F,0x1E,0x0F,0xED,0xEC,0xE1,0xB8,0xC7,0xC0,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x1F,0x07,0x83,0xFF,0xC6,0xE1,0xB9,0xC7,0xC0,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x1F,0x07,0xE0,0xFF,0xE7,0xE1,0xBF,0x07,0xC0,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x1F,0x07,0xF8,0x3F,0xE7,0xE1,0xBF,0x07,0xC0,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x1F,0x07,0x9E,0x0C,0xE6,0xE1,0x8F,0x07,0xC0,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x1F,0x07,0x87,0x8C,0xE6,0xE3,0x8F,0x83,0xC0,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x1F,0x0F,0x81,0xED,0xE6,0xE7,0x0F,0x83,0xC0,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x1F,0x07,0x00,0x7F,0xE6,0xFE,0x0F,0x83,0x40,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x1F,0x00,0x00,0x1E,0x76,0xFE,0x0F,0x83,0x40,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x1E,0x00,0x00,0x00,0x72,0x1E,0x0F,0x83,0x40,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x1E,0x00,0x00,0x00,0x7E,0x1A,0x0F,0x83,0x40,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x1E,0x00,0x00,0x00,0x7C,0x1A,0x0F,0x83,0xC0,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x78,0x1A,0x0F,0x83,0xC0,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x78,0x1A,0x07,0x83,0xC0,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0x1E,0x07,0x80,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0x1F,0x07,0x80,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0x1F,0x07,0x80,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0x1F,0x07,0x80,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0x1F,0x07,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0x1F,0x00,0x00,0x00,0x00,0x08,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0x1F,0x00,0x00,0x00,0x00,0x10,0x00,0x40, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x1F,0x00,0x00,0x00,0x00,0xFF,0x08,0x20, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x1F,0x00,0x00,0x00,0x00,0x28,0x05,0xFC, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x34,0x0C,0x00,0x00,0x00,0x00,0x48,0x00,0x40, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x00,0x00,0xFF,0x08,0x88, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x00,0x00,0x08,0x05,0xFC, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,0x00,0x00,0x4A,0x00,0xA8, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,0x00,0x00,0x89,0x04,0xA8, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x01,0x08,0x88,0xA8, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x10,0xAA, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x01,0x2E };
相关文章推荐
- LCD12864串行与并行的比较分析
- MSP430 Launchpad串行/并行12864显示
- iOS-线程之GCD方式---之同步异步和串行队列并行队列之间的关系
- iOS学习笔记-106.多线程05——CGD同步、异步函数和并行、串行、主队列示例
- 串行与并行
- 串行 并行 同步 异步
- GCD之并行串行区别
- GCD使用 串行并行队列 与 同步异步执行的各种组合 及要点分析
- 串行效果 并行效果 合成效果
- CUDA编程——矩阵乘法的串行和两种并行实现
- java 定时任务串行并行
- zigbee网关 cc2530终端裸机串行驱动12864(字库ST7920)显示图片
- 线程中同步、异步、串行、并行
- 嵌入式 问:绝对型编码器的串行和并行输出的详细一点的信息
- iOS:对GCD中 同步、异步、并行、串行的见解
- 并行口实现数字0~9、A~F、L、U、P、n总共19个键盘,将按键的结果用7段数码管(例如:7SEG-MPX-CA-BLUE)显示(可选——按键控制移位)出来
- 串行转并行
- 关于串行 并行 同步 异步
- JAVA8新特性[第五季]-并行流与串行流
- 理解串行并行、同步异步与invoke、begininvoke和endinvoke的关系