魔术棒的开发与应用.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
魔术棒的开发与应用

魔术棒(梦幻棒、摇摇棒、梦幻灯) 的开发与应用 1 魔术棒(梦幻棒、摇摇棒、梦幻灯) 的开发与应用 双龙电子 耿德根 魔术棒(梦幻棒)是利用人的视觉暂留原理设计的一种互动式信息工具, 也可以 说是平板点阵显示屏某列对人眼(相对静止)的相对运动的应用, 眼球相对运动观察事物,有着广 泛的应用, 有待我们去开发应用。魔术棒可作儿童玩具、娱乐、宣传、广告用品、演唱会、运动 会用品等等场合使用。魔术棒相对运动时,车、船、飞行器件上及室内外吸引眼球的动态广告,制 作成本低、安装方便,大有发展前途。例高速运行的汽车、火车,装在车上的魔术棒可吸引地面上 人的眼球。其实利用人的视觉暂留原理设计的东西很多, 中国人发明的走马灯, 现在使用的电视 屏幕、显示器, 动态LED、LCD 显示器, 电影, 激光成像, 全息成像技术, 将来的立体电视等等。 本人为了论证这个原理,在双龙电子的 SL-DIY02-1(或 3)开发实验器上, 用 AVR 单片机及 AT89S 系列单片机做实验, 并验证通过。用AT90S8515 的PA 口,使用建表方式制作LED 魔术棒, ISP 在线下载程序后, 用手握开发实验器,LED发光二极管面向自己,左右摇动SL-DIY02-1开发实验器 板,就可看到“AVR”三个字。 当然修改数据也可显示其它字符、图案或动画。用PC 机创建字符 库、图形库也是很方便的。如果32 个I/O 端口(或更多)LED(可扩展为任何发光体,最强的是激光) 排成一列, 做成一根棒,或一条状,那显示的字符、图形就更大了。如用多色LED 组成多彩显示棒, 还可产生彩色图案或动画, 甚至可取代户外大屏幕广告,快去实验开发吧! 这里仅提供魔术棒基本原理,真正的发明创造是去应用,还要去做工作,然后产品化,产生效益! 硬件连接: 如图所示, 硬件设定LED 低电平有效, 低电平点亮LED。也可几个LED 灯用一个 I/O 口, 字形就大了。 创建魔术棒字形表方法如下, 硬件设定 LED 低电平点亮, 在字符并排显示时,为了分清两字 符, 加X 列, 让灯熄灭延时, X=1 到3 列。 一、AVR 单片机使用建表方式魔术棒灯程序。 SLAVR726.ASM (原AVR 高速嵌入式单片机原理与应用7.2.6 移植) .include8515def.inc ;器件配置文件 广州市天河双龙电子有限公司 http://www.SL. 魔术棒(梦幻棒、摇摇棒、梦幻灯) 的开发与应用 2 .org $0000 ;设置起始地址 .equ leddata=0x0250 ; 定义数据表首址 rjmp reset ; 跳过中断区转主程序 .cseg .org $0010 ; 主程序地址 RESET:ldi r16,$5f ;设置堆栈为$025f out spl,r16 ; SPL=$5F ldi r16,$02 out sph,r16 ;SPH=$02 ldi r16,$15 ; 延时常数, 可根据魔术棒移动速度及字多字少考虑,可从10-28 之间调节, mov r15,r16 ;R15 存延时常数(0x10 延时2.18ms,0x15—5.5ms,0x20—24.54ms,0x28—55.5ms ser r16 ;设置A 口为输出口, 也可多个I/O 口连接起使用, 使点阵显示字符更大 out ddra,r16 ;设置A 口方向寄存器为输出 L0:ldi zl,low(leddata*2) ; 因为AVR 程序存储器是 16 位的, 所以要X2 ldi zh,high(leddata*2) L1:lpm ;从程序区取数, 即取到R0 中 mov r16,r0 ;取到的数送R16 cpi r16,$0a

文档评论(0)

baoyue + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档