找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 19913|回复: 40
打印 上一主题 下一主题
收起左侧

32x64双色点阵程序、音乐频谱、多功能时钟、温度显示全套资料

  [复制链接]
跳转到指定楼层
楼主


全部资料(压缩包)下载: 音乐频谱.rar (13.82 MB, 下载次数: 720)



音乐频谱--控制卡使用说明:
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
  
1
  
2
3
4
5
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


  
Data
  
1
  
Data2
Data3
Data4
Data
  
5
Data
  
6
Data
  
7
  
移动速度
  
字体大小
颜色
屏数量
移动方式
预留
预留
移动速度:命令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=随机显示

下面是部分程序预览(完整版本请下载本帖附件):
  1. /***********************************************************
  2. 程序编写:Fucp   2016-12-25
  3. 32*64双色点阵

  4. 上位机软件改字
  5. ***********************************************************/
  6.    /*
  7. 标准08接口点阵屏管脚定义
  8. GND     A     ABCD是行扫描信号
  9. GND     B
  10. GND     C
  11. OE      D          OE是屏的使能端  低有效
  12. R1      G1          上半屏绿色
  13. R2      G2          下半屏绿色
  14. GND            STCP          锁存信号
  15. GND     SHCP         时钟信号
  16.      
  17. */
  18. /****************************************
  19. 主控芯片;STC12C5A32S2  晶振:30M
  20. 通信波特率:9600
  21. 使用点阵屏 :32*64双色

  22. 程序实现功能:
  23. 通过上位机字幕软件生成的字幕数据下载到单片机内部的EEPROM
  24. 此款单片机内部有32K的EEPROM 所以可以存储较多的字
  25. 字幕软件可配置16*16 和32*32字体
  26. 其中 16*16字体可设置显示颜色 红 绿 黄 三种
  27. 可设置移动速度
  28. 移动方式目前只有一种左移 往后继续加
  29. 其他功能待开发

  30. 上位机使用见说明

  31. 欢迎大家做技术交流:QQ 77554971

  32. 祝大家学习进步!
  33. *****************************************/
  34. #include "NEW_8051.H"
  35. #include "main.h"
  36. #define light 3                        //定义亮度
  37. uchar code hanzi[];                                            //汉字字模
  38. uchar code hanzi1[];                                            //汉字字模
  39.                                  //0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,
  40. //uchar code sw[16]={0X00,0X08,0x04,0x0C,0X02,0X0A,0X06,0X0E,0X01,0X09,0X05,0X0D,0X03,0X0B,0X07,0X0F};/*16行段码*///138驱动数据
  41. sbit IA  =P4^0;  //行控制线A
  42. sbit IB  =P2^0;  //行控制线B
  43. sbit IC  =P2^1;  //行控制线C
  44. sbit ID  =P2^2;  //行控制线D

  45. #define  scan0    {IA=0;IB=0;IC=0;ID=0;}
  46. #define  scan1    {IA=1;IB=0;IC=0;ID=0;}
  47. #define  scan2    {IA=0;IB=1;IC=0;ID=0;}
  48. #define  scan3    {IA=1;IB=1;IC=0;ID=0;}
  49. #define  scan4    {IA=0;IB=0;IC=1;ID=0;}
  50. #define  scan5    {IA=1;IB=0;IC=1;ID=0;}
  51. #define  scan6    {IA=0;IB=1;IC=1;ID=0;}
  52. #define  scan7    {IA=1;IB=1;IC=1;ID=0;}
  53. #define  scan8    {IA=0;IB=0;IC=0;ID=1;}
  54. #define  scan9    {IA=1;IB=0;IC=0;ID=1;}
  55. #define scan10    {IA=0;IB=1;IC=0;ID=1;}
  56. #define scan11    {IA=1;IB=1;IC=0;ID=1;}
  57. #define scan12    {IA=0;IB=0;IC=1;ID=1;}
  58. #define scan13    {IA=1;IB=0;IC=1;ID=1;}
  59. #define scan14    {IA=0;IB=1;IC=1;ID=1;}
  60. #define scan15    {IA=1;IB=1;IC=1;ID=1;}

  61. sbit STR=P4^1;              //锁存         
  62. sbit SCK=P2^7;                    //时钟         
  63. sbit SERr1= P2^4;            //数据
  64. sbit SERg1= P2^6;
  65. sbit OE= P0^4;
  66. sbit SERr= P2^3;
  67. sbit SERg= P2^5;       
  68. uchar Move,Speed,line;  //时间温度变量
  69. uint zimuo;                                   //字模计数器
  70. uchar BUFF[20];                                   //缓存
  71. uchar BUFF1[20];                                   //缓存
  72. uchar ucTimeOut;
  73. uchar i;
  74. uint uiBaseAddress=0;
  75. uint uiFontNumber=0;
  76. //void   DelayMs(void);              // 延时
  77. void   in_data();                                   // 调整移动数据
  78. void   rxd_data();                                   // 串口发送移动数据
  79. /******************************************************/
  80. uchar ucSetSpeed=0;
  81. uchar ucSpeed=3;
  82. uchar ucSetPlateNum=0;
  83. uchar ucPlateNum=0;
  84. uchar ucSetShowMode=0;
  85. uchar ucShowMode=0;
  86. uchar ucSetFontSize=0;
  87. uchar ucFontSize=0;
  88. uchar BuffCount=0;
  89. uchar ucSetFontColor=0;
  90. uchar ucFontColor=0;
  91. uchar DelayMs=0;
  92. uchar l=0;
  93. bit bDelayMsOver=0;
  94. uchar ucEEPArray=0;
  95. uchar ucUdateTime=0;
  96. void Send8Line();
  97. void Send16Line();
  98. void Send24Line();
  99. void Send32Line();
  100. void Load32();
  101. /*****不影响其他端口的扫描*************************/
  102. void scan(unsigned char Value)
  103. {switch(Value)
  104.         {case  0: scan0;break;
  105.                   case  1: scan1;break;
  106.                    case  2: scan2;break;
  107.                     case  3: scan3;break;
  108.              case  4: scan4;break;
  109.                       case  5: scan5;break;
  110.                        case  6: scan6;break;
  111.                         case  7: scan7;break;
  112.                  case  8: scan8;break;
  113.                        case  9: scan9;break;
  114.                       case 10:scan10;break;
  115.                      case 11:scan11;break;
  116.             case 12:scan12;break;
  117.                   case 13:scan13;break;
  118.                  case 14:scan14;break;
  119.             case 15:scan15;break;
  120.            default:break;
  121.         }
  122. }
  123. /*************************/
  124. void DelayMss(void)
  125. {
  126.   uchar TempCyc;
  127.   for(TempCyc=150;TempCyc>1;TempCyc--)
  128.      {;}
  129. }
  130. /**************************延时***********************/
  131. void InitTimer0(void)
  132. {
  133.     TMOD|= 0x01;
  134.     TH0 = 0x0C4;
  135.     TL0 = 0x00;
  136.     EA = 1;
  137.     ET0 = 1;
  138.     TR0 = 1;
  139. }
  140. /***********************************/
  141. void Send_data(unsigned char d)          /*从串口发送数据*/
  142. {
  143.           ES=0;
  144.       SBUF=d;
  145.           while(TI==0);       //等待发送完毕
  146.       TI=0;
  147.           ES=1;
  148. }
  149. /*****************************************/
  150. void Timer0Interrupt(void) interrupt 1
  151. {
  152.     TH0 = 0x0C4;
  153.     TL0 = 0x00;
  154.         if( ucTimeOut )
  155.         {
  156.                 ucTimeOut--;
  157.                 if( !ucTimeOut )
  158.                 {
  159.                         //bEanle=0;
  160.                         LED4=1;
  161.                 }
  162.                        
  163.         }
  164.         if(ucUdateTime)
  165.         {
  166.                 ucUdateTime--;
  167.                 if(!ucUdateTime)
  168.                 {
  169.                                        
  170.                         //uiBaseAddress=0;
  171.                         //bEanle=0;
  172.                        
  173.                 }
  174.         }
  175.        
  176. /**************************************/
  177.    
  178. }
  179. /****************************************/
  180. void LED_Display(void)
  181. {
  182.         ucSetPlateNum=byte_read(0x0003);//读取EEPROM里设置的点阵屏块数量(32*64一块)
  183.         switch ( ucSetPlateNum )
  184.         {
  185.         case 0X01:
  186.                 ucPlateNum=8; //1块
  187.                 break;
  188.         case 0X02:
  189.                 ucPlateNum=16; //2块
  190.                 break;
  191.         case 0X03:
  192.                 ucPlateNum=24;//3块
  193.                 break;
  194.         case 0X04:
  195.                 ucPlateNum=32;//4块
  196.                 break;
  197.         case 0X05:
  198.                 ucPlateNum=40;        //5块
  199.                 break;
  200.         default:
  201.                 ucPlateNum=8;        //1块
  202.                 break;
  203.         }
  204. /***********************************/

  205.   ucSetShowMode=byte_read(0x0004); //显示方式
  206.   switch ( ucSetShowMode )
  207.    {
  208.            case 0X01:
  209.                 ucShowMode=1;  //左移
  210.                 break;
  211.         case 0X02:
  212.                 ucShowMode=2; //右移
  213.                 break;
  214.         case 0X03:
  215.                 ucShowMode=3;
  216.                 break;
  217.         case 0X04:
  218.                 ucShowMode=4;
  219.                 break;
  220.         case 0X05:
  221.                 ucShowMode=5;
  222.                 break;
  223.         default:
  224.                 ucShowMode=2;
  225.                 break;
  226.         }
  227. /***********************************/

  228. ucSetSpeed=byte_read(0x0000); //移动速度
  229.   switch ( ucSetSpeed )
  230.    {
  231.            case 0X01:
  232.                 ucSpeed=2;
  233.                 break;
  234.         case 0X02:
  235.                 ucSpeed=4;
  236.                 break;
  237.         case 0X03:
  238.                 ucSpeed=6;
  239.                 break;
  240.         case 0X04:
  241.                 ucSpeed=8;
  242.                 break;
  243.         case 0X05:
  244.                 ucSpeed=10;
  245.                 break;
  246.         default:
  247.                 ucSpeed=5;
  248.                 break;
  249.         }
  250. /********************************************/
  251. ucSetFontSize=byte_read(0x0001); //字体大小
  252.   switch ( ucSetFontSize )
  253.    {
  254.            case 0X01:
  255.                 ucFontSize=16;
  256.                 break;
  257.         case 0X02:
  258.                 ucFontSize=32;
  259.                 break;
  260.         default:
  261.                 ucFontSize=16;
  262.                 break;
  263.         }
  264. /**************************************************/
  265. ucSetFontColor=byte_read(0x0002); //字体颜色
  266.   switch ( ucSetFontColor )
  267.    {
  268.            case 0X01:
  269.                 ucFontColor=1;         //红
  270.                 break;
  271.         case 0X02:
  272.                 ucFontColor=2; //绿
  273.                 break;
  274.         case 0X03:
  275.                 ucFontColor=3; //黄
  276.                 break;
  277.         default:
  278.                 ucFontColor=1;
  279.                 break;
  280.         }
  281. uiFontNumber=(byte_read(0x0100)<<8)+byte_read(0x0101);
  282. }

  283. /*主函数*/
  284. void main()
  285. {  
  286.    InitTimer0();
  287.    uart_init();
  288.    Move=0;
  289.    zimuo=0;
  290.    OE=0;
  291.    LED_Display();

  292.    //uart_rBIT=1;   
  293. /*******************************************/

  294. while(1)  
  295. {
  296.         while(zimuo<uiFontNumber+64)
  297.         {

  298.                 //if( !bEanle ) //下载数据和设置屏参数时不显示信息
  299.                         //{
  300.                 if(ucShowMode==0x01)
  301.                 {
  302.                         while(Move<ucFontSize)        //数据移位。
  303.                         {                       
  304.                                         for(Speed=0;Speed<ucSpeed;Speed++) //移动速度
  305.                                         {       
  306.                                                 for(line=0;line<16;line++)
  307.                                                 {
  308.                                                         in_data();                //调整移动数据
  309.                                                         rxd_data();
  310.                                                 //        P0=sw[line];  
  311.                                                         scan(line);                                                                      
  312.                                                         STR=1;//锁存
  313.                                                         STR=0;
  314.                                                         STR=1;
  315.                                                         DelayMss();         //延时,等待一段时间,让这列显示的内容在人眼内产生“视觉暂留”现象。                                                                               
  316.                                                 }
  317.                                         }
  318.                                
  319.                 /****************************************************/
  320.                         l++;
  321.                                 if(l==16)l=0;
  322.                                 Move++;                                                 //移动一步
  323.                         }
  324.                            Move=0;
  325.                         if(ucFontSize==32)
  326.                     {
  327.                                 zimuo=zimuo+128;                               
  328.                     }
  329.                         else
  330.                         {
  331.                                 zimuo=zimuo+32;
  332.                         }
  333.                 }                                       
  334. /**********************************************************/       
  335.                         else if(ucShowMode==0x02)
  336.                                 {
  337.                                         for(i=0;i<32;i++)
  338.                                         {
  339.                                         for(Speed=0;Speed<16;Speed++) //移动速度
  340.                                         {
  341.                                                 for(line=0;line<16;line++)
  342.                                                  {
  343.                                                         in_data();//调整移动数据
  344.                                                         if((i<=15)&&(line<=i))                                                                                                       
  345.                                                         Send8Line();
  346.                                                         else
  347.                                                         Send16Line();                                                       
  348.                                                         if(i>15)
  349.                                                         {
  350.                                                                 if(line<=(i-15))
  351.                                                                  {
  352.                                                                    Send24Line();                         
  353.                                                                  }
  354.                                                                else
  355.                                                               {
  356.                                                                  Send32Line();       
  357.                                                               }       
  358.                                                         }
  359.                                                                 STR=1;//锁存
  360.                                                                 STR=0;
  361.                                                                 STR=1;
  362.                                                                 //P0 =sw[line];
  363.                                                                 if(i>15)
  364.                                                                  {
  365.                                                                          if(i-15>line)
  366.                                                                         scan(i-15-line);
  367.                                                                         else
  368.                                                                                 scan(line+15-i);
  369.                                                                  }
  370.                                                                  //P0= sw[line];
  371.                                                                  else
  372.                                                                  scan(i-line);
  373.                                                                          
  374.                                                 }
  375.                                                 DelayMss();
  376.                                                 }
  377.                                         }
  378. /********************************************************/
  379.                                         for(i=0;i<120;i++)
  380.                                         {                                               
  381.                                                 for(line=0;line<16;line++)
  382.                                                 {
  383.                                                         Load32();
  384.                                                         Send24Line();
  385.                                                         STR=1;//锁存
  386.                                                         STR=0;
  387.                                                         STR=1;
  388.                                                         scan(line);
  389.                                                 }
  390.                                                          
  391.                                         }
  392.                                         //zimuo=zimuo+256;       
  393.                                 }
  394.                        
  395.         }
  396.         zimuo=0;
  397.         }
  398. }
  399. /*********************************************************/
  400. void Send8Line()
  401. {
  402.         uchar k,i;
  403.         SERg=SERg1=1;
  404.         for(i=0;i<8;i++)
  405.         {
  406.                  for(k=0;k<8;k++)
  407.                {
  408.                               SCK=0;          
  409.                            SERr=(bit)(BUFF1[i]&0x01);//这里SERr定义成普通IO口就得了
  410.                        BUFF1[i]=BUFF1[i]>>1;
  411.                            SERr1=1;                          
  412.                        SCK =1;
  413.               }       
  414.         }
  415. }
  416. /*********************************************************/
  417. void Send16Line()
  418. {
  419.         uchar k,i;
  420.         SERg=1;
  421.         SERg1=1;
  422.         for(i=0;i<8;i++)
  423.         {
  424.                  for(k=0;k<8;k++)
  425.                {
  426.                               SCK=0;          
  427.                            SERr=1;//这里SERr定义成普通IO口就得了
  428.                        SERr1=1;                          
  429.                        SCK=1;
  430.               }       
  431.           }       
  432. }
  433. /*********************************************************/
  434. void Send24Line()
  435. {
  436.         uchar k,i;
  437.          SERg=SERg1=1;
  438.         for(i=0;i<8;i++)
  439.         {
  440.                  for(k=0;k<8;k++)
  441.                {
  442.                               SCK=0;          
  443.                            SERr=(bit)(BUFF[i]&0x01);//这里SERr定义成普通IO口就得了
  444.                        BUFF[i]=BUFF[i]>>1;
  445.                            SERr1=(bit)(BUFF1[i]&0x01);  //这里SERr定义成普通IO口就得了
  446.                        BUFF1[i]=BUFF1[i]>>1;                          
  447.                        SCK=1;
  448.               }       
  449.          }       
  450. }
  451. /********************************************************/
  452. void Send32Line()
  453. {
  454.         uchar k,i;
  455.         SERg=SERg1=1;
  456.         for(i=0;i<8;i++)
  457.         {
  458.                  for(k=0;k<8;k++)
  459.                {
  460.                               SCK=0;          
  461.                            SERr=(bit)(BUFF[i]&0x01);//这里SERr定义成普通IO口就得了
  462.                        BUFF[i]=BUFF[i]>>1;
  463.                            SERr1=1;                          
  464.                        SCK =1;
  465.               }       
  466.         }       
  467. }       
  468. void Load32()
  469. {       
  470.         char s;
  471.         for(s=2;s>=0;s--) //i为向后先择字节计数器,zimuoo为向后先字计数器
  472.         {
  473.                  BUFF[4*s]=byte_read(0x200+zimuo+128*s+4*line);
  474.                  BUFF[4*s+1]=byte_read(0x200+zimuo+1+128*s+4*line);
  475.                  BUFF[4*s+2]=byte_read(0x200+zimuo+2+128*s+4*line);
  476.                  BUFF[4*s+3]=byte_read(0x200+zimuo+3+128*s+4*line);

  477.                  BUFF1[4*s]=byte_read(0x200+zimuo+128*s+4*line+64);
  478.                  BUFF1[4*s+1]=byte_read(0x200+zimuo+1+128*s+4*line+64);
  479.                  BUFF1[4*s+2]=byte_read(0x200+zimuo+2+128*s+4*line+64);
  480.                  BUFF1[4*s+3]=byte_read(0x200+zimuo+3+128*s+4*line+64);
  481.         }
  482. }          
  483. /**********************************************************/
  484. void in_data(void)                                       //调整数据
  485. {
  486.           char s;   
  487.         if(ucShowMode==0x01)//左移
  488.         {
  489.                  if( ucFontSize==16 )//如果字体是16*16
  490.                  {
  491.                          for(s=8;s>=0;s--)                                            //i为向后先择字节计数器,zimuoo为向后先字计数器
  492.                          {
  493.                                  BUFF[2*s+1]=byte_read(0x200+zimuo+1+32*s+2*line);            //把第一个字模的第一个字节放入BUFF0中,第二个字模和第一个字节放入BUFF2中
  494.                                  BUFF[2*s]=byte_read(0x200+zimuo+32*s+2*line);                //把第一个字模的第二个字节放入BUFF1中,第二个字模的第二个字节放入BUFF3中
  495.                        
  496.                                  BUFF1[2*s+1]=byte_read(0x200+zimuo+1+32*s+2*line);            //把第一个字模的第一个字节放入BUFF0中,第二个字模和第一个字节放入BUFF2中
  497.                                  BUFF1[2*s]=byte_read(0x200+zimuo+32*s+2*line);
  498.                          }
  499.                  }
  500.                 else if( ucFontSize==32 ) //如果字体是32*32
  501.                 {
  502.                         Load32();
  503.                 }
  504.         }
  505.         else if(ucShowMode==0x02)//右移
  506.         {
  507.                  if(ucFontSize==32)
  508.                  {
  509.                                  for(s=1;s>=0;s--) //i为向后先择字节计数器,zimuoo为向后先字计数器
  510.                                 {
  511.                                          BUFF[4*s]=byte_read(0x200+zimuo+128*s+4*(15-line));
  512.                                          BUFF[4*s+1]=byte_read(0x200+zimuo+1+128*s+4*(15-line));
  513.                                          BUFF[4*s+2]=byte_read(0x200+zimuo+2+128*s+4*(15-line));
  514.                                          BUFF[4*s+3]=byte_read(0x200+zimuo+3+128*s+4*(15-line));
  515.                        
  516.                                          BUFF1[4*s]=byte_read(0x200+zimuo+128*s+4*(15-line)+64);
  517.                                          BUFF1[4*s+1]=byte_read(0x200+zimuo+1+128*s+4*(15-line)+64);
  518.                                          BUFF1[4*s+2]=byte_read(0x200+zimuo+2+128*s+4*(15-line)+64);
  519.                                          BUFF1[4*s+3]=byte_read(0x200+zimuo+3+128*s+4*(15-line)+64);
  520.                                 }
  521.                 }       
  522.         }
  523. }

  524. /***********************发送移动的数据****************************/
  525. void rxd_data(void)                            //串行发送数据
  526. {
  527.   uchar s;
  528.   uchar inc,tempyid,temp,k,temp1;
  529.         if(Move<8)
  530.         {
  531.                 inc=0;
  532.         }
  533.         else if((Move>=8)&&(Move<16))
  534.         {
  535.                 inc=1;
  536.         }
  537.         else if((Move>=16)&&(Move<24))
  538.         {
  539.                 inc=2;
  540.         }
  541.         else if(Move>=24)
  542.         {
  543.                 inc=3;
  544.         }
  545.   for(s=0+inc;s<8+inc;s++)                   //发送ucSePlateNum字节数据
  546.         {
  547.                  if(l<8)
  548.                        tempyid=l;
  549.               else
  550.                      tempyid=l-8;
  551.              temp=(BUFF[s]>>tempyid)|(BUFF[s+1]<<(8-tempyid));        //h1左移tempyid位后和h2右移8-tempyid相或,取出移位后的数据。
  552.              //temp=255-temp;
  553.                  temp1=(BUFF1[s]>>tempyid)|(BUFF1[s+1]<<(8-tempyid));        //h1左移tempyid位后和h2右移8-tempyid相或,取出移位后的数据。
  554.             // temp1=255-temp1;
  555. /************************************************************/       
  556.                 if(ucFontColor==1) //红色
  557.                 {
  558.                      SERg=SERg1=1;
  559.                          for(k=0;k<8;k++)
  560.                        {
  561.                                       SCK=0;          
  562.                                    SERr=(bit)(temp&0x01);//这里SERr定义成普通IO口就得了
  563.                                temp=temp>>1;
  564.                                    SERr1=(bit)(temp1&0x01);
  565.                                   
  566.                                    temp1=temp1>>1;
  567.                                SCK=1;
  568.                       }
  569.                 }
  570.         /***********************************************/
  571.                 else if(ucFontColor==2)//绿色
  572.                 {
  573.                            SERr=SERr1=1;
  574.                            for(k=0;k<8;k++)
  575.                        {
  576.                                    SCK=0;          
  577.                                    SERg=(bit)(temp&0x01);//这里SERr定义成普通IO口就得了
  578.                                temp=temp>>1;
  579.                                    SERg1=(bit)(temp1&0x01);                                  
  580.                                    temp1=temp1>>1;
  581.                                SCK=1;
  582.                       }       
  583.                 }
  584.                 else if(ucFontColor==3)//黄色
  585.                 {
  586.                            for(k=0;k<8;k++)
  587.                        {
  588.                                
  589.                                    SCK=0;          
  590.                                    SERr=SERg=(bit)(temp&0x01);//这里SERr定义成普通IO口就得了
  591.                                temp=temp>>1;
  592.                                    SERr1=SERg1=(bit)(temp1&0x01);
  593.                                   
  594.                                    temp1=temp1>>1;
  595.                                SCK=1;
  596.                       }       
  597.                 }
  598.    }

  599. }
复制代码








评分

参与人数 5黑币 +72 收起 理由
WseriesY + 11 共享资料的黑币奖励!
zzzkkkzkzk + 3 赞一个!
18316719944 + 5 共享资料的黑币奖励!
滴~电子小白 + 3 赞一个!
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏30 分享淘帖 顶5 踩
回复

使用道具 举报

沙发
ID:116236 发表于 2016-4-23 22:03 | 只看该作者
不错,51黑有你更精彩!!!
回复

使用道具 举报

板凳
ID:84147 发表于 2016-4-25 23:55 | 只看该作者
非常不错,正在研究
回复

使用道具 举报

地板
ID:120571 发表于 2016-5-13 17:34 | 只看该作者
没有仿真吗?
回复

使用道具 举报

5#
ID:84948 发表于 2016-5-14 13:26 | 只看该作者
多谢楼主分享!~~
回复

使用道具 举报

6#
ID:120996 发表于 2016-5-15 17:50 | 只看该作者
谢楼主老师分享!能发一分全部压缩资料给我学习吗? cqgthl@163.com 没有币呀。谢谢!
回复

使用道具 举报

7#
ID:120996 发表于 2016-5-16 09:26 | 只看该作者
谢谢楼主老师!已下载备着有时间学习。
回复

使用道具 举报

8#
ID:124160 发表于 2016-6-4 17:23 来自手机 | 只看该作者
是标准的08接口屏吗?,双色?
回复

使用道具 举报

9#
ID:61840 发表于 2016-6-15 23:29 | 只看该作者
非常不错,正在研究
回复

使用道具 举报

10#
ID:138990 发表于 2016-9-10 00:11 来自手机 | 只看该作者
学习学习
回复

使用道具 举报

11#
ID:136460 发表于 2016-9-12 21:09 | 只看该作者
谢谢楼主,谢谢
回复

使用道具 举报

12#
ID:139308 发表于 2016-9-13 15:27 | 只看该作者
谢谢楼主,谢啦!!☆⌒(*^-゜)v
回复

使用道具 举报

13#
ID:143184 发表于 2016-10-18 11:27 | 只看该作者
漂亮啊!!!顶顶顶!!!!
回复

使用道具 举报

14#
ID:144301 发表于 2016-10-24 22:37 | 只看该作者
感谢群主 好资料
回复

使用道具 举报

15#
ID:147082 发表于 2016-11-17 13:35 | 只看该作者
小白问下:点阵屏是不是通用的啊?
回复

使用道具 举报

16#
ID:46999 发表于 2016-11-18 19:59 | 只看该作者
资料不错,感谢楼主分享!
回复

使用道具 举报

17#
ID:151073 发表于 2016-11-29 20:25 | 只看该作者
楼主能发份给我吗?416559076@qq.com
回复

使用道具 举报

18#
ID:247491 发表于 2017-11-23 20:11 | 只看该作者
好厉害啊
回复

使用道具 举报

19#
ID:293986 发表于 2018-3-19 14:22 | 只看该作者
谢谢分享
回复

使用道具 举报

20#
ID:170847 发表于 2018-4-16 10:12 来自手机 | 只看该作者
好系统的历程
回复

使用道具 举报

21#
ID:283159 发表于 2018-4-17 11:58 | 只看该作者
非常不错,学习
回复

使用道具 举报

22#
ID:101726 发表于 2018-6-23 01:11 | 只看该作者
非常感谢  正是我想要的
回复

使用道具 举报

23#
ID:277213 发表于 2018-9-19 18:33 | 只看该作者
感觉楼主很用心不错,看看
回复

使用道具 举报

24#
ID:65956 发表于 2018-9-27 08:21 | 只看该作者
下载下来试试,看是否有帮助
回复

使用道具 举报

25#
ID:115946 发表于 2018-10-26 15:54 | 只看该作者
谢谢分享,楼主辛苦了
回复

使用道具 举报

26#
ID:251047 发表于 2018-12-4 17:21 | 只看该作者
谢谢分享
回复

使用道具 举报

27#
ID:471573 发表于 2019-1-22 11:01 | 只看该作者
太好了,看看!
回复

使用道具 举报

28#
ID:476677 发表于 2019-2-15 08:35 | 只看该作者
对楼主膜拜中  谢谢分享
回复

使用道具 举报

29#
ID:572090 发表于 2019-7-14 12:32 来自手机 | 只看该作者
hex文件都不能用,也没有源程序,差评
回复

使用道具 举报

30#
ID:473471 发表于 2019-7-25 22:56 | 只看该作者
好资料楼主幸苦了
回复

使用道具 举报

31#
ID:634648 发表于 2019-11-3 09:50 来自手机 | 只看该作者
谢谢分享
回复

使用道具 举报

32#
ID:160514 发表于 2020-2-4 21:54 | 只看该作者
非常好,很好很好很好
回复

使用道具 举报

33#
ID:634648 发表于 2020-2-5 12:03 | 只看该作者
点阵频谱
回复

使用道具 举报

34#
ID:17585 发表于 2020-2-16 10:16 | 只看该作者
LED屏显示屏
回复

使用道具 举报

35#
ID:168911 发表于 2020-3-28 11:24 | 只看该作者
找遍整个压缩包,也没有找到贴出来的程序,是不是我不会找?
回复

使用道具 举报

36#
ID:612563 发表于 2020-4-18 18:13 来自手机 | 只看该作者
向大佬学习
回复

使用道具 举报

37#
ID:887154 发表于 2021-3-1 05:13 | 只看该作者
不错,51黑有你更精彩!!!
回复

使用道具 举报

38#
ID:1008454 发表于 2022-3-8 16:02 | 只看该作者
资料很全,学起来很费劲。
回复

使用道具 举报

39#
ID:307719 发表于 2022-3-22 17:32 | 只看该作者
我做的驱动板

51hei图片20220322173123.jpg (67.88 KB, 下载次数: 86)

51hei图片20220322173123.jpg

51hei图片20220322173027.jpg (107.94 KB, 下载次数: 87)

51hei图片20220322173027.jpg
回复

使用道具 举报

40#
ID:965040 发表于 2024-1-9 14:52 | 只看该作者
资料真全啊,学习了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表