30秒定时器非常详细论文课程设计.doc

上传人:本田雅阁 文档编号:2724897 上传时间:2019-05-08 格式:DOC 页数:16 大小:152.50KB
返回 下载 相关 举报
30秒定时器非常详细论文课程设计.doc_第1页
第1页 / 共16页
30秒定时器非常详细论文课程设计.doc_第2页
第2页 / 共16页
30秒定时器非常详细论文课程设计.doc_第3页
第3页 / 共16页
30秒定时器非常详细论文课程设计.doc_第4页
第4页 / 共16页
30秒定时器非常详细论文课程设计.doc_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《30秒定时器非常详细论文课程设计.doc》由会员分享,可在线阅读,更多相关《30秒定时器非常详细论文课程设计.doc(16页珍藏版)》请在三一文库上搜索。

1、电子技术课程设计报告专 业:电子信息工程班 级题 目:姓 名指导教师:摘要此实验为三十秒定时器。定时器是生活中比较常见的电子仪器的功能之一。在10多个课题中,算是比较常见,但又比较实用,恰巧作者正在自学单片机,如果用单片机做的话,不失为一个学习的好机会。这个实验的难点和优点都是程序控制。因为单片机应用比较灵活,很有学习价值;而又因为它应用很灵活,所以必须学习大量的硬件知识和程序设计。最小系统,就是最简单的输出/输入构成,并且能实现最基本的运行条件,如应有供电、时钟附属电路等。单片机的最小系统包括晶振电路 复位电路 和电源 , 这时最小系统基本组成 当然还可以添加矩阵键盘 数码管等。此实验的原理

2、是,利用单片机的最小系统,通过锁存器74HC573控制数码管,来实现30秒定时器的功能。本实验过程包括:前期设计:原理图、PCB图的设计(DXP制作)C语言程序设计及HEX等相关的文件的生成(Keil软件编写)烧录程序至单片机(STC,单片机实验板)元器件的收集实验制作:电源的设计电路板焊接后期的整理:电路检测,测算误差思路整理,记录得与失【关键词】 单片机;STC89C52 ; LED数码管显示器;计时器 ;三极管C1008前言现在电子仪器发展迅速,而且功能越来越齐全化,体积微型化,仪器智能化;电压,电流要求越来越简单,功耗越来越低。而单片机就是其中的佼佼者。单片机有这体积小,功耗低(89C

3、52功耗在100MW左右),功能强,性能价格比高,易于推广应用等显著特点,所以在现代社会中已经占统治地位。事实上单片机是世界上数量最多的计算机。现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有1-2部单片机。而个人电脑中也会有为数不少的单片机在工作。汽车上一般配备40多部单片机,复杂的工业控制系统上甚至可能有数百台单片机在同时工作!单片机的数量不仅远超过PC机和其他计算的综合,甚至比人类的数量还要多。我们学习了单片机,在条件的允许下,就能制作生活中几乎全部的看起来比较复杂的电子作品。本实验设计要求:记录实验

4、过程中的主要步骤及细节,实现30秒定功能,其误差不超过1%。大学过程是一个理论过程,实践的机会比较少,往往会造成理论与实践相脱节,这是国内大学教育系统的通病,不过对于学生来说切不可好高骛远。一般从大三会开始接触到一些专业课程,电子相关专业会开设相关的单片机应用课程并且会有简单的实验项目,那么要充分把握实验课的机会,多多地实际上机操作练习。平时可以多看看相关的电子技术杂志网站,看看别人的开发经验,硬件设计方案以及他人的软件设计经验。有可能的话,还可以参加一些电子设计大赛,借此机会2-3个人合作做一个完整系统,会更有帮助。到了大四毕业设计阶段,也可以选择相关的课题作些实际案例增长经验。做什么事情都

5、有个经验的积累过程,循序渐进。在此实验设计中,制造者可以借此学到很多东西,也知道更多的知识要学。光学知识不动手是不行的,纸上谈兵,把问题退到以后,很可能永远解决不了问题。三十秒定时器设计报告-单片机的初步学习与应用. .设计目的:实现30秒定时器;训练动手能力,学习单片机的控制与制作。.设计任务: 1.30秒计时器功能,两位数字显示,计时时间间隔为1秒;2.从1到30增计时,每次计时结束时,发光二极管闪动,蜂鸣器响,显示器显示0;3.设置外部开关,可使计时器直接清零。设计要求:使用常用芯片和其他元器件等,在一块电路板上实现30秒定时器。尽量使用所学知识。. 最小系统:最小系统,就是最简单的输出

6、/输入构成,并且能实现最基本的运行条件,如应有供电、时钟附属电路等。单片机的最小系统包括晶振电路 复位电路 和电源 , 本实验最小系统只控制数码管、发光二极管、蜂鸣器。.原理图.参考程序:/*文件名 :实现30秒定时器* 描述 :该程序实现数码管从130跳动,每秒跳动一次。到30然后清零,LED的闪烁, 在使用某款新单片机时,经常就用类似的闪烁灯程序来判断单片机是否正常* 创建人 : 王少阳,2009年12月15日* 版本号 : 1.0*/#include#include#define uint unsigned int /uint用来定义无符号整型数。#define uchar unsign

7、ed char /这里用uchar代替unsigned char,uchar用来定义无符号字uchar temp,aa,bai,shi,ge;sbit dula=P26;sbit wela=P27;sbit beep=P23; /定义蜂鸣器控制端口/*下一行code去掉后 table 会被存到 RAM 中,因为单片机的 RAM 比 ROM 小的多*/*所以,对于不会改变的值应该用 code 或者 #define 去定义,让这些固定值存到 ROM 中去*/uchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77

8、,0x7c,0x39,0x5e,0x79,0x71; /编码表:0到F的段控制void display(uchar shi,uchar ge);void delay(uint z);void init();/* 名称 : Main()* 功能 : 主函数* 输入 : 无* 输出 : 无*/void main() init();/初始化子程序 while(1) if(aa=20) /当aa为 20 时,i 自加一次,20 * 50MS = 1S aa=0; emp+; if(temp=31) temp=0; bai=temp/100; shi=temp%100/10; ge=temp%10; d

9、isplay(shi,ge); if(temp=30) beep=1; /蜂鸣器响 delay(150); uchar i; while(1) P1 = 0x7f;/P1.7亮亮for(i=0; i7; i+)/移位7次 P1 = _cror_(P1, 1);/*_crol_()这个数在intrins.h中定义了,用于循环右移*/delay(15);P0 = 0xfe; for(i=0; i0;x-)for(y=110;y0;y-); /这个是通过软件仿真得出的数 /* 名称 : void display(uchar shi,uchar ge)* 功能 : 实现动态扫描* 输入 : shi,g

10、e* 输出 : 无*/void display(uchar shi,uchar ge) /* dula=1;P0=tablebai;dula=0;P0=0xff;wela=1;P0=0xfe;wela=0;delay(1);*/dula=1;P0=tableshi; /数码管段值dula=0;P0=0xff; /灯都熄灭,防止人眼的视觉停留wela=1;P0=0xfe;/1111 1110Bwela=0;delay(2); /*延时,实现软件消抖,去掉的话会出现该暗的米有暗下去,这时人眼能分辨动态显示。*/dula=1;P0=tablege;dula=0;P0=0xff;wela=1;P0=0

11、xfd;/1111 1101Bwela=0;delay(2); /* 名称 void init()* 功能 : 定时器的初始化,12MHz晶振,50ms* 输入 : 无* 输出 : 无*/void init() wela=0;dula=0;temp=0;TMOD=0x01; /设置定时器0工作方式1。STC89C52是16位定时器。2的16次方=65536。TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1; /开总中断,IE7ET0=1; /开定时器中断TR0=1; /启动定时器0 /* 名称 :void timer0()* 功能 : 定时器中断

12、,中断一次,aa 加一* 输入 : 无* 输出 : 无*/void timer0() interrupt 1 /中断优先级别为1;中断方式:定时/计数器0(T0)TH0=(65536-50000)/256;TL0=(65536-50000)%256;aa+;程序的中的重点技巧:1.两位以上的数码管,是不能在静态时同时显示不同的符号的,所以就需要用到动态显示,具体方法是每位数码管一次都显示几毫秒,实现动态扫描,使人在肉眼难以分辨(人眼的分辨能力是0.1秒左右),例如:dula=1;P0=tablege;dula=0;P0=0xff;wela=1;P0=0xfd;/1111 1101Bwela=0

13、;delay(2);2.常用程序驱动几个发光二极管来判断单片机是否工作正常,具体是用循环移动P1扣来实现。3. 如果按键按下,需要测试按键是否断开:while(!key1);4.按键在闭合和断开时,触点会存在5ms左右5ms左右按下会执行几个抖动脉冲,常用软件消抖,比较方便实用,先延时10毫秒,大致跳过抖动时间,然后再测试。如: delay(5); if(key1=0) 其他的在这里就不详细讲述了。为了保证程序能正确且正常运行,程序需要在单片机实验板上调试好了才能烧录,然后才能连接到电路板上。具体步骤:keil4编写程序生成HEX文件(注意晶振频率为11.0592MHz)用STC把程序下载到单

14、片机上。.两个基本电路: 复位电路和晶振电路 复位电路:一般需要送4个时钟周期的高电平。按键后:电容器被短路放电、RST直接和VCC相连,就是高电平,此时进入“复位状态”。松手后:电源开始对电容器充电,此时,充电电流在电阻上,形成高电平送到RST,仍然是“复位状态”; 稍后,充电结束,电流降为0,电阻上的电压也将为0,RST降为低电平,开始正常工作。 晶振电路:产生一个固定频率的脉充,驱动芯片等元件工作。晶振也叫晶体振荡器,能产生振荡,其特点是固有频率十分稳定,而且震动具有多谐性,除了奇频震动外还有奇次谐波泛音震动。性能上,晶振的品质因素Q和特性阻抗都非常高,而且接入系数很小,因此具有很高的频

15、率稳定度。.实验仪器,工具,元件:硬件:计算机,单片机实验板,吸焊器,电烙铁,万用表等软件:Keil4 , STC , Protel 2004 DXP .1IC名单型号个数2单片机stc89C5213锁存器74HC57324数码管2位的,共阴极25晶振12MHz16电容39PF27电容10UF28开关按键开关29开关波动开关110电路板10*20111排阻10K欧112电阻3K欧113电阻30欧114发光二极管0.5V亮315单片机底座40引脚116三极管C1008 npn117蜂鸣器1元器件如表:.焊接电路: 按照PCB图安置元件,尽量减小导线长度,布局要合理,紧凑。收集元件:主要通过指导老

16、师购买,还自己购买,同学相互查找。实在凑不齐的可以考虑用其他的代替。比如:此实验中1K的电阻没有买到,用的是200代替。在满足实验原理的的前提下,可以替代。检测元件:因为元件有可能已损坏,或者不准确,就可能会影响电路。所以用万用表测量他们的实际数值。其中电阻,电容,数码管,单片机底座,导线,开关都能用万用表测量,其他的因为实际实验条件的限制,不能测试和测量。比如,22PF的电容,在测量时,大小只有17PF,所以不能用。焊接:每焊接时都要用万用表测试是否焊接成功。焊接电路板时,布局合理紧凑,近的用锡连接,远的用导线练级,尽量使导线裸露的长度短些。有的导线比较密集,需注意不要短路。此实验中,密集点

17、有单片机的P0口附近10个焊点和锁存器74HC573-1的20个。可用万用表测试相邻的两焊点是否短路。焊接错误时,用吸焊器把锡吸走,重新焊接。电源线有7个地线,5个+5V。导线比较多,所以要注意布局合理。因为焊点比较多,所以错误不可避免,在实验中要细心+耐心。焊接完,要检测。用万用表检测电路是否连接良好,是否短路。注意事项:晶振,因为人体所带电磁波和人体手指电阻会破坏晶振的正常震荡,或者停振,所以程序会跑飞或者“死机”,复位按后单片机复位,当然就正常了!一般晶振是不能用受碰的,我自己做的电路,晶振引脚部位会用热熔胶封好!在晶体外壳上焊接一条线,然后接GND.需要特别注意的是,单片机的驱动能力很

18、低。单片机输出的电压虽然容易控制,但是它的输出电流有限,所以经常用一些方法增加它的驱动能力。此实验用到了接上拉电阻(10K的排阻),锁存器输出,三极管驱动这三种方法。.测试:1.将电路接上稳压电源,先后执行电路的数码管定时,蜂鸣器报警,放光二极管闪动,暂停/继续定时。看是否满足设计要求。在时间误差的测试中,得到数据很接近真实数据,这是因为人的反应速度的误差,而是用定时器的计时方式,误差是非常小的,在日常生活中一般不予考虑,但是在高精度测量时,就很有必要了,所以我们要了解本实验的误差: 误差原因、大小及特点产生单片机定时器溢出中断与响应中断的时间误差有两个原因。一是定时器溢出中断信号时,正在执行

19、某指令;二是定时器溢出中断信号时,正在执行某中断服务程序。由上面可以看出在执行1秒的时间过程中,本实验程序中断1次,溢出2次,所以误差=(max1+2*max2)*30=(4+8*2)*30=600电路改进及发展:实现定时功能,比较方便的办法是利用单片机内部的定时/计数器。也可以采用下面三种方法: 软件定时:软件定时不占用硬件资源,但占用了CPU时间,降低了CPU的利用率。 采用时基电路定时:例如采用555电路,外接必要的元器件(电阻和电容),即可构成硬件定时电路。但在硬件连接好以后,定时值与定时范围不能由软件进行控制和修改,即不可编程。 采用可编程芯片定时:这种定时芯片的定时值及定时范围很容

20、易用软件来确定和修改,此种芯片定时功能强,使用灵活。在单片机的定时/计数器不够用时,可以考虑进行扩展。.对单片机做定时器的优点,和缺点:单片机讲求实时性,所以实时性好。资源紧张,要求功耗低多为针对应用的定制,功能相对单一,在上面跑的软件移植性差大多数不支持第三方软件,很多甚至没有操作系统,有的连MMU都没有。我们学生用单片机可以向嵌入式的工程应用方向发展,从事嵌入式系统的开发工作。总结其间,我熟悉了从构想设计、画电路图、分析电路、绘制PCB电路板、选择元件参数规格、购买元件、焊接、调试到最后的外形设计等产品生产步骤以及一些方法,通过与同学的讨论,解决了许多问题,但也出现了许多问题,比如数码管显

21、示串连、单片机驱动低需要外加电路驱动等,还须在以后的学习中不断地探索、学习。另外,还要多与同学讨论、研究,多向别人请教,这样才能明白自己的迷团,学到新的东西;别人遇到的一些问题,自己也要参与解决,以增长见识。设计中,还要根据实验的实际情况,添加些额外程序来使系统更加的稳定,如开关的消震荡(采用延迟)。程序要尽量做到由各个子程序组成,在有些程序后面最好加注释,这样在程序出错的检查过程中可以更容易查找的到,也更简洁,更明白易懂。这次的单片机课程设计重点是理论与实际的相结合。不再只读书了。该设计从头到尾都要自己参与,熟悉了对整个设计的过程,更系统的锻炼了自己。结束语 :通过本次设计,使我认识并了解了

22、基本的设计开发过程,在这过程中,我的身边的同学们和导师给了我很多的启示和帮助,而且我觉的对以前不了解的单片机知识有了一个更高更深的了解。我相信我所学的东西在以后的工作学习中会起很大的作用。参考书目:1 刘刚,秦永左,单片机原理及应用,北京,北京大学出版社,2006年.2 道辉,单片机系统设计与实践,北京,电子工业出版社,2006年.3 门宏,电子技术快速入门-图解,人民邮电出版社,2006年.4 杨志忠,电子技术课程设计,南京,机械工业出版社,2008年6月.5 黎文模、段晓峰编著,Protel DXP电路设计与实例精解,北京,人民邮电出版社, 2006.6 赵文博、刘文涛编著,单片机语言C51程序设计,北京,人民邮电出版社, 2005.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1