历史上的今天
返回首页

历史上的今天

今天是:2024年12月06日(星期五)

正在发生

2019年12月06日 | 51单片机旋转led(POV-LED)显示系统设计报告与代码

2019-12-06 来源:51hei

摘要

随着社会的发展,科技也得到进步。相对的,人们对人文的需要也越来越重视。我们从科技服务于人文的角度出发,设计出本POV-LED显示系统。该系统使用STC89C52RC作为主要控制单元,采用的是POV -LED(POV即persistence of vision视觉停留)技术,借助人眼的视觉暂留效果,通过旋转LED灯的方式来显示各种图像。原理是通过电动机带动上层的LED灯绕电机为中心轴高速旋转,同时单片机采集传感器反馈的信息,控制各个LED灯在旋转平面对应的位置上点亮,构成一幅点阵画,由于人的视觉暂留效果,会认为LED是同时点亮的,从而显示图像。


一、系统设计方案

1.1、总体方案

本设计采用双电源供电的方式,一部分供给下层的点击,另一部分供给上层的单片机。旋转线阵LED显示屏在高速旋转时,使用通过软件延时使之在相应的时刻亮灭,人的视觉暂留现象,从而形成完整连续的图像。因此对于显示方面可以采用单片机依据其晶振频率控制延时来实现。采用霍尔传感器采集数据并检测标志杆,标志杆作为现实的起点,从而得到稳定的显示画面。由独立按键开关的切换程序功能,从而显示不同的画面。

系统框图如下:

1.2系统组成

电源部分: 供电部分主要由两排4节5号电池通过电池盒固定连接组成,能在较长时间内稳定输出5v的直流电压供电机及单片机使用。

单片机部分:单片机部分采用STC89C52RC系列单片机芯片,该系列芯片造价低廉,工作稳定。


旋转显示部分:旋转显示部分主要由16颗贴片式led发光二极管组成。

传感器部分:传感器部分采用霍尔传感器。

  • 系统设计

2.1主控板的选择

方案一:

方案二:

采用ARM为系统的控制核心,优点是功能强大,集成度度高,提高了运行稳定性,系统的处理速度高,适合作为大规模的系统的控制核心。


采用51单片机作为系统的控制核心。用其控LED,足以实现预期的性能指标,操控。51单片机运算功能强,软件编程灵活、自由度大,功耗低、体积小、技术成熟,价格低廉。

由于考虑到不宜太高,那么对系统处理信息的速度要求也就不会太高。综合成本考虑,我们选择采用方案二。

2.2 供电方式选择

LED旋转采用电机旋转的方式,以下是两种电机方案的对比:

方案一:

方案二:

采用单电源供电,通过单电源同时给主控板和减速直流电机进行供电,该方案的优点是,减少机身的重量,操作简便。其缺点是,使得单片机的波动较大,影响单片机的工作性能,稳定性比较弱。

采用双电源供电,通过两个独立电源分别对单片机和减速直流电机进行供电,此方案的优点是,减少信号波动,稳定性比较好,小车运行较稳定。


通过对以上方案尽心比较以上两种方案,为了得到更稳定的效果,我们选取方案二。


2.3 驱动电机选择

方案一:

方案二:

采用减速直流电机,优点是电路简单。转速稳定,调速简便,且价格低廉。对于智能车的运行,能够很好的控制。

采用步进电机,步进电机是将电脉冲信号转变为角位移或线位移的开环控制元步进电机件。可以按照人们的预定的速度调速,但是电机的控制较为复杂。


表1.1 电机性能对比

功能

步进电机

减速直流电机

调速性能

较差

较好

控制难易程度

较难

简单

价格

中等

较低



综合考虑,采用减速直流电机作为LED旋转电机。

2.4传电方案的选择

该装置的难点之一在于供电底座与需要用电的旋转发光部分的电气连接,装置要求能给旋转发光部分提供稳定的直流电压的同时阻力较小不影响电机带动其转动。


1电刷连接

优点:成本相对较低,能提供稳定电压,同时电刷工作时旋转有一定的美观性,阻力较大。

缺点:会有轻微的噪声,稳定性较差,易损毁,接触电阻较大,电压损耗较大,制作工艺要求高。

2划环

优点:能提供稳定电压,接触电阻极其小,电压损耗较小,占用体积较小,阻力较小。

缺点:元件价格高。

3无线供电

优点:能提供稳定电压,阻力较小。

缺点:电路元件数量较多,占用体积较大

综合考虑我们采用无线供电方式。

2.5旋转显示部分的选择

贴片式Led发光二极管

优点:体积较小,重量较轻。

缺点:亮度稍暗,不适用于室外强光环境。

直插式led发光二极管

优点:亮度较高,显示效果好。

缺点:占用体积较大,重量较大。

综合考虑我们采用贴片式Led发光二极管。


3、电路与程序设计

3.1无线供电

单片机系统和LED灯都分布在电机上,被电机带东旋转,如果直接用电线必然会被绞在一起然后断掉,有团队考虑了两种方案:1.电刷供电;2.无线供电。在尝试第一种电刷时,由于电机转动会产生微微振动,使得电刷不够稳定导致单片机芯片一直处于重置状态。所以采用了无线供电,电路图如下:

原直流电电源供电经过高频振荡电路产生振荡电流传到传送模块—感应线圈。用感应线圈把电能传到电机上的电路,传上了的电是交流电,经过整流桥和电容整流滤波后,产生一个稳定的直流电压给单片机供电。


3.2起始位置校准

电机转速的稳定性直接决定了显示是否有重影和浮影。然而,要其完全不变是不可能的。在这种情况下,误差会积累而形成浮影。


所以,对起始位置的不断矫正是理由非步进电机制作旋转LED显示屏必不可少的技术。通过霍尔传感器检测置于固定位置的小磁铁来不断定位起始位置消除积累误差。本装置中当霍尔原件到固定小磁铁位置,就会反向导通产生低电平而触发外部中断。指针板每旋转一周,就会产生这样一个中断信号,这个信号被称为“过零信号”。


外部中断的任务是将旋转角度清零,以此消除积累误差。

3.3功能切换

通过当按住按键时,让STC89C51芯片IO口检测到低电位,然后通过程序设计来实现功能切换;

3.4最小系统与LED线阵

 

一个条状电路板上集成了16个贴片型发光LED—线阵LED。集成有LED的电路板绕其一端随电动机转动。由STC89C51芯片IO口控制,当转动到合适的角度时,对应的IO口输出高电平点亮合适的LED就可以显示需要显示的内容。


4 软件设计

4.1 软件平台

简介:Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、链接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(μVision)将这些部分组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。如果你使用C语言编程,那么Keil几乎就是你的不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。[3]工作界面如图4.4.1。


另一款用到的软件是PCtoL2002,可以有效减少程序开发周期。工作界面如图4.4.2



4.2程序流程设计

该POV-LED通过实时检测各个模块传感器的输出电平,利用红外对管检测黑线实现寻迹,通过火焰传感器实现报警和灭火,从而实现比赛的基本要求。其程序流程图如图4.4所示。

5 结束语

项目设计以STC89C52RC单片机为核心,采用了霍尔传感器,工作灵敏。该机器人可以实现了如下能:

  • 实时检测按键,切换功能。

  • 稳定显示图像。

6附录


单片机源程序如下:

#include

#include

#define uint unsigned int

#define uchar unsigned char

//Led P1,P2

sbit key=P3^3;//霍尔开关

sbit key_1=P3^4;//功能开关

voidtongxinyuan();

voidhanzi();

int  s;

  s=0;

uchar code table[]={

0x00,0x00,0x80,0x00,0x80,0x00,0x80,0x20,0x80,0x10,0x80,0x10,0x80,0x08,0x80,0x08,

0x80,0x0C,0x80,0x04,0x90,0x06,0x90,0x02,0x88,0x03,0xC8,0x01,0xD8,0xF9,0xF8,0xFF,

0xF4,0x7F,0x54,0x02,0x46,0x02,0x46,0x02,0x42,0x02,0x40,0x04,0x00,0x04,0x00,0x04,

0x00,0x04,0x40,0x04,0x40,0x04,0xC8,0x02,0x90,0x02,0x90,0x02,0x10,0x02,0x00,0x02,

0x01,0x02,0x03,0x02,0xFF,0xFF,0xFE,0xFF,0xFE,0x3F,0x00,0x02,0x00,0x02,0x00,0x02,

0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"科",0*/


0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x08,0x00,0x18,0x00,0x18,0x40,0x18,0x40,0x08,

0x40,0x08,0x40,0x44,0x40,0x84,0x40,0x84,0x40,0x86,0x43,0xE2,0xFF,0xFF,0xFE,0xFF,

0x22,0x01,0x20,0x01,0x20,0x00,0x20,0x80,0x00,0x80,0x00,0x80,0x00,0x86,0x20,0x86,

0x20,0x46,0x20,0x46,0x20,0x4A,0x20,0x4A,0x21,0x71,0xF3,0x31,0xFE,0x31,0x3E,0x31,

0x36,0x39,0x12,0x7F,0x10,0x6F,0x10,0x47,0x10,0xC1,0x10,0xC1,0x10,0xC0,0x10,0x80,

0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"技",1*/


0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x20,0x00,0x20,

0x00,0x20,0x00,0x10,0x00,0x10,0x00,0x18,0x00,0x08,0x00,0x0C,0x00,0x06,0x00,0x06,

0x00,0x03,0x80,0x01,0xC0,0x01,0xE0,0x00,0x70,0x00,0x7C,0x00,0xBC,0x00,0x1C,0x01,

0x0C,0x01,0x04,0x03,0x00,0x02,0x00,0x06,0x00,0x04,0x00,0x0C,0x00,0x0C,0x00,0x18,

0x00,0x18,0x00,0x30,0x00,0x30,0x00,0x70,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,

0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"人",2*/


0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x80,0x00,0x40,0x00,0x40,

0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x41,0x40,0x21,0x40,0x21,0x40,0x21,

0x20,0x22,0x20,0x32,0x22,0x16,0x22,0x1C,0x22,0x1C,0x26,0x0E,0xE6,0x0F,0xE6,0x1F,

0xE4,0x11,0xE0,0x30,0x10,0x30,0x10,0x20,0x10,0x60,0x10,0x60,0x10,0x40,0x10,0xC0,

0x10,0xC0,0x10,0xC0,0x10,0xC0,0x10,0xC0,0x10,0xC0,0x00,0x80,0x00,0x80,0x00,0x80,

0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"文",3*/


};


voiddelayms(uint z)

{

              uinti,j;

              for(i=z;i>0;i--)

                            for(j=110;j>0;j--);


}

/*****n(us)延时子程序*****/

voidDelayUs(uint N)

{

uint x;

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

}

/*****键盘扫描*****/

intkeyscan()

{

              if(key_1==0)

                            {

                            delayms(10);

                            if(key_1==0)

                            {

                                          while(!key_1);

                                          if(++s==3)s=0;

                            }

              }

return s;

}


//****************同心圆******************

voidtongxinyuan()

{

              int k;

              P1=0x01;

              for(k=0;k<8;k++)

              {                           

              delayms(500);

              P1=_crol_(P1,1);

              }

              P1=0x00;

              P2=0x01;

              for(k=0;k<8;k++)

              {

              delayms(500);

              P2=_crol_(P2,1);

              }

              P2=0x00;

              while(key_1);

}

//****************汉字******************

voidhanzi()

{             

              inti;

              if(key==0)

              {

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

                 { 

                            P1=table[i];

                            P2=table[++i];

                            DelayUs(10);              

                 }

                 P1=0x00;

                 P2=0x00;

   }

}


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

……………………


推荐阅读

史海拾趣

DCD [Digital Core Design]公司的发展小趣事

在快速变化的市场环境中,创新成为DCD公司持续发展的关键。公司不断加大研发投入,鼓励员工提出创新性的想法和建议。同时,公司还积极引进国内外先进的技术和管理经验,为公司的发展注入了新的活力。在创新驱动下,DCD公司不断推出具有竞争力的新产品和解决方案,赢得了客户的广泛赞誉和市场的持续认可。

磁联达(CND-tek)公司的发展小趣事

随着5G技术的快速发展,磁联达(CND-tek)公司意识到无线充电技术将成为未来的重要趋势。公司投入大量资源进行无线充电发射线圈的研发,经过多次试验和改进,终于成功推出了一款性能稳定、效率高的无线充电产品。这一创新不仅为公司带来了丰厚的利润,也进一步巩固了公司在行业内的领先地位。

酷宅(Coolkit)公司的发展小趣事

酷宅科技在追求经济效益的同时,也积极履行社会责任。公司关注环保和可持续发展问题,推动绿色制造和绿色消费。在产品设计和生产过程中,酷宅科技注重节能减排和资源循环利用,努力降低对环境的影响。此外,公司还积极参与公益事业和社会活动,为社会做出积极贡献。

以上五个故事框架涵盖了酷宅科技在电子行业中的发展历程、市场策略、技术创新和社会责任等方面。每个故事都基于事实进行描述,旨在客观展现酷宅科技在电子行业中的发展轨迹和贡献。

福斯特半导体(Foster)公司的发展小趣事

酷宅科技自成立以来,一直致力于智能家居技术的研发和应用。2016年,酷宅与荣事达品冠达成战略协议,共同打造智能家居开放平台。这一平台不仅集成了酷宅先进的物联网应用技术和稳定的云端服务,还整合了荣事达在智能家居领域的丰富经验和资源。通过合作,双方共同推动智能家居产业的发展,为消费者提供更加便捷、智能的家居生活体验。

CYANLITE公司的发展小趣事

CYANLITE公司成立于XXXX年,由一群富有创新精神的电子工程师创立。他们发现当时市场上对于高效能LED照明产品的需求日益增长,于是决定利用自己的技术背景,专注于研发和生产高品质的LED照明产品。起初,公司规模较小,资金有限,但他们凭借对技术的热情和坚持不懈的努力,成功研发出了第一款具有竞争力的LED灯具,并逐渐在市场上获得了认可。随着产品的热销,CYANLITE公司逐渐扩大了生产规模,并增加了研发投入,以保持其在行业中的领先地位。

Geyer Electronic E K公司的发展小趣事

CYANLITE公司非常重视产品品质的管理和控制。他们建立了严格的质量检测体系,确保每一件产品都符合高标准的质量要求。此外,公司还注重客户反馈的收集和分析,不断改进产品和服务以满足客户的需求。这种对品质的执着追求使得CYANLITE公司赢得了客户的信任和忠诚。许多客户都表示愿意长期与CYANLITE公司合作,并推荐他们的产品给其他人。

问答坊 | AI 解惑

只要用金属做箱子,然后将箱子接地,是错误的

屏蔽就是对两个空间区域之间进行金属的隔离,以控制电场、磁场和电磁波由一个区域对另一个区域的感应和辐射。具体讲,就是用屏蔽体将元部件、电路、组合件、电缆或整个系统的干扰源包围起来,防止干扰电磁场向外扩散;用屏蔽体将接收电路、设备或系 ...…

查看全部问答>

【转】说实话:模拟设计可以老但不可以朽

安静的生活不需再起什么波澜,即将进入四十岁不再进入研发黄金时间段,想把自己做过的想过的都留下来,没有什么名利场的事情了,说出来格外轻松。面对目前大部分国内杂志近乎清一色的嵌入系统,单片机和软件的文章,硬件电路尤其是模拟电路设计似乎 ...…

查看全部问答>

wince6用什么开发驱动?

除了写makefile,然后build之外还有吗? 以前5.0可以用evc,pb等工会开发。 vs2005好像没有支持建立驱动的项目选项啊。…

查看全部问答>

有没有谁做嵌入式开发的,大虾给俺指导一下?谁有WIN CE的模拟器?

我现在准备开发WIN CE5.0应用程序,现在按照网上指导的方法VS2005不能与目标机相联(目标机是WIN CE5.0系统),从开发机上拷的那5个文件不能在目标机器上运行,执行后报如下错误提示: \'ConmanClient2\'is not a valid Windows CE application ...…

查看全部问答>

猎头职位:赴美国工程师!月薪五万,咨询13381085719 13381085771刘先生

猎头职位:赴美国工程师!月薪五万,咨询13381085719 13381085771刘先生…

查看全部问答>

软仿与硬仿的差距?

本帖最后由 dontium 于 2015-1-23 13:33 编辑 一段算法 软仿真时间大约160us, JTAG硬件仿真一下子降到3ms 这个差距会由哪些方面引起?谢谢! …

查看全部问答>

ARM+LINUX 中断一定要用驱动在内核完成吗

最近在折腾LINUX 的GPIO中断。用驱程实现了的情形是:1 在驱程里,借用copy_to_user函数,在中断发生时,让一个数值发生变化写回用户态,使得应用程序可以读出这个变化。问题是:这样看起来,好像跟查询没什么区别。以前玩51的时候,情况不是这样的 ...…

查看全部问答>

晒WEBENCH设计的过程+3.3VDSP供电

本帖最后由 nwx8899 于 2014-8-17 13:22 编辑 利用易电源软件工具设计的一个DSP的一个供电系统,,输入电压是直流14-22V,输出3.3V给DSP供电,电源选择3安输出,选择环境温度27摄氏度。轻轻输入几个数据然后点击开始设计了。 不是,还要等待一会 ...…

查看全部问答>

AM335x(TQ335x)学习笔记——挂载Ramdisk

上篇文章中我们已经能够通过u-boot启动内核了,但是没有能够启动成功,从内核的log中可以看出,内核启动失败的原因是没有挂载到root文件系统,本文将使用busybox制作根文件系统并打包成ramdisk供u-boot启动内核使用。(1)制作根文件系统使用busybo ...…

查看全部问答>