标题: 32灯摇摇棒DIY [打印本页]
作者: 清风兑酒 时间: 2019-3-27 10:33
标题: 32灯摇摇棒DIY
本帖最后由 清风兑酒 于 2019-3-27 10:36 编辑
32颗灯摇摇棒(PCB+制作资料+元件清单+源程序+上位机)
一、说明:8个IO驱动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
能的啊
作者: 快乐眼泪 时间: 2019-4-7 20:52
有没有空板卖?
作者: 清风兑酒 时间: 2019-4-26 16:15
有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
这就很尴尬了
作者: hhdsdy 时间: 2020-8-17 19:06
这是个锻炼的好机会啊,好好通读一般程序,理解控制流程,然后就是找错误,可以提高自己的水平。
作者: 陌上轻雨寒 时间: 2024-1-22 16:45
里面的程序和电路是没有任何关系的
欢迎光临 (http://www.51hei.com/bbs/) |
Powered by Discuz! X3.1 |