标题: 32x64双色点阵程序、音乐频谱、多功能时钟、温度显示全套资料 [打印本页]
作者: 北岸花笺 时间: 2016-4-23 11:45
标题: 32x64双色点阵程序、音乐频谱、多功能时钟、温度显示全套资料
全部资料(压缩包)下载:
音乐频谱.rar
(13.82 MB, 下载次数: 780)
音乐频谱--控制卡使用说明:
1、按键S1 亮度控制 说明:一共有10极 按一下亮度加一级
2、按键S2 16分频与64分频切换
3、按键S3 切换柱条和漂浮点颜色 说明:显示颜色有 红柱绿漂 红柱黄漂 绿柱红漂 绿柱黄漂
4、按键S4 无功能
32x64双色点阵程序、音乐频谱、多功能时钟、温度显示全套资料
由于是二手点阵屏,完全对应的原理图不好找到,为了方便大家理解其工作原理,发个标准的原理图供参考,方便学习交流用。
多功能时钟--控制卡使用说明:使用前保证已经下载好对应的功能程序
1、按键S1 时钟复位
2、按键S2 调时模式移位(进行年、月、日、时、分、秒以及补偿时间 、 自动和手动切换显示信息的改变)
3、按键S3 +
4、按键S4 -
自动与手动切换显示的 改变
通过按S2进行菜单调整按到 ,按到点阵屏出现自动或者手动切换界面 ,可以通过S3进行改变手动和自动切换, 如果是自动可以设置自动的时间默认3S。
串口改字3264点阵程序
LED点阵功能规划
前言
上位机需求:1.设置多种取模方式的软件
16*16汉字取模原则共阴码,行列式,行逆向(第1点为bit8,第8点位 bit1)
32*32汉字取模原则共阴码,逐行式,行逆向(第1点为bit8,第8点位 bit1)
2.配置移动速度
3.配置显示方式
4.设置屏的高和宽
5.配置屏的颜色(单色双色)
6.配置屏的OE逻辑级性
7.配置显示时钟及方式(静态 左移)
8.较时功能
9.定时开关机功能
下位机需求:接收上位机设置的信息,并且按配置运行。
通信方式:232通信
点阵屏通讯协议
u 通讯
(1)232口通讯:8位数据位, 1位停止位, 标志效验, 波特率为9600
u 通讯顺序为:
传送每一屏的全部“点阵数据”,按顺序传送完每一幕数据。
u 主要功能帧定义:
(0x06)回传接收帧:1字节回传
u 通讯头,任何一帧通讯必需要。(6字节)
0x5A+C+L+DATA+CS+0xA5
说明:
0x5A,0xA5 两个起始标志字节。
C 控制码
L 长度
DATA 数据
CS 校验和,从C到校验和之前的所有字节的和。
应答:接收成功返回1字节:0x06。
◆ 扇区擦除命令:0x01
0x5A+0x01+0x01+DATA+CS+0xA5
DATA :扇区擦除的数量(512字节一个扇区)
CS:数据校验和
应答:接收成功返回1字节:0x06
◆ 字幕数据命令:0x02
0x5A+0x02+L+DATA+CS+0xA5
L:数据长度
DATA:字幕数据
CS:数据校验和
应答:接收成功返回1字节:0x06
◆ 参数设置命令命令:0x03
0x5A+0x03+L+DATA+CS+0xA5
L:数据长度
DATA:参数
CS:数据校验和
应答:接收成功返回1字节:0x06
移动速度:命令1~5
字体大小有两种16*16 32*32
16*16命令:0x01
32*32命令:0x02
颜色:红 绿 黄
红命令:0x01
绿命令:0x02
黄命令:0x03
屏数量以32*64为一个单位
命令:1~5 1代表1块 2代表2块以此类推
移动方式:
0x01:左移
0x02:右移
0x03:立即显示
0x04:预留
0x05:预留
0x06:预留
0x07:预留
字节1 引入方式
InMode0=左移入←
InMode1=右移入→
InMode2=上卷入↑
InMode3=下卷入↓
InMode4=左跳入←
InMode5=右展开→
InMode6=左展开←
InMode7=上展开↑
InMode8=下展开↓
InMode9=中间-两端展开
InMode10=两端-中间展开
InMode11=中间-上下展开
InMode12=上下-中间展开
InMode13=立即显示
InMode14=预备
InMode15=
随机显示
下面是部分程序预览(完整版本请下载本帖附件):
- /***********************************************************
- 程序编写:Fucp 2016-12-25
- 32*64双色点阵
- 上位机软件改字
- ***********************************************************/
- /*
- 标准08接口点阵屏管脚定义
- GND A ABCD是行扫描信号
- GND B
- GND C
- OE D OE是屏的使能端 低有效
- R1 G1 上半屏绿色
- R2 G2 下半屏绿色
- GND STCP 锁存信号
- GND SHCP 时钟信号
-
- */
- /****************************************
- 主控芯片;STC12C5A32S2 晶振:30M
- 通信波特率:9600
- 使用点阵屏 :32*64双色
-
- 程序实现功能:
- 通过上位机字幕软件生成的字幕数据下载到单片机内部的EEPROM
- 此款单片机内部有32K的EEPROM 所以可以存储较多的字
- 字幕软件可配置16*16 和32*32字体
- 其中 16*16字体可设置显示颜色 红 绿 黄 三种
- 可设置移动速度
- 移动方式目前只有一种左移 往后继续加
- 其他功能待开发
- 上位机使用见说明
- 欢迎大家做技术交流:QQ 77554971
- 祝大家学习进步!
- *****************************************/
- #include "NEW_8051.H"
- #include "main.h"
- #define light 3 //定义亮度
- uchar code hanzi[]; //汉字字模
- uchar code hanzi1[]; //汉字字模
- //0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,
- //uchar code sw[16]={0X00,0X08,0x04,0x0C,0X02,0X0A,0X06,0X0E,0X01,0X09,0X05,0X0D,0X03,0X0B,0X07,0X0F};/*16行段码*///138驱动数据
- sbit IA =P4^0; //行控制线A
- sbit IB =P2^0; //行控制线B
- sbit IC =P2^1; //行控制线C
- sbit ID =P2^2; //行控制线D
- #define scan0 {IA=0;IB=0;IC=0;ID=0;}
- #define scan1 {IA=1;IB=0;IC=0;ID=0;}
- #define scan2 {IA=0;IB=1;IC=0;ID=0;}
- #define scan3 {IA=1;IB=1;IC=0;ID=0;}
- #define scan4 {IA=0;IB=0;IC=1;ID=0;}
- #define scan5 {IA=1;IB=0;IC=1;ID=0;}
- #define scan6 {IA=0;IB=1;IC=1;ID=0;}
- #define scan7 {IA=1;IB=1;IC=1;ID=0;}
- #define scan8 {IA=0;IB=0;IC=0;ID=1;}
- #define scan9 {IA=1;IB=0;IC=0;ID=1;}
- #define scan10 {IA=0;IB=1;IC=0;ID=1;}
- #define scan11 {IA=1;IB=1;IC=0;ID=1;}
- #define scan12 {IA=0;IB=0;IC=1;ID=1;}
- #define scan13 {IA=1;IB=0;IC=1;ID=1;}
- #define scan14 {IA=0;IB=1;IC=1;ID=1;}
- #define scan15 {IA=1;IB=1;IC=1;ID=1;}
- sbit STR=P4^1; //锁存
- sbit SCK=P2^7; //时钟
- sbit SERr1= P2^4; //数据
- sbit SERg1= P2^6;
- sbit OE= P0^4;
- sbit SERr= P2^3;
- sbit SERg= P2^5;
- uchar Move,Speed,line; //时间温度变量
- uint zimuo; //字模计数器
- uchar BUFF[20]; //缓存
- uchar BUFF1[20]; //缓存
- uchar ucTimeOut;
- uchar i;
- uint uiBaseAddress=0;
- uint uiFontNumber=0;
- //void DelayMs(void); // 延时
- void in_data(); // 调整移动数据
- void rxd_data(); // 串口发送移动数据
- /******************************************************/
- uchar ucSetSpeed=0;
- uchar ucSpeed=3;
- uchar ucSetPlateNum=0;
- uchar ucPlateNum=0;
- uchar ucSetShowMode=0;
- uchar ucShowMode=0;
- uchar ucSetFontSize=0;
- uchar ucFontSize=0;
- uchar BuffCount=0;
- uchar ucSetFontColor=0;
- uchar ucFontColor=0;
- uchar DelayMs=0;
- uchar l=0;
- bit bDelayMsOver=0;
- uchar ucEEPArray=0;
- uchar ucUdateTime=0;
- void Send8Line();
- void Send16Line();
- void Send24Line();
- void Send32Line();
- void Load32();
- /*****不影响其他端口的扫描*************************/
- void scan(unsigned char Value)
- {switch(Value)
- {case 0: scan0;break;
- case 1: scan1;break;
- case 2: scan2;break;
- case 3: scan3;break;
- case 4: scan4;break;
- case 5: scan5;break;
- case 6: scan6;break;
- case 7: scan7;break;
- case 8: scan8;break;
- case 9: scan9;break;
- case 10:scan10;break;
- case 11:scan11;break;
- case 12:scan12;break;
- case 13:scan13;break;
- case 14:scan14;break;
- case 15:scan15;break;
- default:break;
- }
- }
- /*************************/
- void DelayMss(void)
- {
- uchar TempCyc;
- for(TempCyc=150;TempCyc>1;TempCyc--)
- {;}
- }
- /**************************延时***********************/
- void InitTimer0(void)
- {
- TMOD|= 0x01;
- TH0 = 0x0C4;
- TL0 = 0x00;
- EA = 1;
- ET0 = 1;
- TR0 = 1;
- }
- /***********************************/
- void Send_data(unsigned char d) /*从串口发送数据*/
- {
- ES=0;
- SBUF=d;
- while(TI==0); //等待发送完毕
- TI=0;
- ES=1;
- }
- /*****************************************/
- void Timer0Interrupt(void) interrupt 1
- {
- TH0 = 0x0C4;
- TL0 = 0x00;
- if( ucTimeOut )
- {
- ucTimeOut--;
- if( !ucTimeOut )
- {
- //bEanle=0;
- LED4=1;
- }
-
- }
- if(ucUdateTime)
- {
- ucUdateTime--;
- if(!ucUdateTime)
- {
-
- //uiBaseAddress=0;
- //bEanle=0;
-
- }
- }
-
- /**************************************/
-
- }
- /****************************************/
- void LED_Display(void)
- {
- ucSetPlateNum=byte_read(0x0003);//读取EEPROM里设置的点阵屏块数量(32*64一块)
- switch ( ucSetPlateNum )
- {
- case 0X01:
- ucPlateNum=8; //1块
- break;
- case 0X02:
- ucPlateNum=16; //2块
- break;
- case 0X03:
- ucPlateNum=24;//3块
- break;
- case 0X04:
- ucPlateNum=32;//4块
- break;
- case 0X05:
- ucPlateNum=40; //5块
- break;
- default:
- ucPlateNum=8; //1块
- break;
- }
- /***********************************/
- ucSetShowMode=byte_read(0x0004); //显示方式
- switch ( ucSetShowMode )
- {
- case 0X01:
- ucShowMode=1; //左移
- break;
- case 0X02:
- ucShowMode=2; //右移
- break;
- case 0X03:
- ucShowMode=3;
- break;
- case 0X04:
- ucShowMode=4;
- break;
- case 0X05:
- ucShowMode=5;
- break;
- default:
- ucShowMode=2;
- break;
- }
- /***********************************/
-
- ucSetSpeed=byte_read(0x0000); //移动速度
- switch ( ucSetSpeed )
- {
- case 0X01:
- ucSpeed=2;
- break;
- case 0X02:
- ucSpeed=4;
- break;
- case 0X03:
- ucSpeed=6;
- break;
- case 0X04:
- ucSpeed=8;
- break;
- case 0X05:
- ucSpeed=10;
- break;
- default:
- ucSpeed=5;
- break;
- }
- /********************************************/
- ucSetFontSize=byte_read(0x0001); //字体大小
- switch ( ucSetFontSize )
- {
- case 0X01:
- ucFontSize=16;
- break;
- case 0X02:
- ucFontSize=32;
- break;
- default:
- ucFontSize=16;
- break;
- }
- /**************************************************/
- ucSetFontColor=byte_read(0x0002); //字体颜色
- switch ( ucSetFontColor )
- {
- case 0X01:
- ucFontColor=1; //红
- break;
- case 0X02:
- ucFontColor=2; //绿
- break;
- case 0X03:
- ucFontColor=3; //黄
- break;
- default:
- ucFontColor=1;
- break;
- }
- uiFontNumber=(byte_read(0x0100)<<8)+byte_read(0x0101);
- }
- /*主函数*/
- void main()
- {
- InitTimer0();
- uart_init();
- Move=0;
- zimuo=0;
- OE=0;
- LED_Display();
- //uart_rBIT=1;
- /*******************************************/
-
- while(1)
- {
- while(zimuo<uiFontNumber+64)
- {
- //if( !bEanle ) //下载数据和设置屏参数时不显示信息
- //{
- if(ucShowMode==0x01)
- {
- while(Move<ucFontSize) //数据移位。
- {
- for(Speed=0;Speed<ucSpeed;Speed++) //移动速度
- {
- for(line=0;line<16;line++)
- {
- in_data(); //调整移动数据
- rxd_data();
- // P0=sw[line];
- scan(line);
- STR=1;//锁存
- STR=0;
- STR=1;
- DelayMss(); //延时,等待一段时间,让这列显示的内容在人眼内产生“视觉暂留”现象。
- }
- }
-
- /****************************************************/
- l++;
- if(l==16)l=0;
- Move++; //移动一步
- }
- Move=0;
- if(ucFontSize==32)
- {
- zimuo=zimuo+128;
- }
- else
- {
- zimuo=zimuo+32;
- }
- }
- /**********************************************************/
- else if(ucShowMode==0x02)
- {
- for(i=0;i<32;i++)
- {
- for(Speed=0;Speed<16;Speed++) //移动速度
- {
- for(line=0;line<16;line++)
- {
- in_data();//调整移动数据
- if((i<=15)&&(line<=i))
- Send8Line();
- else
- Send16Line();
- if(i>15)
- {
- if(line<=(i-15))
- {
- Send24Line();
- }
- else
- {
- Send32Line();
- }
- }
- STR=1;//锁存
- STR=0;
- STR=1;
- //P0 =sw[line];
- if(i>15)
- {
- if(i-15>line)
- scan(i-15-line);
- else
- scan(line+15-i);
- }
- //P0= sw[line];
- else
- scan(i-line);
-
- }
- DelayMss();
- }
- }
- /********************************************************/
- for(i=0;i<120;i++)
- {
- for(line=0;line<16;line++)
- {
- Load32();
- Send24Line();
- STR=1;//锁存
- STR=0;
- STR=1;
- scan(line);
- }
-
- }
- //zimuo=zimuo+256;
- }
-
- }
- zimuo=0;
- }
- }
- /*********************************************************/
- void Send8Line()
- {
- uchar k,i;
- SERg=SERg1=1;
- for(i=0;i<8;i++)
- {
- for(k=0;k<8;k++)
- {
- SCK=0;
- SERr=(bit)(BUFF1[i]&0x01);//这里SERr定义成普通IO口就得了
- BUFF1[i]=BUFF1[i]>>1;
- SERr1=1;
- SCK =1;
- }
- }
- }
- /*********************************************************/
- void Send16Line()
- {
- uchar k,i;
- SERg=1;
- SERg1=1;
- for(i=0;i<8;i++)
- {
- for(k=0;k<8;k++)
- {
- SCK=0;
- SERr=1;//这里SERr定义成普通IO口就得了
- SERr1=1;
- SCK=1;
- }
- }
- }
- /*********************************************************/
- void Send24Line()
- {
- uchar k,i;
- SERg=SERg1=1;
- for(i=0;i<8;i++)
- {
- for(k=0;k<8;k++)
- {
- SCK=0;
- SERr=(bit)(BUFF[i]&0x01);//这里SERr定义成普通IO口就得了
- BUFF[i]=BUFF[i]>>1;
- SERr1=(bit)(BUFF1[i]&0x01); //这里SERr定义成普通IO口就得了
- BUFF1[i]=BUFF1[i]>>1;
- SCK=1;
- }
- }
- }
- /********************************************************/
- void Send32Line()
- {
- uchar k,i;
- SERg=SERg1=1;
- for(i=0;i<8;i++)
- {
- for(k=0;k<8;k++)
- {
- SCK=0;
- SERr=(bit)(BUFF[i]&0x01);//这里SERr定义成普通IO口就得了
- BUFF[i]=BUFF[i]>>1;
- SERr1=1;
- SCK =1;
- }
- }
- }
- void Load32()
- {
- char s;
- for(s=2;s>=0;s--) //i为向后先择字节计数器,zimuoo为向后先字计数器
- {
- BUFF[4*s]=byte_read(0x200+zimuo+128*s+4*line);
- BUFF[4*s+1]=byte_read(0x200+zimuo+1+128*s+4*line);
- BUFF[4*s+2]=byte_read(0x200+zimuo+2+128*s+4*line);
- BUFF[4*s+3]=byte_read(0x200+zimuo+3+128*s+4*line);
- BUFF1[4*s]=byte_read(0x200+zimuo+128*s+4*line+64);
- BUFF1[4*s+1]=byte_read(0x200+zimuo+1+128*s+4*line+64);
- BUFF1[4*s+2]=byte_read(0x200+zimuo+2+128*s+4*line+64);
- BUFF1[4*s+3]=byte_read(0x200+zimuo+3+128*s+4*line+64);
- }
- }
- /**********************************************************/
- void in_data(void) //调整数据
- {
- char s;
- if(ucShowMode==0x01)//左移
- {
- if( ucFontSize==16 )//如果字体是16*16
- {
- for(s=8;s>=0;s--) //i为向后先择字节计数器,zimuoo为向后先字计数器
- {
- BUFF[2*s+1]=byte_read(0x200+zimuo+1+32*s+2*line); //把第一个字模的第一个字节放入BUFF0中,第二个字模和第一个字节放入BUFF2中
- BUFF[2*s]=byte_read(0x200+zimuo+32*s+2*line); //把第一个字模的第二个字节放入BUFF1中,第二个字模的第二个字节放入BUFF3中
-
- BUFF1[2*s+1]=byte_read(0x200+zimuo+1+32*s+2*line); //把第一个字模的第一个字节放入BUFF0中,第二个字模和第一个字节放入BUFF2中
- BUFF1[2*s]=byte_read(0x200+zimuo+32*s+2*line);
- }
- }
- else if( ucFontSize==32 ) //如果字体是32*32
- {
- Load32();
- }
- }
- else if(ucShowMode==0x02)//右移
- {
- if(ucFontSize==32)
- {
- for(s=1;s>=0;s--) //i为向后先择字节计数器,zimuoo为向后先字计数器
- {
- BUFF[4*s]=byte_read(0x200+zimuo+128*s+4*(15-line));
- BUFF[4*s+1]=byte_read(0x200+zimuo+1+128*s+4*(15-line));
- BUFF[4*s+2]=byte_read(0x200+zimuo+2+128*s+4*(15-line));
- BUFF[4*s+3]=byte_read(0x200+zimuo+3+128*s+4*(15-line));
-
- BUFF1[4*s]=byte_read(0x200+zimuo+128*s+4*(15-line)+64);
- BUFF1[4*s+1]=byte_read(0x200+zimuo+1+128*s+4*(15-line)+64);
- BUFF1[4*s+2]=byte_read(0x200+zimuo+2+128*s+4*(15-line)+64);
- BUFF1[4*s+3]=byte_read(0x200+zimuo+3+128*s+4*(15-line)+64);
- }
- }
- }
- }
- /***********************发送移动的数据****************************/
- void rxd_data(void) //串行发送数据
- {
- uchar s;
- uchar inc,tempyid,temp,k,temp1;
- if(Move<8)
- {
- inc=0;
- }
- else if((Move>=8)&&(Move<16))
- {
- inc=1;
- }
- else if((Move>=16)&&(Move<24))
- {
- inc=2;
- }
- else if(Move>=24)
- {
- inc=3;
- }
- for(s=0+inc;s<8+inc;s++) //发送ucSePlateNum字节数据
- {
- if(l<8)
- tempyid=l;
- else
- tempyid=l-8;
- temp=(BUFF[s]>>tempyid)|(BUFF[s+1]<<(8-tempyid)); //h1左移tempyid位后和h2右移8-tempyid相或,取出移位后的数据。
- //temp=255-temp;
- temp1=(BUFF1[s]>>tempyid)|(BUFF1[s+1]<<(8-tempyid)); //h1左移tempyid位后和h2右移8-tempyid相或,取出移位后的数据。
- // temp1=255-temp1;
- /************************************************************/
- if(ucFontColor==1) //红色
- {
- SERg=SERg1=1;
- for(k=0;k<8;k++)
- {
- SCK=0;
- SERr=(bit)(temp&0x01);//这里SERr定义成普通IO口就得了
- temp=temp>>1;
- SERr1=(bit)(temp1&0x01);
-
- temp1=temp1>>1;
- SCK=1;
- }
- }
- /***********************************************/
- else if(ucFontColor==2)//绿色
- {
- SERr=SERr1=1;
- for(k=0;k<8;k++)
- {
- SCK=0;
- SERg=(bit)(temp&0x01);//这里SERr定义成普通IO口就得了
- temp=temp>>1;
- SERg1=(bit)(temp1&0x01);
- temp1=temp1>>1;
- SCK=1;
- }
- }
- else if(ucFontColor==3)//黄色
- {
- for(k=0;k<8;k++)
- {
-
- SCK=0;
- SERr=SERg=(bit)(temp&0x01);//这里SERr定义成普通IO口就得了
- temp=temp>>1;
- SERr1=SERg1=(bit)(temp1&0x01);
-
- temp1=temp1>>1;
- SCK=1;
- }
- }
- }
- }
复制代码
作者: 土豆条 时间: 2016-4-23 22:03
不错,51黑有你更精彩!!!
作者: 血一 时间: 2016-4-25 23:55
非常不错,正在研究
作者: sklh 时间: 2016-5-13 17:34
没有仿真吗?
作者: ebenyuan 时间: 2016-5-14 13:26
多谢楼主分享!~~
作者: 涧边草 时间: 2016-5-15 17:50
谢楼主老师分享!能发一分全部压缩资料给我学习吗? cqgthl@163.com 没有币呀。谢谢!
作者: 涧边草 时间: 2016-5-16 09:26
谢谢楼主老师!已下载备着有时间学习。
作者: fsy891212 时间: 2016-6-4 17:23
是标准的08接口屏吗?,双色?
作者: 无罪之宾 时间: 2016-6-15 23:29
非常不错,正在研究
作者: 逆风丶蒲公英灬 时间: 2016-9-10 00:11
学习学习
作者: 东北那谁 时间: 2016-9-12 21:09
谢谢楼主,谢谢
作者: 唐肃徊 时间: 2016-9-13 15:27
谢谢楼主,谢啦!!☆⌒(*^-゜)v
作者: jun503380 时间: 2016-10-18 11:27
漂亮啊!!!顶顶顶!!!!
作者: obsession2016 时间: 2016-10-24 22:37
感谢群主 好资料
作者: Bnuzdaxian 时间: 2016-11-17 13:35
小白问下:点阵屏是不是通用的啊?
作者: 维超 时间: 2016-11-18 19:59
资料不错,感谢楼主分享!
作者: 18316719944 时间: 2016-11-29 20:25
楼主能发份给我吗?416559076@qq.com
作者: zzzkkkzkzk 时间: 2017-11-23 20:11
好厉害啊
作者: lsz12345 时间: 2018-3-19 14:22
谢谢分享
作者: yonghu 时间: 2018-4-16 10:12
好系统的历程
作者: LYSHLRZH8888 时间: 2018-4-17 11:58
非常不错,学习
作者: laoguang 时间: 2018-6-23 01:11
非常感谢 正是我想要的
作者: lzszyy 时间: 2018-9-19 18:33
感觉楼主很用心不错,看看
作者: aking991 时间: 2018-9-27 08:21
下载下来试试,看是否有帮助
作者: lxianchao 时间: 2018-10-26 15:54
谢谢分享,楼主辛苦了
作者: aaaaa111112222 时间: 2018-12-4 17:21
谢谢分享
作者: ifree8 时间: 2019-1-22 11:01
太好了,看看!
作者: bg4ajj 时间: 2019-2-15 08:35
对楼主膜拜中 谢谢分享
作者: schsq123 时间: 2019-7-14 12:32
hex文件都不能用,也没有源程序,差评
作者: saj123456 时间: 2019-7-25 22:56
好资料楼主幸苦了
作者: zxkj13 时间: 2019-11-3 09:50
谢谢分享
作者: Qin123 时间: 2020-2-4 21:54
非常好,很好很好很好
作者: zxkj13 时间: 2020-2-5 12:03
点阵频谱
作者: L-QQ 时间: 2020-2-16 10:16
LED屏显示屏
作者: 老当益壮 时间: 2020-3-28 11:24
找遍整个压缩包,也没有找到贴出来的程序,是不是我不会找?
作者: 天道酬情 时间: 2020-4-18 18:13
向大佬学习
作者: huwei853853 时间: 2021-3-1 05:13
不错,51黑有你更精彩!!!
作者: auxccc 时间: 2022-3-8 16:02
资料很全,学起来很费劲。
作者: kckj 时间: 2022-3-22 17:32
我做的驱动板
-
51hei图片20220322173123.jpg
(67.88 KB, 下载次数: 113)
-
51hei图片20220322173027.jpg
(107.94 KB, 下载次数: 114)
作者: 小硕314 时间: 2024-1-9 14:52
资料真全啊,学习了
作者: CC51hei6 时间: 2024-1-14 18:25
这个苡片显示效果不好,还是用STM32吧,而且不用245芯片,芯片直驱就可以了,
欢迎光临 (http://www.51hei.com/bbs/) |
Powered by Discuz! X3.1 |