找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4196|回复: 6
收起左侧

光立方下位机MCU程序和上位机软件(支持音频)

  [复制链接]
回帖奖励 30 黑币 回复本帖可获得 10 黑币奖励! 每人限 1 次
ID:422885 发表于 2019-1-13 10:02 | 显示全部楼层 |阅读模式
本人单片机、C语言,初学者菜鸟一枚,有什么需要改进的希望大家多给意见。
上位机是自己用E语言编写的,不知道什么原因个别安全软件会报毒(不放心的慎用)

废话不多说直接上附(码)。

视频:
0.png 0.png

上位机运行界面:
52fea3d91f42ea523b83c4b7e19f524.png

单片机源码:
  1. #include"STC15W4K.H"
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. uchar xx,yy,zz,layer,icnt,rxcnt;
  5. uchar display[8][8];
  6. void init()
  7. {
  8.         AUXR |= 0x01;                //串口1选择定时器2为波特率发生器
  9.         AUXR &= 0xFB;                //定时器2时钟为Fosc/12,即12T
  10.         T2L = 0xFC;                //设定定时初值    11.0592MHz    波特率57600
  11.         T2H = 0xFF;                //设定定时初值
  12.         AUXR |= 0x10;                //启动定时器2
  13.         
  14.         TH0=0xfa;    //0.5微秒@11.0592MHz
  15.         TL0=0xff;    //0.5微秒@11.0592MHz
  16.         
  17.         TR0=1;       //定时器0开始计时
  18.   TMOD &= 0xF0;                //设置定时器模式
  19.         
  20.         SCON=0X50;//串口工作于方式1 可接收REN=1
  21.         PCON|=0x80;//波特率加倍

  22.         EA=1;                //开全局中断
  23.         ES=1;                //开串口中断
  24.         ET0=1;                //开定时器0中断
  25.         PS=1;                //配置串口中断优先
  26. }

  27. void main()
  28. {
  29.         
  30.                 P0M1=0x00; P0M0=0xff;P1M1=0x00; P1M0=0x00;P2M1=0x00; P2M0=0xff;P3M1=0x00; P3M0=0x00;
  31.         P4M1=0x00; P4M0=0xff;P5M1=0x00; P5M0=0xff;P6M1=0x00; P6M0=0xff;P7M1=0x00; P7M0=0xff;
  32.         rxcnt=0;
  33.         init();
  34.         while(1);
  35. }
  36. void rxd() interrupt 4                  //串口中断服务程序
  37. {                                                                  
  38.                 uchar temp=0;                        
  39.                 RI=0;
  40.                 ++rxcnt;
  41.                 if(rxcnt>=2)
  42.                 {                        
  43.                         temp=SBUF;                        //读出接收到的数据
  44.                         display[xx][yy]=temp;         //按顺序存入显示数组中
  45.                         xx++;
  46.                         if(xx>=8)                                
  47.                         {
  48.                                 xx=0;
  49.                                 yy++;
  50.                                 if(yy>=8)
  51.                                 yy=0;
  52.                         }
  53.                 }
  54.                 if(rxcnt>=65)
  55.                 rxcnt=0;        
  56. }
  57. /*****************************************************************/
  58. void timer0_isr(void) interrupt 1
  59. {
  60. uchar i;
  61.          static uchar layer=0;
  62.          P1=0;
  63.          for (i=0;i<8;i++)
  64.          {
  65.                    P2=1<<i;
  66.                    P0=display[layer][i];
  67.          }
  68.          P1=1<<layer;
  69.          if (layer<7)
  70.                    layer++;
  71.          else
  72.                    layer=0;
  73. }
复制代码
0c72553a1dae9749e4a86e24c9b1562.png

全部资料51hei下载地址:
效果预览.7z (5.29 MB, 下载次数: 40)
回复

使用道具 举报

ID:432687 发表于 2019-5-26 03:03 来自手机 | 显示全部楼层
非常感谢你。 这是一个很棒的网站。 在这里,您可以真正了解有关中国STC  -  MCU的许多信息。 我很着迷有多少人在这里提出他们的想法。
回复

使用道具 举报

ID:518116 发表于 2019-5-27 03:42 来自手机 | 显示全部楼层
以我现在的状态来看就是 仰望大佬
回复

使用道具 举报

ID:524250 发表于 2019-6-1 23:16 | 显示全部楼层
在学习中
回复

使用道具 举报

ID:543334 发表于 2019-6-3 20:57 | 显示全部楼层
向大佬学习
回复

使用道具 举报

ID:462888 发表于 2019-7-24 14:11 | 显示全部楼层
上位机编的真不错。
回复

使用道具 举报

ID:614806 发表于 2020-12-8 16:01 | 显示全部楼层

向大佬学习
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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