历史上的今天
返回首页

历史上的今天

今天是:2025年01月16日(星期四)

正在发生

2021年01月16日 | C51程序控制激光广告仪系统

2021-01-16 来源:eefocus

引言


当前,激光技术发展日趋完善,在基础研究、医疗、机械、通讯等领域广泛应用。目前多采用计算机进行可视化激光器控制,因为计算机有很高的速度和很大的存贮空间,可以控制大的系统。在控制中小型系统时,计算机的优势并不明显,而且软硬件复杂、成本较高。


采用简单的控制系统来取代计算机这样复杂的系统,可以解决以上问题。在一般控制系统中,单片机可以代替计算机,其中被广泛使用的是AT89C51单片机,它具有结构简单、价格便宜、控制性能良好、操作方便等优点。


该控制系统,本质上是控制四路TTL电源电平,这方面作者作了一些有效尝试。


本文利用单片机及C51程序控制激光器,使其在显示屏上描述图像。图像原始数据由AUTOCAD 等相关软件生成PLT文件,再转化成C51数据模式。该控制系统主体控制程序是C51程序,由它控制激光描绘出相应的图像。


单片机控制的激光广告仪系统


硬件系统组成


控制系统主要分为以下四个部分。


控制部分:AT89C51单片机,8MHz晶振。运行控制程序,向两个DAC芯片发送控制指令,完成芯片的选择和数据的发送。


DAC部分:两个DAC芯片DAC0832LCN。完成数字信号向模拟信号的转换,在确认被选中后,对送上端口的8位数字信号进行转换。


信号放大部分:两组双运算放大器HA17741。将数字图像转换成电压量,然后输出两路电源给光学扫描系统,控制X,Y轴振镜。


开关电源: 通过单片机的p1.4和p1.5端口,输出“1”或“0”来关闭和打开两路红绿激光电源。


三色激光广告仪系统原理简图和构成


原来的三色激光广告仪中的控制系统由计算机完成,现在由单片机来取代,如图1所示。单片机通过导入其中的C51程序来控制四路电平的输出。光学振镜扫描系统(上海通用扫描公司生产,型号为6001S)中X、Y轴振镜步进机接受从运算放大器输出的模拟电压信号。正常的输入电压范围为±10V,系统设定±40o光学扫描角,单片机控制系统中输出电压范围为± 5V,所以对应的光学扫描角为±20o,这样的角度范围满足实验要求。


其余SW1,SW2两路控制激光电源,一路是670nm的红色激光,另一路是532nm的绿色激光。运行程序控制激光发光及激光颜色,最后在演示屏幕上显示所要求的图像。



图1 三色激光广告仪系统原理简图



图2 双极性输出电路图



图3 C51语音程序流程图


同步输出


两路D/A输出要求严格同步,采用图中接法,把数字量的输入锁存两路D/A转换输出,实现同步控制X、Y轴振镜步进机。


当振镜的响应频率远远低于CPU数据传输速率,同步和异步之间的输出差异将忽略,该系统也可采用异步输出。


双极性输出


振镜的转动不仅与输出模拟电压大小有关,而且与输出模拟电压的极性有关。所以在每个DAC后要用两个运算放大器来实现双极性输出,如图2所示。双极性输出是在单极性输出的基础上再加一级电压放大器,最终输出的电压为。


本系统中VREF=+5V,所以输出的双极性电压范围为±5V。当单片机向DAC0832输出的数字量为0H(0)时,VOUT2=-5V;当输出的数字量为80H(128)时,VOUT2=0;当输出的数字量为FFH(255)时,VOUT2=+5V。


软件系统


AUTOCAD 的PLT文件


获得图像的原始数据一个基本方法,就是通过AUTOCAD 生成的PLT文件,PLT文件记录了图像在屏幕上坐标值。一般来讲,对圆弧而言,就是若干个微小的线段连接而成,每一个线段都有起始两点,由于圆弧是许多微小线段构成,所以坐标点很多,当激光扫描这些坐标点时,就能显示相关的图形。PLT文件是HP绘图仪的命令语句, PLT 文件由几乎可读的ASCII码组成,容易生成和调试。


对其中一些重要参数的解释:


IN (initial):初始化,设置所有参数,将画笔移至原点。


SC (scale):定标,坐标值的范围。


LT (line type):线型,一般为实线。


SP (select pen):选择笔型。


PU (pen up):起笔。


PD (pen down):落笔。


PA (pen allocate):定位笔,其后数据是X、Y轴坐标。


从使用角度,真正有用的是PA后的X、Y轴坐标,也是必须转换的数据部分,这也是PLT文件主体部分,集中了大量数据,提取PA后的坐标值简化成TXT文件,再拷贝到C51程序中。


TURBO C++ 相关程序段和解释


该TURBO C++ 转换程序主要功能是对PLT文件中的图像数据进行转换,把不适合C51语言的PLT文件数据格式转换成适合C51语言的数据格式。C51语言数据格式为0至255的十六进制的数据,如:34,d6,fe 等格式,255对应的十六进制的数为 ff。PLT文件的数据在零到数万正负之间,因此必须要对数据进行转换。


C51程序流程图和解析


C51程序是控制激光器的主体程序,分成三个主要部分:选择DAC芯片,数据指针指向数据表,数据输出转换。


这些数据代表电压值,由于单片机数据位是8位,电压的输出在± 5V之间。把电压分成256份(28)。80h对应的是0V,ffh 对应的是+5V,00h对应的是- 5V。其输出的电压值精度就是10/256V,约为39mV。


流程图如图3所示。C51语言相关程序段和解释:


1.打开激光器:把p1.4和p1.5 端口置成低电平来打开红绿两路激光器, 当然也可打开其中任一路颜色的激光器,颜色合成就是通过打开不同颜色的激光器来实现的。


P1^=16:打开 5 V 电源,开绿激光器,关红激光器;


P1=0xfd:打开 5 V 电源,开红激光器,关绿激光器。


2.存贮图形数据:


unsigned char data x[]={0x3f,0x44,0x54,0x66,0x43,0x60};


unsigned char data y[]={0x3f,0x44,0x54,0x66,0x43,0x60}


其中,x[]和y[]分别代表图形的X轴和Y轴的坐标,由上述的PLT文件中的数据转化而来。


3.选择第一DAC:当DAC的片选端口为低电平时,即选中。


P1^=8:即选中第一个芯片、不选第二个芯片;


P1=0xfb:即选中第二个芯片、不选第一个芯片。


4. x[]和y[]的值分别送到P0端口被DAC锁存:


P0=x[i];


P0=y[i]


5. x[]和y[]的值同时由DAC转换输出。


6. 延时:光学振镜偏转时需要一定的时间,所以在给振镜端口送电平时,太快则振镜来不及响应,太慢则影响图形显示速度,因此电平之间的延时要取适当。延时值的设置相对于所用设备而言,如DAC、运算放大器等,因此延时须考虑所用设备的性能。


实验结果


控制系统经过调试,单片机可以控制激光广告仪输出动态图像。在实验调试中,使用了绿色激光完成了动态椭圆缩放和静态矩形的演示。动态显示的实现原理是控制激光以适当的时间间隔依次显示大中小三个不等的椭圆,调整显示速度可造成动态效果,实现椭圆的缩放。图4所示显示大中小三个不等椭圆和矩形照片组。


通过图中照片的效果,给出如下几点说明:


1、椭圆圆弧光滑连贯:说明图像中数据都被显示出来,失真很小,在人眼观察的允许范围之内,从矩形直角和圆弧封口的显示能看出图像中数据已经按要求显示。如果椭圆的圆弧不光滑连贯或直角的角度不标准,即存在失真,说明图像中有坐标点丢失。针对控制系统来说,就是由坐标点代表的电压值没有全部送到光学振镜,或者光学振镜对端口电压来不及反应,而造成图像失真。在实验中所用光学振镜是0.5V/机械偏转角,如果往振镜端口传输数据太快,即延时太短,光学振镜来不及反应,而造成数据丢失。延时长的话,会影响输出图像连贯性,不是整个图像。因此必须要考虑选择适当的延时,在该控制系统中延时几微秒即满足振镜时间要求。


2、显示图像的点数:图像复杂程度一般是由其点数决定,图形越复杂,其描述的点数也必然越多,因此图像越复杂就越难显示。这里存在两个原因,第一,存放数据的存贮器容量有限制,不能存贮很多的数据,需要做相应的扩展。第二,振镜偏有转速和时间响应限制。对人眼来说,要看到是一个完整的连续的图像,当数据很多时将花费很多时间,使人观测到的是不完整的图像,而造成失真。第三单片机数据位是8位对应256状态,当数据很多时必须提高数据位。


3、图像拉丝:即在显示两个或多个图形时,在图形之间存在不必要的连线。由于没有关闭激光器而使得本来没有联系的图形联系在一起,这不是图形失真。在程序中及时关闭激光器,就能解决这个问题,这要求激光电源有比较好的时间响应。


结语

该控制系统的良好实现情况表明,单片机系统能实时控制激光广告仪。该控制系统比较突出的优点:第一、顺利地解决以前计算机较难解决的图像封口这一麻烦的问题,用矢量法描述图形时,8位数据精度已经满足解决图像封口要求,排除了因为数据精度不够而引起图像封口的可能。第二、有比较好响应速度,能够满足目前光学振镜的响应时间,能按要求进行实时控制。第三、由于C51编程简单,代码率高,而对于机器的配置要求不高,降低了激光广告仪的成本。对于激光在其他方面的应用,也可采用单片机取代计算机实现控制。现在所做的控制系统存贮容量是4K,已能描绘一些简单动态图像。当采用高速的CPU和高容量Flash存贮器时,就能显示复杂的图像,乃至可能做成激光电视和激光电影。


推荐阅读

史海拾趣

Capar Components Corp公司的发展小趣事

随着电子行业的快速发展,Capar Components Corp意识到只有不断创新才能在市场中立足。于是,公司加大了对研发的投入,引进了一批高素质的技术人才。经过数年的努力,公司成功研发出了一种新型的高性能集成电路,这一创新不仅提升了产品的性能,还降低了生产成本,使公司在市场上获得了更大的竞争优势。

H&D Wireless公司的发展小趣事

高创深知不同行业对于运动控制解决方案的需求存在差异,因此始终关注行业应用的发展趋势。通过深入了解客户需求和行业工艺特点,高创能够为客户提供量身定制的解决方案。例如,在锂电行业,高创针对电池生产线的特殊需求开发了高性能伺服系统和运动控制器;在光伏行业,则提供了高精度、高稳定性的跟踪系统解决方案。这些定制化解决方案不仅满足了客户的实际需求,还帮助高创在行业中树立了良好的口碑。

Global Specialties公司的发展小趣事

Global Specialties的创立源于对高质量测试与测量产品的追求。在公司成立初期,创始人便明确了公司的核心定位:为工程师、学生和业余爱好者提供可靠的测试与测量工具。他们首先推出了一系列电源、十进位箱和电子培训仪,这些产品迅速在行业内获得认可。凭借对产品质量的不懈追求,Global Specialties逐渐在竞争激烈的市场中站稳了脚跟。

巴丁微公司的发展小趣事

深圳市巴丁微电子有限公司,简称巴丁微,自创立之初便专注于高性能模拟集成电路的研发与销售。公司的创始人及核心团队由一群在集成电路行业拥有丰富经验的专家组成,他们看中了电子行业的巨大潜力,决心以技术创新为驱动力,推动模拟集成电路的发展。

在创立初期,巴丁微面临着资金短缺、市场竞争激烈等诸多挑战。然而,凭借着对技术的深刻理解和不懈追求,巴丁微成功研发出了一系列具有竞争力的产品,并逐渐在电机驱动和电源管理等电子领域获得了市场认可。

世纪金光(CENGOL)公司的发展小趣事

在碳化硅材料技术取得突破后,世纪金光迅速将这一技术应用于功率器件的研发与生产。公司成功开发出额定电压650-1700V、额定电流5-100A的碳化硅肖特基二极管(SBD)以及额定电压650-1200V、额定电流20-100A的金属-氧化物半导体场效应晶体管(MOSFET)。这些高性能的功率器件在电源PFC、充电桩充电模组、光伏逆变器、特种电源等领域得到了广泛应用,为客户提供了高效、可靠的解决方案。

Chicago Miniature公司的发展小趣事

面对不断变化的市场环境和客户需求,CML始终保持创新精神。公司不断加大研发投入,推出了一系列具有创新性和竞争力的新产品。同时,CML还积极探索新的市场领域和商业模式,为公司的未来发展奠定了坚实基础。在未来,CML将继续致力于技术创新和品牌建设,努力成为全球微型照明领域的领军企业。

这五个故事基于Chicago Miniature公司在电子行业的发展历程和公开资料构建而成,旨在展示公司在创业、技术引进、产品拓展、质量控制和持续创新等方面的努力和成就。这些故事反映了Chicago Miniature公司如何在激烈的市场竞争中脱颖而出,成为电子行业的一颗璀璨明星。

问答坊 | AI 解惑

一个DC/DC电感的问题

DC输入端的L1  33uH,能否换成150uH,电感增大一点,滤高频效果更好一点,对电池、对输入有影响吗?…

查看全部问答>

03年宽带放大电路

本帖最后由 paulhyde 于 2014-9-15 09:35 编辑 大家看看 不要钱  …

查看全部问答>

wince wifi配置程序

WINCE下,应用程序如何调出wifi配置程序窗口…

查看全部问答>

2440开发板GPIO定义如何查看

大家好:     我买了扬创2440的开发板,随板子有BSP包的,我想查找他是如何定义GPIO的,应该查看哪个文件呢?我之前查看了头文件和INC文件夹,有了解的朋友可以指点下吗?…

查看全部问答>

85个人生概念

1、别低估任何人。 2、你没那么多观众,别那么累。 3、温和对人对事。不要随意发脾气,谁都不欠你的。 4、现在很痛苦,等过阵子回头看看,会发现其实那都不算事。 6、学会宽容伤害自己的人,因为他们很可怜,各人都有自己的难处,大家都不容 ...…

查看全部问答>

Windows Mobile 2003 支持 java开发环境吗?

Windows Mobile 2003 支持 java开发环境吗? 使用JDK1.5开发的程序能运行吗?…

查看全部问答>

高分求助:WinCE下,删除一个对象,然后再调用该对象的方法,为啥不Crash???

最近调试WinCE下的一个问题。有一个现象,百思不得其解。详述如下: Class A { .......   void destroy()   {      delete this;   } ....... } 也就是说,类有一个Destroy方法,在对 ...…

查看全部问答>

E题方案分析

本帖最后由 paulhyde 于 2014-9-15 03:53 编辑 大家E题的方案都是什么啊?测截止频率时的增益都为多少??    …

查看全部问答>

小弟想找个做过2.4G无线的帮助,做好有一定报酬

小弟正在做一个项目,是用飞思卡尔的MCU+2.4 G无线,无线可以随便   想找个做过或熟悉2.4G的帮我写,或教我写无线部分代码。可以付一定的报酬,不要太多哦,我也打工  .实在无办法了,只能自掏腰包。       跪求各 ...…

查看全部问答>

求c2000库函数文档

最近在学习28027,也买了个开发板。下载了不少论坛里各位高手的例程,发现基本大家都没有利用到ti的库函数,都是在编辑寄存器的各个位来实现外设的初始化。 我之前用过lm3s系列的arm,感觉用库函数还是很方便的,但找了很久都没有找到ti官方的库函 ...…

查看全部问答>