ImageVerifierCode 换一换
格式:DOCX , 页数:24 ,大小:473.55KB ,
资源ID:16826071      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/16826071.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机程序Word文档下载推荐.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

单片机程序Word文档下载推荐.docx

1、void main(void) TMOD=0x02; TH0=0x06; TL0=0x06; TR0=1; ET0=1; EA=1; while(1) if(P0_0=0) for(i=5;i0;i-) for(j=248;jj-); second+; if(second=60) second=0; dispbuf0=second; dispbuf1=second/10; while(P0_0=0); if(P0_1=0) minite+; if(minite=60) minite=0; dispbuf3=minite; dispbuf4=minite/10; while(P0_1=0); i

2、f(P0_2=0) hour+; if(hour=24) hour=0; dispbuf6=hour; dispbuf7=hour/10; while(P0_2=0); void t0(void) interrupt 1 using 0 mstcnt+; if(mstcnt=8) mstcnt=0; P1=dispcodedispbufdispbitcnt; P3=dispbitcodedispbitcnt; dispbitcnt+; if(dispbitcnt=8) dispbitcnt=0; tcnt+; if(tcnt=4000) tcnt=0;标题:多位数码管动态显示定时器中断实现(C

3、51) *作者:wentao日期:2007.2.22 软件:KeilC51V8.02 芯片:AT89X51 说明:实验板实测通过,数码管为8位共阳 声明:自用存档!另仅供需要的朋友参考,请勿用做不道德转载及商业用途! */ #include #defineucharunsignedchar ucharcodedis_code16=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,/段码表 /01234567/对应内容 0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e;89abcdef datai0x00;循环控制变量兼偏移量,初值为0

4、 j0xfe;位码(选通各位数码管),初值为11111110 voidmain() P20xff;关所有数码管 TMOD0x01;定时/计数器0工作于方式1 TH00xfc;装载定时常数64536(fc18) TL00x18;EA1;开总中断 ET0定时/计数器0允许中断 TR0启动定时/计数器0 while(1);执行主程序,等待中断 time0(void)interruptT/C0中断服务程序(延时1ms) j;位码送入P2口显示 P0dis_codei;段码表中取值送P0口 _crol_(j,1);位码循环左移1位选通下一数码管 i+;偏移量加1取下一段码(循环控制加1) &0x07;偏

5、量增到8时自动归0(控制在07之间循环) 重新装载定时常数 旋转LED飘在空中的文一效果:二整体结构:三制作方法:1.电机的改装电路的供电和LED 的定位是本制作的一个难点。装在电机上的电路始终在高速旋转,我们就无法使用通常的方法来给电路供电。但我们可以通过对电机的改造来解决。我们都知道,一般的直流电机是线圈作为转子,而永磁体作为定子的。他是通过电刷来实现给线圈供电的,而且直流电机的旋转需要交变的电流,这是由固定在转子轴上的换向器来巧妙的实现直流变为交流的。我们的电路是固定在电机的转子上的,它和转子是保持相对静止的。因此,我们可以从电机的转子中取得电源。方法很简单,也就是从电机的换向器上用漆包

6、线把电引到电路板上,经整流,滤波后给单片机电路供电。换向器上的每个电极什么时候变化,是和电机转子的位子有关的,我们正好可以使用其中的一路信号来给LED 显示的起始位置定位。具体改装过程如下:1)拆开电机(我使用的是录音机上的12V直流电机),注意拆的时候别弄坏了电机的电刷!2)小心地从电机换向器上的三个电极引出三条漆包线(由于我改装到这步时忘了拍照了,此图略)3)取下电机外壳的含油轴承4)我用原来装在电机上的皮带轮试了一下,正好可以放进拆掉含油轴承的地方,而且可以和外壳之间灵活旋转(运气不错!大家也可以试试别的)。于是我在这个上面钻了几个小孔,把那三条漆包线从小孔里穿出来。从而可以用来保护漆包

7、线在转子和定子结合出的安全。(注意:替代上去的部分是和转子保持固定,和外壳之间是可以旋转的)。5)组装回整个电机,电机改装至此结束2.电路电路结构的安排见上面整体结构图,需要注意的是要安排好电机轴两边的电路重量尽量相近。3.程序程序很简单,我这里给出一个C51 的示例程序,大家可以按自己的需要来改,做成旋转时钟等什么的。/*名称:旋转LED作者:章健日期:2006.1.5*/#include#define uchar unsigned charvoid delay();uchar zimo16=0xff,0x7d,0x00,0x7d,0xff, /字母“I”0xc7,0x83,0xc1,0x8

8、3,0xc7, /心形图案0xff, /用来搁开心形图案和字母U0x03,0xfd,0xfd,0xfd,0x03; /字母“U”/0xc9,0xb6,0xb6,0xb6,0xc9;void main()TCON|=0x01; /外部中断0 下降沿触发IE=0x81; /开中断void delay() /延时子程序,延时长短请根据的你的电机转速进行调整uchar j;for(j=0;j255;j+);void display() interrupt 0 /中断处理uchar i;for(i=0;i16;i+)P1=zimoi;delay();P1=0xff;纯手工打造摇摆LED 时钟看到市场上正

9、在流行的时尚商品摇摆LED 时钟,感觉非常新颖独特,正在玩单片机的我,激起了自己也想DIY 一个的冲动。不就是一个流水灯吗?有什么难的?! 于是,一个单片机项目就这样开始了。然而动手以后才知道问题并非想象那样简单,因没有任何现成的资料,机械的、电子的和编程的问题一大堆,一个一个需要自己来解决。经历二十多天的苦战和无数次的修改与调试,作品终于完成,基本达到预先要求。 现将制作资料整理出来,与广大DIY 爱好者分享。一. 整体方案 本制作是根据视觉暂留原理, 让一排8 只LED作往复运动, 在空中呈现八个字符的显示屏,可显示数字或英文字符。开机后先显示“Welcome!”欢迎字符(见图1), 再进

10、入时钟显示状态。显示屏同时显示“时” 、“分” 、“秒”信息,用“:”分隔(见图2)。图1 开机画面 图2 运行状态 显示分“正常运行”、“调分”和“调时” 三种状态。当处于调整状态时,调整的项会闪现,以便识别。为此,设置三个调整按键,一个为“状态键”,一个为“加法键”,一个为“减法键”。(见图3)图3 按键的设置 图4 音圈电机组件 摇棒的动力部分采用从废旧硬盘拆下的音圈电机(见图4),驱动采用直流电机驱动方式。 结构方面,将音圈电机直接安装在万用板上,将万用板的四周用四根螺柱与一透明有机板结合成一体,构成支撑摇棒底座。(见图5, 图6)。图5 万用板与有机板构成底座 图6 底座侧面二. 实

11、作要点1 主板的结构布局见图7。图7 主板布局 图8 摇棒上的LED2LED 的焊接,将LED 两脚跨接在电路板两端的方式进行焊接。使LED 紧密排列在一起。3摇棒上的LED 与主板上的信号用柔性排线连接,音圈电机供电占2 位,LED 信号传输占9 位,所以至少要11 位的排线。(见图9)图9 排线与拉簧 图10 拉簧4为保持摇棒的平衡, 在摇棒接近旋转轴的两端加装两只拉簧,这两只拉簧的规格尽量保持一致,弹性强弱要适中,最好可多找几种规格的试试。(图9,图10)5采用驱动直流电机正反转的方式,驱动音圈电机来回摆动。让电机正、反转的方法很多,最典型的是H 桥电路驱动,H 桥电路原理见图11,常见

12、的是用三级管代替图中的开关。图11 H 桥驱动原理 为了简化电路,最好采用H 桥功能的集成电路。这种IC 很多,比如象TA7257,TA8429H,L6203 等,这里用的是三菱公司的M54544AL(见图12)。IC 各脚定义见图13。图12 电机驱动IC图13 M56544AL 各脚定义6电原理图见图14。图14 电原理图7完成图见图15。图15 完成图三. 软件设计1 摇棒的启动 为了使摇棒从静止状态过度到正常运行状态,在正式显示前加一启动程序。其实质就是逐渐加快驱动的频率,一直到摇棒正常摆动为止。通过下面的代码实现do mm+;Delay(120+mm);put1=put1; put2

13、=put2;while(mm60);Delay(20); /根据实际情况确定延时值2 秒闪现的实现:数字或字符的闪现是通过变量Ms 和数组w实现的,如需要八位字符中的间的第4 位闪现,则w3=1。这是通过全局变量Ms 在void timer0(void)函数中每隔一秒改变一次状态(0 或1),打开或关闭显示。if(Ms*wii-3=1) P2=0xff; else P2=ASCIIDOCvii*6+jj; /正向显示if(Ms*w10-ii=1) P2=0xff; else P2=ASCIIDOCv13-ii*6+5-jj; /反向显示3 调试中发现,显示屏上的字符并不是一样宽的(见图16),

14、仔细分析是由于摇棒在运动中,一直受力,而且所受的力是随时变化的。为方便精确调整显示,特别作了一个显示中断表Tr,改变显示LED 的时间段,协调显示效果。图16 调整前的显示4 按键去抖程序 按键的去抖采用软件编程实现,其方法是当检测到按键的接口出现低电平后,隔一段时间再检测,如还是低电平,则确认为有效,否则无效。具体的程序是通过函数unsigned char ChKey(bit Key)完成的。5 显示同步 因没有位置传感器,显示同步完全靠时钟中断来确定。这样就有一个问题,音圈电机的驱动信号在什么时刻改变,显示才能保持在中间,并能保证正反显示能很好地重合。经实际观察, 音圈电机的驱动信号在显示

15、中部, 要根据具体情况细调。由程序中的变量Ta 调试确定。6 完整C51 程序代码/*POV 摇摆显示LED 钟C51 程序周正华编2008.3.19*/*硬件端口定义*/sbit set0=P01;sbit set1=P00;sbit set2=P02;sbit put1=P36;sbit put2=P37;/*时钟用数组*/unsigned char BUFFER=0,0,0,0;unsigned char maxnum=59,23;/*显示数组*/unsigned int v14;unsigned int w8;/*显示中断表*/int code Tr=2000,2000,2000,20

16、00,2000,2000,2550,2500,2450,2400,2350,2300,2250,2200,2150,2100,2050,2000,1950,1900,1850,1800,1750,1700,1650,1600,1550,1500,1450,1400,1400,1450,1500,1550,1600,1650,1700,1750,1800,1850,1900,1950,2000,2050,2100,2150,2200,2250,2300,2350,2400,2450,2500,2550,;/*字符字模*/unsigned char code ASCIIDOC = / ASCII0

17、x7C,0x8A,0x92,0xA2,0x7C,0x00, / -0-000x00,0x42,0xFE,0x02,0x00,0x00, / -1-010x46,0x8A,0x92,0x92,0x62,0x00, / -2-020x84,0x82,0x92,0xB2,0xCC,0x00, / -3-030x18,0x28,0x48,0xFE,0x08,0x00, / -4-040xE4,0xA2,0xA2,0xA2,0x9C,0x00, / -5-050x3C,0x52,0x92,0x92,0x8C,0x00, / -6-060x80,0x8E,0x90,0xA0,0xC0,0x00, / -7-070x6C,0x92,0x92,0x92,0x6C,0x00, / -8-080x62,0x92,0x92,0x94,

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1