tag 标签: 12864

相关博文
  • 热度 2
    2023-10-5 07:20
    902 次阅读|
    0 个评论
    IIC 12864热插拔后不显示的原因可能有以下几种: 硬件问题:可能是接线有问题,需要检查硬件PDF文档以确定接线是否正确。此外,如果是51单片机,用P0口时需要加上10K的上拉电阻。还需要检查第三脚VO的连接方式是否正确,这个引脚是对比度电位引脚。对于不同的液晶屏,这个脚的接法可能有所不同。最后,还需要检查串并行选择是否正确,如果有PSB引脚,那么屏应该可以支持串并行,模式选择错误可能会导致不显示。 程序问题:可能是程序没有正确写入或者程序有错误,需要检查程序是否正确。 电源问题:可能是电源不稳定或者电压过高/过低,需要检查电源是否稳定,以及电压是否在规定的范围内。 其他问题:可能是液晶屏幕本身有问题,或者是受到了外界干扰(如电磁干扰),需要检查液晶屏幕本身是否有问题,以及是否有外界干扰。 需要注意的是,热插拔可能会导致硬件或者程序的损坏,建议在进行热插拔之前先关闭电源,然后再进行操作。如果以上方法都不能解决问题,建议寻求专业人士的帮助。
  • 热度 19
    2012-11-6 00:16
    1126 次阅读|
    0 个评论
        有了上述的几个函数以后,我们的程序差不多能够运行了,还差点啥,恩,是的,的确,是输出字符串的函数,下面就是他了,这个输出字符串的函数比较简单,其实我应该把它做成一个输出中文的东西的,不过这里没有,因为我的12864是带字库的,所以这一切做的比较省事,具体的关于这些中文或者英文在12864的存储空间中的位置的事情,你可以去查阅他的说明书,说的很清楚。 恩,字符输出的函数不再单独贴出来,整个完整的代码在此:   int psb_pin = 3; int reset_pin = 4; int bla_pin = 13; int blk_pin = 12; int e_pin = 5; int rs_pin = 7; int rw_pin = 6; int v0_pin = A0; int vcc_pin = 11;   // all the Chinese word are in the CGROM,     // this is a set for serial communication     char shuzu[]={"hello"};     void setup() {   // set the pin mode   pinMode(vcc_pin,OUTPUT);   pinMode(psb_pin,OUTPUT);   pinMode(reset_pin,OUTPUT);   pinMode(bla_pin,OUTPUT);   pinMode(blk_pin,OUTPUT);   pinMode(e_pin,OUTPUT);   pinMode(rs_pin,OUTPUT);   pinMode(rw_pin,OUTPUT);   pinMode(v0_pin,OUTPUT);   pinMode(reset_pin,OUTPUT);     // testing point     digitalWrite(vcc_pin,HIGH);     digitalWrite(bla_pin,HIGH);     digitalWrite(blk_pin,LOW);     digitalWrite(psb_pin,0); // set the mode to parallel     analogWrite(v0_pin,150);       digitalWrite(reset_pin,LOW);     digitalWrite(reset_pin,HIGH);           LCD_Init();         delay(1000);     LCD_WriteStr(1,1,shuzu);     }         void LCD_setxy(unsigned char x,unsigned char y)   {             switch(y)             {                      case 1:                               LCD_write_byte(0,0,0X7F+x);break;                 //Line1                      case 2:                               LCD_write_byte(0,0,0X8F+x);break;                 //Line2                      case 3:                               LCD_write_byte(0,0,0X87+x);break;                //Line3                      case 4:                               LCD_write_byte(0,0,0X97+x);break;                //Line4                      default:break;             }   }       void LCD_WriteStr(unsigned char dis_addr_x,unsigned char dis_addr_y,char* str)   {       unsigned char LCD_temp;       LCD_setxy(dis_addr_x,dis_addr_y);       LCD_temp=*str;       while(LCD_temp != 0x00)                  //显示字符串子程序,字符码为0时退出       {           LCD_write_byte(0,1,LCD_temp);           LCD_temp=*(++str);       }    }           void serial_write_byte(unsigned char dat) {       unsigned char i;                      for(i=0;i8;i++)                      {                               if((dat0x80)==0){                              clear_rw();                              delay(2);                              set_e();                              delay(4);                              clear_e();                              delay(2);                              clear_rw();                         }                               else{                              set_rw();                              delay(2);                              set_e();                              delay(4);                              clear_e();                              delay(2);                              clear_rw();                         }                                 dat = dat 1;                        }   }     void LCD_write_byte(unsigned char RW, unsigned char RS, unsigned char W_data)   {       unsigned int H_data,L_data,S_ID = 0xf8;  //11111RWRS0       if(RW == 0)                             //RW=0,MCU写一个数据到液晶;         {             S_ID =~ 0x04;         }       else                    //RW=1,从液晶读数据到MCU         {            S_ID |= 0X04;         }       if(RS == 0)                                   //RS=1,写入的是数据         {            S_ID =~ 0x02;         }       else                      //RS=0,写入的是指令;         {            S_ID |= 0X02;         }       H_data = W_data;       H_data = 0xf0;           //屏蔽低4位的数据       L_data = W_data;          //xxxx0000格式       L_data = 0x0f;           //屏蔽高4位的数据       L_data = 4;             //xxxx0000格式       set_rs();       serial_write_byte(S_ID);    //发送S_ID       serial_write_byte(H_data);  //发送H_data       serial_write_byte(L_data);  //发送L_data       clear_rs();   }   void LCD_Init(void)   {     delay(2);     LCD_write_byte(0,0,0x30); //功能设置 8位数据,基本指令       delay(2);     LCD_write_byte(0,0,0x04); //点设定:显示字符/光标从左到右移位,DDRAM地址加1     delay(2);     LCD_write_byte(0,0,0x0C);  //显示设定:开显示,显示光标,当前显示位反白闪动     delay(2);     LCD_write_byte(0,0,0x01);  //写指令:清除显示, 清DDRAM     delay(2);     LCD_write_byte(0,0,0x02);  //写指令:DDRAM地址归位     delay(2);     LCD_write_byte(0,0,0x80);  //写指令:设置DDRAM地址,把显示地址设为0X80,即为第一行的首位     delay(2);     }       void loop() {     }   void set_e() {    digitalWrite(e_pin,HIGH); }   void clear_e() {    digitalWrite(e_pin,LOW); }   void set_rs() {    digitalWrite(rs_pin,HIGH); }   void clear_rs() {    digitalWrite(rs_pin,LOW); }   void set_rw() {    digitalWrite(rw_pin,HIGH); }   void clear_rw() {    digitalWrite(rw_pin,LOW); }     还请各位多多指教,这些代码写的比较仓促,还是有一些不足的地方的,欢迎指正。  
  • 热度 21
    2012-11-6 00:15
    1176 次阅读|
    0 个评论
    接上次的话茬,在并行的驱动方式下,我们的编程的确是很省事,不过最大的不足就是,如果你的单片机能够给你使用的端口没有那么多,特别是那8 个数据管脚占有的那么多的数量,看着心疼啊,所以这里介绍另一种驱动的方法,那就是串行的驱动方法。   串行的方式有时就不说了,但是也有缺点,那就是速度的制约,你想,原来8 根数据线一同传输的数据,这时要用2 根数据线进行传输,速度肯定是变慢了,具体变慢了多少呢?这个你可以自己计算一下。     下面是在Arduino 中的有关的管脚的定义:     可以明显的看出来,这里的使用的管脚少了很多其实主要就是烧得数据管脚部分,现在我们如果要发送数据,其实这就是主要的功能实现的方法,用发送数据的方法告诉LCD 要显示啥,在哪里显示,以及以怎样的顺序来进行显示,怎样的方式。   所以这样看来,以前的发送数据的函数肯定是不能够使用了,所以这里我们需要去重新写一个函数,以其能够用两根线也能完成我们需要完成的事情,这件事情其实不是很难,主要是在这里,很多事情的铺垫已经做好了。 我们再一次回到时序图,在这里面,有所有我们需要的东西,有我们的函数的书写的指导,有我们需要拉高拉低的电平,有我们需要显示字符的位置,有我们能够做的任何一件事。   照之前的经验,这里重写写数据函数,当然,还有读数据函数。这里的写可以这么理解,就是分为8 个阶段,8 个脉冲,读也是这样子来完成,那么这样的8 个脉冲之前必须还要加上一些标记性的东西才行,不然LCD 凭什么就能知道他应该去把之后的8 个脉冲之内的数据当成他需要读取的数据或者给出的数据?恩,这就在时序图中看出来了。   恩,之前的准备工作还是不可以少的,所以这里贴上,基本上和之前并行的时候差不多,只不过中间使用到的发送数据的函数做了一个改头换面,所以我们的调用形式还是不变,我觉得这个其实还是很重要的,在实际的开发过程中,底层的开发人员提供一些基本的函数,而在设计这些函数之前,必须考虑到今后的改动,以及在入口参数方面做一些详尽的考虑,这样使得以后的开发少一点纠结,这也是一个好的习惯,有些参数现在可能用不到,但是可能以后会用得到,所以有的时候需要做出一些权衡,也是为了上层的工作更好的开展。 好了,闲话少说,初始化: // set the pin mode   pinMode(vcc_pin,OUTPUT);   pinMode(psb_pin,OUTPUT);   pinMode(reset_pin,OUTPUT);   pinMode(bla_pin,OUTPUT);   pinMode(blk_pin,OUTPUT);   pinMode(e_pin,OUTPUT);   pinMode(rs_pin,OUTPUT);   pinMode(rw_pin,OUTPUT);   pinMode(v0_pin,OUTPUT);   pinMode(reset_pin,OUTPUT);     // testing point     digitalWrite(vcc_pin,HIGH);     digitalWrite(bla_pin,HIGH);     digitalWrite(blk_pin,LOW);     digitalWrite(psb_pin,0); // set the mode to parallel     analogWrite(v0_pin,150);       digitalWrite(reset_pin,LOW); digitalWrite(reset_pin,HIGH);     reset 就是一个复位,不过这里是这样,其实不是很必须,不过复位了那就更多一点放心,而已。   之后是一个功能的实现。     LCD_Init();         delay(1000);     LCD_WriteStr(1,1,shuzu);   这个init 的函数后面会讲,之前的初始化其实是对管脚的一轮的初始定义,而在软件代码上还需要一个初始化,这里的目的就是在屏上写一串字符,字符定义在一个数组中,是:char shuzu[]={"hello"}; 好了,看看具体的实现。 我们将写的函数分为两部分,一个有概括的意味: void LCD_write_byte(unsigned char RW, unsigned char RS, unsigned char W_data)   还有一个是一个像是在埋头苦干的小伙: void serial_write_byte(unsigned char dat)   好了,下面是这两者的代码,不过稍等一会,给出时序图先。   这是读写的时序,是每一次写的时候的方式表达。 还有一张图: 这是传送一个完整的8位的字节数据所经历的过程,这样我们写函数的时候就能知道是不是对了,只需要对照这样的两张图进行书写,拉高拉低电平就可以了吗很多的期间其实在时序图上是很复杂的,远远比这个要复杂很多,所以这个时候需要编写者的耐心和细心,这两样是必不可少的,做电子的,其实都是需要这个的,你不知道你所写的代码将要运行在哪一个地方,不知道谁将来回去进行借鉴和参考,并且或者是直接的应用,如果这些代码做的事情和人们的生命安全有关系,和重大的工程项目有关系,那么,你可以想见,这样的细心和耐心是必要的。 这里控制的管脚的名字似乎是不认识了吧,没有关系,其实是换了一身马甲,你还是能够认出他们的。Sclk就是e这个管脚,就是允许管脚,然后剩下的应该很好判断吧,之后的代码中你能够轻易的看出来。 下面啥都不说了,贴代码,一切尽在代码中! void serial_write_byte(unsigned char dat) {       unsigned char i;                      for(i=0;i8;i++)                      {                               if((dat0x80)==0){                              clear_rw();                              delay(2);                              set_e();                              delay(4);                              clear_e();                              delay(2);                              clear_rw();                         }                               else{                              set_rw();                              delay(2);                              set_e();                              delay(4);                              clear_e();                              delay(2);                              clear_rw();                         }                                 dat = dat 1;                        }   }           void LCD_write_byte(unsigned char RW, unsigned char RS, unsigned char W_data)   {       unsigned int H_data,L_data,S_ID = 0xf8;  //11111RWRS0       if(RW == 0)                             //RW=0,MCU写一个数据到液晶;         {             S_ID =~ 0x04;         }       else                    //RW=1,从液晶读数据到MCU         {            S_ID |= 0X04;         }       if(RS == 0)                                   //RS=1,写入的是数据         {            S_ID =~ 0x02;         }       else                      //RS=0,写入的是指令;         {            S_ID |= 0X02;         }       H_data = W_data;       H_data = 0xf0;           //屏蔽低4位的数据       L_data = W_data;          //xxxx0000格式       L_data = 0x0f;           //屏蔽高4位的数据       L_data = 4;             //xxxx0000格式       set_rs();       serial_write_byte(S_ID);    //发送S_ID       serial_write_byte(H_data);  //发送H_data       serial_write_byte(L_data);  //发送L_data       clear_rs();   }       void LCD_Init(void)   {     delay(2);     LCD_write_byte(0,0,0x30); //功能设置 8位数据,基本指令       delay(2);     LCD_write_byte(0,0,0x04); //点设定:显示字符/光标从左到右移位,DDRAM地址加1     delay(2);     LCD_write_byte(0,0,0x0C);  //显示设定:开显示,显示光标,当前显示位反白闪动     delay(2);     LCD_write_byte(0,0,0x01);  //写指令:清除显示, 清DDRAM     delay(2);     LCD_write_byte(0,0,0x02);  //写指令:DDRAM地址归位     delay(2);     LCD_write_byte(0,0,0x80);  //写指令:设置DDRAM地址,把显示地址设为0X80,即为第一行的首位     delay(2);     }
  • 热度 25
    2012-10-31 23:45
    2878 次阅读|
    0 个评论
    好了,杂乱的代码,还是放在一起好看:   // used variables int back_posi_pin = 7; int back_nega_pin = 6; int vcc_pin = 13; int not_serial_pin = A1; int light_control_pin = A0; // the data pins int data_pin_2 = 2; int data_pin_3 = 8; int data_pin_1 = 3; int data_pin_0 = 12; int data_pin_4 = 11; int data_pin_5 = 10; int data_pin_6 = 9; int data_pin_7 = 5; int reset_pin = 4;   int lightness = 200; // these are the control pins int rw_pin = A2; int e_pin = A3; int rs_pin = A4; // this array set the data situation   int data_array =  {0,0,1,1,0,0,0,0};   // the initial arrays int funcset = {0,0,0,0,1,1,0,0}; int display_clear = {1,1,1,0,0,0,0,0};  // not sure // the usual used commands     int extend_func_on = {0,0,0,0,1,1,0,0}; int paint_on = {0,0,1,0,1,1,0,0};   int open_show = {0,1,1,0,0,0,0,0};   int temp = {bitRead(b,0),bitRead(b,1),bitRead(b,2),bitRead(b,3),    bitRead(b,4),bitRead(b,5),bitRead(b,6),bitRead(b,7)};    write_data(adapt); }   void write_cmd_adapt(unsigned char b){    int adapt ) {   //delay(2);   delayMicroseconds(500);    set_e();   set_rs();   clear_rw();   set_data(b);   set_e();   clear_e(); }     unsigned char read_data() {     unsigned char Rdata;     pinMode(data_pin_0,INPUT);       pinMode(data_pin_1,INPUT);     pinMode(data_pin_2,INPUT);     pinMode(data_pin_3,INPUT);     pinMode(data_pin_4,INPUT);     pinMode(data_pin_5,INPUT);     pinMode(data_pin_6,INPUT);     pinMode(data_pin_7,INPUT);        set_rs();     set_rw();     clear_e();     set_e();     delayMicroseconds(500);      Rdata = digitalRead(data_pin_0)+digitalRead(data_pin_0)*2+digitalRead(data_pin_0)*4     +digitalRead(data_pin_0)*8+digitalRead(data_pin_0)*16+digitalRead(data_pin_0)*32     +digitalRead(data_pin_0)*64+digitalRead(data_pin_0)*128;     clear_e();     return Rdata; }   void write_cmd(int a = a;   temp = b;   temp = c;   temp = d;    temp = e;   temp = f;   temp = g;   temp = h;   }   void set_data(int data_array ==1){    digitalWrite(data_pin_0,HIGH);    }    else{    digitalWrite(data_pin_0,LOW);      }       if(data_array ==1){    digitalWrite(data_pin_1,HIGH);    }    else{    digitalWrite(data_pin_1,LOW);      }      if(data_array ==1){    digitalWrite(data_pin_2,HIGH);    }    else{    digitalWrite(data_pin_2,LOW);      }      if(data_array ==1){    digitalWrite(data_pin_3,HIGH);    }    else{    digitalWrite(data_pin_3,LOW);      }      if(data_array ==1){    digitalWrite(data_pin_4,HIGH);    }    else{    digitalWrite(data_pin_4,LOW);      }      if(data_array ==1){    digitalWrite(data_pin_5,HIGH);    }    else{    digitalWrite(data_pin_5,LOW);      }      if(data_array ==1){    digitalWrite(data_pin_6,HIGH);    }    else{    digitalWrite(data_pin_6,LOW);      }      if(data_array ==1){    digitalWrite(data_pin_7,HIGH);    }    else{    digitalWrite(data_pin_7,LOW);      }   }   // functions to control the control signals void set_rw() {    analogWrite(rw_pin,255); }   void clear_rw() {    analogWrite(rw_pin,0); }   void set_rs() {    analogWrite(rs_pin,255); }   void clear_rs() {    analogWrite(rs_pin,0); }   void set_e() {    analogWrite(e_pin,255); }   void clear_e() {    analogWrite(e_pin,0); }     好了,并行的方式就写到这里了,还是有很多的话的,耽误大家这么多时间,真是愧疚不已的。     下面就是串口的方式的介绍了,这回需要说的应该没那么多了。
  • 热度 18
    2012-10-31 23:44
    1226 次阅读|
    0 个评论
    好了,有了这一些的函数的铺垫,接下来的事情好办多了。 首先是画点前的模式设置和清屏: write_cmd_adapt(0x34); clean_screen();   clean_screen 如下: void clean_screen() { settemp(0,0,1,0,1,1,0,0); write_cmd(temp); for(int i=0;i32;i++){ write_cmd_adapt(0x80+i); write_cmd_adapt(0x80);   for(int j=0;j16;j++){ write_data_adapt(0x00); }   }     for(int i=0;i32;i++){ write_cmd_adapt(0x80+i); write_cmd_adapt(0x88);   for(int j=0;j16;j++){ write_data_adapt(0x00); }   } }     这个清屏的函数需要解释一下,这样后面的画点的函数就好办了,清屏其实就是画点,不过貌似12864 没有直接的一条指令可以清屏,当然,这样我觉得速度必然受到了很大的影响,不过这里只是普通用途,不是很计较,不过后面还是有一件有意思的事情发生,后面说。 写点的时候,先写指令,告诉12864 点的位置,分为x 和y ,具体的映射关系你需要查看一下手册或是datasheet ,上面其实能看出来,从0x80 开始,前面的空间是系统使用的,你可以想见,12864 中,有自己的符号的预定义的空间,如果有中文字库,还有字库的空间,这样这些空间都是固化的,不能给你使用的,不然就乱套了。 Temp 是一个临时的使用数组,算是之前不方便的“遗留”   void settemp(int a,int b,int c,int d,int e,int f,int g,int h) { temp = a; temp = b; temp = c; temp = d; temp = e; temp = f; temp = g; temp = h;   }   这样你能明白画点是怎么画的了,在说明白一点吧,你现在只需要写一个画点的函数,这个你马上打开Arduino 环境,5 分钟,应该就出来了,可是有一个问题,这里画的不是一个点,其实一次画的是8 个数据------ write_data_adapt(0x00); 这就麻烦了,我只需要你画一个点,当然,这是可以的,不过至少现在不可以,8 的间隔导致我只能8 个8 个的重复的操作,我可以只亮8 个数据中的一个,但是之后是隔了8 个以后绘画,问题就出来了,如果我需要画两个相邻的点怎么办?这个你还不能预先知道,所以只能事后查询得知,这样,我们还需要一个函数------ 读8 个数据管脚的电平的函数。   unsigned char read_data() { unsigned char Rdata; pinMode(data_pin_0,INPUT); pinMode(data_pin_1,INPUT); pinMode(data_pin_2,INPUT); pinMode(data_pin_3,INPUT); pinMode(data_pin_4,INPUT); pinMode(data_pin_5,INPUT); pinMode(data_pin_6,INPUT); pinMode(data_pin_7,INPUT); set_rs(); set_rw(); clear_e(); set_e(); delayMicroseconds(500); Rdata = digitalRead(data_pin_0)+digitalRead(data_pin_0)*2+digitalRead(data_pin_0)*4 +digitalRead(data_pin_0)*8+digitalRead(data_pin_0)*16+digitalRead(data_pin_0)*32 +digitalRead(data_pin_0)*64+digitalRead(data_pin_0)*128; clear_e(); return Rdata; }   这样就完整了,这个也是根据12864 手册说明写出来的,看到这里的管脚方向的变化了吗?所以先前的再次设置管脚方向就是必须的了,你会想,会冲突吗?不会,因为之间有足够的时间的间隔,不会有问题。   查询的思路就是,先给出要查询的点的位置,然后查询。 查询到管脚的信息后,就是一些函数中的处理了,小技巧,就不详细说明了,好了,最后的一个函数:   unsigned char read_data() { unsigned char Rdata; pinMode(data_pin_0,INPUT); pinMode(data_pin_1,INPUT); pinMode(data_pin_2,INPUT); pinMode(data_pin_3,INPUT); pinMode(data_pin_4,INPUT); pinMode(data_pin_5,INPUT); pinMode(data_pin_6,INPUT); pinMode(data_pin_7,INPUT); set_rs(); set_rw(); clear_e(); set_e(); delayMicroseconds(500); Rdata = digitalRead(data_pin_0)+digitalRead(data_pin_0)*2+digitalRead(data_pin_0)*4 +digitalRead(data_pin_0)*8+digitalRead(data_pin_0)*16+digitalRead(data_pin_0)*32 +digitalRead(data_pin_0)*64+digitalRead(data_pin_0)*128; clear_e(); return Rdata; }     名字很霸气,恩,不过还是有一点小问题,暂时还没有解决,你可以看看是啥问题喽。 还有一个有趣的是,我之前的write_data 函数中的间隔取得太大,结果在频繁调用的时候就来问题了---- 太慢,所以我开始烧进去没看到反应,还以为错了,正在调试程序呢,过了大概有5 分钟,突然看到屏上有预期的图案了!真是意外啊。所以间隔还是小一点,你可以测试一下极限是多少。      
相关资源
  • 所需E币: 5
    时间: 2023-9-13 15:43
    大小: 57.96KB
    上传者: 物联创客
    本资源内容概要:这是基于51单片机的温湿度检测万年历12864液晶显示设计,包含了C语言程序源代码(keil软件打开)。本资源适合人群:单片机爱好者、电子类专业学生、电子diy爱好者。本资源能学到什么:可以通过查看电路学习电路设计原理,查看代码学习代码编写原理。本资源使用建议:建议使用者需要具备一定电子技术基础,掌握一些常用元器件原理,例如三极管、二极管、数码管、电容、稳压器等。了解C语言基础设计原理,能看懂基础的电路图,具备一定的电路图软件使用能力。
  • 所需E币: 5
    时间: 2023-7-28 10:36
    大小: 36.65KB
    上传者: 物联创客
    本资源内容概要:这是基于51单片机的ADC0832两路电压检测12864液晶显示设计,包含了C语言程序源代码(keil软件打开)。本资源适合人群:单片机爱好者、电子类专业学生、电子diy爱好者。本资源能学到什么:可以通过查看电路学习电路设计原理,查看代码学习代码编写原理。本资源使用建议:建议使用者需要具备一定电子技术基础,掌握一些常用元器件原理,例如三极管、二极管、数码管、电容、稳压器等。了解C语言基础设计原理,能看懂基础的电路图,具备一定的电路图软件使用能力。
  • 所需E币: 0
    时间: 2023-7-14 02:17
    大小: 48.84KB
    上传者: cheng055
    12864液晶串行显示程序
  • 所需E币: 0
    时间: 2023-6-2 22:56
    大小: 3.34MB
    上传者: 责任全在软件
    12864万年历源程序原理图PCB12864万年历源程序原理图PCB12864万年历源程序原理图PCB
  • 所需E币: 2
    时间: 2023-5-11 16:20
    大小: 11.84KB
    上传者: 木头1233
    基于51单片机的12864液晶串行操作方式例程源代码
  • 所需E币: 2
    时间: 2023-5-11 16:20
    大小: 7.37KB
    上传者: 木头1233
    基于51单片机的12864带字库测试程序例程
  • 所需E币: 2
    时间: 2023-4-20 14:10
    大小: 405.59KB
    上传者: 木头1233
    基于51单片机中文12864设计资料源程序文件
  • 所需E币: 0
    时间: 2023-4-20 14:04
    大小: 14.65KB
    上传者: 木头1233
    基于51单片机的12864中文显示测试设计资料源程序
  • 所需E币: 0
    时间: 2023-4-20 14:04
    大小: 15.35KB
    上传者: 木头1233
    基于51单片机的12864串行驱动演示设计资料源程序
  • 所需E币: 0
    时间: 2022-8-10 23:54
    大小: 80.16KB
    上传者: samewell
    LED12864menu工作于并行模式时的引脚定义.rar
  • 所需E币: 0
    时间: 2022-8-10 23:52
    大小: 256.31KB
    上传者: samewell
    12864取模软件.rar
  • 所需E币: 0
    时间: 2022-8-10 23:50
    大小: 748.89KB
    上传者: samewell
    128_64测试程序.zip
  • 所需E币: 1
    时间: 2022-8-3 22:43
    大小: 14.81KB
    上传者: xyzzyxaaa
    【实验77】12864显示字符.zip
  • 所需E币: 1
    时间: 2022-8-3 22:42
    大小: 19.32KB
    上传者: xyzzyxaaa
    【实验76】12864显示图片.zip
  • 所需E币: 0
    时间: 2022-1-22 17:04
    大小: 467.89KB
    上传者: samewell
  • 所需E币: 0
    时间: 2021-9-26 14:35
    大小: 567.77KB
    上传者: Argent
    分享一下关于单片机的相关资料文档,感兴趣的网友可以自行下载。单片机是芯片开发的基础,相信从中会获得您意想不到的知识。学习蓝牙技术,掌握无线智能开发,了解蓝牙底层及上层应用开发,协议栈的问题需要不断学习各个层级的关系及编程规范。
  • 所需E币: 0
    时间: 2021-9-26 14:35
    大小: 1.64MB
    上传者: Argent
    分享一下关于单片机的相关资料文档,感兴趣的网友可以自行下载。单片机是芯片开发的基础,相信从中会获得您意想不到的知识。学习蓝牙技术,掌握无线智能开发,了解蓝牙底层及上层应用开发,协议栈的问题需要不断学习各个层级的关系及编程规范。
  • 所需E币: 1
    时间: 2021-9-26 14:36
    大小: 478.97KB
    上传者: Argent
    分享一下关于单片机的相关资料文档,感兴趣的网友可以自行下载。单片机是芯片开发的基础,相信从中会获得您意想不到的知识。学习蓝牙技术,掌握无线智能开发,了解蓝牙底层及上层应用开发,协议栈的问题需要不断学习各个层级的关系及编程规范。
  • 所需E币: 1
    时间: 2021-4-23 17:16
    大小: 13.21KB
    上传者: zendy_731593397
    12864带字库测试程序源代码
  • 所需E币: 0
    时间: 2021-4-26 23:10
    大小: 822.5KB
    上传者: Argent
    AI产品层出不穷,手里收藏了有关电子通信,毕业设计等资料,方案诸多,可实施性强。单片机的应用开发,外设的综合运用,纵使智能产品设计多么复杂,但其实现的基本功能都离不开MCU的电路设计与驱动编程,无论是使用51单片机还是AVR单片机,其方案的选择因项目需求而定,需要这方面资料的工程师们,看过来吧。