问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

请问,摇摇棒的设计思路,和pic单片机的c程序。谢谢!

发布网友 发布时间:2023-07-05 14:51

我来回答

1个回答

热心网友 时间:2024-11-09 23:47

以下是详细说明:

图形显示的原理: 

       利用人眼的视觉暂留效应,使手在摆动到不同位置的时候,让位于一条直线上的LED显示二维图像的不同的列,实现图形扫描显示。

物理机制: 

       当我们在摆动手臂的时候,短时间内摆动位置和左右幅度不会有太大变化,利用我们手臂的这个运动规律,只要能得到棒从一侧摆动到另一侧的时间,然后把这个时间分成N份,然后在每一份的时间里显示不同的花样就能实现图形的显示。当我们在摆动手臂的时候,并不能预先得知此次摆动需要的时间,怎样得到从一侧摆动到另一侧的时间呢?

       再想想,短时间内我们手臂的摆动频率也不会有特别大的变化,我们只要能得到前一次摆动所用的时间,然后用这个时间近似得到下一次摆动所需要的时间,然后分N份就可以了。得到一次摆动所需的时间的任务由光遮断器完成,在棒上装一个可以摆动的用来遮挡光遮断器光线的细杆,粗细比光遮断器的狭缝稍宽,我用的是整流桥焊后剪下的一段管脚。每左右摆动一次这个杆就会通过一次光遮断器,使单片机产生一次中断,两次中断之间的时间就是想要得到的时间,实现这个功能用掉2051的一个定时器T0和外部中断INT0。然后用2051的另一个定时器T1,其定时时间是T0的N分之一,每次中断依次显示一列,就是照片上的效果。 

       再细想一下,手臂摆动的频率大于2Hz的时候才大概能由视觉暂留看出图形,再快也不过十几Hz,由T0为16位定时器的最长计时时间得到2051的时钟频率1MHz最合适,还有遮挡用的细杆的粗细也可以大概估算,使其不会对计时精度产生太大影响。

所用元件: 

AT89C2051 8元 

高亮LED共8个 3.6元 

电池盒 0.5元 

单面万用板 8元 可以裁成3块,做3个摇棒 

陶瓷谐振器 1元 

光遮断器 2元 

电阻电容导线 2元 

外壳* 0.7元 可以裁成2块

可选元件: 

电源开关 1元

总成本不超过20元

*外壳我用在家乐福买的半透明文件夹卷成的

此电路电路非常简单,代码短,但是用到了2051的外部中断编程和T0、T1定时器编程,非常适合初学者练习。我制作这个玩具花费了两个晚上的时间。此电路和程序还有扩展改进的空间,如在长时间不摆动的情况下可以使单片机进入省电模式,显示不仅限于对称图片等,大家可以试试。

以下是源程序:

/*************************************************************************/ 

// --------------- 

// LED显示摇棒 

// --------------- 

// 作者:nim 于 http://www.21icbbs.com 2005-1-7 

// 

// email: linyige@yahoo.com 

// 

// 本设计版权归作者所有,请勿擅自用于商业目的,转载请注明作者及出处 

/*************************************************************************/ 

#include <reg51.h> 

#define SEG 17 //每帧图片分成17列来显示 

#define INTERVAL 20 //每幅图片在左右摇摆20次后换下一幅

typedef unsigned char uchar; 

typedef unsigned int uint;

code char pattern[17][3]={ //3幅图片的字模 

{0xff,0xff,0xff}, 

{0xff,0xff,0xff}, 

{0xff,0xff,0xff}, 

{0xff,0x9f,0xff}, 

{0xff,0x6f,0xf9}, 

{0xff,0x77,0x65}, 

{0xfe,0xbb,0x1e}, 

{0x7e,0xdd,0xfe}, 

{0x00,0xee,0xfe}, 

{0x7e,0xdd,0xfe}, 

{0xfe,0xbb,0x1e}, 

{0xff,0x77,0x65}, 

{0xff,0x6f,0xf9}, 

{0xff,0x9f,0xff}, 

{0xff,0xff,0xff}, 

{0xff,0xff,0xff}, 

{0xff,0xff,0xff}, 

};

uchar phase,th1,tl1,index,count;

main() 

EA=0; 

EX0=1; 

ET1=1; 

PX0=1; 

IT0=1; 

TMOD=0x11; 

index=0; 

EA=1; 

while(1) 

}

void Int0_Handle(void) interrupt 0 using 2 

uint t0_time; 

TR0=0; 

TR1=0; 

TF1=0; 

t0_time=TH0<<8|TL0; 

TL0=0; 

TH0=0; 

TR0=1; 

t0_time=65535-t0_time/SEG; 

th1=t0_time/256; 

TH1=th1; 

tl1=t0_time % 256; 

TL1=tl1; 

if (count<3*INTERVAL){ //3幅图片循环 

count++; 

else{ 

count=0; 

index=count/INTERVAL; 

if (th1!=0xff || tl1!=0xff){ //如果摆动特别慢,定时器溢出就不显示 

phase=0; 

TR1=1; 

else{ 

TR1=0; 

}

void Timer1(void) interrupt 3 using 3 

if (phase<SEG) //17段依次显示 

P1=pattern[phase][index]; 

phase++; 

TH1=th1; 

TL1=tl1; 

}

参考资料:互联网

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
小米平板6Max没有网络怎么办 ...wifi和4G网络我都试过都现实吗没有网络。刚买的是正品没有刷机_百度... 2023年淘宝双11招商规则 淘宝国庆狂欢季招商规则及玩法 淘宝年货买不停招商规则 淘宝超来电活动招商规则 ZIP转换成RAR怎么转换? 衢州醉根艺品有限公司怎么样? 徐谷青主要业绩 徐谷青人物介绍 摇摇棒的工作原理是什么? 胃到喉咙部分火辣辣的,打隔像吃馒头一样噎人是怎么回事 喉咙火烧反胃 我好不容易攒够钱了,但我既想买汉服又想买jk又想买魏悦瑾sp天啊,到底... 华为p40 pro怎么插内存卡 蚂蚁能吃吗 蚂蚁能不能吃 上海到承德怎么走最方便 从承德坐火车到上海该怎么坐车 从河北承德出发到上海最省钱的行程怎么走 中国体量最大、最先进通信卫星实践二十号核心试验全部完成 转发器是哪种卫星的有效载荷 如果同学嘲笑你怎么办? 被同学嘲讽怎么办? 同学嘲笑我怎么办? 同学们老是取笑我怎么办? 全班同学都嘲笑我,我该怎么办 大连八月十五好玩的地方 十月份大连有什么好玩的地方 乒乓球室一般铺什么? YOSO是什么品牌的手表? YOSO健身房塑胶地板的优势健身房地板的品牌价格 求该摇摇棒原理图的详细解释.特别是左边那一部分电路.最好是每一个器 ... 单片机涉及什么?怎么做这种led灯?谁能解释一下原理 摇摇棒刚焊接完会亮吗 这是一种摇摇棒的的电路图,求高手解释各部件名称,和原理。 摇摇棒没有水银开关和滚珠开关,怎样可以通过程序达到同样的效果_百度知 ... 摇摇棒的显示原理是什么? 电视调皮王妃里面的演员邓琳是哪的人 求《模仿犯》高清资源 女生18岁还能长吗? bigwavebeacln的翻译 民宿任住的如程会员卡,有使用次数吗?是所有房型都可以预订吗?_百度... 谁能介绍几本有关修车的好书,不是用处大的书别说? ...下列拟成立的协会,会员数量符合社会团体成立条件的是( )。_百度... 富成花园别墅周边环境怎么样?生活便利吗? 北京富成花园算豪宅吗 富成花园的项目介绍 堕落的兄弟又叫什么 欧美国家对非洲免签吗 富成金鼎休闲俱乐部怎么样 中国在欧洲和非洲免签和电子签的区别