LED点阵书写显示屏的光笔是如何定位点阵的坐标的?求教啊?

LED点阵书写显示屏的光笔是如何定位点阵的坐标的?求教啊?,第1张

在定时中断里面进行动态扫描整个LED屏,瞬间点亮LED,使LED发出微弱光,用光电二极管制作光笔,光笔放在某个LED点上,光笔吸收该LED发出的微弱光,产生一个信号变化输入到处理器中。利用定时中断,每扫描一个LED,就读取光笔的信号,如果光笔有信号,就说明此点被选择。将此点行列坐标存储起来。定时中断每扫描一次,先关闭所有LED,当判断出此次扫描的一个LED行列,再将上次存储的坐标重新赋给LED接口,使重新点亮。程序执行一次,时间很短,点亮的LED不断关闭导通,使人眼看的效果仍为保持点亮。

光笔所接收到的信号一般都非常微弱,而且光探测器输出的信号往往被深埋在噪声之中,因此,要对这样的微弱信号进行处理,一般都要先进行预处理,以将大部分噪声滤除掉,并将微弱信号放大到后续处理器所要求的电压幅度。

光笔所接收到的信号放大后经AD转换器转换,输出寄存器取数据或者把数据写入AD控制寄存器中。

单片机上电后,首先对AD和定时器进行初始化,然后再启动AD转换把光笔接收的信息转换成数字信号送到MCU进行处理。通过定时中断对点阵快速动态扫描,使其发出微弱的光,每扫描一个LED灯,检测光笔是否接收到信号,从而取得对应点的坐标定位。将此点行列坐标存储起来。定时中断每扫描一次,先关闭所有LED,当判断出此次扫描的一个LED行列,再将上次存储的坐标重新赋给LED接口,使其重新点亮。如果3S内没有输入,则把记录坐标的LED灯点亮,从而实现点亮、划亮的功能。通过按键功能实现整屏擦除、多字回显等功能。

可以进些网站看看论坛下点资料,LED控制程序,你需要控制成什么样,需求不明确,可以提供一个思路,可以用中断方式也可以用查询方式两种方式。中断方式需要按键接单片机INT引脚,通过按键触发终端,在中断程序中写出你想要的控制方式;查询方式,可以通过一个无限循环不停查询接按键的引脚,根据查询结果来控制你LED灯的亮或者灭 。

例如shaduo36的问题。

while(1)

{

keyscan() //永久的运行,除非断电

}

void keyscan()

{

if(S1==0)

{

delayms(10) //延时10毫秒

if(S1==0) //2个if是用来消除键盘震荡的影响。S1=0时就是键盘按下(S1一端接地)

led=0 //给0就是亮,LED一端为VCC,一端接P0^0口。

while(S1==0)//检查S1是否放下。如果一直按着,S1一直为0,则一直在这循环

led=1 //既然上面的while过了,S1当然就没被按住,所以让灯灭

}

这个需要看GPS定位主机是跟LED显示屏分体的,还是一体的。分体的GPS主机一般装在驾驶舱里。主机通过串口线跟显示屏连接。显示屏丢了没法通过定位找的。要是GPS模块和屏幕一体的,可以通过定位看看,只要屏幕接电就会有GPS信号了。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/yw/11796750.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存