初级组D题 蔡金彪Word格式文档下载.docx
- 文档编号:17899216
- 上传时间:2022-12-12
- 格式:DOCX
- 页数:32
- 大小:519.75KB
初级组D题 蔡金彪Word格式文档下载.docx
《初级组D题 蔡金彪Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《初级组D题 蔡金彪Word格式文档下载.docx(32页珍藏版)》请在冰豆网上搜索。
3.5显示模块的设计
3.6蜂鸣器模块的设计
4程序的设计....................................11
4.1程序设计的分析
4.2各模块程序的流程图及功能说明
三、附录...............................................14
完整的源程序
二、方案的比较
给高速供转动的主板供电有3种方法
1、用无线输电的方法,无触点,长寿命;
2、用电动机电刷的方法,简单有效;
这样寿命很短很容易磨损电路板
3、直接用电池给主板供电,电池装在主板上随主板转动,成本高,寿命短,影响转速
方案选择:
3理由:
采用市场上比较轻、薄的锂电子。
质量小,焊接方便。
2控制方式
1实体按键:
程序实现简单;
但是控制操作困难,显示板只有在停下了才能实现按键操作;
2遥控按键:
操作简单,在显示板旋转的同时可以实现按键操作,快捷方便;
但是程序控制困难;
2理由:
在显示板旋转的同时可以实现按键操作,方便。
二、方案的设计与论证
1LED旋转显示器在实际中的意义
LED的特点非常明显,寿命长、光效高、无辐射与低功耗。
LED的光谱几乎全部集中于可见光频段,其发光效率可达80~90%。
将LED与普通白炽灯、螺旋节能灯及T5三基色荧光灯进行对比,结果显示:
普通白炽灯的光效为12lm/W,寿命小于2000小时,螺旋节能灯的光效为60lm/W,寿命小于8000小时,T5荧光灯则为96lm/W,寿命大约为10000小时,而直径为5毫米的白光LED为20~28lm/W,寿命可大于100000小时。
有人还预测,未来的LED寿命上限将无穷大。
由于LED的种种优势,使得其在现在的各个领域里运用越来越广泛,我们设计的旋转LED显示屏幕,具有结构新颖,节约材料的特点,一列16个LED灯旋转显示之后,可以代替显示近似于16x180像素的显示宽度和内容,我想以后不断完善和改进之后应该可以在灯箱广告和儿童玩具方面有一定的发展空间。
2显示原理
旋转时钟是利用视觉暂留效应设计出来的,物体在快速运动时,当人眼所看到的影像消失后,人眼仍能继续保留其影像0.1-0.4秒左右的图像,这种现象被称为视觉暂留现象。
是人眼具有的一种性质。
人眼观看物体时,成像于视网膜上,并由视神经输入人脑,感觉到物体的像。
但当物体移去时,视神经对物体的印象不会立即消失,而要延续0.1-0.4秒的时间,人眼的这种性质被称为“眼睛的视觉暂留”。
假设我们设定我们的眼睛的暂留时间是0.4秒,如果我们的1LED旋转一周的时间快过0.4秒,那么我们看到的图像就是这一列LED在各个位置显示的图像的叠加,如右图,如果我们用定时器把LED旋转一周的各个位置分割出180分,让它在相应的位置显示相应的图像,那么我们就可以得到一个累加的图像效果了。
3系统硬件电路的设计
系统硬件框图右图所示。
系统硬件原理如下图所示。
对射式U型槽光耦具有,响应速度快,驱动简单,安装容易,容易于单片机通信等特点。
如图所示,当上电之后,的光敏三极管的集电极时输出低电平,当有物体挡住了光敏三极管感应的红外光线时,光敏三极管的集电极和发射极处于高阻态,所以集电极输出高电平,当光敏三极管再次感应到红外光源的时候,集电极再次输出低电平,从而给单片机一个中断信号。
3.4.1.遥控接收硬件部分
遥控模块部分,我们选择了一个市面上最常见的一种红外遥控接收头,把它的信号引脚直接接在单片机的外部中断1的借口上(P3.3),然后,遥控器,我们用了一个以前用的CD播放器的一个遥控器。
接收头如图
3.4.2.遥控编码特点
我们采用的遥控器是脉宽调制的串行码,以脉宽为0.565ms、间隔0.56ms、周期为1.125ms的组合表示二进制的“0”;
以脉宽为0.565ms、间隔1.685ms、周期为2.25ms的组合表示二进制的“1”,其波形如图2所示。
上述“0”和“1”组成的32位二进制码经38kHz的载频进行二次调制以提高发射效率,达到降低电源功耗的目的。
然后再通过红外发射二极管产生红外线向空间发射,如图3所示,连发波形如图4所示。
UPD6121G产生的遥控编码是连续的32位二进制码组,其中前16位为用户识别码,能区别不同的电器设备,防止不同机种遥控码互相干扰。
该芯片的用户识别码固定为十六进制01H;
后16位为8位操作码(功能码)及其反码。
UPD6121G最多额128种不同组合的编码。
当遥控器在按键按下后,周期性地发出同一种32位二进制码,周期约为108ms。
一组码本身的持续时间随它包含的二进制“0”和“1”的个数不同而不同,大约在45~63ms之间,图4为发射波形图。
当一个键按下超过36ms,振荡器使芯片激活,将发射一组108ms的编码脉冲,这108ms发射代码由一个起始码(9ms),一个结果码(4.5ms),低8位地址码(9ms~18ms),高8位地址码(9ms~18ms),8位数据码(9ms~18ms)和这8位数据的反码(9ms~18ms)组成。
如果键按下超过108ms仍未松开,接下来发射的代码(连发代码)将仅由起始码(9ms)和结束码(2.5ms)组成。
代码格式(以接收代码为准,接收代码与发射代码反向)
①位定义
②单发代码格式
③连发代码格式
3.4.3.遥控解码
解码的关键是如何识别“0”和“1”,从位的定义我们可以发现“0”、“1”均以0.56ms的低电平开始,不同的是高电平的宽度不同,“0”为0.56ms,“1”为1.68ms,所以必须根据高电平的宽度区别“0”和“1”。
如果从0.56ms低电平过后,开始延时,0.56ms以后,若读到的电平为低,说明该位为“0”,反之则为“1”,为了可靠起见,延时必须比0.56ms长些,但又不能超过1.12ms,否则如果该位为“0”,读到的已是下一位的高电平,因此取(1.12ms+0.56ms)/2=0.84ms最为可靠,一般取0.84ms左右均可。
根据码的格式,应该等待9ms的起始码和4.5ms的结果码完成后才能读码。
P0.0
P0.2
P0.3
P0.4
P0.5
P0.6
P0.7
P2.0
P2.1
P2.2
P2.3
P2.4
P2.5
P2.6
P2.7
LED显示器具有功耗低,接口控制方便等优点,而且模块的接口信号和操作指令具有广泛的兼容性,并能直接与单片机接口,可方便地实现各种不同的操作,在各类测量及控制仪表中被广泛的应用。
当在LED上显示汉字时,应先取得汉字的点阵构成数据,然后将其写入显示存储器中进行显示。
旋转LED广告屏是一种通过同步控制发光二极位置和点亮状态来实现图文显示的新型广告屏,其结构新颖,成本低廉,可视角度达360°
。
本设计采用32个2并排发光二极管,两排灯是并联关系,分别接一个三极管作为数字开关,从而控制显示的颜色,利用人眼的“视觉暂留效应”显示文字及图案。
显示模块如图1.8所示。
蜂鸣器的电路设计如图:
蜂鸣器的作用主要是添加广告音乐。
通过控制I/O口的电平,用延时程序或者定时器控制接蜂鸣器的端口输出频率在2KHZ左右的矩形波就能让蜂鸣器发声了
4程序的设计
通过思考,发现需要让LED的闪亮频率与旋转的频率同步,所以采用了自适应的算法,自适应调节的算法的思想就是在外部中断处理程序里,先给定时器T0一个合适的初始值,通过定时器T0处理程序给T0的中断的次数计数,当旋转一周完成后,根据实际中断次数与预设的N比较,根据比较结果,在外部中断处理程序中对T0的初设值进行修正,直到定时器T0的中断次数达到N为止。
如此一来就如同有一个反馈信号一样,在不停的反馈的调节定时器的初值,旋转一周所产生的终端次数始终保持在我设定的一个值里面,这样我就可以很方便的设定在某一个位置显示上面类容了,而且整个调节过程是动态的,程序中并不需要知道旋转一周的具体时间值。
算法用了一个很简单的数学公式:
D=D+(S-N)
其中N为预设的固定值。
当S>
N时,修正值D增大,使定时器T0的时间值增大,随之N值减小。
当S<
N时,修正值D减小,使定时器T0的时间值减小,随之N值增大。
当S=N时,修正值不产生变化。
附上大概的自适应算法的框架。
:
/*外部中断0处理函数*/
voidintersvr0(void)interrupt0using1
{
D=D+(S-N)*2;
//修正值
Pt=Pt+D;
//得到定时器T0的初设值
S=0;
//计数器清零,将重新计数
}
/*定时中断0处理函数*/
voidtimer0(void)interrupt1using1
TH0=-Pt/256;
TL0=-Pt%256;
//设置定时器T0的初设值
S++;
//计数
这样一来,显示稳定的问题解决了。
4.2.1.MAIN函数部分
Main函数主要是用来初始化各个函数,然后进入空指令的死循环,这样来等待其他中断的来临,显示部分在中断服务程序中实现,参看右流程图
4.2.2.外部中断0服务程序部分(voidINT00(void)interrupt0)
外部中断0主要用于显示更新和定位用以及校正定时器T0的初值,所以我们在硬件部分加了一个光耦来给外部中断0提供中断信号,当旋转一周就会产生一个中断,当中断出现的时候,中断服务程序就会把这一周实际的T0中断次数与设定的值对比,然后校正T0的初值,最后,把各个显示数据清零,达到更新显示和定位的目的,详细参看右流程图。
4.2.3.定时器T0中断服务程序(voidkjp_test(void)interrupt1)
定时器T0的终端服务程序主要是为了把旋转一周的各个位置分为180分,这样方便显示和确定显示位置及显示内容。
在T0的中断服务程序中,首先重新给T0赋校正后的初值,然后判断当前的T0中断次数,及确定当前显示的位置,然后再判断是否改送显示,如果要送显示,则调用相应的现实之程序,然后T0中断次数自加一,最后跳出中断,详细参看下流程图
4.2.4.外部中断1服务程序部分(voidINT00(void)interrupt1)
外部中断1服务程序主要是控制红外遥控。
通过红外解码,接受红外信号,辨别出遥控器所按的键码,对应不同的键码调用不同的子函数,从而实现红外的控制。
遥控器的键码如图
4.2.5.定时器T1中断服务程序(voidT1_()interrupt3)
因为上面的T0的初值不是固定的,所以我们不能再使用T0用做时间运行的标准,要不时间会时快是慢,所以这里我们使用了T1作为时间的运行标准,我们给T1的定时为20毫秒,当产生50个中断,就是一秒钟,所以50个中断,时间秒的值加1。
利用时间基准,我们可以实现对广告屏显示的定时,当产生500个中断即10s时显示关闭,再产生500个中断时显示再次打开。
三、附录:
完整的程序设计:
#include<
reg52.h>
#include<
intrins.h>
/****************************************************************************************************/
unsignedcharcodehanzi_a[]={
0x00,0x00,0x00,0x00,0x00,0x00,0x1f,0xff,
0x12,0x22,0x12,0x22,0x32,0x22,0xd2,0x22,
0x52,0x22,0x12,0x22,0x12,0x22,0x12,0x22,
0x1f,0xff,0x00,0x00,0x00,0x00,0x00,0x00,};
//自
unsignedcharcodehanzi_b[]={
0x04,0x10,0x24,0x38,0x24,0xd0,0x27,0x10,
0x24,0x30,0x24,0xa0,0x24,0x72,0x04,0x24,
0x08,0x08,0x08,0x30,0xff,0xc0,0x08,0x04,
0x08,0x02,0x0f,0xfc,0x00,0x00,0x00,0x00,};
//动
unsignedcharcodehanzi_c[]={
0x01,0x00,0x02,0x00,0x04,0x00,0x1f,0xfe,
0xe0,0x00,0x40,0x20,0x00,0x40,0x00,0x80,
0xff,0xfc,0x03,0x02,0x06,0x02,0x0c,0x02,
0x38,0x02,0x10,0x1e,0x00,0x00,0x00,0x00,};
//化
unsignedcharcodehanzi_d[]={
0x28,0x04,0x24,0x08,0x22,0x32,0x21,0xc2,
0x26,0xc2,0x38,0x34,0x04,0x04,0x18,0x08,
0xf0,0x30,0x17,0xc0,0x10,0x60,0x10,0x18,
0x14,0x0c,0x18,0x06,0x10,0x04,0x00,0x00,};
//欢
unsignedcharcodehanzi_e[]={
0x02,0x02,0x82,0x04,0x73,0xf8,0x20,0x04,
0x00,0x02,0x3f,0xe2,0x20,0x42,0x40,0x82,
0x40,0x02,0x3f,0xfa,0x20,0x02,0x20,0x42,
0x20,0x22,0x3f,0xc2,0x00,0x02,0x00,0x00,};
//迎
unsignedcharcodehanzi_f[]={
0x01,0x00,0x02,0x04,0x0c,0x1c,0x3f,0xc0,
0xc0,0x1c,0x09,0x02,0x16,0x02,0x60,0x92,
0x20,0x4a,0x2f,0x82,0x20,0x02,0x24,0x0e,
0x22,0x00,0x31,0x90,0x20,0x0c,0x00,0x00,};
//您
unsignedcharcodeyingyu_a[]={
0x1f,0xc0,0x10,0x3c,0x00,0xe0,0x1f,0x00,
0x00,0xe0,0x10,0x3c,0x1f,0xc0,0x00,0x00,};
//W
unsignedcharcodeyingyu_b[]={
0x10,0x04,0x1f,0xfc,0x11,0x04,0x11,0x04,
0x17,0xc4,0x10,0x04,0x08,0x18,0x00,0x00,};
//E
unsignedcharcodeyingyu_c[]={
0x10,0x04,0x1f,0xfc,0x10,0x04,0x00,0x04,
0x00,0x04,0x00,0x04,0x00,0x0c,0x00,0x00,};
//L
unsignedcharcodeyingyu_d[]={
0x03,0xe0,0x0c,0x18,0x10,0x04,0x10,0x04,
0x10,0x04,0x10,0x08,0x1c,0x10,0x00,0x00,};
//C
unsignedcharcodeyingyu_e[]={
0x07,0xf0,0x08,0x08,0x10,0x04,0x10,0x04,
0x10,0x04,0x08,0x08,0x07,0xf0,0x00,0x00,};
//O
unsignedcharcodeyingyu_f[]={
0x10,0x04,0x1f,0xfc,0x1f,0x00,0x00,0xfc,
0x1f,0x00,0x1f,0xfc,0x10,0x04,0x00,0x00,};
//M
/*以下数组是音符编码*/
unsignedcharcodeSONG[]={//祝你平安
0x26,0x20,0x20,0x20,0x20,0x20,0x26,0x10,0x20,0x10,0x20,0x80,0x26,0x20,0x30,0x20,
0x30,0x20,0x39,0x10,0x30,0x10,0x30,0x80,0x26,0x20,0x20,0x20,0x20,0x20,0x1c,0x20,
0x20,0x80,0x2b,0x20,0x26,0x20,0x20,0x20,0x2b,0x10,0x26,0x10,0x2b,0x80,0x26,0x20,
0x30,0x20,0x30,0x20,0x39,0x10,0x26,0x10,0x26,0x60,0x40,0x10,0x39,0x10,0x26,0x20,
0x30,0x20,0x30,0x20,0x39,0x10,0x26,0x10,0x26,0x80,0x26,0x20,0x2b,0x10,0x2b,0x10,
0x2b,0x20,0x30,0x10,0x39,0x10,0x26,0x10,0x2b,0x10,0x2b,0x20,0x2b,0x40,0x40,0x20,
0x20,0x10,0x20,0x10,0x2b,0x10,0x26,0x30,0x30,0x80,0x18,0x20,0x18,0x20,0x26,0x20,
0x20,0x20,0x20,0x40,0x26,0x20,0x2b,0x20,0x30,0x20,0x30,0x20,0x1c,0x20,0x20,0x20,
0x20,0x80,0x1c,0x20,0x1c,0x20,0x1c,0x20,0x30,0x20,0x30,0x60,0x39,0x10,0x30,0x10,
0x20,0x20,0x2b,0x10,0x26,0x10,0x2b,0x10,0x26,0x10,0x26,0x10,0x2b,0x10,0x2b,0x80,
0x18,0x20,0x18,0x20,0x26,0x20,0x20,0x20,0x20,0x60,0x26,0x10,0x2b,0x20,0x30,0x20,
0x30,0x20,0x1c,0x20,0x20,0x20,0x20,0x80,0x26,0x20,0x30,0x10,0x30,0x10,0x30,0x20,
0x39,0x20,0x26,0x10,0x2b,0x10,0x2b,0x20,0x2b,0x40,0x40,0x10,0x40,0x10,0x20,0x10,
0x20,0x10,0x2b,0x10,0x26,0x30,0x30,0x80,0x00,
//路边的野华不要采
0x30,0x1C,0x10,0x20,0x40,0x1C,0x10,0x18,0x10,0x20,0x10,0x1C,0x10,0x18,0x40,0x1C,
0x20,0x20,0x20,0x1C,0x20,0x18,0x20,0x20,0x80,0xFF,0x20,0x30,0x1C,0x10,0x18,0x20,
0x15,0x20,0x1C,0x20,0x20,0x20,0x26,0x40,0x20,0x20,0x2B,0x20,0x26,0x20,0x20,0x20,
0x30,0x80,0xFF,0x20,0x20,0x1C,0x10,0x18,0x10,0x20,0x20,0x26,0x20,0x2B,0x20,0x30,
0x20,0x2B,0x40,0x20,0x20,0x1C,0x10,0x18,0x10,0x20,0x20,0x26,0x20,0x2B,0x20,0x30,
0x20,0x2B,0x40,0x20,0x30,0x1C,0x10,0x18,0x20,0x15,0x20,0x1C,0x20,0x20,0x20,0x26,
0x40,0x20,0x20,0x2B,0x20,0x26,0x20,0x20,0x20,0x30,0x80,0x20,0x30,0x1C,0x10,0x20,
0x10,0x1C,0x10,0x20,0x20,0x26,0x20,0x2B,0x20,0x30,0x20,0x2B,0x40,0x20,0x15,0x1F,
0x05,0x20,0x10,0x1C,0x10,0x20,0x20,0x26,0x20,0x2B,0x20,0x30,0x20,0x2B,0x40,0x20,
0x30,0x1C,0x10,0x18,0x20,0x15,0x20,0x1C,0x20,0x20,0x20,0x26,0x40,0x20,0x20,0x2B,
0x20,0x26,0x20,0x20,0x20,0x30,0x30,0x20,0x30,0x1C,0x10,0x18,0x40,0x1C,0x20,0x20,
0x20,0x26,0x40,0x13,0x60,0x18,0x20,0x15,0x40,0x13,0x40,0x18,0x80,0x00,
};
/******************************************************************************************************************/
#defineucharunsignedchar
#defineuintunsignedint
unsignedi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 初级组D题 蔡金彪 初级
![提示](https://static.bdocx.com/images/bang_tan.gif)