标题: 32灯摇摇棒DIY [打印本页]

作者: 清风兑酒    时间: 2019-3-27 10:33
标题: 32灯摇摇棒DIY
本帖最后由 清风兑酒 于 2019-3-27 10:36 编辑

32颗灯摇摇棒(PCB+制作资料+元件清单+源程序+上位机)


一、说明:8IO驱动32颗高亮发光二极管,程序对上一版本有做改进,显示效果更好,自适应的更好。另外增加了上位机改字的功能,从而大大减少了改动源程序的麻烦。也使得改字很方便,上位机功能可支持输入文字,大小任意,只要在32*64这个区域内就行。支持画图,导入BMP格式图片及保存图片,一共可以配置8张图片,每个图片独立,软件自带各种图案,也可从Word里导出图案,显示图案在范围内随便定义大小。
二、所有资料截图

三、原理图


四、PCB截图


五、上位机软件说明请看:64x32摇摇棒取模软件帮助文档”
下载波特率:2400  8-N-1
下载字幕数据:
请正确连接4P下载线,如下图:
下载时请这样放置,让摇摇棒竖着放,意在不让滚珠开关导通,这样会导致下载不了。上电后有些LED会亮,指示可以下载字幕数据,如果不亮请重新上电。
软件配置:生成方式配置
串口设置中:请务必选择2400波特率,串口选择对应的串口号。或者从设备管理器COM管理看对应串口号。一般软件会自动搜索,前提是先插了USB转串口再打开软件。

六、程序
#include <NEW_8051.H>
#include <task.h>
                                   //缓存
#define uchar unsigned char

#define uint unsigned int    //宏定义

#define KEY P3^0   //定义画面切换按键

uchar KY;      //KY作用在后面说明     

uchar disp=0;     //显示汉字指针,该参数+1的话,显示的字符多4个,同时要给要显示的汉字取模加到汉字数组中。

uchar pic=0,num=0;     //pic为按键次数;num为中断次数







uchar code xinjiaxin[]={

0x00,0x0E,0x11,0x21,0x42,0x84,0x42,0x21,0x11,0x0E,0x00,0x08,0x08,0x3E,0x08,0x08,
0x00,0x00,0x0E,0x1E,0x3C,0x78,0x3C,0x1E,0x0E,0x00,0x14,0x14,0x14,0x14,0x00,0x0E,
0x1F,0x3F,0x7E,0xFC,0x7E,0x3F,0x1F,0x0E,/*"xinjiaxin*/

};


unsigned char code miss[] = {


0x00,0x00,0x00,0x81,0xFF,0x81,0x00,0x00,0x00,0x00,0x04,0x7C,0x04,0x7C,0x04,0x7C,
0x00,0x7D,0x00,0x5C,0x54,0x54,0x74,0x00,0x5C,0x54,0x54,0x74,0x00,0x00,0x00,0x7F,
0x80,0x80,0x80,0x7F,0x00,0x00,0x00,0x00,/*I miss U*/


};








/*****函数声明*****/



void display2(void);





void display5(void);



/*****n(单位us微秒)延时子程序*****/

void DelayUs(uint N)

{

uint x;

for(x=0; x<=N;x++);

}

/*****主函数*****/

void main(void)

{

IT0=1;

EX0=1;

EA=1;      //开中断,下降沿中断

KY=0;

while(1)     //主程序中只检测按键

{

  if(KEY==0)     //图案切换键按下

  {

   DelayUs(20000);     //去除按键抖动

   if(KEY==0);

   {

   pic++;

   disp=0;

   num=0;

   } //endif

  } //endif

  

} //endwhile

} //endmain

/*****中断服务程序*****/

void intersvr0(void) interrupt 0 using 1

{

KY=~KY;      //每个摇动来回水银开关会在摆幅两端分别产生下降沿中断,只提取其中一次(从左向右摇才显示)

if(KY==0)

{

if(pic>1)pic=0;//总共有6个图案

  num++;     //计算中断次数

  switch(pic)      //选择显示图案

  {

  

   case 1:{display2();}break;

  

   case 2:{display5();}break;

   default:{display2();}  

  }

    }

}




/*****显示子程序3(汉字)*****/

void display2(void)

{

uchar i;

DelayUs(5000);

for(i=0;i<40;i++)

{

     P1=~miss[i*1];

     DelayUs(75);
}

}




/*****显示子程序6(汉字)*****/

void display5(void)

{
uchar i;

DelayUs(5000);


for(i=0;i<40;i++)

{

     P1=~xinjiaxin[i*1];

     

     DelayUs(65);

}

}


/*****END*****/




32灯摇摇棒制作全套资料.rar

10.43 MB, 下载次数: 142, 下载积分: 黑币 -5

32灯摇摇棒PCB.rar

1.67 MB, 下载次数: 100, 下载积分: 黑币 -5


作者: 13859084007    时间: 2019-4-3 20:21
无法解压
作者: 清风兑酒    时间: 2019-4-7 10:09
13859084007 发表于 2019-4-3 20:21
无法解压

能的啊
作者: 快乐眼泪    时间: 2019-4-7 20:52
有没有空板卖?
作者: 清风兑酒    时间: 2019-4-26 16:15
快乐眼泪 发表于 2019-4-7 20:52
有没有空板卖?

有PCB空板的
作者: 1812245491    时间: 2019-4-26 21:49
学习学习

作者: 14781708282    时间: 2019-9-24 11:50
好东西  感谢分享
作者: 562969678    时间: 2019-12-6 13:43
资料完整,要好好学习
作者: Dragon2483    时间: 2020-4-8 11:22
按照这个做出来的根本显示不出,上位机也上传不了,检查了很多遍都没问题,(滚珠开关跟切换开关同时接P32,程序里面又是P30),搞不懂,不知道哪里出错了
作者: ericwu2020    时间: 2020-8-17 18:00
Dragon2483 发表于 2020-4-8 11:22
按照这个做出来的根本显示不出,上位机也上传不了,检查了很多遍都没问题,(滚珠开关跟切换开关同时接P32 ...

这就很尴尬了
作者: hhdsdy    时间: 2020-8-17 19:06
Dragon2483 发表于 2020-4-8 11:22
按照这个做出来的根本显示不出,上位机也上传不了,检查了很多遍都没问题,(滚珠开关跟切换开关同时接P32 ...

这是个锻炼的好机会啊,好好通读一般程序,理解控制流程,然后就是找错误,可以提高自己的水平。
作者: 陌上轻雨寒    时间: 2024-1-22 16:45
Dragon2483 发表于 2020-4-8 11:22
按照这个做出来的根本显示不出,上位机也上传不了,检查了很多遍都没问题,(滚珠开关跟切换开关同时接P32 ...

里面的程序和电路是没有任何关系的




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1